Loading core/res/res/values/config.xml +12 −0 Original line number Diff line number Diff line Loading @@ -882,6 +882,18 @@ <!-- Maximum color temperature, in Kelvin, supported by Night display. --> <integer name="config_nightDisplayColorTemperatureMax">4082</integer> <string-array name="config_nightDisplayColorTemperatureCoefficients"> <!-- R a-coefficient --> <item>0.0</item> <!-- R b-coefficient --> <item>0.0</item> <!-- R y-intercept --> <item>1.0</item> <!-- G a-coefficient --> <item>-0.00000000962353339</item> <!-- G b-coefficient --> <item>0.000153045476</item> <!-- G y-intercept --> <item>0.390782778</item> <!-- B a-coefficient --> <item>-0.0000000189359041</item> <!-- B b-coefficient --> <item>0.000302412211</item> <!-- B y-intercept --> <item>-0.198650895</item> </string-array> <!-- Indicate whether to allow the device to suspend when the screen is off due to the proximity sensor. This resource should only be set to true if the sensor HAL correctly handles the proximity sensor as a wake-up source. Loading core/res/res/values/symbols.xml +1 −0 Original line number Diff line number Diff line Loading @@ -2813,6 +2813,7 @@ <java-symbol type="integer" name="config_nightDisplayColorTemperatureDefault" /> <java-symbol type="integer" name="config_nightDisplayColorTemperatureMin" /> <java-symbol type="integer" name="config_nightDisplayColorTemperatureMax" /> <java-symbol type="array" name="config_nightDisplayColorTemperatureCoefficients" /> <!-- Default first user restrictions --> <java-symbol type="array" name="config_defaultFirstUserRestrictions" /> Loading services/core/java/com/android/server/display/NightDisplayService.java +14 −18 Original line number Diff line number Diff line Loading @@ -52,6 +52,8 @@ import java.util.concurrent.atomic.AtomicBoolean; import java.util.Calendar; import java.util.TimeZone; import com.android.internal.R; import static com.android.server.display.DisplayTransformManager.LEVEL_COLOR_MATRIX_NIGHT_DISPLAY; /** Loading Loading @@ -110,19 +112,7 @@ public final class NightDisplayService extends SystemService private float[] mMatrixNight = new float[16]; /** * The 3x3 color transformation matrix is formatted like so: * <table> * <tr><td>R: a coefficient</td><td>G: a coefficient</td><td>B: a coefficient</td></tr> * <tr><td>R: b coefficient</td><td>G: b coefficient</td><td>B: b coefficient</td></tr> * <tr><td>R: y-intercept</td><td>G: y-intercept</td><td>B: y-intercept</td></tr> * </table> */ private static final float[] mColorTempCoefficients = new float[] { 0.0f, -0.000000014365268757f, -0.000000000910931179f, 0.0f, 0.000255092801250106f, 0.000207598323269139f, 1.0f, -0.064156942434907716f, -0.349361641294833436f }; private final float[] mColorTempCoefficients = new float[9]; private int mCurrentUser = UserHandle.USER_NULL; private ContentObserver mUserSetupObserver; Loading @@ -136,6 +126,12 @@ public final class NightDisplayService extends SystemService public NightDisplayService(Context context) { super(context); mHandler = new Handler(Looper.getMainLooper()); final String[] coefficients = context.getResources().getStringArray( R.array.config_nightDisplayColorTemperatureCoefficients); for (int i = 0; i < 9 && i < coefficients.length; i++) { mColorTempCoefficients[i] = Float.parseFloat(coefficients[i]); } } @Override Loading Loading @@ -410,11 +406,11 @@ public final class NightDisplayService extends SystemService final float squareTemperature = colorTemperature * colorTemperature; final float red = squareTemperature * mColorTempCoefficients[0] + colorTemperature * mColorTempCoefficients[3] + mColorTempCoefficients[6]; final float green = squareTemperature * mColorTempCoefficients[1] + colorTemperature * mColorTempCoefficients[4] + mColorTempCoefficients[7]; final float blue = squareTemperature * mColorTempCoefficients[2] + colorTemperature * mColorTempCoefficients[5] + mColorTempCoefficients[8]; + colorTemperature * mColorTempCoefficients[1] + mColorTempCoefficients[2]; final float green = squareTemperature * mColorTempCoefficients[3] + colorTemperature * mColorTempCoefficients[4] + mColorTempCoefficients[5]; final float blue = squareTemperature * mColorTempCoefficients[6] + colorTemperature * mColorTempCoefficients[7] + mColorTempCoefficients[8]; outTemp[0] = red; outTemp[5] = green; outTemp[10] = blue; Loading Loading
core/res/res/values/config.xml +12 −0 Original line number Diff line number Diff line Loading @@ -882,6 +882,18 @@ <!-- Maximum color temperature, in Kelvin, supported by Night display. --> <integer name="config_nightDisplayColorTemperatureMax">4082</integer> <string-array name="config_nightDisplayColorTemperatureCoefficients"> <!-- R a-coefficient --> <item>0.0</item> <!-- R b-coefficient --> <item>0.0</item> <!-- R y-intercept --> <item>1.0</item> <!-- G a-coefficient --> <item>-0.00000000962353339</item> <!-- G b-coefficient --> <item>0.000153045476</item> <!-- G y-intercept --> <item>0.390782778</item> <!-- B a-coefficient --> <item>-0.0000000189359041</item> <!-- B b-coefficient --> <item>0.000302412211</item> <!-- B y-intercept --> <item>-0.198650895</item> </string-array> <!-- Indicate whether to allow the device to suspend when the screen is off due to the proximity sensor. This resource should only be set to true if the sensor HAL correctly handles the proximity sensor as a wake-up source. Loading
core/res/res/values/symbols.xml +1 −0 Original line number Diff line number Diff line Loading @@ -2813,6 +2813,7 @@ <java-symbol type="integer" name="config_nightDisplayColorTemperatureDefault" /> <java-symbol type="integer" name="config_nightDisplayColorTemperatureMin" /> <java-symbol type="integer" name="config_nightDisplayColorTemperatureMax" /> <java-symbol type="array" name="config_nightDisplayColorTemperatureCoefficients" /> <!-- Default first user restrictions --> <java-symbol type="array" name="config_defaultFirstUserRestrictions" /> Loading
services/core/java/com/android/server/display/NightDisplayService.java +14 −18 Original line number Diff line number Diff line Loading @@ -52,6 +52,8 @@ import java.util.concurrent.atomic.AtomicBoolean; import java.util.Calendar; import java.util.TimeZone; import com.android.internal.R; import static com.android.server.display.DisplayTransformManager.LEVEL_COLOR_MATRIX_NIGHT_DISPLAY; /** Loading Loading @@ -110,19 +112,7 @@ public final class NightDisplayService extends SystemService private float[] mMatrixNight = new float[16]; /** * The 3x3 color transformation matrix is formatted like so: * <table> * <tr><td>R: a coefficient</td><td>G: a coefficient</td><td>B: a coefficient</td></tr> * <tr><td>R: b coefficient</td><td>G: b coefficient</td><td>B: b coefficient</td></tr> * <tr><td>R: y-intercept</td><td>G: y-intercept</td><td>B: y-intercept</td></tr> * </table> */ private static final float[] mColorTempCoefficients = new float[] { 0.0f, -0.000000014365268757f, -0.000000000910931179f, 0.0f, 0.000255092801250106f, 0.000207598323269139f, 1.0f, -0.064156942434907716f, -0.349361641294833436f }; private final float[] mColorTempCoefficients = new float[9]; private int mCurrentUser = UserHandle.USER_NULL; private ContentObserver mUserSetupObserver; Loading @@ -136,6 +126,12 @@ public final class NightDisplayService extends SystemService public NightDisplayService(Context context) { super(context); mHandler = new Handler(Looper.getMainLooper()); final String[] coefficients = context.getResources().getStringArray( R.array.config_nightDisplayColorTemperatureCoefficients); for (int i = 0; i < 9 && i < coefficients.length; i++) { mColorTempCoefficients[i] = Float.parseFloat(coefficients[i]); } } @Override Loading Loading @@ -410,11 +406,11 @@ public final class NightDisplayService extends SystemService final float squareTemperature = colorTemperature * colorTemperature; final float red = squareTemperature * mColorTempCoefficients[0] + colorTemperature * mColorTempCoefficients[3] + mColorTempCoefficients[6]; final float green = squareTemperature * mColorTempCoefficients[1] + colorTemperature * mColorTempCoefficients[4] + mColorTempCoefficients[7]; final float blue = squareTemperature * mColorTempCoefficients[2] + colorTemperature * mColorTempCoefficients[5] + mColorTempCoefficients[8]; + colorTemperature * mColorTempCoefficients[1] + mColorTempCoefficients[2]; final float green = squareTemperature * mColorTempCoefficients[3] + colorTemperature * mColorTempCoefficients[4] + mColorTempCoefficients[5]; final float blue = squareTemperature * mColorTempCoefficients[6] + colorTemperature * mColorTempCoefficients[7] + mColorTempCoefficients[8]; outTemp[0] = red; outTemp[5] = green; outTemp[10] = blue; Loading