Loading services/core/java/com/android/server/display/config/SensorData.java +16 −25 Original line number Diff line number Diff line Loading @@ -34,6 +34,8 @@ public class SensorData { public static final String TEMPERATURE_TYPE_DISPLAY = "DISPLAY"; public static final String TEMPERATURE_TYPE_SKIN = "SKIN"; private static final SensorData UNSPECIFIED_SENSOR_DATA = new SensorData( /* type= */null, /* name= */ null); @Nullable public final String type; Loading @@ -43,24 +45,14 @@ public class SensorData { public final float maxRefreshRate; public final List<SupportedModeData> supportedModes; @VisibleForTesting public SensorData() { this(/* type= */ null, /* name= */ null); } @VisibleForTesting public SensorData(String type, String name) { this(type, name, /* minRefreshRate= */ 0f, /* maxRefreshRate= */ Float.POSITIVE_INFINITY); } @VisibleForTesting public SensorData(String type, String name, float minRefreshRate, float maxRefreshRate) { this(type, name, minRefreshRate, maxRefreshRate, /* supportedModes= */ List.of()); private SensorData(@Nullable String type, @Nullable String name) { this(type, name, /* minRefreshRate= */ 0f, /* maxRefreshRate= */ Float.POSITIVE_INFINITY, /* supportedModes= */ List.of()); } @VisibleForTesting public SensorData(String type, String name, float minRefreshRate, float maxRefreshRate, List<SupportedModeData> supportedModes) { SensorData(@Nullable String type, @Nullable String name, float minRefreshRate, float maxRefreshRate, List<SupportedModeData> supportedModes) { this.type = type; this.name = name; this.minRefreshRate = minRefreshRate; Loading @@ -72,7 +64,7 @@ public class SensorData { * @return True if the sensor matches both the specified name and type, or one if only one * is specified (not-empty). Always returns false if both parameters are null or empty. */ public boolean matches(String sensorName, String sensorType) { public boolean matches(@Nullable String sensorName, @Nullable String sensorType) { final boolean isNameSpecified = !TextUtils.isEmpty(sensorName); final boolean isTypeSpecified = !TextUtils.isEmpty(sensorType); return (isNameSpecified || isTypeSpecified) Loading Loading @@ -120,7 +112,7 @@ public class SensorData { if (sensorDetails != null) { return loadSensorData(sensorDetails); } else { return new SensorData(); return UNSPECIFIED_SENSOR_DATA; } } Loading @@ -130,13 +122,12 @@ public class SensorData { @Nullable public static SensorData loadProxSensorConfig( DisplayManagerFlags flags, DisplayConfiguration config) { SensorData DEFAULT_SENSOR = new SensorData(); List<SensorDetails> sensorDetailsList = config.getProxSensor(); if (sensorDetailsList.isEmpty()) { return DEFAULT_SENSOR; return UNSPECIFIED_SENSOR_DATA; } SensorData selectedSensor = DEFAULT_SENSOR; SensorData selectedSensor = UNSPECIFIED_SENSOR_DATA; // Prioritize flagged sensors. for (SensorDetails sensorDetails : sensorDetailsList) { String flagStr = sensorDetails.getFeatureFlag(); Loading @@ -148,7 +139,7 @@ public class SensorData { } // Check for normal un-flagged sensor if a flagged one wasn't found. if (DEFAULT_SENSOR == selectedSensor) { if (UNSPECIFIED_SENSOR_DATA == selectedSensor) { for (SensorDetails sensorDetails : sensorDetailsList) { if (sensorDetails.getFeatureFlag() != null) { continue; Loading @@ -159,7 +150,7 @@ public class SensorData { } // Check if we shouldn't use a sensor at all. if (DEFAULT_SENSOR != selectedSensor) { if (UNSPECIFIED_SENSOR_DATA != selectedSensor) { if ("".equals(selectedSensor.name) && "".equals(selectedSensor.type)) { // <proxSensor> with empty values to the config means no sensor should be used. // See also {@link com.android.server.display.utils.SensorUtils} Loading @@ -174,7 +165,7 @@ public class SensorData { * Loads temperature sensor data for no config case. (Type: SKIN, Name: null) */ public static SensorData loadTempSensorUnspecifiedConfig() { return new SensorData(TEMPERATURE_TYPE_SKIN, null); return new SensorData(TEMPERATURE_TYPE_SKIN, /* name= */ null); } /** Loading @@ -185,7 +176,7 @@ public class SensorData { DisplayConfiguration config) { SensorDetails sensorDetails = config.getTempSensor(); if (!flags.isSensorBasedBrightnessThrottlingEnabled() || sensorDetails == null) { return new SensorData(TEMPERATURE_TYPE_SKIN, null); return loadTempSensorUnspecifiedConfig(); } String name = sensorDetails.getName(); String type = sensorDetails.getType(); Loading @@ -202,7 +193,7 @@ public class SensorData { */ @NonNull public static SensorData loadSensorUnspecifiedConfig() { return new SensorData(); return UNSPECIFIED_SENSOR_DATA; } private static SensorData loadSensorData(@NonNull SensorDetails sensorDetails) { Loading services/tests/displayservicetests/src/com/android/server/display/BrightnessThrottlerTest.java +3 −1 Original line number Diff line number Diff line Loading @@ -16,6 +16,8 @@ package com.android.server.display; import static com.android.server.display.config.DisplayDeviceConfigTestUtilsKt.createSensorData; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotEquals; Loading Loading @@ -301,7 +303,7 @@ public class BrightnessThrottlerTest { new ThrottlingLevel(PowerManager.THERMAL_STATUS_CRITICAL, 0.25f); List<ThrottlingLevel> levels = new ArrayList<>(List.of(level)); final ThermalBrightnessThrottlingData data = ThermalBrightnessThrottlingData.create(levels); final SensorData tempSensor = new SensorData("DISPLAY", "VIRTUAL-SKIN-DISPLAY"); final SensorData tempSensor = createSensorData("DISPLAY", "VIRTUAL-SKIN-DISPLAY"); final BrightnessThrottler throttler = createThrottlerSupportedWithTempSensor(data, tempSensor); assertTrue(throttler.deviceSupportsThrottling()); Loading services/tests/displayservicetests/src/com/android/server/display/DisplayManagerServiceTest.java +2 −1 Original line number Diff line number Diff line Loading @@ -31,6 +31,7 @@ import static android.view.ContentRecordingSession.RECORD_CONTENT_TASK; import static com.android.dx.mockito.inline.extended.ExtendedMockito.doAnswer; import static com.android.server.display.ExternalDisplayPolicy.ENABLE_ON_CONNECT; import static com.android.server.display.VirtualDisplayAdapter.UNIQUE_ID_PREFIX; import static com.android.server.display.config.DisplayDeviceConfigTestUtilsKt.createSensorData; import static com.google.common.truth.Truth.assertThat; import static com.google.common.truth.Truth.assertWithMessage; Loading Loading @@ -2423,7 +2424,7 @@ public class DisplayManagerServiceTest { String testSensorType = "testType"; Sensor testSensor = TestUtils.createSensor(testSensorType, testSensorName); SensorData sensorData = new SensorData(testSensorType, testSensorName, SensorData sensorData = createSensorData(testSensorType, testSensorName, /* minRefreshRate= */ 10f, /* maxRefreshRate= */ 100f); when(mMockDisplayDeviceConfig.getProximitySensor()).thenReturn(sensorData); Loading services/tests/displayservicetests/src/com/android/server/display/DisplayPowerControllerTest.java +4 −4 Original line number Diff line number Diff line Loading @@ -21,6 +21,7 @@ import static com.android.dx.mockito.inline.extended.ExtendedMockito.verify; import static com.android.server.display.AutomaticBrightnessController.AUTO_BRIGHTNESS_MODE_DEFAULT; import static com.android.server.display.AutomaticBrightnessController.AUTO_BRIGHTNESS_MODE_DOZE; import static com.android.server.display.AutomaticBrightnessController.AUTO_BRIGHTNESS_MODE_IDLE; import static com.android.server.display.config.DisplayDeviceConfigTestUtilsKt.createSensorData; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; Loading Loading @@ -85,7 +86,6 @@ import com.android.server.display.brightness.clamper.HdrClamper; import com.android.server.display.color.ColorDisplayService; import com.android.server.display.config.HighBrightnessModeData; import com.android.server.display.config.HysteresisLevels; import com.android.server.display.config.SensorData; import com.android.server.display.feature.DisplayManagerFlags; import com.android.server.display.feature.flags.Flags; import com.android.server.display.layout.Layout; Loading Loading @@ -2159,13 +2159,13 @@ public final class DisplayPowerControllerTest { when(displayDeviceMock.getNameLocked()).thenReturn(displayName); when(displayDeviceMock.getDisplayDeviceConfig()).thenReturn(displayDeviceConfigMock); when(displayDeviceConfigMock.getProximitySensor()).thenReturn( new SensorData(Sensor.STRING_TYPE_PROXIMITY, null)); createSensorData(Sensor.STRING_TYPE_PROXIMITY)); when(displayDeviceConfigMock.getNits()).thenReturn(new float[]{2, 500}); when(displayDeviceConfigMock.isAutoBrightnessAvailable()).thenReturn(true); when(displayDeviceConfigMock.getAmbientLightSensor()).thenReturn( new SensorData()); createSensorData()); when(displayDeviceConfigMock.getScreenOffBrightnessSensor()).thenReturn( new SensorData(Sensor.STRING_TYPE_LIGHT, null)); createSensorData(Sensor.STRING_TYPE_LIGHT)); when(displayDeviceConfigMock.getScreenOffBrightnessSensorValueToLux()) .thenReturn(new int[0]); when(displayDeviceConfigMock.getDefaultDozeBrightness()) Loading services/tests/displayservicetests/src/com/android/server/display/DisplayPowerProximityStateControllerTest.java +6 −6 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ package com.android.server.display; import static com.android.dx.mockito.inline.extended.ExtendedMockito.verify; import static com.android.server.display.config.DisplayDeviceConfigTestUtilsKt.createSensorData; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; Loading @@ -37,7 +38,6 @@ import android.view.Display; import androidx.test.ext.junit.runners.AndroidJUnit4; import androidx.test.filters.SmallTest; import com.android.server.display.config.SensorData; import com.android.server.testutils.OffsettableClock; import org.junit.Before; Loading Loading @@ -75,7 +75,7 @@ public final class DisplayPowerProximityStateControllerTest { mClock = new OffsettableClock.Stopped(); mTestLooper = new TestLooper(mClock::now); when(mDisplayDeviceConfig.getProximitySensor()).thenReturn( new SensorData(Sensor.STRING_TYPE_PROXIMITY, null)); createSensorData(Sensor.STRING_TYPE_PROXIMITY)); setUpProxSensor(); DisplayPowerProximityStateController.Injector injector = new DisplayPowerProximityStateController.Injector() { Loading Loading @@ -165,7 +165,7 @@ public final class DisplayPowerProximityStateControllerTest { @Test public void isProximitySensorAvailableReturnsFalseWhenNotAvailableAndNoDefault() { when(mDisplayDeviceConfig.getProximitySensor()).thenReturn(new SensorData()); when(mDisplayDeviceConfig.getProximitySensor()).thenReturn(createSensorData()); mDisplayPowerProximityStateController = new DisplayPowerProximityStateController( mWakelockController, mDisplayDeviceConfig, mTestLooper.getLooper(), mNudgeUpdatePowerState, Display.DEFAULT_DISPLAY, Loading @@ -176,7 +176,7 @@ public final class DisplayPowerProximityStateControllerTest { @Test public void isProximitySensorAvailableReturnsTrueWhenNotAvailableAndHasDefault() throws Exception { when(mDisplayDeviceConfig.getProximitySensor()).thenReturn(new SensorData()); when(mDisplayDeviceConfig.getProximitySensor()).thenReturn(createSensorData()); when(mSensorManager.getDefaultSensor(Sensor.TYPE_PROXIMITY)).thenReturn( TestUtils.createSensor(Sensor.TYPE_PROXIMITY, "proximity")); mDisplayPowerProximityStateController = new DisplayPowerProximityStateController( Loading @@ -189,7 +189,7 @@ public final class DisplayPowerProximityStateControllerTest { @Test public void isProximitySensorAvailableReturnsFalseWhenNotAvailableHasDefaultNonDefaultDisplay() throws Exception { when(mDisplayDeviceConfig.getProximitySensor()).thenReturn(new SensorData()); when(mDisplayDeviceConfig.getProximitySensor()).thenReturn(createSensorData()); when(mSensorManager.getDefaultSensor(Sensor.TYPE_PROXIMITY)).thenReturn( TestUtils.createSensor(Sensor.TYPE_PROXIMITY, "proximity")); mDisplayPowerProximityStateController = new DisplayPowerProximityStateController( Loading @@ -216,7 +216,7 @@ public final class DisplayPowerProximityStateControllerTest { public void notifyDisplayDeviceChangedReloadsTheProximitySensor() throws Exception { DisplayDeviceConfig updatedDisplayDeviceConfig = mock(DisplayDeviceConfig.class); when(updatedDisplayDeviceConfig.getProximitySensor()).thenReturn( new SensorData(Sensor.STRING_TYPE_PROXIMITY, null)); createSensorData(Sensor.STRING_TYPE_PROXIMITY)); Sensor newProxSensor = TestUtils.createSensor( Sensor.TYPE_PROXIMITY, Sensor.STRING_TYPE_PROXIMITY, 4.0f); when(mSensorManager.getSensorList(eq(Sensor.TYPE_ALL))) Loading Loading
services/core/java/com/android/server/display/config/SensorData.java +16 −25 Original line number Diff line number Diff line Loading @@ -34,6 +34,8 @@ public class SensorData { public static final String TEMPERATURE_TYPE_DISPLAY = "DISPLAY"; public static final String TEMPERATURE_TYPE_SKIN = "SKIN"; private static final SensorData UNSPECIFIED_SENSOR_DATA = new SensorData( /* type= */null, /* name= */ null); @Nullable public final String type; Loading @@ -43,24 +45,14 @@ public class SensorData { public final float maxRefreshRate; public final List<SupportedModeData> supportedModes; @VisibleForTesting public SensorData() { this(/* type= */ null, /* name= */ null); } @VisibleForTesting public SensorData(String type, String name) { this(type, name, /* minRefreshRate= */ 0f, /* maxRefreshRate= */ Float.POSITIVE_INFINITY); } @VisibleForTesting public SensorData(String type, String name, float minRefreshRate, float maxRefreshRate) { this(type, name, minRefreshRate, maxRefreshRate, /* supportedModes= */ List.of()); private SensorData(@Nullable String type, @Nullable String name) { this(type, name, /* minRefreshRate= */ 0f, /* maxRefreshRate= */ Float.POSITIVE_INFINITY, /* supportedModes= */ List.of()); } @VisibleForTesting public SensorData(String type, String name, float minRefreshRate, float maxRefreshRate, List<SupportedModeData> supportedModes) { SensorData(@Nullable String type, @Nullable String name, float minRefreshRate, float maxRefreshRate, List<SupportedModeData> supportedModes) { this.type = type; this.name = name; this.minRefreshRate = minRefreshRate; Loading @@ -72,7 +64,7 @@ public class SensorData { * @return True if the sensor matches both the specified name and type, or one if only one * is specified (not-empty). Always returns false if both parameters are null or empty. */ public boolean matches(String sensorName, String sensorType) { public boolean matches(@Nullable String sensorName, @Nullable String sensorType) { final boolean isNameSpecified = !TextUtils.isEmpty(sensorName); final boolean isTypeSpecified = !TextUtils.isEmpty(sensorType); return (isNameSpecified || isTypeSpecified) Loading Loading @@ -120,7 +112,7 @@ public class SensorData { if (sensorDetails != null) { return loadSensorData(sensorDetails); } else { return new SensorData(); return UNSPECIFIED_SENSOR_DATA; } } Loading @@ -130,13 +122,12 @@ public class SensorData { @Nullable public static SensorData loadProxSensorConfig( DisplayManagerFlags flags, DisplayConfiguration config) { SensorData DEFAULT_SENSOR = new SensorData(); List<SensorDetails> sensorDetailsList = config.getProxSensor(); if (sensorDetailsList.isEmpty()) { return DEFAULT_SENSOR; return UNSPECIFIED_SENSOR_DATA; } SensorData selectedSensor = DEFAULT_SENSOR; SensorData selectedSensor = UNSPECIFIED_SENSOR_DATA; // Prioritize flagged sensors. for (SensorDetails sensorDetails : sensorDetailsList) { String flagStr = sensorDetails.getFeatureFlag(); Loading @@ -148,7 +139,7 @@ public class SensorData { } // Check for normal un-flagged sensor if a flagged one wasn't found. if (DEFAULT_SENSOR == selectedSensor) { if (UNSPECIFIED_SENSOR_DATA == selectedSensor) { for (SensorDetails sensorDetails : sensorDetailsList) { if (sensorDetails.getFeatureFlag() != null) { continue; Loading @@ -159,7 +150,7 @@ public class SensorData { } // Check if we shouldn't use a sensor at all. if (DEFAULT_SENSOR != selectedSensor) { if (UNSPECIFIED_SENSOR_DATA != selectedSensor) { if ("".equals(selectedSensor.name) && "".equals(selectedSensor.type)) { // <proxSensor> with empty values to the config means no sensor should be used. // See also {@link com.android.server.display.utils.SensorUtils} Loading @@ -174,7 +165,7 @@ public class SensorData { * Loads temperature sensor data for no config case. (Type: SKIN, Name: null) */ public static SensorData loadTempSensorUnspecifiedConfig() { return new SensorData(TEMPERATURE_TYPE_SKIN, null); return new SensorData(TEMPERATURE_TYPE_SKIN, /* name= */ null); } /** Loading @@ -185,7 +176,7 @@ public class SensorData { DisplayConfiguration config) { SensorDetails sensorDetails = config.getTempSensor(); if (!flags.isSensorBasedBrightnessThrottlingEnabled() || sensorDetails == null) { return new SensorData(TEMPERATURE_TYPE_SKIN, null); return loadTempSensorUnspecifiedConfig(); } String name = sensorDetails.getName(); String type = sensorDetails.getType(); Loading @@ -202,7 +193,7 @@ public class SensorData { */ @NonNull public static SensorData loadSensorUnspecifiedConfig() { return new SensorData(); return UNSPECIFIED_SENSOR_DATA; } private static SensorData loadSensorData(@NonNull SensorDetails sensorDetails) { Loading
services/tests/displayservicetests/src/com/android/server/display/BrightnessThrottlerTest.java +3 −1 Original line number Diff line number Diff line Loading @@ -16,6 +16,8 @@ package com.android.server.display; import static com.android.server.display.config.DisplayDeviceConfigTestUtilsKt.createSensorData; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotEquals; Loading Loading @@ -301,7 +303,7 @@ public class BrightnessThrottlerTest { new ThrottlingLevel(PowerManager.THERMAL_STATUS_CRITICAL, 0.25f); List<ThrottlingLevel> levels = new ArrayList<>(List.of(level)); final ThermalBrightnessThrottlingData data = ThermalBrightnessThrottlingData.create(levels); final SensorData tempSensor = new SensorData("DISPLAY", "VIRTUAL-SKIN-DISPLAY"); final SensorData tempSensor = createSensorData("DISPLAY", "VIRTUAL-SKIN-DISPLAY"); final BrightnessThrottler throttler = createThrottlerSupportedWithTempSensor(data, tempSensor); assertTrue(throttler.deviceSupportsThrottling()); Loading
services/tests/displayservicetests/src/com/android/server/display/DisplayManagerServiceTest.java +2 −1 Original line number Diff line number Diff line Loading @@ -31,6 +31,7 @@ import static android.view.ContentRecordingSession.RECORD_CONTENT_TASK; import static com.android.dx.mockito.inline.extended.ExtendedMockito.doAnswer; import static com.android.server.display.ExternalDisplayPolicy.ENABLE_ON_CONNECT; import static com.android.server.display.VirtualDisplayAdapter.UNIQUE_ID_PREFIX; import static com.android.server.display.config.DisplayDeviceConfigTestUtilsKt.createSensorData; import static com.google.common.truth.Truth.assertThat; import static com.google.common.truth.Truth.assertWithMessage; Loading Loading @@ -2423,7 +2424,7 @@ public class DisplayManagerServiceTest { String testSensorType = "testType"; Sensor testSensor = TestUtils.createSensor(testSensorType, testSensorName); SensorData sensorData = new SensorData(testSensorType, testSensorName, SensorData sensorData = createSensorData(testSensorType, testSensorName, /* minRefreshRate= */ 10f, /* maxRefreshRate= */ 100f); when(mMockDisplayDeviceConfig.getProximitySensor()).thenReturn(sensorData); Loading
services/tests/displayservicetests/src/com/android/server/display/DisplayPowerControllerTest.java +4 −4 Original line number Diff line number Diff line Loading @@ -21,6 +21,7 @@ import static com.android.dx.mockito.inline.extended.ExtendedMockito.verify; import static com.android.server.display.AutomaticBrightnessController.AUTO_BRIGHTNESS_MODE_DEFAULT; import static com.android.server.display.AutomaticBrightnessController.AUTO_BRIGHTNESS_MODE_DOZE; import static com.android.server.display.AutomaticBrightnessController.AUTO_BRIGHTNESS_MODE_IDLE; import static com.android.server.display.config.DisplayDeviceConfigTestUtilsKt.createSensorData; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; Loading Loading @@ -85,7 +86,6 @@ import com.android.server.display.brightness.clamper.HdrClamper; import com.android.server.display.color.ColorDisplayService; import com.android.server.display.config.HighBrightnessModeData; import com.android.server.display.config.HysteresisLevels; import com.android.server.display.config.SensorData; import com.android.server.display.feature.DisplayManagerFlags; import com.android.server.display.feature.flags.Flags; import com.android.server.display.layout.Layout; Loading Loading @@ -2159,13 +2159,13 @@ public final class DisplayPowerControllerTest { when(displayDeviceMock.getNameLocked()).thenReturn(displayName); when(displayDeviceMock.getDisplayDeviceConfig()).thenReturn(displayDeviceConfigMock); when(displayDeviceConfigMock.getProximitySensor()).thenReturn( new SensorData(Sensor.STRING_TYPE_PROXIMITY, null)); createSensorData(Sensor.STRING_TYPE_PROXIMITY)); when(displayDeviceConfigMock.getNits()).thenReturn(new float[]{2, 500}); when(displayDeviceConfigMock.isAutoBrightnessAvailable()).thenReturn(true); when(displayDeviceConfigMock.getAmbientLightSensor()).thenReturn( new SensorData()); createSensorData()); when(displayDeviceConfigMock.getScreenOffBrightnessSensor()).thenReturn( new SensorData(Sensor.STRING_TYPE_LIGHT, null)); createSensorData(Sensor.STRING_TYPE_LIGHT)); when(displayDeviceConfigMock.getScreenOffBrightnessSensorValueToLux()) .thenReturn(new int[0]); when(displayDeviceConfigMock.getDefaultDozeBrightness()) Loading
services/tests/displayservicetests/src/com/android/server/display/DisplayPowerProximityStateControllerTest.java +6 −6 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ package com.android.server.display; import static com.android.dx.mockito.inline.extended.ExtendedMockito.verify; import static com.android.server.display.config.DisplayDeviceConfigTestUtilsKt.createSensorData; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; Loading @@ -37,7 +38,6 @@ import android.view.Display; import androidx.test.ext.junit.runners.AndroidJUnit4; import androidx.test.filters.SmallTest; import com.android.server.display.config.SensorData; import com.android.server.testutils.OffsettableClock; import org.junit.Before; Loading Loading @@ -75,7 +75,7 @@ public final class DisplayPowerProximityStateControllerTest { mClock = new OffsettableClock.Stopped(); mTestLooper = new TestLooper(mClock::now); when(mDisplayDeviceConfig.getProximitySensor()).thenReturn( new SensorData(Sensor.STRING_TYPE_PROXIMITY, null)); createSensorData(Sensor.STRING_TYPE_PROXIMITY)); setUpProxSensor(); DisplayPowerProximityStateController.Injector injector = new DisplayPowerProximityStateController.Injector() { Loading Loading @@ -165,7 +165,7 @@ public final class DisplayPowerProximityStateControllerTest { @Test public void isProximitySensorAvailableReturnsFalseWhenNotAvailableAndNoDefault() { when(mDisplayDeviceConfig.getProximitySensor()).thenReturn(new SensorData()); when(mDisplayDeviceConfig.getProximitySensor()).thenReturn(createSensorData()); mDisplayPowerProximityStateController = new DisplayPowerProximityStateController( mWakelockController, mDisplayDeviceConfig, mTestLooper.getLooper(), mNudgeUpdatePowerState, Display.DEFAULT_DISPLAY, Loading @@ -176,7 +176,7 @@ public final class DisplayPowerProximityStateControllerTest { @Test public void isProximitySensorAvailableReturnsTrueWhenNotAvailableAndHasDefault() throws Exception { when(mDisplayDeviceConfig.getProximitySensor()).thenReturn(new SensorData()); when(mDisplayDeviceConfig.getProximitySensor()).thenReturn(createSensorData()); when(mSensorManager.getDefaultSensor(Sensor.TYPE_PROXIMITY)).thenReturn( TestUtils.createSensor(Sensor.TYPE_PROXIMITY, "proximity")); mDisplayPowerProximityStateController = new DisplayPowerProximityStateController( Loading @@ -189,7 +189,7 @@ public final class DisplayPowerProximityStateControllerTest { @Test public void isProximitySensorAvailableReturnsFalseWhenNotAvailableHasDefaultNonDefaultDisplay() throws Exception { when(mDisplayDeviceConfig.getProximitySensor()).thenReturn(new SensorData()); when(mDisplayDeviceConfig.getProximitySensor()).thenReturn(createSensorData()); when(mSensorManager.getDefaultSensor(Sensor.TYPE_PROXIMITY)).thenReturn( TestUtils.createSensor(Sensor.TYPE_PROXIMITY, "proximity")); mDisplayPowerProximityStateController = new DisplayPowerProximityStateController( Loading @@ -216,7 +216,7 @@ public final class DisplayPowerProximityStateControllerTest { public void notifyDisplayDeviceChangedReloadsTheProximitySensor() throws Exception { DisplayDeviceConfig updatedDisplayDeviceConfig = mock(DisplayDeviceConfig.class); when(updatedDisplayDeviceConfig.getProximitySensor()).thenReturn( new SensorData(Sensor.STRING_TYPE_PROXIMITY, null)); createSensorData(Sensor.STRING_TYPE_PROXIMITY)); Sensor newProxSensor = TestUtils.createSensor( Sensor.TYPE_PROXIMITY, Sensor.STRING_TYPE_PROXIMITY, 4.0f); when(mSensorManager.getSensorList(eq(Sensor.TYPE_ALL))) Loading