Cherish: Add battery styles and customizations for Android 10 [2/2]

Allows the user to tune:
- battery styles
- battery percentage
- battery charging text
This commit is contained in:
spezi77
2020-01-14 09:10:30 +00:00
committed by Hưng Phan
parent 3469e1146b
commit a895121e29
5 changed files with 61 additions and 30 deletions

View File

@@ -169,8 +169,8 @@
<!-- Battery percent --> <!-- Battery percent -->
<string-array name="battery_percent_entries"> <string-array name="battery_percent_entries">
<item>@string/status_bar_battery_percentage_default</item> <item>@string/status_bar_battery_percentage_default</item>
<item>@string/status_bar_battery_percentage_text_next</item>
<item>@string/status_bar_battery_percentage_text_inside</item> <item>@string/status_bar_battery_percentage_text_inside</item>
<item>@string/status_bar_battery_percentage_text_next</item>
</string-array> </string-array>
<string-array name="battery_percent_values" translatable="false"> <string-array name="battery_percent_values" translatable="false">
@@ -195,4 +195,19 @@
<item>4</item> <item>4</item>
</string-array> </string-array>
<!-- Battery mode -->
<string-array name="qs_battery_mode_entries">
<item>@string/battery_percentage_off</item>
<item>@string/battery_percentage_next</item>
<item>@string/battery_percentage_inside</item>
<item>@string/battery_percentage_estimate</item>
</string-array>
<string-array name="qs_battery_mode_values" translatable="false">
<item>0</item>
<item>1</item>
<item>2</item>
<item>3</item>
</string-array>
</resources> </resources>

View File

@@ -173,5 +173,14 @@
<string name="status_bar_battery_percentage_default">Hidden (default)</string> <string name="status_bar_battery_percentage_default">Hidden (default)</string>
<string name="status_bar_battery_percentage_text_inside">Inside the icon</string> <string name="status_bar_battery_percentage_text_inside">Inside the icon</string>
<string name="status_bar_battery_percentage_text_next">Next to the icon</string> <string name="status_bar_battery_percentage_text_next">Next to the icon</string>
<string name="status_bar_battery_text_charging_title">Battery percentage when charging</string>
<string name="status_bar_battery_text_charging_summary">Always display battery percentage when charging</string>
<!-- Battery mode -->
<string name="battery_percentage_title">Battery percentage</string>
<string name="battery_percentage_off">Disabled</string>
<string name="battery_percentage_next">Enabled</string>
<string name="battery_percentage_inside">Enabled (inside icon)</string>
<string name="battery_percentage_estimate">Enabled (estimate)</string>
</resources> </resources>

View File

@@ -96,4 +96,11 @@
</PreferenceCategory> </PreferenceCategory>
<com.cherish.settings.preferences.SystemSettingListPreference
android:key="qs_battery_mode"
android:title="@string/battery_percentage_title"
android:entries="@array/qs_battery_mode_entries"
android:entryValues="@array/qs_battery_mode_values"
android:defaultValue="1" />
</PreferenceScreen> </PreferenceScreen>

View File

@@ -37,20 +37,28 @@
android:key="battery_style_category" android:key="battery_style_category"
android:title="@string/battery_style_category_title" > android:title="@string/battery_style_category_title" >
<com.cherish.settings.preferences.SecureSettingListPreference <com.cherish.settings.preferences.SystemSettingListPreference
android:key="status_bar_battery_style" android:key="status_bar_battery_style"
android:title="@string/status_bar_battery_style_title" android:title="@string/status_bar_battery_style_title"
android:summary="%s" android:summary="%s"
android:dialogTitle="@string/status_bar_battery_style_title" android:dialogTitle="@string/status_bar_battery_style_title"
android:entries="@array/status_bar_battery_style_entries" android:entries="@array/status_bar_battery_style_entries"
android:entryValues="@array/status_bar_battery_style_values" /> android:entryValues="@array/status_bar_battery_style_values"
android:defaultValue="0" />
<ListPreference <com.cherish.settings.preferences.SystemSettingListPreference
android:key="battery_percentage" android:key="status_bar_show_battery_percent"
android:title="@string/battery_percent_title" android:title="@string/battery_percent_title"
android:dialogTitle="@string/battery_percent_title" android:dialogTitle="@string/battery_percent_title"
android:entries="@array/battery_percent_entries" android:entries="@array/battery_percent_entries"
android:entryValues="@array/battery_percent_values" /> android:entryValues="@array/battery_percent_values"
android:defaultValue="0" />
<com.cherish.settings.preferences.SystemSettingSwitchPreference
android:key="status_bar_battery_text_charging"
android:title="@string/status_bar_battery_text_charging_title"
android:summary="@string/status_bar_battery_text_charging_summary"
android:defaultValue="true" />
</PreferenceCategory> </PreferenceCategory>

View File

@@ -39,10 +39,9 @@ import java.util.Collections;
public class StatusBarSettings extends SettingsPreferenceFragment implements public class StatusBarSettings extends SettingsPreferenceFragment implements
OnPreferenceChangeListener { OnPreferenceChangeListener {
private static final String STATUS_BAR_CLOCK = "status_bar_clock";
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 SHOW_BATTERY_PERCENT = "show_battery_percent"; private static final String STATUS_BAR_BATTERY_TEXT_CHARGING = "status_bar_battery_text_charging";
private static final String KEY_BATTERY_PERCENTAGE = "battery_percentage";
private static final String BATTERY_PERCENTAGE_HIDDEN = "0"; private static final String BATTERY_PERCENTAGE_HIDDEN = "0";
private static final String STATUS_BAR_BATTERY_STYLE = "status_bar_battery_style"; 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 SystemSettingMasterSwitchPreference mStatusBarClockShow;
private ListPreference mBatteryPercent; private ListPreference mBatteryPercent;
private ListPreference mBatteryStyle; private ListPreference mBatteryStyle;
private SwitchPreference mBatteryCharging;
@Override @Override
public void onCreate(Bundle icicle) { public void onCreate(Bundle icicle) {
@@ -71,17 +71,12 @@ public class StatusBarSettings extends SettingsPreferenceFragment implements
Settings.System.STATUS_BAR_CLOCK, 1) == 1)); Settings.System.STATUS_BAR_CLOCK, 1) == 1));
mStatusBarClockShow.setOnPreferenceChangeListener(this); mStatusBarClockShow.setOnPreferenceChangeListener(this);
mBatteryPercent = (ListPreference) findPreference(KEY_BATTERY_PERCENTAGE); mBatteryPercent = (ListPreference) findPreference(STATUS_BAR_SHOW_BATTERY_PERCENT);
int percentstyle = Settings.System.getInt(resolver, mBatteryCharging = (SwitchPreference) findPreference(STATUS_BAR_BATTERY_TEXT_CHARGING);
Settings.System.SHOW_BATTERY_PERCENT, 0);
mBatteryPercent.setValue(String.valueOf(percentstyle));
mBatteryPercent.setSummary(mBatteryPercent.getEntry());
mBatteryPercent.setOnPreferenceChangeListener(this);
mBatteryStyle = (ListPreference) findPreference(STATUS_BAR_BATTERY_STYLE); mBatteryStyle = (ListPreference) findPreference(STATUS_BAR_BATTERY_STYLE);
int batterystyle = Settings.Secure.getIntForUser(resolver, int batterystyle = Settings.System.getInt(resolver,
Settings.Secure.STATUS_BAR_BATTERY_STYLE, BATTERY_STYLE_Q, Settings.System.STATUS_BAR_BATTERY_STYLE, BATTERY_STYLE_Q);
UserHandle.USER_CURRENT);
mBatteryStyle.setOnPreferenceChangeListener(this); mBatteryStyle.setOnPreferenceChangeListener(this);
updateBatteryOptions(batterystyle); updateBatteryOptions(batterystyle);
@@ -94,14 +89,7 @@ public class StatusBarSettings extends SettingsPreferenceFragment implements
Settings.System.putInt(getActivity().getContentResolver(), Settings.System.putInt(getActivity().getContentResolver(),
Settings.System.STATUS_BAR_CLOCK, value ? 1 : 0); Settings.System.STATUS_BAR_CLOCK, value ? 1 : 0);
return true; return true;
} else if (preference == mBatteryPercent) { } else if (preference == mBatteryStyle) {
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) {
int value = Integer.parseInt((String) objValue); int value = Integer.parseInt((String) objValue);
updateBatteryOptions(value); updateBatteryOptions(value);
return true; return true;
@@ -110,11 +98,15 @@ public class StatusBarSettings extends SettingsPreferenceFragment implements
} }
private void updateBatteryOptions(int batterystyle) { private void updateBatteryOptions(int batterystyle) {
boolean enabled = batterystyle != BATTERY_STYLE_TEXT && batterystyle != BATTERY_STYLE_HIDDEN;
if (batterystyle == BATTERY_STYLE_HIDDEN) { if (batterystyle == BATTERY_STYLE_HIDDEN) {
mBatteryPercent.setValue(BATTERY_PERCENTAGE_HIDDEN); mBatteryPercent.setValue(BATTERY_PERCENTAGE_HIDDEN);
mBatteryPercent.setSummary(mBatteryPercent.getEntry()); 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 @Override