diff options
author | Vincent Breitmoser <valodim@mugenguild.com> | 2015-11-18 19:23:40 +0100 |
---|---|---|
committer | Vincent Breitmoser <valodim@mugenguild.com> | 2016-01-06 16:25:50 +0100 |
commit | 7eafe5d1e81fe3f72e66b600736e55f8eb21f038 (patch) | |
tree | 0e5b144e033026590dc6660e904aef3a632eac23 /OpenKeychain | |
parent | 52ab77d2a41d8d2e61cc864dbfd63dd1185a184b (diff) | |
download | open-keychain-7eafe5d1e81fe3f72e66b600736e55f8eb21f038.tar.gz open-keychain-7eafe5d1e81fe3f72e66b600736e55f8eb21f038.tar.bz2 open-keychain-7eafe5d1e81fe3f72e66b600736e55f8eb21f038.zip |
inline-ttl: support "screen off" in preference
Diffstat (limited to 'OpenKeychain')
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> |