diff options
author | Arian <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 |
commit | bbb25f09096393e9df39c6938b5687789f54b511 (patch) | |
tree | 8ded138f46b261ac1c285d37f89eeb1ab7144280 | |
parent | b10584b8901e01c2439484abbcfd6e1782bf4fed (diff) |
Add a toggle for anti flicker mode in LiveDisplay settings
Change-Id: I4a80af3888c578652bf5e264a62e333cc2162305
-rw-r--r-- | res/values/strings.xml | 2 | ||||
-rw-r--r-- | res/xml/livedisplay.xml | 7 | ||||
-rw-r--r-- | src/org/lineageos/lineageparts/livedisplay/LiveDisplaySettings.java | 15 |
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; } |