Loading services/core/java/com/android/server/display/mode/DisplayModeDirector.java +8 −1 Original line number Diff line number Diff line Loading @@ -2334,7 +2334,7 @@ public class DisplayModeDirector { if (lightSensor != null && lightSensor != mLightSensor) { final Resources res = mContext.getResources(); mAmbientFilter = AmbientFilterFactory.createBrightnessFilter(TAG, res); mAmbientFilter = mInjector.getAmbientFilter(res); mLightSensor = lightSensor; } } else { Loading Loading @@ -3158,6 +3158,8 @@ public class DisplayModeDirector { @Nullable VotesStatsReporter getVotesStatsReporter(); AmbientFilter getAmbientFilter(Resources res); } @VisibleForTesting Loading Loading @@ -3302,6 +3304,11 @@ public class DisplayModeDirector { return new VotesStatsReporter(supportsFrameRateOverride()); } @Override public AmbientFilter getAmbientFilter(Resources res) { return AmbientFilterFactory.createBrightnessFilter(TAG, res); } private DisplayManager getDisplayManager() { if (mDisplayManager == null) { mDisplayManager = mContext.getSystemService(DisplayManager.class); Loading services/tests/displayservicetests/src/com/android/server/display/mode/DisplayModeDirectorTest.java +7 −4 Original line number Diff line number Diff line Loading @@ -29,6 +29,7 @@ import static android.hardware.display.DisplayManager.DeviceConfig.KEY_REFRESH_R import static com.android.server.display.TestUtilsKt.createSensor; import static com.android.server.display.TestUtilsKt.createSensorEvent; import static com.android.server.display.utils.TestUtilsKt.createLastValueAmbientFilter; import static com.google.common.truth.Truth.assertThat; Loading Loading @@ -98,6 +99,7 @@ import com.android.server.display.config.RefreshRateData; import com.android.server.display.feature.DisplayManagerFlags; import com.android.server.display.mode.DisplayModeDirector.BrightnessObserver; import com.android.server.display.mode.DisplayModeDirector.DesiredDisplayModeSpecs; import com.android.server.display.utils.AmbientFilter; import com.android.server.sensors.SensorManagerInternal; import com.android.server.sensors.SensorManagerInternal.ProximityActiveListener; import com.android.server.statusbar.StatusBarManagerInternal; Loading Loading @@ -1587,7 +1589,6 @@ public class DisplayModeDirectorTest { any(Handler.class)); SensorEventListener sensorListener = listenerCaptor.getValue(); sensorListener.onSensorChanged(createSensorEvent(lightSensor, 8)); waitForIdleSync(); assertEquals(null, director.getBrightnessObserver().getIdleScreenRefreshRateConfig()); // Configure DDC with idle screen timeout Loading @@ -1601,19 +1602,16 @@ public class DisplayModeDirectorTest { // Sensor reads 5 lux sensorListener.onSensorChanged(createSensorEvent(lightSensor, 5)); waitForIdleSync(); assertEquals(new SurfaceControl.IdleScreenRefreshRateConfig(-1), director.getBrightnessObserver().getIdleScreenRefreshRateConfig()); // Sensor reads 50 lux sensorListener.onSensorChanged(createSensorEvent(lightSensor, 50)); waitForIdleSync(); assertEquals(new IdleScreenRefreshRateConfig(1000), director.getBrightnessObserver().getIdleScreenRefreshRateConfig()); // Sensor reads 200 lux sensorListener.onSensorChanged(createSensorEvent(lightSensor, 200)); waitForIdleSync(); assertEquals(new SurfaceControl.IdleScreenRefreshRateConfig(800), director.getBrightnessObserver().getIdleScreenRefreshRateConfig()); } Loading Loading @@ -3992,6 +3990,11 @@ public class DisplayModeDirectorTest { return null; } @Override public AmbientFilter getAmbientFilter(Resources res) { return createLastValueAmbientFilter(); } protected Display createDisplay(int id) { return new Display(DisplayManagerGlobal.getInstance(), id, mDisplayInfo, ApplicationProvider.getApplicationContext().getResources()); Loading services/tests/displayservicetests/src/com/android/server/display/whitebalance/AmbientFilterStubber.java→services/tests/displayservicetests/src/com/android/server/display/utils/TestUtils.kt +12 −11 Original line number Diff line number Diff line /* * Copyright (C) 2019 The Android Open Source Project * Copyright (C) 2025 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. Loading @@ -14,14 +14,15 @@ * limitations under the License. */ package com.android.server.display.utils; package com.android.server.display.utils public class AmbientFilterStubber extends AmbientFilter { public AmbientFilterStubber() { super(null, 1); fun createLastValueAmbientFilter(): AmbientFilter = object : AmbientFilter("LastValueAmbientFilter", 1) { override fun filter(time: Long, buffer: RollingBuffer): Float { return if (buffer.isEmpty) { -1f } else { buffer.getValue(buffer.size() - 1) } protected float filter(long time, RollingBuffer buffer) { return 0f; } } No newline at end of file services/tests/displayservicetests/src/com/android/server/display/whitebalance/AmbientLuxTest.java +20 −24 Original line number Diff line number Diff line Loading @@ -17,10 +17,10 @@ package com.android.server.display.whitebalance; import static com.android.server.display.TestUtilsKt.createSensor; import static com.android.server.display.utils.TestUtilsKt.createLastValueAmbientFilter; import static org.junit.Assert.assertEquals; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.anyLong; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.doAnswer; import static org.mockito.Mockito.doReturn; Loading @@ -43,7 +43,6 @@ import com.android.internal.R; import com.android.internal.util.test.LocalServiceKeeperRule; import com.android.server.display.color.ColorDisplayService; import com.android.server.display.utils.AmbientFilter; import com.android.server.display.utils.AmbientFilterStubber; import com.google.common.collect.ImmutableList; Loading @@ -54,7 +53,6 @@ import org.junit.runner.RunWith; import org.junit.runners.JUnit4; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.mockito.invocation.InvocationOnMock; import org.mockito.stubbing.Answer; import java.util.List; Loading Loading @@ -185,7 +183,7 @@ public final class AmbientLuxTest { DisplayWhiteBalanceFactory.create(mHandler, mSensorManagerMock, mResourcesSpy); final float ambientColorTemperature = 8000.0f; setEstimatedColorTemperature(controller, ambientColorTemperature); controller.mBrightnessFilter = spy(new AmbientFilterStubber()); controller.mBrightnessFilter = createLastValueAmbientFilter(); for (float luxOverride = 0.1f; luxOverride <= 10000; luxOverride *= 10) { setEstimatedBrightnessAndUpdate(controller, luxOverride); Loading @@ -205,7 +203,7 @@ public final class AmbientLuxTest { DisplayWhiteBalanceFactory.create(mHandler, mSensorManagerMock, mResourcesSpy); final float ambientColorTemperature = 8000.0f; setEstimatedColorTemperature(controller, ambientColorTemperature); controller.mBrightnessFilter = spy(new AmbientFilterStubber()); controller.mBrightnessFilter = createLastValueAmbientFilter(); for (float t = 0.0f; t <= 1.0f; t += 0.1f) { setEstimatedBrightnessAndUpdate(controller, Loading Loading @@ -237,7 +235,7 @@ public final class AmbientLuxTest { DisplayWhiteBalanceFactory.create(mHandler, mSensorManagerMock, mResourcesSpy); final float ambientColorTemperature = 8000.0f; setEstimatedColorTemperature(controller, ambientColorTemperature); controller.mBrightnessFilter = spy(new AmbientFilterStubber()); controller.mBrightnessFilter = createLastValueAmbientFilter(); for (float t = 0.0f; t <= 1.0f; t += 0.1f) { float luxOverride = mix(brightness0, brightness1, t); Loading Loading @@ -274,7 +272,7 @@ public final class AmbientLuxTest { DisplayWhiteBalanceFactory.create(mHandler, mSensorManagerMock, mResourcesSpy); final float ambientColorTemperature = 8000.0f; setEstimatedColorTemperature(controller, ambientColorTemperature); controller.mBrightnessFilter = spy(new AmbientFilterStubber()); controller.mBrightnessFilter = createLastValueAmbientFilter(); setEstimatedBrightnessAndUpdate(controller, 0.0f); assertEquals(controller.mPendingAmbientColorTemperature, Loading @@ -293,7 +291,7 @@ public final class AmbientLuxTest { DisplayWhiteBalanceFactory.create(mHandler, mSensorManagerMock, mResourcesSpy); final float ambientColorTemperature = 8000.0f; setEstimatedColorTemperature(controller, ambientColorTemperature); controller.mBrightnessFilter = spy(new AmbientFilterStubber()); controller.mBrightnessFilter = createLastValueAmbientFilter(); for (float luxOverride = 0.1f; luxOverride <= 10000; luxOverride *= 10) { setEstimatedBrightnessAndUpdate(controller, luxOverride); Loading @@ -311,7 +309,7 @@ public final class AmbientLuxTest { DisplayWhiteBalanceFactory.create(mHandler, mSensorManagerMock, mResourcesSpy); final float ambientColorTemperature = 8000.0f; setEstimatedColorTemperature(controller, ambientColorTemperature); controller.mBrightnessFilter = spy(new AmbientFilterStubber()); controller.mBrightnessFilter = createLastValueAmbientFilter(); for (float luxOverride = 0.1f; luxOverride <= 10000; luxOverride *= 10) { setEstimatedBrightnessAndUpdate(controller, luxOverride); Loading @@ -331,7 +329,7 @@ public final class AmbientLuxTest { DisplayWhiteBalanceFactory.create(mHandler, mSensorManagerMock, mResourcesSpy); final float ambientColorTemperature = 8000.0f; setEstimatedColorTemperature(controller, ambientColorTemperature); controller.mBrightnessFilter = spy(new AmbientFilterStubber()); controller.mBrightnessFilter = createLastValueAmbientFilter(); for (float t = 0.0f; t <= 1.0f; t += 0.1f) { setEstimatedBrightnessAndUpdate(controller, Loading Loading @@ -364,7 +362,7 @@ public final class AmbientLuxTest { DisplayWhiteBalanceFactory.create(mHandler, mSensorManagerMock, mResourcesSpy); final float ambientColorTemperature = 6000.0f; setEstimatedColorTemperature(controller, ambientColorTemperature); controller.mBrightnessFilter = spy(new AmbientFilterStubber()); controller.mBrightnessFilter = createLastValueAmbientFilter(); for (float t = 0.0f; t <= 1.0f; t += 0.1f) { float luxOverride = mix(brightness0, brightness1, t); Loading Loading @@ -403,7 +401,7 @@ public final class AmbientLuxTest { DisplayWhiteBalanceFactory.create(mHandler, mSensorManagerMock, mResourcesSpy); final float ambientColorTemperature = 8000.0f; setEstimatedColorTemperature(controller, ambientColorTemperature); controller.mBrightnessFilter = spy(new AmbientFilterStubber()); controller.mBrightnessFilter = createLastValueAmbientFilter(); for (float luxOverride = 0.1f; luxOverride <= 10000; luxOverride *= 10) { setEstimatedBrightnessAndUpdate(controller, luxOverride); Loading @@ -428,7 +426,7 @@ public final class AmbientLuxTest { DisplayWhiteBalanceController controller = DisplayWhiteBalanceFactory.create(mHandler, mSensorManagerMock, mResourcesSpy); controller.setStrongModeEnabled(true); controller.mBrightnessFilter = spy(new AmbientFilterStubber()); controller.mBrightnessFilter = createLastValueAmbientFilter(); for (float ambientTempFraction = 0.0f; ambientTempFraction <= 1.0f; ambientTempFraction += 0.1f) { Loading Loading @@ -460,7 +458,7 @@ public final class AmbientLuxTest { DisplayWhiteBalanceFactory.create(mHandler, mSensorManagerMock, mResourcesSpy); final float ambientColorTemperature = -1.0f; setEstimatedColorTemperature(controller, ambientColorTemperature); controller.mBrightnessFilter = spy(new AmbientFilterStubber()); controller.mBrightnessFilter = createLastValueAmbientFilter(); for (float t = 0.0f; t <= 1.0f; t += 0.1f) { setEstimatedBrightnessAndUpdate(controller, Loading Loading @@ -512,13 +510,11 @@ public final class AmbientLuxTest { } private void mockResourcesFloat(int id, float floatValue) { doAnswer(new Answer<Void>() { public Void answer(InvocationOnMock invocation) { doAnswer((Answer<Void>) invocation -> { TypedValue value = (TypedValue) invocation.getArgument(1); value.type = TypedValue.TYPE_FLOAT; value.data = Float.floatToIntBits(floatValue); return null; } }).when(mResourcesSpy).getValue( eq(id), any(TypedValue.class), eq(true)); Loading @@ -526,14 +522,14 @@ public final class AmbientLuxTest { private void setEstimatedColorTemperature(DisplayWhiteBalanceController controller, float ambientColorTemperature) { AmbientFilter colorTemperatureFilter = spy(new AmbientFilterStubber()); AmbientFilter colorTemperatureFilter = createLastValueAmbientFilter(); controller.mColorTemperatureFilter = colorTemperatureFilter; when(colorTemperatureFilter.getEstimate(anyLong())).thenReturn(ambientColorTemperature); colorTemperatureFilter.addValue(System.currentTimeMillis(), ambientColorTemperature); } private void setEstimatedBrightnessAndUpdate(DisplayWhiteBalanceController controller, float brightness) { when(controller.mBrightnessFilter.getEstimate(anyLong())).thenReturn(brightness); controller.mBrightnessFilter.addValue(System.currentTimeMillis(), brightness); controller.updateAmbientColorTemperature(); } Loading Loading
services/core/java/com/android/server/display/mode/DisplayModeDirector.java +8 −1 Original line number Diff line number Diff line Loading @@ -2334,7 +2334,7 @@ public class DisplayModeDirector { if (lightSensor != null && lightSensor != mLightSensor) { final Resources res = mContext.getResources(); mAmbientFilter = AmbientFilterFactory.createBrightnessFilter(TAG, res); mAmbientFilter = mInjector.getAmbientFilter(res); mLightSensor = lightSensor; } } else { Loading Loading @@ -3158,6 +3158,8 @@ public class DisplayModeDirector { @Nullable VotesStatsReporter getVotesStatsReporter(); AmbientFilter getAmbientFilter(Resources res); } @VisibleForTesting Loading Loading @@ -3302,6 +3304,11 @@ public class DisplayModeDirector { return new VotesStatsReporter(supportsFrameRateOverride()); } @Override public AmbientFilter getAmbientFilter(Resources res) { return AmbientFilterFactory.createBrightnessFilter(TAG, res); } private DisplayManager getDisplayManager() { if (mDisplayManager == null) { mDisplayManager = mContext.getSystemService(DisplayManager.class); Loading
services/tests/displayservicetests/src/com/android/server/display/mode/DisplayModeDirectorTest.java +7 −4 Original line number Diff line number Diff line Loading @@ -29,6 +29,7 @@ import static android.hardware.display.DisplayManager.DeviceConfig.KEY_REFRESH_R import static com.android.server.display.TestUtilsKt.createSensor; import static com.android.server.display.TestUtilsKt.createSensorEvent; import static com.android.server.display.utils.TestUtilsKt.createLastValueAmbientFilter; import static com.google.common.truth.Truth.assertThat; Loading Loading @@ -98,6 +99,7 @@ import com.android.server.display.config.RefreshRateData; import com.android.server.display.feature.DisplayManagerFlags; import com.android.server.display.mode.DisplayModeDirector.BrightnessObserver; import com.android.server.display.mode.DisplayModeDirector.DesiredDisplayModeSpecs; import com.android.server.display.utils.AmbientFilter; import com.android.server.sensors.SensorManagerInternal; import com.android.server.sensors.SensorManagerInternal.ProximityActiveListener; import com.android.server.statusbar.StatusBarManagerInternal; Loading Loading @@ -1587,7 +1589,6 @@ public class DisplayModeDirectorTest { any(Handler.class)); SensorEventListener sensorListener = listenerCaptor.getValue(); sensorListener.onSensorChanged(createSensorEvent(lightSensor, 8)); waitForIdleSync(); assertEquals(null, director.getBrightnessObserver().getIdleScreenRefreshRateConfig()); // Configure DDC with idle screen timeout Loading @@ -1601,19 +1602,16 @@ public class DisplayModeDirectorTest { // Sensor reads 5 lux sensorListener.onSensorChanged(createSensorEvent(lightSensor, 5)); waitForIdleSync(); assertEquals(new SurfaceControl.IdleScreenRefreshRateConfig(-1), director.getBrightnessObserver().getIdleScreenRefreshRateConfig()); // Sensor reads 50 lux sensorListener.onSensorChanged(createSensorEvent(lightSensor, 50)); waitForIdleSync(); assertEquals(new IdleScreenRefreshRateConfig(1000), director.getBrightnessObserver().getIdleScreenRefreshRateConfig()); // Sensor reads 200 lux sensorListener.onSensorChanged(createSensorEvent(lightSensor, 200)); waitForIdleSync(); assertEquals(new SurfaceControl.IdleScreenRefreshRateConfig(800), director.getBrightnessObserver().getIdleScreenRefreshRateConfig()); } Loading Loading @@ -3992,6 +3990,11 @@ public class DisplayModeDirectorTest { return null; } @Override public AmbientFilter getAmbientFilter(Resources res) { return createLastValueAmbientFilter(); } protected Display createDisplay(int id) { return new Display(DisplayManagerGlobal.getInstance(), id, mDisplayInfo, ApplicationProvider.getApplicationContext().getResources()); Loading
services/tests/displayservicetests/src/com/android/server/display/whitebalance/AmbientFilterStubber.java→services/tests/displayservicetests/src/com/android/server/display/utils/TestUtils.kt +12 −11 Original line number Diff line number Diff line /* * Copyright (C) 2019 The Android Open Source Project * Copyright (C) 2025 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. Loading @@ -14,14 +14,15 @@ * limitations under the License. */ package com.android.server.display.utils; package com.android.server.display.utils public class AmbientFilterStubber extends AmbientFilter { public AmbientFilterStubber() { super(null, 1); fun createLastValueAmbientFilter(): AmbientFilter = object : AmbientFilter("LastValueAmbientFilter", 1) { override fun filter(time: Long, buffer: RollingBuffer): Float { return if (buffer.isEmpty) { -1f } else { buffer.getValue(buffer.size() - 1) } protected float filter(long time, RollingBuffer buffer) { return 0f; } } No newline at end of file
services/tests/displayservicetests/src/com/android/server/display/whitebalance/AmbientLuxTest.java +20 −24 Original line number Diff line number Diff line Loading @@ -17,10 +17,10 @@ package com.android.server.display.whitebalance; import static com.android.server.display.TestUtilsKt.createSensor; import static com.android.server.display.utils.TestUtilsKt.createLastValueAmbientFilter; import static org.junit.Assert.assertEquals; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.anyLong; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.doAnswer; import static org.mockito.Mockito.doReturn; Loading @@ -43,7 +43,6 @@ import com.android.internal.R; import com.android.internal.util.test.LocalServiceKeeperRule; import com.android.server.display.color.ColorDisplayService; import com.android.server.display.utils.AmbientFilter; import com.android.server.display.utils.AmbientFilterStubber; import com.google.common.collect.ImmutableList; Loading @@ -54,7 +53,6 @@ import org.junit.runner.RunWith; import org.junit.runners.JUnit4; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.mockito.invocation.InvocationOnMock; import org.mockito.stubbing.Answer; import java.util.List; Loading Loading @@ -185,7 +183,7 @@ public final class AmbientLuxTest { DisplayWhiteBalanceFactory.create(mHandler, mSensorManagerMock, mResourcesSpy); final float ambientColorTemperature = 8000.0f; setEstimatedColorTemperature(controller, ambientColorTemperature); controller.mBrightnessFilter = spy(new AmbientFilterStubber()); controller.mBrightnessFilter = createLastValueAmbientFilter(); for (float luxOverride = 0.1f; luxOverride <= 10000; luxOverride *= 10) { setEstimatedBrightnessAndUpdate(controller, luxOverride); Loading @@ -205,7 +203,7 @@ public final class AmbientLuxTest { DisplayWhiteBalanceFactory.create(mHandler, mSensorManagerMock, mResourcesSpy); final float ambientColorTemperature = 8000.0f; setEstimatedColorTemperature(controller, ambientColorTemperature); controller.mBrightnessFilter = spy(new AmbientFilterStubber()); controller.mBrightnessFilter = createLastValueAmbientFilter(); for (float t = 0.0f; t <= 1.0f; t += 0.1f) { setEstimatedBrightnessAndUpdate(controller, Loading Loading @@ -237,7 +235,7 @@ public final class AmbientLuxTest { DisplayWhiteBalanceFactory.create(mHandler, mSensorManagerMock, mResourcesSpy); final float ambientColorTemperature = 8000.0f; setEstimatedColorTemperature(controller, ambientColorTemperature); controller.mBrightnessFilter = spy(new AmbientFilterStubber()); controller.mBrightnessFilter = createLastValueAmbientFilter(); for (float t = 0.0f; t <= 1.0f; t += 0.1f) { float luxOverride = mix(brightness0, brightness1, t); Loading Loading @@ -274,7 +272,7 @@ public final class AmbientLuxTest { DisplayWhiteBalanceFactory.create(mHandler, mSensorManagerMock, mResourcesSpy); final float ambientColorTemperature = 8000.0f; setEstimatedColorTemperature(controller, ambientColorTemperature); controller.mBrightnessFilter = spy(new AmbientFilterStubber()); controller.mBrightnessFilter = createLastValueAmbientFilter(); setEstimatedBrightnessAndUpdate(controller, 0.0f); assertEquals(controller.mPendingAmbientColorTemperature, Loading @@ -293,7 +291,7 @@ public final class AmbientLuxTest { DisplayWhiteBalanceFactory.create(mHandler, mSensorManagerMock, mResourcesSpy); final float ambientColorTemperature = 8000.0f; setEstimatedColorTemperature(controller, ambientColorTemperature); controller.mBrightnessFilter = spy(new AmbientFilterStubber()); controller.mBrightnessFilter = createLastValueAmbientFilter(); for (float luxOverride = 0.1f; luxOverride <= 10000; luxOverride *= 10) { setEstimatedBrightnessAndUpdate(controller, luxOverride); Loading @@ -311,7 +309,7 @@ public final class AmbientLuxTest { DisplayWhiteBalanceFactory.create(mHandler, mSensorManagerMock, mResourcesSpy); final float ambientColorTemperature = 8000.0f; setEstimatedColorTemperature(controller, ambientColorTemperature); controller.mBrightnessFilter = spy(new AmbientFilterStubber()); controller.mBrightnessFilter = createLastValueAmbientFilter(); for (float luxOverride = 0.1f; luxOverride <= 10000; luxOverride *= 10) { setEstimatedBrightnessAndUpdate(controller, luxOverride); Loading @@ -331,7 +329,7 @@ public final class AmbientLuxTest { DisplayWhiteBalanceFactory.create(mHandler, mSensorManagerMock, mResourcesSpy); final float ambientColorTemperature = 8000.0f; setEstimatedColorTemperature(controller, ambientColorTemperature); controller.mBrightnessFilter = spy(new AmbientFilterStubber()); controller.mBrightnessFilter = createLastValueAmbientFilter(); for (float t = 0.0f; t <= 1.0f; t += 0.1f) { setEstimatedBrightnessAndUpdate(controller, Loading Loading @@ -364,7 +362,7 @@ public final class AmbientLuxTest { DisplayWhiteBalanceFactory.create(mHandler, mSensorManagerMock, mResourcesSpy); final float ambientColorTemperature = 6000.0f; setEstimatedColorTemperature(controller, ambientColorTemperature); controller.mBrightnessFilter = spy(new AmbientFilterStubber()); controller.mBrightnessFilter = createLastValueAmbientFilter(); for (float t = 0.0f; t <= 1.0f; t += 0.1f) { float luxOverride = mix(brightness0, brightness1, t); Loading Loading @@ -403,7 +401,7 @@ public final class AmbientLuxTest { DisplayWhiteBalanceFactory.create(mHandler, mSensorManagerMock, mResourcesSpy); final float ambientColorTemperature = 8000.0f; setEstimatedColorTemperature(controller, ambientColorTemperature); controller.mBrightnessFilter = spy(new AmbientFilterStubber()); controller.mBrightnessFilter = createLastValueAmbientFilter(); for (float luxOverride = 0.1f; luxOverride <= 10000; luxOverride *= 10) { setEstimatedBrightnessAndUpdate(controller, luxOverride); Loading @@ -428,7 +426,7 @@ public final class AmbientLuxTest { DisplayWhiteBalanceController controller = DisplayWhiteBalanceFactory.create(mHandler, mSensorManagerMock, mResourcesSpy); controller.setStrongModeEnabled(true); controller.mBrightnessFilter = spy(new AmbientFilterStubber()); controller.mBrightnessFilter = createLastValueAmbientFilter(); for (float ambientTempFraction = 0.0f; ambientTempFraction <= 1.0f; ambientTempFraction += 0.1f) { Loading Loading @@ -460,7 +458,7 @@ public final class AmbientLuxTest { DisplayWhiteBalanceFactory.create(mHandler, mSensorManagerMock, mResourcesSpy); final float ambientColorTemperature = -1.0f; setEstimatedColorTemperature(controller, ambientColorTemperature); controller.mBrightnessFilter = spy(new AmbientFilterStubber()); controller.mBrightnessFilter = createLastValueAmbientFilter(); for (float t = 0.0f; t <= 1.0f; t += 0.1f) { setEstimatedBrightnessAndUpdate(controller, Loading Loading @@ -512,13 +510,11 @@ public final class AmbientLuxTest { } private void mockResourcesFloat(int id, float floatValue) { doAnswer(new Answer<Void>() { public Void answer(InvocationOnMock invocation) { doAnswer((Answer<Void>) invocation -> { TypedValue value = (TypedValue) invocation.getArgument(1); value.type = TypedValue.TYPE_FLOAT; value.data = Float.floatToIntBits(floatValue); return null; } }).when(mResourcesSpy).getValue( eq(id), any(TypedValue.class), eq(true)); Loading @@ -526,14 +522,14 @@ public final class AmbientLuxTest { private void setEstimatedColorTemperature(DisplayWhiteBalanceController controller, float ambientColorTemperature) { AmbientFilter colorTemperatureFilter = spy(new AmbientFilterStubber()); AmbientFilter colorTemperatureFilter = createLastValueAmbientFilter(); controller.mColorTemperatureFilter = colorTemperatureFilter; when(colorTemperatureFilter.getEstimate(anyLong())).thenReturn(ambientColorTemperature); colorTemperatureFilter.addValue(System.currentTimeMillis(), ambientColorTemperature); } private void setEstimatedBrightnessAndUpdate(DisplayWhiteBalanceController controller, float brightness) { when(controller.mBrightnessFilter.getEstimate(anyLong())).thenReturn(brightness); controller.mBrightnessFilter.addValue(System.currentTimeMillis(), brightness); controller.updateAmbientColorTemperature(); } Loading