From f29280bbb268d112426c6662e1227118819fb904 Mon Sep 17 00:00:00 2001 From: Adithya Abraham Philip Date: Wed, 25 Nov 2015 01:35:41 +0530 Subject: added Facebook links support, reworked Preferences --- .../keychain/util/EmailKeyHelper.java | 2 +- .../keychain/util/Preferences.java | 100 ++++++++++----------- 2 files changed, 48 insertions(+), 54 deletions(-) (limited to 'OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util') diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/EmailKeyHelper.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/EmailKeyHelper.java index a55249842..d3cf74d16 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/EmailKeyHelper.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/EmailKeyHelper.java @@ -57,7 +57,7 @@ public class EmailKeyHelper { // Put them in a list and import ArrayList keys = new ArrayList<>(entries.size()); for (ImportKeysListEntry entry : entries) { - keys.add(new ParcelableKeyRing(entry.getFingerprintHex(), entry.getKeyIdHex(), null)); + keys.add(new ParcelableKeyRing(entry.getFingerprintHex(), entry.getKeyIdHex())); } mKeyList = keys; mKeyserver = keyserver; 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 559c5556f..ce81bbcac 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/Preferences.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/Preferences.java @@ -21,10 +21,10 @@ package org.sufficientlysecure.keychain.util; import android.content.Context; import android.content.SharedPreferences; -import android.content.res.Resources; +import android.os.Parcel; +import android.os.Parcelable; import android.preference.PreferenceManager; import android.support.annotation.NonNull; -import android.support.annotation.Nullable; import org.sufficientlysecure.keychain.Constants; import org.sufficientlysecure.keychain.Constants.Pref; @@ -42,7 +42,6 @@ import java.util.Vector; public class Preferences { private static Preferences sPreferences; private SharedPreferences mSharedPreferences; - private Resources mResources; private static String PREF_FILE_NAME = "APG.main"; private static int PREF_FILE_MODE = Context.MODE_MULTI_PROCESS; @@ -62,10 +61,15 @@ public class Preferences { } private Preferences(Context context) { - mResources = context.getResources(); updateSharedPreferences(context); } + /** + * Makes android's preference framework write to our file instead of default. + * This allows us to use the "persistent" attribute to simplify code, which automatically + * writes and reads preference values. + * @param manager + */ public static void setPreferenceManagerFileAndMode(PreferenceManager manager) { manager.setSharedPreferencesName(PREF_FILE_NAME); manager.setSharedPreferencesMode(PREF_FILE_MODE); @@ -130,12 +134,6 @@ public class Preferences { return mSharedPreferences.getBoolean(Pref.USE_NUMKEYPAD_FOR_YUBIKEY_PIN, true); } - public void setUseNumKeypadForYubiKeyPin(boolean useNumKeypadForYubikeyPin) { - SharedPreferences.Editor editor = mSharedPreferences.edit(); - editor.putBoolean(Pref.USE_NUMKEYPAD_FOR_YUBIKEY_PIN, useNumKeypadForYubikeyPin); - editor.commit(); - } - public void setFirstTime(boolean value) { SharedPreferences.Editor editor = mSharedPreferences.edit(); editor.putBoolean(Constants.Pref.FIRST_TIME, value); @@ -181,18 +179,6 @@ public class Preferences { editor.commit(); } - public void setSearchKeyserver(boolean searchKeyserver) { - SharedPreferences.Editor editor = mSharedPreferences.edit(); - editor.putBoolean(Pref.SEARCH_KEYSERVER, searchKeyserver); - editor.commit(); - } - - public void setSearchKeybase(boolean searchKeybase) { - SharedPreferences.Editor editor = mSharedPreferences.edit(); - editor.putBoolean(Pref.SEARCH_KEYBASE, searchKeybase); - editor.commit(); - } - public void setFilesUseCompression(boolean compress) { SharedPreferences.Editor editor = mSharedPreferences.edit(); editor.putBoolean(Pref.FILE_USE_COMPRESSION, compress); @@ -266,17 +252,6 @@ public class Preferences { return Integer.parseInt(mSharedPreferences.getString(Pref.PROXY_PORT, "-1")); } - /** - * we store port as String for easy interfacing with EditTextPreference, but return it as an integer - * - * @param port proxy port - */ - public void setProxyPort(String port) { - SharedPreferences.Editor editor = mSharedPreferences.edit(); - editor.putString(Pref.PROXY_PORT, port); - editor.commit(); - } - public Proxy.Type getProxyType() { final String typeHttp = Pref.ProxyType.TYPE_HTTP; final String typeSocks = Pref.ProxyType.TYPE_SOCKS; @@ -338,12 +313,14 @@ public class Preferences { public CloudSearchPrefs getCloudSearchPrefs() { return new CloudSearchPrefs(mSharedPreferences.getBoolean(Pref.SEARCH_KEYSERVER, true), mSharedPreferences.getBoolean(Pref.SEARCH_KEYBASE, true), + false, getPreferredKeyserver()); } - public static class CloudSearchPrefs { + public static class CloudSearchPrefs implements Parcelable { public final boolean searchKeyserver; public final boolean searchKeybase; + public final boolean searchFacebook; public final String keyserver; /** @@ -351,41 +328,58 @@ public class Preferences { * @param searchKeybase should keybase.io be searched * @param keyserver the keyserver url authority to search on */ - public CloudSearchPrefs(boolean searchKeyserver, boolean searchKeybase, String keyserver) { + public CloudSearchPrefs(boolean searchKeyserver, boolean searchKeybase, + boolean searchFacebook, String keyserver) { this.searchKeyserver = searchKeyserver; this.searchKeybase = searchKeybase; + this.searchFacebook = searchFacebook; this.keyserver = keyserver; } - } - // experimental prefs + protected CloudSearchPrefs(Parcel in) { + searchKeyserver = in.readByte() != 0x00; + searchKeybase = in.readByte() != 0x00; + searchFacebook = in.readByte() != 0x00; + keyserver = in.readString(); + } - public void setExperimentalEnableWordConfirm(boolean enableWordConfirm) { - SharedPreferences.Editor editor = mSharedPreferences.edit(); - editor.putBoolean(Pref.EXPERIMENTAL_ENABLE_WORD_CONFIRM, enableWordConfirm); - editor.commit(); + @Override + public int describeContents() { + return 0; + } + + @Override + public void writeToParcel(Parcel dest, int flags) { + dest.writeByte((byte) (searchKeyserver ? 0x01 : 0x00)); + dest.writeByte((byte) (searchKeybase ? 0x01 : 0x00)); + dest.writeByte((byte) (searchFacebook ? 0x01 : 0x00)); + dest.writeString(keyserver); + } + + public static final Parcelable.Creator CREATOR + = new Parcelable.Creator() { + @Override + public CloudSearchPrefs createFromParcel(Parcel in) { + return new CloudSearchPrefs(in); + } + + @Override + public CloudSearchPrefs[] newArray(int size) { + return new CloudSearchPrefs[size]; + } + }; } + // experimental prefs + public boolean getExperimentalEnableWordConfirm() { return mSharedPreferences.getBoolean(Pref.EXPERIMENTAL_ENABLE_WORD_CONFIRM, false); } - public void setExperimentalEnableLinkedIdentities(boolean enableLinkedIdentities) { - SharedPreferences.Editor editor = mSharedPreferences.edit(); - editor.putBoolean(Pref.EXPERIMENTAL_ENABLE_LINKED_IDENTITIES, enableLinkedIdentities); - editor.commit(); - } - public boolean getExperimentalEnableLinkedIdentities() { return mSharedPreferences.getBoolean(Pref.EXPERIMENTAL_ENABLE_LINKED_IDENTITIES, false); } - public void setExperimentalEnableKeybase(boolean enableKeybase) { - SharedPreferences.Editor editor = mSharedPreferences.edit(); - editor.putBoolean(Pref.EXPERIMENTAL_ENABLE_KEYBASE, enableKeybase); - editor.commit(); - } - public boolean getExperimentalEnableKeybase() { return mSharedPreferences.getBoolean(Pref.EXPERIMENTAL_ENABLE_KEYBASE, false); } -- cgit v1.2.3