summaryrefslogtreecommitdiffstats
path: root/src/com/android/launcher3/config/FlagTogglerPrefUi.java
diff options
context:
space:
mode:
authorTony <twickham@google.com>2018-11-04 11:39:08 -0500
committerTony Wickham <twickham@google.com>2018-11-09 15:27:24 -0800
commit94c5b83a7eb6345d6e844dfc0729b4015c09ad86 (patch)
tree8a310a7601ec4cdcdd838b912e2264aff5dad4a7 /src/com/android/launcher3/config/FlagTogglerPrefUi.java
parent7b3c12f90e379974c195fe7f5c109c7c5d5a0e3c (diff)
downloadandroid_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.java33
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();