From a895121e29cf32274e0c02ef1065308f25f5f8db Mon Sep 17 00:00:00 2001 From: spezi77 Date: Tue, 14 Jan 2020 09:10:30 +0000 Subject: [PATCH] Cherish: Add battery styles and customizations for Android 10 [2/2] Allows the user to tune: - battery styles - battery percentage - battery charging text --- res/values/cherish_arrays.xml | 17 +++++++- res/values/cherish_strings.xml | 9 +++++ res/xml/cherish_settings_quicksettings.xml | 7 ++++ res/xml/cherish_settings_statusbar.xml | 18 ++++++--- .../settings/fragments/StatusBarSettings.java | 40 ++++++++----------- 5 files changed, 61 insertions(+), 30 deletions(-) diff --git a/res/values/cherish_arrays.xml b/res/values/cherish_arrays.xml index ff2ad29..a836446 100644 --- a/res/values/cherish_arrays.xml +++ b/res/values/cherish_arrays.xml @@ -169,8 +169,8 @@ @string/status_bar_battery_percentage_default - @string/status_bar_battery_percentage_text_next @string/status_bar_battery_percentage_text_inside + @string/status_bar_battery_percentage_text_next @@ -195,4 +195,19 @@ 4 + + + @string/battery_percentage_off + @string/battery_percentage_next + @string/battery_percentage_inside + @string/battery_percentage_estimate + + + + 0 + 1 + 2 + 3 + + diff --git a/res/values/cherish_strings.xml b/res/values/cherish_strings.xml index c643d28..279249b 100644 --- a/res/values/cherish_strings.xml +++ b/res/values/cherish_strings.xml @@ -173,5 +173,14 @@ Hidden (default) Inside the icon Next to the icon + Battery percentage when charging + Always display battery percentage when charging + + + Battery percentage + Disabled + Enabled + Enabled (inside icon) + Enabled (estimate) diff --git a/res/xml/cherish_settings_quicksettings.xml b/res/xml/cherish_settings_quicksettings.xml index a60b4de..7dd01e6 100644 --- a/res/xml/cherish_settings_quicksettings.xml +++ b/res/xml/cherish_settings_quicksettings.xml @@ -96,4 +96,11 @@ + + diff --git a/res/xml/cherish_settings_statusbar.xml b/res/xml/cherish_settings_statusbar.xml index 740434c..6de9dc6 100644 --- a/res/xml/cherish_settings_statusbar.xml +++ b/res/xml/cherish_settings_statusbar.xml @@ -37,20 +37,28 @@ android:key="battery_style_category" android:title="@string/battery_style_category_title" > - + android:entryValues="@array/status_bar_battery_style_values" + android:defaultValue="0" /> - + android:entryValues="@array/battery_percent_values" + android:defaultValue="0" /> + + diff --git a/src/com/cherish/settings/fragments/StatusBarSettings.java b/src/com/cherish/settings/fragments/StatusBarSettings.java index 8a4ebd9..f36f244 100644 --- a/src/com/cherish/settings/fragments/StatusBarSettings.java +++ b/src/com/cherish/settings/fragments/StatusBarSettings.java @@ -39,10 +39,9 @@ import java.util.Collections; public class StatusBarSettings extends SettingsPreferenceFragment implements OnPreferenceChangeListener { - - private static final String STATUS_BAR_CLOCK = "status_bar_clock"; - private static final String SHOW_BATTERY_PERCENT = "show_battery_percent"; - private static final String KEY_BATTERY_PERCENTAGE = "battery_percentage"; + 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 BATTERY_PERCENTAGE_HIDDEN = "0"; private static final String STATUS_BAR_BATTERY_STYLE = "status_bar_battery_style"; @@ -55,6 +54,7 @@ public class StatusBarSettings extends SettingsPreferenceFragment implements private SystemSettingMasterSwitchPreference mStatusBarClockShow; private ListPreference mBatteryPercent; private ListPreference mBatteryStyle; + private SwitchPreference mBatteryCharging; @Override public void onCreate(Bundle icicle) { @@ -71,17 +71,12 @@ public class StatusBarSettings extends SettingsPreferenceFragment implements Settings.System.STATUS_BAR_CLOCK, 1) == 1)); mStatusBarClockShow.setOnPreferenceChangeListener(this); - mBatteryPercent = (ListPreference) findPreference(KEY_BATTERY_PERCENTAGE); - int percentstyle = Settings.System.getInt(resolver, - Settings.System.SHOW_BATTERY_PERCENT, 0); - mBatteryPercent.setValue(String.valueOf(percentstyle)); - mBatteryPercent.setSummary(mBatteryPercent.getEntry()); - mBatteryPercent.setOnPreferenceChangeListener(this); + mBatteryPercent = (ListPreference) findPreference(STATUS_BAR_SHOW_BATTERY_PERCENT); + mBatteryCharging = (SwitchPreference) findPreference(STATUS_BAR_BATTERY_TEXT_CHARGING); mBatteryStyle = (ListPreference) findPreference(STATUS_BAR_BATTERY_STYLE); - int batterystyle = Settings.Secure.getIntForUser(resolver, - Settings.Secure.STATUS_BAR_BATTERY_STYLE, BATTERY_STYLE_Q, - UserHandle.USER_CURRENT); + int batterystyle = Settings.System.getInt(resolver, + Settings.System.STATUS_BAR_BATTERY_STYLE, BATTERY_STYLE_Q); mBatteryStyle.setOnPreferenceChangeListener(this); updateBatteryOptions(batterystyle); @@ -94,14 +89,7 @@ public class StatusBarSettings extends SettingsPreferenceFragment implements Settings.System.putInt(getActivity().getContentResolver(), Settings.System.STATUS_BAR_CLOCK, value ? 1 : 0); return true; - } else if (preference == mBatteryPercent) { - int value = Integer.parseInt((String) objValue); - int index = mBatteryPercent.findIndexOfValue((String) objValue); - Settings.System.putInt(getActivity().getContentResolver(), - Settings.System.SHOW_BATTERY_PERCENT, value); - mBatteryPercent.setSummary(mBatteryPercent.getEntries()[index]); - return true; - } else if (preference == mBatteryStyle) { + } else if (preference == mBatteryStyle) { int value = Integer.parseInt((String) objValue); updateBatteryOptions(value); return true; @@ -110,11 +98,15 @@ public class StatusBarSettings extends SettingsPreferenceFragment implements } private void updateBatteryOptions(int batterystyle) { + boolean enabled = batterystyle != BATTERY_STYLE_TEXT && batterystyle != BATTERY_STYLE_HIDDEN; if (batterystyle == BATTERY_STYLE_HIDDEN) { - mBatteryPercent.setValue(BATTERY_PERCENTAGE_HIDDEN); - mBatteryPercent.setSummary(mBatteryPercent.getEntry()); + mBatteryPercent.setValue(BATTERY_PERCENTAGE_HIDDEN); + mBatteryPercent.setSummary(mBatteryPercent.getEntry()); + Settings.System.putInt(getActivity().getContentResolver(), + Settings.System.STATUS_BAR_SHOW_BATTERY_PERCENT, 0); } - mBatteryPercent.setEnabled(batterystyle != BATTERY_STYLE_TEXT && batterystyle != BATTERY_STYLE_HIDDEN); + mBatteryCharging.setEnabled(enabled); + mBatteryPercent.setEnabled(enabled); } @Override