RM6785: overlay: Kang auto brightness configuration from begonia
Signed-off-by: bengris32 <bengris32@protonmail.ch>
Change-Id: I6dbb1feaa68d818eb0b0c61a72fb575a0cd26b43
diff --git a/overlay/frameworks/base/core/res/res/values/config.xml b/overlay/frameworks/base/core/res/res/values/config.xml
index 1da60e4..59fb6c0 100644
--- a/overlay/frameworks/base/core/res/res/values/config.xml
+++ b/overlay/frameworks/base/core/res/res/values/config.xml
@@ -12,30 +12,133 @@
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <!-- Array of output values for LCD backlight corresponding to the LUX values
+ <!-- Array of hysteresis constraint values for brightening, represented as tenths of a
+ percent. The length of this array is assumed to be one greater than
+ config_ambientThresholdLevels. The brightening threshold is calculated as
+ lux * (1.0f + CONSTRAINT_VALUE). When the current lux is higher than this threshold,
+ the screen brightness is recalculated. See the config_ambientThresholdLevels
+ description for how the constraint value is chosen. -->
+ <array name="config_ambientBrighteningThresholds">
+ <item>5</item>
+ <item>5</item>
+ <item>10</item>
+ <item>30</item>
+ <item>100</item>
+ <item>400</item>
+ <item>600</item>
+ <item>1000</item>
+ </array>
+
+ <!-- Array of hysteresis constraint values for darkening, represented as tenths of a
+ percent. The length of this array is assumed to be one greater than
+ config_ambientThresholdLevels. The darkening threshold is calculated as
+ lux * (1.0f - CONSTRAINT_VALUE). When the current lux is lower than this threshold,
+ the screen brightness is recalculated. See the config_ambientThresholdLevels
+ description for how the constraint value is chosen. -->
+ <array name="config_ambientDarkeningThresholds">
+ <item>800</item>
+ <item>800</item>
+ <item>800</item>
+ <item>800</item>
+ <item>800</item>
+ <item>500</item>
+ <item>500</item>
+ <item>500</item>
+ </array>
+
+ <!-- Array of ambient lux threshold values. This is used for determining hysteresis constraint
+ values by calculating the index to use for lookup and then setting the constraint value
+ to the corresponding value of the array. The new brightening hysteresis constraint value
+ is the n-th element of config_ambientBrighteningThresholds, and the new darkening
+ hysteresis constraint value is the n-th element of config_ambientDarkeningThresholds.
+ The (zero-based) index is calculated as follows: (MAX is the largest index of the array)
+ condition calculated index
+ value < level[0] 0
+ level[n] <= value < level[n+1] n+1
+ level[MAX] <= value MAX+1 -->
+ <array name="config_ambientThresholdLevels">
+ <item>2</item>
+ <item>10</item>
+ <item>30</item>
+ <item>100</item>
+ <item>800</item>
+ <item>2000</item>
+ <item>4000</item>
+ </array>
+
+ <!-- Array of desired screen brightness in nits corresponding to the lux values
+ in the config_autoBrightnessLevels array. As with config_screenBrightnessMinimumNits and
+ config_screenBrightnessMaximumNits, the display brightness is defined as the measured
+ brightness of an all-white image.
+ If this is defined then:
+ - config_autoBrightnessLcdBacklightValues should not be defined
+ - config_screenBrightnessNits must be defined
+ - config_screenBrightnessBacklight must be defined
+ This array should have size one greater than the size of the config_autoBrightnessLevels
+ array. The brightness values must be non-negative and non-decreasing. This must be
+ overridden in platform specific overlays -->
+ <integer-array name="config_autoBrightnessDisplayValuesNits">
+ <item>5</item>
+ <item>5</item>
+ <item>5</item>
+ <item>5</item>
+ <item>15</item>
+ <item>24</item>
+ <item>37</item>
+ <item>47</item>
+ <item>61</item>
+ <item>76</item>
+ <item>83</item>
+ <item>83</item>
+ <item>83</item>
+ <item>87</item>
+ <item>93</item>
+ <item>107</item>
+ <item>117</item>
+ <item>124</item>
+ <item>133</item>
+ <item>166</item>
+ <item>182</item>
+ <item>270</item>
+ <item>315</item>
+ <item>373</item>
+ <item>442</item>
+ <item>455</item>
+ </integer-array>
+
+ <!-- Array of output values for LCD backlight corresponding to the lux values
in the config_autoBrightnessLevels array. This array should have size one greater
than the size of the config_autoBrightnessLevels array.
+ The brightness values must be between 0 and 255 and be non-decreasing.
This must be overridden in platform specific overlays -->
- <integer-array name="config_autoBrightnessLcdBacklightValues">
+ <array name="config_autoBrightnessLcdBacklightValues">
+ <item>3</item>
+ <item>3</item>
+ <item>3</item>
+ <item>3</item>
<item>8</item>
- <item>64</item>
- <item>98</item>
- <item>104</item>
- <item>110</item>
- <item>116</item>
- <item>122</item>
- <item>128</item>
- <item>134</item>
- <item>182</item>
+ <item>13</item>
+ <item>20</item>
+ <item>25</item>
+ <item>33</item>
+ <item>41</item>
+ <item>45</item>
+ <item>45</item>
+ <item>45</item>
+ <item>47</item>
+ <item>50</item>
+ <item>58</item>
+ <item>63</item>
+ <item>67</item>
+ <item>72</item>
+ <item>90</item>
+ <item>99</item>
+ <item>150</item>
+ <item>175</item>
+ <item>208</item>
+ <item>248</item>
<item>255</item>
- <item>255</item>
- <item>255</item>
- <item>255</item>
- <item>255</item>
- <item>255</item>
- <item>255</item>
- <item>255</item>
- </integer-array>
+ </array>
<!-- Array of light sensor lux values to define our levels for auto backlight brightness support.
The N entries of this array define N + 1 control points as follows:
@@ -53,25 +156,130 @@
Spline interpolation is used to determine the auto-brightness
backlight values for lux levels between these control points.
Must be overridden in platform specific overlays -->
- <integer-array name="config_autoBrightnessLevels">
- <item>128</item>
- <item>256</item>
+ <array name="config_autoBrightnessLevels">
+ <item>1</item>
+ <item>2</item>
+ <item>4</item>
+ <item>5</item>
+ <item>8</item>
+ <item>13</item>
+ <item>17</item>
+ <item>21</item>
+ <item>26</item>
+ <item>30</item>
+ <item>34</item>
+ <item>39</item>
+ <item>60</item>
+ <item>140</item>
+ <item>310</item>
+ <item>400</item>
+ <item>500</item>
+ <item>600</item>
+ <item>1000</item>
+ <item>1200</item>
+ <item>1500</item>
+ <item>2100</item>
+ <item>3000</item>
+ <item>3500</item>
+ <item>4000</item>
+ </array>
+
+ <!-- An array describing the screen's backlight values corresponding to the brightness
+ values in the config_screenBrightnessNits array.
+ This array should be equal in size to config_screenBrightnessBacklight. -->
+ <array name="config_screenBrightnessBacklight">
+ <item>@null</item>
+ <item>1</item>
+ <item>10</item>
+ <item>15</item>
+ <item>30</item>
+ <item>45</item>
+ <item>60</item>
+ <item>75</item>
+ <item>90</item>
+ <item>105</item>
+ <item>120</item>
+ <item>135</item>
+ <item>150</item>
+ <item>165</item>
+ <item>180</item>
+ <item>195</item>
+ <item>210</item>
+ <item>225</item>
+ <item>240</item>
+ <item>255</item>
+ </array>
+
+ <!-- An array of floats describing the screen brightness in nits corresponding to the backlight
+ values in the config_screenBrightnessBacklight array. On OLED displays these values
+ should be measured with an all white image while the display is in the fully on state.
+ Note that this value should *not* reflect the maximum brightness value for any high
+ brightness modes but only the maximum brightness value obtainable in a sustainable manner.
+ This array should be equal in size to config_screenBrightnessBacklight -->
+ <array name="config_screenBrightnessNits">
+ <item>@null</item>
+ <item>4</item>
+ <item>22</item>
+ <item>30</item>
+ <item>68</item>
+ <item>95</item>
+ <item>133</item>
+ <item>165</item>
+ <item>192</item>
+ <item>218</item>
+ <item>255</item>
+ <item>290</item>
+ <item>326</item>
+ <item>352</item>
<item>384</item>
- <item>512</item>
- <item>640</item>
- <item>768</item>
- <item>896</item>
- <item>1024</item>
- <item>2048</item>
- <item>4096</item>
- <item>6144</item>
- <item>8192</item>
- <item>10240</item>
- <item>12288</item>
- <item>14336</item>
- <item>16384</item>
- <item>18432</item>
- </integer-array>
+ <item>399</item>
+ <item>422</item>
+ <item>432</item>
+ <item>442</item>
+ <item>455</item>
+ </array>
+
+ <!-- Array of hysteresis constraint values for brightening, represented as tenths of a
+ percent. The length of this array is assumed to be one greater than
+ config_screenThresholdLevels. The brightening threshold is calculated as
+ screenBrightness * (1.0f + CONSTRAINT_VALUE). When the new screen brightness is higher
+ than this threshold, it is applied. See the config_screenThresholdLevels description for
+ how the constraint value is chosen. -->
+ <array name="config_screenBrighteningThresholds">
+ <item>@null</item>
+ </array>
+
+ <!-- Array of hysteresis constraint values for darkening, represented as tenths of a
+ percent. The length of this array is assumed to be one greater than
+ config_screenThresholdLevels. The darkening threshold is calculated as
+ screenBrightness * (1.0f - CONSTRAINT_VALUE). When the new screen brightness is lower than
+ this threshold, it is applied. See the config_screenThresholdLevels description for how
+ the constraint value is chosen. -->
+ <array name="config_screenDarkeningThresholds">
+ <item>@null</item>
+ </array>
+
+ <!-- Array of screen brightness threshold values. This is used for determining hysteresis
+ constraint values by calculating the index to use for lookup and then setting the
+ constraint value to the corresponding value of the array. The new brightening hysteresis
+ constraint value is the n-th element of config_screenBrighteningThresholds, and the new
+ darkening hysteresis constraint value is the n-th element of
+ config_screenDarkeningThresholds.
+ The (zero-based) index is calculated as follows: (MAX is the largest index of the array)
+ condition calculated index
+ value < level[0] 0
+ level[n] <= value < level[n+1] n+1
+ level[MAX] <= value MAX+1 -->
+ <array name="config_screenThresholdLevels">
+ </array>
+
+ <!-- Stability requirements in milliseconds for accepting a new brightness level. This is used
+ for debouncing the light sensor. Different constants are used to debounce the light sensor
+ when adapting to brighter or darker environments. This parameter controls how quickly
+ brightness changes occur in response to an observed change in light level that exceeds the
+ hysteresis threshold. -->
+ <integer name="config_autoBrightnessBrighteningLightDebounce">2000</integer>
+ <integer name="config_autoBrightnessDarkeningLightDebounce">4000</integer>
<!-- Default screen brightness setting set.
-2 is invalid so setting will resort to int value specified above.