diff options
author | Tony <twickham@google.com> | 2018-11-04 11:39:08 -0500 |
---|---|---|
committer | Tony Wickham <twickham@google.com> | 2018-11-09 15:27:24 -0800 |
commit | 94c5b83a7eb6345d6e844dfc0729b4015c09ad86 (patch) | |
tree | 8a310a7601ec4cdcdd838b912e2264aff5dad4a7 /src/com/android/launcher3/config/FlagTogglerPrefUi.java | |
parent | 7b3c12f90e379974c195fe7f5c109c7c5d5a0e3c (diff) | |
download | android_packages_apps_Trebuchet-94c5b83a7eb6345d6e844dfc0729b4015c09ad86.tar.gz android_packages_apps_Trebuchet-94c5b83a7eb6345d6e844dfc0729b4015c09ad86.tar.bz2 android_packages_apps_Trebuchet-94c5b83a7eb6345d6e844dfc0729b4015c09ad86.zip |
Add ToggleableGlobalSettingsFlag for QUICK_SWITCH
- ToggleableGlobalSettingsFlag saves/loads from Settings.Global rather than
SharedPrefs, allowing other processes to update the setting as well.
- ToggleableGlobalSettingsFlag#get() reads from storage every time.
- Add the flags' descriptions to the feature flags settings UI.
Change-Id: I9cfc44ddaa5d9e223cf77a9b2475f8d25757d1fb
Diffstat (limited to 'src/com/android/launcher3/config/FlagTogglerPrefUi.java')
-rw-r--r-- | src/com/android/launcher3/config/FlagTogglerPrefUi.java | 33 |
1 files changed, 24 insertions, 9 deletions
diff --git a/src/com/android/launcher3/config/FlagTogglerPrefUi.java b/src/com/android/launcher3/config/FlagTogglerPrefUi.java index d3be51dda..5ecb18650 100644 --- a/src/com/android/launcher3/config/FlagTogglerPrefUi.java +++ b/src/com/android/launcher3/config/FlagTogglerPrefUi.java @@ -19,6 +19,7 @@ package com.android.launcher3.config; import android.content.Context; import android.content.SharedPreferences; import android.os.Process; +import android.text.Html; import android.util.Log; import android.view.Menu; import android.view.MenuItem; @@ -49,19 +50,24 @@ public final class FlagTogglerPrefUi { public void putBoolean(String key, boolean value) { for (TogglableFlag flag : FeatureFlags.getTogglableFlags()) { if (flag.getKey().equals(key)) { - if (value == flag.getDefaultValue()) { - mSharedPreferences.edit().remove(key).apply(); - } else { - mSharedPreferences.edit().putBoolean(key, value).apply(); - } + boolean prevValue = flag.get(); + flag.updateStorage(mContext, value); updateMenu(); + if (flag.get() != prevValue) { + Toast.makeText(mContext, "Flag applied", Toast.LENGTH_SHORT).show(); + } } } } @Override - public boolean getBoolean(String key, boolean defValue) { - return mSharedPreferences.getBoolean(key, defValue); + public boolean getBoolean(String key, boolean defaultValue) { + for (TogglableFlag flag : FeatureFlags.getTogglableFlags()) { + if (flag.getKey().equals(key)) { + return flag.getFromStorage(mContext, defaultValue); + } + } + return defaultValue; } }; @@ -83,14 +89,23 @@ public final class FlagTogglerPrefUi { switchPreference.setDefaultValue(flag.getDefaultValue()); switchPreference.setChecked(getFlagStateFromSharedPrefs(flag)); switchPreference.setTitle(flag.getKey()); - switchPreference.setSummaryOn(flag.getDefaultValue() ? "" : "overridden"); - switchPreference.setSummaryOff(flag.getDefaultValue() ? "overridden" : ""); + updateSummary(switchPreference, flag); switchPreference.setPreferenceDataStore(mDataStore); parent.addPreference(switchPreference); } updateMenu(); } + /** + * Updates the summary to show the description and whether the flag overrides the default value. + */ + private void updateSummary(SwitchPreference switchPreference, TogglableFlag flag) { + String onWarning = flag.getDefaultValue() ? "" : "<b>OVERRIDDEN</b><br>"; + String offWarning = flag.getDefaultValue() ? "<b>OVERRIDDEN</b><br>" : ""; + switchPreference.setSummaryOn(Html.fromHtml(onWarning + flag.getDescription())); + switchPreference.setSummaryOff(Html.fromHtml(offWarning + flag.getDescription())); + } + private void updateMenu() { mFragment.setHasOptionsMenu(anyChanged()); mFragment.getActivity().invalidateOptionsMenu(); |