diff options
| author | Nauval Rizky <enuma.alrizky@gmail.com> | 2021-11-13 15:24:52 +0700 |
|---|---|---|
| committer | nebrassy <nebras30@gmail.com> | 2022-06-12 16:30:59 +0200 |
| commit | 3a8a5892481bae0a307fc8fec75c9eb0bfda6b48 (patch) | |
| tree | 99dfaace1d2790db905cac51ac21b12666a0071f | |
| parent | 8b8b2b7584e0f76a7b15e52b53deddb016c6add6 (diff) | |
vayu: parts: HBM and CABC UI Improvements
- Use SwitchPreference for the HBM, which make sense and simpler to use.
- Improve consistency of HBM and CABC's strings
Signed-off-by: Nauval Rizky <enuma.alrizky@gmail.com>
Change-Id: I8dd59b71d5c98f28c7f48c173ee290a0411823f2
| -rw-r--r-- | parts/AndroidManifest.xml | 2 | ||||
| -rw-r--r-- | parts/res/values/arrays.xml | 16 | ||||
| -rw-r--r-- | parts/res/values/strings.xml | 12 | ||||
| -rw-r--r-- | parts/res/xml/lcd_features_settings.xml | 11 | ||||
| -rw-r--r-- | parts/src/org/lineageos/settings/display/HbmTileService.java | 30 | ||||
| -rw-r--r-- | parts/src/org/lineageos/settings/display/LcdFeaturesPreferenceFragment.java | 22 |
6 files changed, 43 insertions, 50 deletions
diff --git a/parts/AndroidManifest.xml b/parts/AndroidManifest.xml index 3ee9cc7..5de0b3a 100644 --- a/parts/AndroidManifest.xml +++ b/parts/AndroidManifest.xml @@ -151,7 +151,7 @@ <service android:name=".display.CabcTileService" android:icon="@drawable/ic_cabc" - android:label="@string/lcd_cabc_title" + android:label="@string/lcd_cabc_tile_title" android:permission="android.permission.BIND_QUICK_SETTINGS_TILE"> <intent-filter> <action android:name="android.service.quicksettings.action.QS_TILE"/> diff --git a/parts/res/values/arrays.xml b/parts/res/values/arrays.xml index b822480..45f3b12 100644 --- a/parts/res/values/arrays.xml +++ b/parts/res/values/arrays.xml @@ -95,26 +95,14 @@ <item>"0,4,2,0,-2,-2,4"</item> <item>"2,0,0,-2,-4,0,0"</item> </string-array> - - <string-array name="lcd_hbm_modes" translatable="false"> - <item>"Off"</item> - <item>"Medium"</item> - <item>"High"</item> - </string-array> - - <string-array name="lcd_hbm_values" translatable="false"> - <item>"0"</item> - <item>"1"</item> - <item>"2"</item> - </string-array> - + <string-array name="lcd_cabc_modes" translatable="false"> <item>"Off"</item> <item>"Low (UI)"</item> <item>"Medium (Videos)"</item> <item>"High (Images)"</item> </string-array> - + <string-array name="lcd_cabc_values" translatable="false"> <item>"0"</item> <item>"1"</item> diff --git a/parts/res/values/strings.xml b/parts/res/values/strings.xml index 4306fa9..60e62da 100644 --- a/parts/res/values/strings.xml +++ b/parts/res/values/strings.xml @@ -18,6 +18,9 @@ <!-- App Name --> <string name="deviceparts_label" translatable="false">Device Parts</string> + <string name="enabled">Enabled</string> + <string name="disabled">Disabled</string> + <!-- Ambient Display --> <string name="ambient_enable">Use Ambient Display</string> @@ -100,11 +103,12 @@ <!-- LCD Features --> <string name="lcd_features_title">Additional Display Features</string> - <string name="lcd_features_summary">High Brightness Mode, CABC</string> - <string name="lcd_hbm_title">High Brightness Mode (HBM)</string> + <string name="lcd_features_summary">High Brightness Mode (HBM) & Content Adaptive Backlight Control (CABC)</string> + <string name="lcd_hbm_title">High Brightness Mode</string> <string name="lcd_hbm_tile_title">HBM</string> - <string name="lcd_cabc_title">CABC Mode</string> - <string name="lcd_features_info">High Brightness Mode (HBM) increases the maximum brightness of the display to improve visibility under sunlight. Increases power consumption.\n\nCABC (Content Adaptive Backlight Control) adjusts display and backlight brightness based on currently shown content, to reduce power consumption without degradation.</string> + <string name="lcd_cabc_title">Content Adaptive Backlight Control</string> + <string name="lcd_cabc_tile_title">CABC</string> + <string name="lcd_features_info">High Brightness Mode (HBM) increases the maximum brightness of the display to improve visibility under sunlight. Increases power consumption.\n\nContent Adaptive Backlight Control (CABC) adjusts display and backlight brightness based on currently shown content, to reduce power consumption without degradation.</string> <string name="kernel_not_supported">Kernel did not support this feature</string> <!-- KCAL --> diff --git a/parts/res/xml/lcd_features_settings.xml b/parts/res/xml/lcd_features_settings.xml index db28848..80ae9fe 100644 --- a/parts/res/xml/lcd_features_settings.xml +++ b/parts/res/xml/lcd_features_settings.xml @@ -18,15 +18,12 @@ xmlns:android="http://schemas.android.com/apk/res/android" android:title="@string/lcd_features_title" > - <ListPreference - android:key="lcd_hbm_pref" - android:title="@string/lcd_hbm_title" - android:entries="@array/lcd_hbm_modes" - android:entryValues="@array/lcd_hbm_values" - android:defaultValue="0" /> + <SwitchPreference + android:key="hbm_pref" + android:title="@string/lcd_hbm_title" /> <ListPreference - android:key="lcd_cabc_pref" + android:key="cabc_pref" android:title="@string/lcd_cabc_title" android:entries="@array/lcd_cabc_modes" android:entryValues="@array/lcd_cabc_values" diff --git a/parts/src/org/lineageos/settings/display/HbmTileService.java b/parts/src/org/lineageos/settings/display/HbmTileService.java index 3f818f4..126e63a 100644 --- a/parts/src/org/lineageos/settings/display/HbmTileService.java +++ b/parts/src/org/lineageos/settings/display/HbmTileService.java @@ -16,6 +16,11 @@ package org.lineageos.settings.display; +import static org.lineageos.settings.display.LcdFeaturesPreferenceFragment.HBM_MODE_OFF; +import static org.lineageos.settings.display.LcdFeaturesPreferenceFragment.HBM_MODE_ON; +import static org.lineageos.settings.display.LcdFeaturesPreferenceFragment.HBM_NODE; +import static org.lineageos.settings.display.LcdFeaturesPreferenceFragment.HBM_PROP; + import android.content.Context; import android.os.SystemProperties; import android.service.quicksettings.Tile; @@ -29,26 +34,25 @@ public class HbmTileService extends TileService { private Context context; private Tile tile; - private String[] HbmModes; - private String[] HbmValues; private int currentHbmMode; @Override public void onCreate() { super.onCreate(); context = getApplicationContext(); - HbmModes = context.getResources().getStringArray(R.array.lcd_hbm_modes); - HbmValues = context.getResources().getStringArray(R.array.lcd_hbm_values); } private void updateCurrentHbmMode() { - currentHbmMode = SystemProperties.getInt(LcdFeaturesPreferenceFragment.HBM_PROP, 0); + currentHbmMode = SystemProperties.getInt(HBM_PROP, HBM_MODE_OFF); } private void updateHbmTile() { - tile.setState(currentHbmMode > 0 ? Tile.STATE_ACTIVE : Tile.STATE_INACTIVE); - tile.setContentDescription(HbmModes[currentHbmMode]); - tile.setSubtitle(HbmModes[currentHbmMode]); + String enabled = context.getResources().getString(R.string.enabled); + String disabled = context.getResources().getString(R.string.disabled); + + tile.setState(currentHbmMode != 0 ? Tile.STATE_ACTIVE : Tile.STATE_INACTIVE); + tile.setContentDescription(currentHbmMode != 0 ? enabled : disabled); + tile.setSubtitle(currentHbmMode != 0 ? enabled : disabled); tile.updateTile(); } @@ -56,7 +60,7 @@ public class HbmTileService extends TileService { public void onStartListening() { super.onStartListening(); tile = getQsTile(); - if (!FileUtils.fileExists(LcdFeaturesPreferenceFragment.HBM_NODE)) { + if (!FileUtils.fileExists(HBM_NODE)) { tile.setState(Tile.STATE_UNAVAILABLE); tile.setSubtitle(getResources().getString(R.string.kernel_not_supported)); tile.updateTile(); @@ -70,12 +74,8 @@ public class HbmTileService extends TileService { public void onClick() { super.onClick(); updateCurrentHbmMode(); - if (currentHbmMode == HbmModes.length - 1) { - currentHbmMode = 0; - } else { - currentHbmMode++; - } - SystemProperties.set(LcdFeaturesPreferenceFragment.HBM_PROP, Integer.toString(currentHbmMode)); + currentHbmMode = currentHbmMode != HBM_MODE_ON ? HBM_MODE_ON : HBM_MODE_OFF; + SystemProperties.set(HBM_PROP, Integer.toString(currentHbmMode)); updateHbmTile(); } } diff --git a/parts/src/org/lineageos/settings/display/LcdFeaturesPreferenceFragment.java b/parts/src/org/lineageos/settings/display/LcdFeaturesPreferenceFragment.java index 5684eed..ee91144 100644 --- a/parts/src/org/lineageos/settings/display/LcdFeaturesPreferenceFragment.java +++ b/parts/src/org/lineageos/settings/display/LcdFeaturesPreferenceFragment.java @@ -23,6 +23,7 @@ import android.os.SystemProperties; import androidx.preference.ListPreference; import androidx.preference.Preference; import androidx.preference.PreferenceFragment; +import androidx.preference.SwitchPreference; import org.lineageos.settings.R; import org.lineageos.settings.utils.FileUtils; @@ -36,10 +37,13 @@ public class LcdFeaturesPreferenceFragment extends PreferenceFragment public static final String HBM_PROP = "persist.deviceparts.lcd.hbm"; public static final String CABC_PROP = "persist.deviceparts.lcd.cabc"; - private static final String KEY_HBM = "lcd_hbm_pref"; - private static final String KEY_CABC = "lcd_cabc_pref"; + private static final String KEY_HBM = "hbm_pref"; + private static final String KEY_CABC = "cabc_pref"; - private ListPreference mHbmPref; + public static final int HBM_MODE_OFF = 0; + public static final int HBM_MODE_ON = 2; + + private SwitchPreference mHbmPref; private ListPreference mCabcPref; @Override @@ -51,7 +55,7 @@ public class LcdFeaturesPreferenceFragment extends PreferenceFragment @Override public void onCreatePreferences(Bundle savedInstanceState, String rootKey) { addPreferencesFromResource(R.xml.lcd_features_settings); - mHbmPref = (ListPreference) findPreference(KEY_HBM); + mHbmPref = (SwitchPreference) findPreference(KEY_HBM); mHbmPref.setOnPreferenceChangeListener(this); mCabcPref = (ListPreference) findPreference(KEY_CABC); mCabcPref.setOnPreferenceChangeListener(this); @@ -61,8 +65,7 @@ public class LcdFeaturesPreferenceFragment extends PreferenceFragment @Override public void onResume() { super.onResume(); - mHbmPref.setValue(SystemProperties.get(HBM_PROP, "0")); - mHbmPref.setSummary(mHbmPref.getEntry()); + mHbmPref.setChecked(SystemProperties.get(HBM_PROP, "0") != "0"); mCabcPref.setValue(SystemProperties.get(CABC_PROP, "0")); mCabcPref.setSummary(mCabcPref.getEntry()); validateKernelSupport(); @@ -73,9 +76,10 @@ public class LcdFeaturesPreferenceFragment extends PreferenceFragment final String key = preference.getKey(); if (key.equals(KEY_HBM)) { - mHbmPref.setValue((String) newValue); - mHbmPref.setSummary(mHbmPref.getEntry()); - SystemProperties.set(HBM_PROP, (String) newValue); + boolean isHbmEnabled = (Boolean) newValue; + mHbmPref.setChecked(isHbmEnabled); + SystemProperties.set(HBM_PROP, + String.valueOf(isHbmEnabled ? HBM_MODE_ON : HBM_MODE_OFF)); } else if (key.equals(KEY_CABC)) { mCabcPref.setValue((String) newValue); mCabcPref.setSummary(mCabcPref.getEntry()); |
