Experimental feature setting
This commit is contained in:
parent
f92e5f663f
commit
ec7a3a7047
|
@ -108,6 +108,8 @@ public final class Constants {
|
|||
// keyserver sync settings
|
||||
public static final String SYNC_CONTACTS = "syncContacts";
|
||||
public static final String SYNC_KEYSERVER = "syncKeyserver";
|
||||
// other settings
|
||||
public static final String ENABLE_EXPERIMENTAL_FEATURES = "enableExperimentalFeatures";
|
||||
|
||||
public static final class Theme {
|
||||
public static final String LIGHT = "light";
|
||||
|
|
|
@ -32,6 +32,7 @@ import android.preference.Preference;
|
|||
import android.preference.PreferenceActivity;
|
||||
import android.preference.PreferenceFragment;
|
||||
import android.preference.PreferenceScreen;
|
||||
import android.preference.SwitchPreference;
|
||||
import android.provider.ContactsContract;
|
||||
import android.support.v7.widget.Toolbar;
|
||||
import android.text.TextUtils;
|
||||
|
@ -100,7 +101,7 @@ public class SettingsActivity extends AppCompatPreferenceActivity {
|
|||
);
|
||||
|
||||
} else if (action != null && action.equals(ACTION_PREFS_ADV)) {
|
||||
addPreferencesFromResource(R.xml.adv_preferences);
|
||||
addPreferencesFromResource(R.xml.passphrase_preferences);
|
||||
|
||||
initializePassphraseCacheSubs(
|
||||
(CheckBoxPreference) findPreference(Constants.Pref.PASSPHRASE_CACHE_SUBS));
|
||||
|
@ -221,14 +222,14 @@ public class SettingsActivity extends AppCompatPreferenceActivity {
|
|||
/**
|
||||
* This fragment shows the PIN/password preferences
|
||||
*/
|
||||
public static class AdvancedPrefsFragment extends PreferenceFragment {
|
||||
public static class PassphrasePrefsFragment extends PreferenceFragment {
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
|
||||
// Load the preferences from an XML resource
|
||||
addPreferencesFromResource(R.xml.adv_preferences);
|
||||
addPreferencesFromResource(R.xml.passphrase_preferences);
|
||||
|
||||
initializePassphraseCacheSubs(
|
||||
(CheckBoxPreference) findPreference(Constants.Pref.PASSPHRASE_CACHE_SUBS));
|
||||
|
@ -472,7 +473,7 @@ public class SettingsActivity extends AppCompatPreferenceActivity {
|
|||
/**
|
||||
* This fragment shows the keyserver/contacts sync preferences
|
||||
*/
|
||||
public static class SyncSettingsFragment extends PreferenceFragment {
|
||||
public static class SyncPrefsFragment extends PreferenceFragment {
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
|
@ -551,12 +552,30 @@ public class SettingsActivity extends AppCompatPreferenceActivity {
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* This fragment shows other preferences
|
||||
*/
|
||||
public static class OtherPrefsFragment extends PreferenceFragment {
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
|
||||
// Load the preferences from an XML resource
|
||||
addPreferencesFromResource(R.xml.other_preferences);
|
||||
|
||||
initializeEnableExperimentalFeatures(
|
||||
(SwitchPreference) findPreference(Constants.Pref.ENABLE_EXPERIMENTAL_FEATURES));
|
||||
}
|
||||
}
|
||||
|
||||
protected boolean isValidFragment(String fragmentName) {
|
||||
return AdvancedPrefsFragment.class.getName().equals(fragmentName)
|
||||
return PassphrasePrefsFragment.class.getName().equals(fragmentName)
|
||||
|| CloudSearchPrefsFragment.class.getName().equals(fragmentName)
|
||||
|| ProxyPrefsFragment.class.getName().equals(fragmentName)
|
||||
|| GuiPrefsFragment.class.getName().equals(fragmentName)
|
||||
|| SyncSettingsFragment.class.getName().equals(fragmentName)
|
||||
|| SyncPrefsFragment.class.getName().equals(fragmentName)
|
||||
|| OtherPrefsFragment.class.getName().equals(fragmentName)
|
||||
|| super.isValidFragment(fragmentName);
|
||||
}
|
||||
|
||||
|
@ -656,4 +675,15 @@ public class SettingsActivity extends AppCompatPreferenceActivity {
|
|||
}
|
||||
});
|
||||
}
|
||||
|
||||
private static void initializeEnableExperimentalFeatures(final SwitchPreference mEnableExperimentalFeatures) {
|
||||
mEnableExperimentalFeatures.setChecked(sPreferences.getEnableExperimentalFeatures());
|
||||
mEnableExperimentalFeatures.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
|
||||
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
||||
mEnableExperimentalFeatures.setChecked((Boolean) newValue);
|
||||
sPreferences.setEnableExperimentalFeatures((Boolean) newValue);
|
||||
return false;
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
|
@ -335,7 +335,7 @@ public class Preferences {
|
|||
}
|
||||
}
|
||||
|
||||
// proxy preference functions ends here
|
||||
// cloud prefs
|
||||
|
||||
public CloudSearchPrefs getCloudSearchPrefs() {
|
||||
return new CloudSearchPrefs(mSharedPreferences.getBoolean(Pref.SEARCH_KEYSERVER, true),
|
||||
|
@ -360,6 +360,18 @@ public class Preferences {
|
|||
}
|
||||
}
|
||||
|
||||
// other prefs
|
||||
|
||||
public void setEnableExperimentalFeatures(boolean enableExperimentalFeatures) {
|
||||
SharedPreferences.Editor editor = mSharedPreferences.edit();
|
||||
editor.putBoolean(Pref.ENABLE_EXPERIMENTAL_FEATURES, enableExperimentalFeatures);
|
||||
editor.commit();
|
||||
}
|
||||
|
||||
public boolean getEnableExperimentalFeatures() {
|
||||
return mSharedPreferences.getBoolean(Pref.ENABLE_EXPERIMENTAL_FEATURES, false);
|
||||
}
|
||||
|
||||
public void upgradePreferences(Context context) {
|
||||
if (mSharedPreferences.getInt(Constants.Pref.PREF_DEFAULT_VERSION, 0) !=
|
||||
Constants.Defaults.PREF_VERSION) {
|
||||
|
|
|
@ -52,6 +52,7 @@
|
|||
<string name="section_proxy_settings">"Proxy Settings"</string>
|
||||
<string name="section_gui">"Interface"</string>
|
||||
<string name="section_sync_settings">"Sync Settings"</string>
|
||||
<string name="section_other_settings">"Other Settings"</string>
|
||||
<string name="section_certify">"Confirm"</string>
|
||||
<string name="section_actions">"Actions"</string>
|
||||
<string name="section_share_key">"Key"</string>
|
||||
|
@ -185,6 +186,9 @@
|
|||
<!-- label shown in Android settings under the OpenKeychain account -->
|
||||
<string name="keyserver_sync_settings_title">"Automatically update keys"</string>
|
||||
|
||||
<string name="label_other_settings_experimental_title">"Enable experimental features"</string>
|
||||
<string name="label_other_settings_experimental_summary">"Enable experimental features, mostly results of security/UX research. Don't rely on their security!"</string>
|
||||
|
||||
<!-- Proxy Preferences -->
|
||||
<string name="pref_proxy_tor_title">"Enable Tor"</string>
|
||||
<string name="pref_proxy_tor_summary">"Requires Orbot to be installed"</string>
|
||||
|
|
|
@ -6,12 +6,15 @@
|
|||
android:fragment="org.sufficientlysecure.keychain.ui.SettingsActivity$CloudSearchPrefsFragment"
|
||||
android:title="@string/section_cloud_search" />
|
||||
<header
|
||||
android:fragment="org.sufficientlysecure.keychain.ui.SettingsActivity$AdvancedPrefsFragment"
|
||||
android:fragment="org.sufficientlysecure.keychain.ui.SettingsActivity$PassphrasePrefsFragment"
|
||||
android:title="@string/section_passphrase_cache" />
|
||||
<header
|
||||
android:fragment="org.sufficientlysecure.keychain.ui.SettingsActivity$ProxyPrefsFragment"
|
||||
android:title="@string/section_proxy_settings" />
|
||||
<header
|
||||
android:fragment="org.sufficientlysecure.keychain.ui.SettingsActivity$SyncSettingsFragment"
|
||||
android:fragment="org.sufficientlysecure.keychain.ui.SettingsActivity$SyncPrefsFragment"
|
||||
android:title="@string/section_sync_settings" />
|
||||
<header
|
||||
android:fragment="org.sufficientlysecure.keychain.ui.SettingsActivity$OtherPrefsFragment"
|
||||
android:title="@string/section_other_settings" />
|
||||
</preference-headers>
|
||||
|
|
Loading…
Reference in a new issue