aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVincent Breitmoser <valodim@mugenguild.com>2015-11-18 19:23:40 +0100
committerVincent Breitmoser <valodim@mugenguild.com>2016-01-06 16:25:50 +0100
commit7eafe5d1e81fe3f72e66b600736e55f8eb21f038 (patch)
tree0e5b144e033026590dc6660e904aef3a632eac23
parent52ab77d2a41d8d2e61cc864dbfd63dd1185a184b (diff)
downloadopen-keychain-7eafe5d1e81fe3f72e66b600736e55f8eb21f038.tar.gz
open-keychain-7eafe5d1e81fe3f72e66b600736e55f8eb21f038.tar.bz2
open-keychain-7eafe5d1e81fe3f72e66b600736e55f8eb21f038.zip
inline-ttl: support "screen off" in preference
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/PassphraseCacheService.java13
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/Preferences.java4
-rw-r--r--OpenKeychain/src/main/res/layout/passphrase_dialog.xml2
-rw-r--r--OpenKeychain/src/main/res/values/strings.xml12
4 files changed, 17 insertions, 14 deletions
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/PassphraseCacheService.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/PassphraseCacheService.java
index be14f1586..606daabed 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/PassphraseCacheService.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/PassphraseCacheService.java
@@ -27,8 +27,6 @@ import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.Binder;
-import android.os.Build.VERSION;
-import android.os.Build.VERSION_CODES;
import android.os.Bundle;
import android.os.Handler;
import android.os.HandlerThread;
@@ -349,14 +347,14 @@ public class PassphraseCacheService extends Service {
case ACTION_PASSPHRASE_CACHE_ADD: {
long masterKeyId = intent.getLongExtra(EXTRA_KEY_ID, -1);
long subKeyId = intent.getLongExtra(EXTRA_SUBKEY_ID, -1);
- long timeoutTime = intent.getIntExtra(EXTRA_TTL, DEFAULT_TTL);
+ long timeoutTtl = intent.getIntExtra(EXTRA_TTL, DEFAULT_TTL);
Passphrase passphrase = intent.getParcelableExtra(EXTRA_PASSPHRASE);
String primaryUserID = intent.getStringExtra(EXTRA_USER_ID);
Log.d(Constants.TAG,
"PassphraseCacheService: Received ACTION_PASSPHRASE_CACHE_ADD intent in onStartCommand() with masterkeyId: "
- + masterKeyId + ", subKeyId: " + subKeyId + ", ttl: " + timeoutTime + ", usrId: " + primaryUserID
+ + masterKeyId + ", subKeyId: " + subKeyId + ", ttl: " + timeoutTtl + ", usrId: " + primaryUserID
);
// if we don't cache by specific subkey id, or the requested subkey is the master key,
@@ -365,14 +363,15 @@ public class PassphraseCacheService extends Service {
Preferences.getPreferences(mContext).getPassphraseCacheSubs() ? subKeyId : masterKeyId;
CachedPassphrase cachedPassphrase;
- if (timeoutTime == 0) {
+ if (timeoutTtl == 0L) {
cachedPassphrase = CachedPassphrase.getPassphraseLock(passphrase, primaryUserID);
} else {
- cachedPassphrase = CachedPassphrase.getPassphraseTtlTimeout(passphrase, primaryUserID, timeoutTime);
+ cachedPassphrase = CachedPassphrase.getPassphraseTtlTimeout(passphrase, primaryUserID, timeoutTtl);
+ long triggerTime = new Date().getTime() + (timeoutTtl * 1000);
// register new alarm with keyId for this passphrase
AlarmManager am = (AlarmManager) this.getSystemService(Context.ALARM_SERVICE);
- am.set(AlarmManager.RTC_WAKEUP, timeoutTime, buildIntent(this, referenceKeyId));
+ am.set(AlarmManager.RTC_WAKEUP, triggerTime, buildIntent(this, referenceKeyId));
}
mPassphraseCache.put(referenceKeyId, cachedPassphrase);
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/Preferences.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/Preferences.java
index 8074d8eb1..cf4e5ad21 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/Preferences.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/Preferences.java
@@ -321,6 +321,7 @@ public class Preferences {
public static final ArrayList<Integer> CACHE_TTLS;
static {
HashMap<Integer,Integer> cacheTtlNames = new HashMap<>();
+ cacheTtlNames.put(0, R.string.cache_ttl_lock_screen);
cacheTtlNames.put(60 * 5, R.string.cache_ttl_five_minutes);
cacheTtlNames.put(60 * 60, R.string.cache_ttl_one_hour);
cacheTtlNames.put(60 * 60 * 3, R.string.cache_ttl_three_hours);
@@ -353,10 +354,11 @@ public class Preferences {
public static CacheTTLPrefs getDefault() {
ArrayList<String> ttlStrings = new ArrayList<>();
+ ttlStrings.add(Integer.toString(0));
ttlStrings.add(Integer.toString(60 * 5));
ttlStrings.add(Integer.toString(60 * 60));
ttlStrings.add(Integer.toString(60 * 60 * 24));
- return new CacheTTLPrefs(ttlStrings, 60 * 5);
+ return new CacheTTLPrefs(ttlStrings, 0);
}
}
diff --git a/OpenKeychain/src/main/res/layout/passphrase_dialog.xml b/OpenKeychain/src/main/res/layout/passphrase_dialog.xml
index af05a3da4..81840f67f 100644
--- a/OpenKeychain/src/main/res/layout/passphrase_dialog.xml
+++ b/OpenKeychain/src/main/res/layout/passphrase_dialog.xml
@@ -44,7 +44,7 @@
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:text="Remember for "
+ android:text="@string/remember"
android:textAppearance="@android:style/TextAppearance.Medium" />
<org.sufficientlysecure.keychain.ui.widget.CacheTTLSpinner
diff --git a/OpenKeychain/src/main/res/values/strings.xml b/OpenKeychain/src/main/res/values/strings.xml
index 076ff0736..4a0640536 100644
--- a/OpenKeychain/src/main/res/values/strings.xml
+++ b/OpenKeychain/src/main/res/values/strings.xml
@@ -1710,14 +1710,16 @@
<string name="title_edit_identities">"Edit Identities"</string>
<string name="title_edit_subkeys">"Edit Subkeys"</string>
<string name="btn_search_for_query">"Search for\n'%s'"</string>
- <string name="cache_ttl_five_minutes">"Five Minutes"</string>
- <string name="cache_ttl_one_hour">"One Hour"</string>
- <string name="cache_ttl_three_hours">"Three Hours"</string>
- <string name="cache_ttl_one_day">"One Day"</string>
- <string name="cache_ttl_three_days">"Three Days"</string>
+ <string name="cache_ttl_lock_screen">"until Screen Off"</string>
+ <string name="cache_ttl_five_minutes">"for Five Minutes"</string>
+ <string name="cache_ttl_one_hour">"for One Hour"</string>
+ <string name="cache_ttl_three_hours">"for Three Hours"</string>
+ <string name="cache_ttl_one_day">"for One Day"</string>
+ <string name="cache_ttl_three_days">"for Three Days"</string>
<string name="settings_cache_select_three">"Pick up to three"</string>
<string name="setting_cache_select_default">"and one default"</string>
<string name="settings_cache_ttl_at_least_one">"At least one item must be selected!"</string>
<string name="settings_cache_ttl_max_three">"Can\'t select more than three items!"</string>
+ <string name="remember">"Remember"</string>
</resources>