summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArian <arian.kulmer@web.de>2020-07-29 16:05:53 +0200
committerƁukasz Patron <priv.luk@gmail.com>2021-04-09 10:09:31 +0200
commitbbb25f09096393e9df39c6938b5687789f54b511 (patch)
tree8ded138f46b261ac1c285d37f89eeb1ab7144280
parentb10584b8901e01c2439484abbcfd6e1782bf4fed (diff)
Add a toggle for anti flicker mode in LiveDisplay settings
Change-Id: I4a80af3888c578652bf5e264a62e333cc2162305
-rw-r--r--res/values/strings.xml2
-rw-r--r--res/xml/livedisplay.xml7
-rw-r--r--src/org/lineageos/lineageparts/livedisplay/LiveDisplaySettings.java15
3 files changed, 23 insertions, 1 deletions
diff --git a/res/values/strings.xml b/res/values/strings.xml
index eb0d487..021f6ec 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -122,6 +122,8 @@
<string name="live_display_night">Night</string>
<string name="live_display_outdoor_mode_title">Automatic outdoor mode</string>
<string name="live_display_outdoor_mode_summary">Increase brightness and saturation automatically under bright sunlight</string>
+ <string name="live_display_anti_flicker_title">Anti flicker</string>
+ <string name="live_display_anti_flicker_summary">Prevent extensive flickering and reduce eye strain in low light conditions. It might degrade color accuracy and affect the way some items are displayed.</string>
<string name="live_display_low_power_title">Reduce power consumption</string>
<string name="live_display_low_power_summary">Adjust display for lowest power consumption without degradation</string>
<string name="live_display_enhance_color_title">Enhance colors</string>
diff --git a/res/xml/livedisplay.xml b/res/xml/livedisplay.xml
index 15eb1c5..c993fe9 100644
--- a/res/xml/livedisplay.xml
+++ b/res/xml/livedisplay.xml
@@ -44,6 +44,13 @@
android:summary="@string/live_display_outdoor_mode_summary"
android:defaultValue="@*lineageos.platform:bool/config_defaultAutoOutdoorMode" />
+ <!-- Anti flicker mode / DC dimming -->
+ <lineageos.preference.LineageSystemSettingSwitchPreference
+ android:key="display_anti_flicker"
+ android:title="@string/live_display_anti_flicker_title"
+ android:summary="@string/live_display_anti_flicker_summary"
+ android:defaultValue="false" />
+
<!-- Reading mode -->
<lineageos.preference.LineageSystemSettingSwitchPreference
android:key="display_reading_mode"
diff --git a/src/org/lineageos/lineageparts/livedisplay/LiveDisplaySettings.java b/src/org/lineageos/lineageparts/livedisplay/LiveDisplaySettings.java
index 879bd9a..22cd502 100644
--- a/src/org/lineageos/lineageparts/livedisplay/LiveDisplaySettings.java
+++ b/src/org/lineageos/lineageparts/livedisplay/LiveDisplaySettings.java
@@ -1,6 +1,6 @@
/*
* Copyright (C) 2015 The CyanogenMod Project
- * 2017-2020 The LineageOS Project
+ * 2017-2021 The LineageOS Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -52,6 +52,7 @@ import lineageos.hardware.LiveDisplayManager;
import lineageos.preference.SettingsHelper;
import lineageos.providers.LineageSettings;
+import static lineageos.hardware.LiveDisplayManager.FEATURE_ANTI_FLICKER;
import static lineageos.hardware.LiveDisplayManager.FEATURE_CABC;
import static lineageos.hardware.LiveDisplayManager.FEATURE_COLOR_ADJUSTMENT;
import static lineageos.hardware.LiveDisplayManager.FEATURE_COLOR_ENHANCEMENT;
@@ -74,6 +75,7 @@ public class LiveDisplaySettings extends SettingsPreferenceFragment implements S
private static final String KEY_CATEGORY_ADVANCED = "advanced";
private static final String KEY_LIVE_DISPLAY = "live_display";
+ private static final String KEY_LIVE_DISPLAY_ANTI_FLICKER = "display_anti_flicker";
private static final String KEY_LIVE_DISPLAY_AUTO_OUTDOOR_MODE =
"display_auto_outdoor_mode";
private static final String KEY_LIVE_DISPLAY_READING_ENHANCEMENT = "display_reading_mode";
@@ -101,6 +103,7 @@ public class LiveDisplaySettings extends SettingsPreferenceFragment implements S
private ListPreference mLiveDisplay;
+ private SwitchPreference mAntiFlicker;
private SwitchPreference mColorEnhancement;
private SwitchPreference mLowPower;
private SwitchPreference mOutdoorMode;
@@ -257,6 +260,13 @@ public class LiveDisplaySettings extends SettingsPreferenceFragment implements S
advancedPrefs.removePreference(mDisplayColor);
mDisplayColor = null;
}
+
+ mAntiFlicker = findPreference(KEY_LIVE_DISPLAY_ANTI_FLICKER);
+ if (liveDisplayPrefs != null && mAntiFlicker != null &&
+ !mHardware.isSupported(LineageHardwareManager.FEATURE_ANTI_FLICKER)) {
+ liveDisplayPrefs.removePreference(mAntiFlicker);
+ mAntiFlicker = null;
+ }
}
@Override
@@ -444,6 +454,9 @@ public class LiveDisplaySettings extends SettingsPreferenceFragment implements S
result.add(KEY_LIVE_DISPLAY_TEMPERATURE);
result.add(KEY_LIVE_DISPLAY);
}
+ if (!config.hasFeature(FEATURE_ANTI_FLICKER)) {
+ result.add(KEY_LIVE_DISPLAY_ANTI_FLICKER);
+ }
return result;
}