From 1754a88ac39e061dd36afd72f8a04e8d5e59751c Mon Sep 17 00:00:00 2001 From: Vincent Breitmoser Date: Tue, 17 Nov 2015 00:58:22 +0100 Subject: inline-ttl: create ttl choice customization setting activity --- .../keychain/util/Preferences.java | 75 +++++++++++++++++----- 1 file changed, 60 insertions(+), 15 deletions(-) (limited to 'OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util') 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 ce81bbcac..2b3c3350a 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/Preferences.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/Preferences.java @@ -18,9 +18,22 @@ package org.sufficientlysecure.keychain.util; + +import java.io.Serializable; +import java.net.Proxy; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collection; +import java.util.Collections; +import java.util.HashMap; +import java.util.HashSet; +import java.util.ListIterator; +import java.util.Map; +import java.util.Set; +import java.util.Vector; + import android.content.Context; import android.content.SharedPreferences; - import android.os.Parcel; import android.os.Parcelable; import android.preference.PreferenceManager; @@ -28,14 +41,9 @@ import android.support.annotation.NonNull; import org.sufficientlysecure.keychain.Constants; import org.sufficientlysecure.keychain.Constants.Pref; +import org.sufficientlysecure.keychain.R; import org.sufficientlysecure.keychain.service.KeyserverSyncAdapterService; -import java.net.Proxy; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.ListIterator; -import java.util.Vector; - /** * Singleton Implementation of a Preference Helper */ @@ -90,19 +98,18 @@ public class Preferences { editor.commit(); } - public long getPassphraseCacheTtl() { - int ttl = mSharedPreferences.getInt(Constants.Pref.PASSPHRASE_CACHE_TTL, 180); - // fix the value if it was set to "never" in previous versions, which currently is not - // supported - if (ttl == 0) { - ttl = 180; + public CacheTTLPrefs getPassphraseCacheTtl() { + Set pref = mSharedPreferences.getStringSet(Constants.Pref.PASSPHRASE_CACHE_TTLS, null); + if (pref == null) { + return CacheTTLPrefs.getDefault(); } - return (long) ttl; + int def = mSharedPreferences.getInt(Pref.PASSPHRASE_CACHE_DEFAULT, 0); + return new CacheTTLPrefs(pref, def); } public void setPassphraseCacheTtl(int value) { SharedPreferences.Editor editor = mSharedPreferences.edit(); - editor.putInt(Constants.Pref.PASSPHRASE_CACHE_TTL, value); + editor.putInt(Constants.Pref.PASSPHRASE_CACHE_TTLS, value); editor.commit(); } @@ -308,6 +315,44 @@ public class Preferences { } + public static class CacheTTLPrefs implements Serializable { + public static final Map CACHE_TTL_NAMES; + public static final ArrayList CACHE_TTLS; + static { + HashMap cacheTtlNames = new HashMap<>(); + 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); + cacheTtlNames.put(60 * 60 * 24, R.string.cache_ttl_one_day); + cacheTtlNames.put(60 * 60 * 24 * 3, R.string.cache_ttl_three_days); + CACHE_TTL_NAMES = Collections.unmodifiableMap(cacheTtlNames); + + CACHE_TTLS = new ArrayList<>(CacheTTLPrefs.CACHE_TTL_NAMES.keySet()); + Collections.sort(CACHE_TTLS); + } + + + public HashSet ttlTimes; + public int defaultTtl; + + public CacheTTLPrefs(Collection ttlStrings, int defaultTtl) { + this.defaultTtl = defaultTtl; + ttlTimes = new HashSet<>(); + for (String ttlString : ttlStrings) { + ttlTimes.add(Integer.parseInt(ttlString)); + } + } + + public static CacheTTLPrefs getDefault() { + ArrayList ttlStrings = new ArrayList<>(); + 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); + } + + } + // cloud prefs public CloudSearchPrefs getCloudSearchPrefs() { -- cgit v1.2.3 From 0c7c58f3764217eaf32656679530f86618a6e198 Mon Sep 17 00:00:00 2001 From: Vincent Breitmoser Date: Tue, 17 Nov 2015 14:33:08 +0100 Subject: inline-ttl: save changes in ttl settings --- .../keychain/util/Preferences.java | 40 +++++++++++++--------- 1 file changed, 24 insertions(+), 16 deletions(-) (limited to 'OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util') 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 2b3c3350a..8074d8eb1 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/Preferences.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/Preferences.java @@ -98,21 +98,6 @@ public class Preferences { editor.commit(); } - public CacheTTLPrefs getPassphraseCacheTtl() { - Set pref = mSharedPreferences.getStringSet(Constants.Pref.PASSPHRASE_CACHE_TTLS, null); - if (pref == null) { - return CacheTTLPrefs.getDefault(); - } - int def = mSharedPreferences.getInt(Pref.PASSPHRASE_CACHE_DEFAULT, 0); - return new CacheTTLPrefs(pref, def); - } - - public void setPassphraseCacheTtl(int value) { - SharedPreferences.Editor editor = mSharedPreferences.edit(); - editor.putInt(Constants.Pref.PASSPHRASE_CACHE_TTLS, value); - editor.commit(); - } - public boolean getPassphraseCacheSubs() { return mSharedPreferences.getBoolean(Pref.PASSPHRASE_CACHE_SUBS, false); } @@ -315,6 +300,22 @@ public class Preferences { } + public CacheTTLPrefs getPassphraseCacheTtl() { + Set pref = mSharedPreferences.getStringSet(Constants.Pref.PASSPHRASE_CACHE_TTLS, null); + if (pref == null) { + return CacheTTLPrefs.getDefault(); + } + int def = mSharedPreferences.getInt(Pref.PASSPHRASE_CACHE_DEFAULT, 300); + return new CacheTTLPrefs(pref, def); + } + + public void setPassphraseCacheTtl(CacheTTLPrefs prefs) { + SharedPreferences.Editor editor = mSharedPreferences.edit(); + editor.putStringSet(Constants.Pref.PASSPHRASE_CACHE_TTLS, prefs.getStringSet()); + editor.putInt(Pref.PASSPHRASE_CACHE_DEFAULT, prefs.defaultTtl); + editor.commit(); + } + public static class CacheTTLPrefs implements Serializable { public static final Map CACHE_TTL_NAMES; public static final ArrayList CACHE_TTLS; @@ -331,7 +332,6 @@ public class Preferences { Collections.sort(CACHE_TTLS); } - public HashSet ttlTimes; public int defaultTtl; @@ -343,6 +343,14 @@ public class Preferences { } } + public HashSet getStringSet() { + HashSet ttlTimeStrings = new HashSet<>(); + for (Integer ttlTime : ttlTimes) { + ttlTimeStrings.add(Integer.toString(ttlTime)); + } + return ttlTimeStrings; + } + public static CacheTTLPrefs getDefault() { ArrayList ttlStrings = new ArrayList<>(); ttlStrings.add(Integer.toString(60 * 5)); -- cgit v1.2.3 From 7eafe5d1e81fe3f72e66b600736e55f8eb21f038 Mon Sep 17 00:00:00 2001 From: Vincent Breitmoser Date: Wed, 18 Nov 2015 19:23:40 +0100 Subject: inline-ttl: support "screen off" in preference --- .../main/java/org/sufficientlysecure/keychain/util/Preferences.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util') 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 CACHE_TTLS; static { HashMap 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 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); } } -- cgit v1.2.3 From f554d0fd2dee0a5aad513603745b745dfe99a90f Mon Sep 17 00:00:00 2001 From: Vincent Breitmoser Date: Wed, 18 Nov 2015 19:27:21 +0100 Subject: some code cleanup in Preferences --- .../keychain/util/Preferences.java | 26 +++++++++++++--------- 1 file changed, 16 insertions(+), 10 deletions(-) (limited to 'OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util') 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 cf4e5ad21..6e8c8c651 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/Preferences.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/Preferences.java @@ -32,6 +32,7 @@ import java.util.Map; import java.util.Set; import java.util.Vector; +import android.annotation.SuppressLint; import android.content.Context; import android.content.SharedPreferences; import android.os.Parcel; @@ -47,6 +48,7 @@ import org.sufficientlysecure.keychain.service.KeyserverSyncAdapterService; /** * Singleton Implementation of a Preference Helper */ +@SuppressLint("CommitPrefEdits") public class Preferences { private static Preferences sPreferences; private SharedPreferences mSharedPreferences; @@ -135,7 +137,7 @@ public class Preferences { public String[] getKeyServers() { String rawData = mSharedPreferences.getString(Constants.Pref.KEY_SERVERS, Constants.Defaults.KEY_SERVERS); - if (rawData.equals("")) { + if ("".equals(rawData)) { return new String[0]; } Vector servers = new Vector<>(); @@ -457,15 +459,19 @@ public class Preferences { if (server == null) { continue; } - if (server.equals("pool.sks-keyservers.net")) { - // use HKPS! - it.set("hkps://hkps.pool.sks-keyservers.net"); - } else if (server.equals("pgp.mit.edu")) { - // use HKPS! - it.set("hkps://pgp.mit.edu"); - } else if (server.equals("subkeys.pgp.net")) { - // remove, because often down and no HKPS! - it.remove(); + switch (server) { + case "pool.sks-keyservers.net": + // use HKPS! + it.set("hkps://hkps.pool.sks-keyservers.net"); + break; + case "pgp.mit.edu": + // use HKPS! + it.set("hkps://pgp.mit.edu"); + break; + case "subkeys.pgp.net": + // remove, because often down and no HKPS! + it.remove(); + break; } } -- cgit v1.2.3 From ae15b5dd0d7d57746c06a7a8c15e5d9dd14c858e Mon Sep 17 00:00:00 2001 From: Vincent Breitmoser Date: Tue, 5 Jan 2016 01:20:28 +0100 Subject: inline-ttl: remove "default" setting --- .../org/sufficientlysecure/keychain/util/Preferences.java | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) (limited to 'OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util') 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 6e8c8c651..75a7dcaba 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/Preferences.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/Preferences.java @@ -307,14 +307,12 @@ public class Preferences { if (pref == null) { return CacheTTLPrefs.getDefault(); } - int def = mSharedPreferences.getInt(Pref.PASSPHRASE_CACHE_DEFAULT, 300); - return new CacheTTLPrefs(pref, def); + return new CacheTTLPrefs(pref); } public void setPassphraseCacheTtl(CacheTTLPrefs prefs) { SharedPreferences.Editor editor = mSharedPreferences.edit(); editor.putStringSet(Constants.Pref.PASSPHRASE_CACHE_TTLS, prefs.getStringSet()); - editor.putInt(Pref.PASSPHRASE_CACHE_DEFAULT, prefs.defaultTtl); editor.commit(); } @@ -336,10 +334,8 @@ public class Preferences { } public HashSet ttlTimes; - public int defaultTtl; - public CacheTTLPrefs(Collection ttlStrings, int defaultTtl) { - this.defaultTtl = defaultTtl; + public CacheTTLPrefs(Collection ttlStrings) { ttlTimes = new HashSet<>(); for (String ttlString : ttlStrings) { ttlTimes.add(Integer.parseInt(ttlString)); @@ -356,11 +352,10 @@ public class Preferences { public static CacheTTLPrefs getDefault() { ArrayList 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, 0); + return new CacheTTLPrefs(ttlStrings); } } -- cgit v1.2.3