From 95df77cef696ea4bc4a0e673b8b551130c58a148 Mon Sep 17 00:00:00 2001 From: str4d Date: Fri, 29 May 2015 06:40:26 +0000 Subject: [PATCH] Split out privacy settings into separate category --- .../config/GeneralPreferenceFragment.java | 29 -------- .../config/PrivacyPreferenceFragment.java | 71 +++++++++++++++++++ .../bote/android/config/SettingsActivity.java | 5 ++ app/src/main/res/xml/settings.xml | 3 + app/src/main/res/xml/settings_general.xml | 35 --------- app/src/main/res/xml/settings_privacy.xml | 38 ++++++++++ 6 files changed, 117 insertions(+), 64 deletions(-) create mode 100644 app/src/main/java/i2p/bote/android/config/PrivacyPreferenceFragment.java create mode 100644 app/src/main/res/xml/settings_privacy.xml diff --git a/app/src/main/java/i2p/bote/android/config/GeneralPreferenceFragment.java b/app/src/main/java/i2p/bote/android/config/GeneralPreferenceFragment.java index 25d2f0b..bc30e57 100644 --- a/app/src/main/java/i2p/bote/android/config/GeneralPreferenceFragment.java +++ b/app/src/main/java/i2p/bote/android/config/GeneralPreferenceFragment.java @@ -2,8 +2,6 @@ package i2p.bote.android.config; import android.content.SharedPreferences; import android.os.Bundle; -import android.preference.ListPreference; -import android.preference.Preference; import android.preference.PreferenceManager; import android.support.v4.preference.PreferenceFragment; @@ -18,7 +16,6 @@ public class GeneralPreferenceFragment extends PreferenceFragment { public void onCreate(Bundle paramBundle) { super.onCreate(paramBundle); addPreferencesFromResource(R.xml.settings_general); - setupGeneralSettings(); } @Override @@ -41,16 +38,6 @@ public class GeneralPreferenceFragment extends PreferenceFragment { config.setMailCheckInterval(prefs.getInt(x, 30)); else if ("deliveryCheckEnabled".equals(x)) config.setDeliveryCheckEnabled(prefs.getBoolean(x, true)); - else if ("hideLocale".equals(x)) - config.setHideLocale(prefs.getBoolean(x, true)); - else if ("includeSentTime".equals(x)) - config.setIncludeSentTime(prefs.getBoolean(x, true)); - else if ("numSendHops".equals(x)) - config.setNumStoreHops(Integer.parseInt(prefs.getString(x, "0"))); - else if ("relayMinDelay".equals(x)) - config.setRelayMinDelay(prefs.getInt(x, 5)); - else if ("relayMaxDelay".equals(x)) - config.setRelayMaxDelay(prefs.getInt(x, 40)); } config.save(); @@ -58,20 +45,4 @@ public class GeneralPreferenceFragment extends PreferenceFragment { // Store the settings in Android super.onPause(); } - - private void setupGeneralSettings() { - ListPreference numSendHops = (ListPreference) findPreference("numSendHops"); - int value = Integer.valueOf(numSendHops.getValue()); - numSendHops.setSummary(getResources().getQuantityString(R.plurals.pref_summ_numHops, - value, value)); - numSendHops.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() { - @Override - public boolean onPreferenceChange(Preference preference, Object newValue) { - int value = Integer.valueOf((String) newValue); - preference.setSummary(getResources().getQuantityString(R.plurals.pref_summ_numHops, - value, value)); - return true; - } - }); - } } diff --git a/app/src/main/java/i2p/bote/android/config/PrivacyPreferenceFragment.java b/app/src/main/java/i2p/bote/android/config/PrivacyPreferenceFragment.java new file mode 100644 index 0000000..22301da --- /dev/null +++ b/app/src/main/java/i2p/bote/android/config/PrivacyPreferenceFragment.java @@ -0,0 +1,71 @@ +package i2p.bote.android.config; + +import android.content.SharedPreferences; +import android.os.Bundle; +import android.preference.ListPreference; +import android.preference.Preference; +import android.preference.PreferenceManager; +import android.support.v4.preference.PreferenceFragment; + +import java.util.Map; + +import i2p.bote.Configuration; +import i2p.bote.I2PBote; +import i2p.bote.android.R; + +public class PrivacyPreferenceFragment extends PreferenceFragment { + @Override + public void onCreate(Bundle paramBundle) { + super.onCreate(paramBundle); + addPreferencesFromResource(R.xml.settings_privacy); + setupPrivacySettings(); + } + + @Override + public void onResume() { + super.onResume(); + //noinspection ConstantConditions + ((SettingsActivity) getActivity()).getSupportActionBar().setTitle(R.string.pref_title_privacy); + } + + @Override + public void onPause() { + Configuration config = I2PBote.getInstance().getConfiguration(); + SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getActivity()); + + Map all = prefs.getAll(); + for (String x : all.keySet()) { + if ("hideLocale".equals(x)) + config.setHideLocale(prefs.getBoolean(x, true)); + else if ("includeSentTime".equals(x)) + config.setIncludeSentTime(prefs.getBoolean(x, true)); + else if ("numSendHops".equals(x)) + config.setNumStoreHops(Integer.parseInt(prefs.getString(x, "0"))); + else if ("relayMinDelay".equals(x)) + config.setRelayMinDelay(prefs.getInt(x, 5)); + else if ("relayMaxDelay".equals(x)) + config.setRelayMaxDelay(prefs.getInt(x, 40)); + } + + config.save(); + + // Store the settings in Android + super.onPause(); + } + + private void setupPrivacySettings() { + ListPreference numSendHops = (ListPreference) findPreference("numSendHops"); + int value = Integer.valueOf(numSendHops.getValue()); + numSendHops.setSummary(getResources().getQuantityString(R.plurals.pref_summ_numHops, + value, value)); + numSendHops.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() { + @Override + public boolean onPreferenceChange(Preference preference, Object newValue) { + int value = Integer.valueOf((String) newValue); + preference.setSummary(getResources().getQuantityString(R.plurals.pref_summ_numHops, + value, value)); + return true; + } + }); + } +} diff --git a/app/src/main/java/i2p/bote/android/config/SettingsActivity.java b/app/src/main/java/i2p/bote/android/config/SettingsActivity.java index 3bae68f..3aa733f 100644 --- a/app/src/main/java/i2p/bote/android/config/SettingsActivity.java +++ b/app/src/main/java/i2p/bote/android/config/SettingsActivity.java @@ -22,6 +22,7 @@ public class SettingsActivity extends BoteActivityBase implements public static final String PREFERENCE_CATEGORY_GENERAL = "preference_category_general"; public static final String PREFERENCE_CATEGORY_CHANGE_PASSWORD = "preference_category_change_password"; public static final String PREFERENCE_CATEGORY_IDENTITIES = "preference_category_identities"; + public static final String PREFERENCE_CATEGORY_PRIVACY = "preference_category_privacy"; public static final String PREFERENCE_CATEGORY_APPEARANCE = "preference_category_appearance"; public static final String PREFERENCE_CATEGORY_ADVANCED = "preference_category_advanced"; @@ -93,6 +94,8 @@ public class SettingsActivity extends BoteActivityBase implements .setOnPreferenceClickListener(new CategoryClickListener(PREFERENCE_CATEGORY_CHANGE_PASSWORD)); findPreference(PREFERENCE_CATEGORY_IDENTITIES) .setOnPreferenceClickListener(new CategoryClickListener(PREFERENCE_CATEGORY_IDENTITIES)); + findPreference(PREFERENCE_CATEGORY_PRIVACY) + .setOnPreferenceClickListener(new CategoryClickListener(PREFERENCE_CATEGORY_PRIVACY)); findPreference(PREFERENCE_CATEGORY_APPEARANCE) .setOnPreferenceClickListener(new CategoryClickListener(PREFERENCE_CATEGORY_APPEARANCE)); findPreference(PREFERENCE_CATEGORY_ADVANCED) @@ -143,6 +146,8 @@ public class SettingsActivity extends BoteActivityBase implements switch (category) { case PREFERENCE_CATEGORY_GENERAL: return new GeneralPreferenceFragment(); + case PREFERENCE_CATEGORY_PRIVACY: + return new PrivacyPreferenceFragment(); case PREFERENCE_CATEGORY_APPEARANCE: return new AppearancePreferenceFragment(); case PREFERENCE_CATEGORY_ADVANCED: diff --git a/app/src/main/res/xml/settings.xml b/app/src/main/res/xml/settings.xml index ee75cce..5ad9be6 100644 --- a/app/src/main/res/xml/settings.xml +++ b/app/src/main/res/xml/settings.xml @@ -9,6 +9,9 @@ + diff --git a/app/src/main/res/xml/settings_general.xml b/app/src/main/res/xml/settings_general.xml index 5b5c151..38ff2da 100644 --- a/app/src/main/res/xml/settings_general.xml +++ b/app/src/main/res/xml/settings_general.xml @@ -19,39 +19,4 @@ android:summary="@string/pref_summ_delivery" android:title="@string/pref_title_delivery" /> - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/xml/settings_privacy.xml b/app/src/main/res/xml/settings_privacy.xml new file mode 100644 index 0000000..d3d963c --- /dev/null +++ b/app/src/main/res/xml/settings_privacy.xml @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + \ No newline at end of file