aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNauval Rizky <enuma.alrizky@gmail.com>2021-11-13 15:24:52 +0700
committernebrassy <nebras30@gmail.com>2022-06-12 16:30:59 +0200
commit3a8a5892481bae0a307fc8fec75c9eb0bfda6b48 (patch)
tree99dfaace1d2790db905cac51ac21b12666a0071f
parent8b8b2b7584e0f76a7b15e52b53deddb016c6add6 (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.xml2
-rw-r--r--parts/res/values/arrays.xml16
-rw-r--r--parts/res/values/strings.xml12
-rw-r--r--parts/res/xml/lcd_features_settings.xml11
-rw-r--r--parts/src/org/lineageos/settings/display/HbmTileService.java30
-rw-r--r--parts/src/org/lineageos/settings/display/LcdFeaturesPreferenceFragment.java22
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) &amp; 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());