From fad857d2ba801344d881c328e2d4d287d523c477 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?H=C6=B0ng=20Phan?= Date: Tue, 1 Sep 2020 22:07:04 +0700 Subject: [PATCH] Cherish:Toggle for bolt icon when charging [2/2] Make sure the switch is enabled only when relevant --- res/drawable/ic_lighting_bolt.xml | 7 ++++ res/values/cherish_strings.xml | 2 + res/xml/cherish_settings_statusbar.xml | 7 ++++ .../settings/fragments/StatusBarSettings.java | 37 +++++++++++++++++-- 4 files changed, 50 insertions(+), 3 deletions(-) create mode 100644 res/drawable/ic_lighting_bolt.xml diff --git a/res/drawable/ic_lighting_bolt.xml b/res/drawable/ic_lighting_bolt.xml new file mode 100644 index 0000000..40cbea7 --- /dev/null +++ b/res/drawable/ic_lighting_bolt.xml @@ -0,0 +1,7 @@ + + + \ No newline at end of file diff --git a/res/values/cherish_strings.xml b/res/values/cherish_strings.xml index 52a01ce..920793f 100644 --- a/res/values/cherish_strings.xml +++ b/res/values/cherish_strings.xml @@ -214,6 +214,8 @@ Next to the icon Battery percentage when charging Always display battery percentage when charging + Show charging bolt + Show a \u26A1\uFE0E symbol near battery text when charging Battery icon diff --git a/res/xml/cherish_settings_statusbar.xml b/res/xml/cherish_settings_statusbar.xml index be0027c..13915c8 100644 --- a/res/xml/cherish_settings_statusbar.xml +++ b/res/xml/cherish_settings_statusbar.xml @@ -151,6 +151,13 @@ android:title="@string/status_bar_battery_text_charging_title" android:summary="@string/status_bar_battery_text_charging_summary" android:defaultValue="true" /> + + \ No newline at end of file diff --git a/src/com/cherish/settings/fragments/StatusBarSettings.java b/src/com/cherish/settings/fragments/StatusBarSettings.java index 0a33673..0a29bff 100644 --- a/src/com/cherish/settings/fragments/StatusBarSettings.java +++ b/src/com/cherish/settings/fragments/StatusBarSettings.java @@ -42,6 +42,7 @@ public class StatusBarSettings extends SettingsPreferenceFragment implements private static final String STATUS_BAR_CLOCK = "status_bar_clock"; private static final String STATUS_BAR_SHOW_BATTERY_PERCENT = "status_bar_show_battery_percent"; private static final String STATUS_BAR_BATTERY_TEXT_CHARGING = "status_bar_battery_text_charging"; + private static final String STATUS_BAR_BATTERY_CHARGING_BOLT = "status_bar_battery_charging_bolt"; private static final String BATTERY_PERCENTAGE_HIDDEN = "0"; private static final String STATUS_BAR_BATTERY_STYLE = "status_bar_battery_style"; @@ -57,6 +58,7 @@ public class StatusBarSettings extends SettingsPreferenceFragment implements private SwitchPreference mBatteryCharging; private CustomSeekBarPreference mThreshold; private SystemSettingSwitchPreference mNetMonitor; + private SwitchPreference mBatteryBolt; @Override public void onCreate(Bundle icicle) { @@ -75,6 +77,10 @@ public class StatusBarSettings extends SettingsPreferenceFragment implements mBatteryPercent = (ListPreference) findPreference(STATUS_BAR_SHOW_BATTERY_PERCENT); mBatteryCharging = (SwitchPreference) findPreference(STATUS_BAR_BATTERY_TEXT_CHARGING); + mBatteryCharging.setOnPreferenceChangeListener(this); + + mBatteryBolt = (SwitchPreference) findPreference(STATUS_BAR_BATTERY_CHARGING_BOLT); + mBatteryBolt.setOnPreferenceChangeListener(this); mBatteryStyle = (ListPreference) findPreference(STATUS_BAR_BATTERY_STYLE); int batterystyle = Settings.System.getInt(resolver, @@ -122,23 +128,48 @@ public class StatusBarSettings extends SettingsPreferenceFragment implements Settings.System.NETWORK_TRAFFIC_AUTOHIDE_THRESHOLD, val, UserHandle.USER_CURRENT); return true; + } else if (preference == mBatteryCharging) { + boolean enabled = (Boolean) objValue; + Settings.System.putInt(getActivity().getContentResolver(), + Settings.System.STATUS_BAR_BATTERY_TEXT_CHARGING, + enabled ? 1 : 0); + updateBoltEnablement(); + return true; + } else if (preference == mBatteryBolt) { + boolean enabled = (Boolean) objValue; + Settings.System.putInt(getActivity().getContentResolver(), + Settings.System.STATUS_BAR_BATTERY_CHARGING_BOLT, + enabled ? 1 : 0); + return true; } return false; } private void updateBatteryOptions(int batterystyle) { - boolean enabled = batterystyle != BATTERY_STYLE_TEXT && batterystyle != BATTERY_STYLE_HIDDEN; + boolean enabled = batterystyle != BATTERY_STYLE_TEXT && batterystyle != BATTERY_STYLE_HIDDEN; if (batterystyle == BATTERY_STYLE_HIDDEN) { mBatteryPercent.setValue(BATTERY_PERCENTAGE_HIDDEN); mBatteryPercent.setSummary(mBatteryPercent.getEntry()); Settings.System.putInt(getActivity().getContentResolver(), Settings.System.STATUS_BAR_SHOW_BATTERY_PERCENT, 0); } - mBatteryCharging.setEnabled(enabled); - mBatteryPercent.setEnabled(enabled); + mBatteryCharging.setEnabled(enabled); + mBatteryPercent.setEnabled(enabled); + updateBoltEnablement(); } + private void updateBoltEnablement() { + int batteryStyle = Settings.System.getInt(getActivity().getContentResolver(), + Settings.System.STATUS_BAR_BATTERY_STYLE, BATTERY_STYLE_Q); + boolean precentOnCharging = Settings.System.getInt(getActivity().getContentResolver(), + Settings.System.STATUS_BAR_BATTERY_TEXT_CHARGING, 1) == 1; + boolean textEnabled = batteryStyle == BATTERY_STYLE_TEXT || + (batteryStyle == BATTERY_STYLE_HIDDEN && precentOnCharging); + mBatteryBolt.setEnabled(textEnabled); + + } + @Override public int getMetricsCategory() { return MetricsProto.MetricsEvent.CHERISH_SETTINGS;