summaryrefslogtreecommitdiff
path: root/services/tests
diff options
context:
space:
mode:
authorXin Li <delphij@google.com>2021-03-01 00:53:13 -0800
committerXin Li <delphij@google.com>2021-03-01 01:06:43 -0800
commit4bbe2a2df3bce309ec7926771af545c8ca0137bd (patch)
tree813a0be1088da4ea0fd50ceb97e55ba15e686a2e /services/tests
parent80d1724769c106e7d16e02969e7ffaf8da7bf7eb (diff)
parentb17db7a3dd48bbbfd4ad7e914aefeabbf82df7d6 (diff)
Merge RQ2A.210305.007 into stage.
Bug: 180401296 Merged-In: I1a16808426934f4a8d12410576d769443e4c2a04 Change-Id: I247a99c33c62cd1d000b7e50d1dda8b14df229d7
Diffstat (limited to 'services/tests')
-rw-r--r--services/tests/servicestests/Android.bp3
-rw-r--r--services/tests/servicestests/src/com/android/server/display/DisplayModeDirectorTest.java417
-rw-r--r--services/tests/wmtests/src/com/android/server/wm/HighRefreshRateBlacklistTest.java2
-rw-r--r--services/tests/wmtests/src/com/android/server/wm/WindowManagerConstantsTest.java2
-rw-r--r--services/tests/wmtests/src/com/android/server/wm/utils/FakeDeviceConfigInterface.java (renamed from services/tests/servicestests/utils/com/android/server/testutils/FakeDeviceConfigInterface.java)16
5 files changed, 18 insertions, 422 deletions
diff --git a/services/tests/servicestests/Android.bp b/services/tests/servicestests/Android.bp
index 11d050c0dc7e..08e2def8d10d 100644
--- a/services/tests/servicestests/Android.bp
+++ b/services/tests/servicestests/Android.bp
@@ -57,6 +57,7 @@ android_test {
// TODO: remove once Android migrates to JUnit 4.12,
// which provides assertThrows
"testng",
+
],
aidl: {
@@ -118,7 +119,6 @@ java_library {
"utils/**/*.java",
"utils/**/*.kt",
"utils-mockito/**/*.kt",
- ":services.core-sources-deviceconfig-interface",
],
static_libs: [
"junit",
@@ -135,7 +135,6 @@ java_library {
"utils/**/*.java",
"utils/**/*.kt",
"utils-mockito/**/*.kt",
- ":services.core-sources-deviceconfig-interface",
],
static_libs: [
"junit",
diff --git a/services/tests/servicestests/src/com/android/server/display/DisplayModeDirectorTest.java b/services/tests/servicestests/src/com/android/server/display/DisplayModeDirectorTest.java
index c467ee949aeb..43a396d8e5d7 100644
--- a/services/tests/servicestests/src/com/android/server/display/DisplayModeDirectorTest.java
+++ b/services/tests/servicestests/src/com/android/server/display/DisplayModeDirectorTest.java
@@ -16,99 +16,49 @@
package com.android.server.display;
-import static android.hardware.display.DisplayManager.DeviceConfig.KEY_FIXED_REFRESH_RATE_HIGH_AMBIENT_BRIGHTNESS_THRESHOLDS;
-import static android.hardware.display.DisplayManager.DeviceConfig.KEY_FIXED_REFRESH_RATE_HIGH_DISPLAY_BRIGHTNESS_THRESHOLDS;
-import static android.hardware.display.DisplayManager.DeviceConfig.KEY_FIXED_REFRESH_RATE_LOW_AMBIENT_BRIGHTNESS_THRESHOLDS;
-import static android.hardware.display.DisplayManager.DeviceConfig.KEY_FIXED_REFRESH_RATE_LOW_DISPLAY_BRIGHTNESS_THRESHOLDS;
-import static android.hardware.display.DisplayManager.DeviceConfig.KEY_REFRESH_RATE_IN_HIGH_ZONE;
-import static android.hardware.display.DisplayManager.DeviceConfig.KEY_REFRESH_RATE_IN_LOW_ZONE;
-
-import static com.android.server.display.DisplayModeDirector.Vote.PRIORITY_FLICKER;
-
-import static com.google.common.truth.Truth.assertThat;
-
import static org.junit.Assert.assertTrue;
-import static org.mockito.ArgumentMatchers.anyInt;
-import static org.mockito.ArgumentMatchers.eq;
-import static org.mockito.Mockito.any;
-import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-import android.annotation.NonNull;
-import android.content.ContentResolver;
import android.content.Context;
-import android.content.ContextWrapper;
-import android.database.ContentObserver;
-import android.hardware.Sensor;
-import android.hardware.SensorEventListener;
-import android.hardware.SensorManager;
import android.os.Handler;
import android.os.Looper;
-import android.provider.DeviceConfig;
-import android.provider.Settings;
-import android.test.mock.MockContentResolver;
-import android.util.Slog;
import android.util.SparseArray;
import android.view.Display;
-import androidx.test.core.app.ApplicationProvider;
+import androidx.test.InstrumentationRegistry;
import androidx.test.filters.SmallTest;
import androidx.test.runner.AndroidJUnit4;
-import com.android.internal.util.Preconditions;
-import com.android.internal.util.test.FakeSettingsProvider;
-import com.android.internal.util.test.FakeSettingsProviderRule;
import com.android.server.display.DisplayModeDirector.BrightnessObserver;
import com.android.server.display.DisplayModeDirector.DesiredDisplayModeSpecs;
import com.android.server.display.DisplayModeDirector.Vote;
-import com.android.server.testutils.FakeDeviceConfigInterface;
import com.google.common.truth.Truth;
import org.junit.Before;
-import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
-import org.mockito.ArgumentCaptor;
import org.mockito.Mockito;
import org.mockito.MockitoAnnotations;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import java.util.concurrent.Executor;
-import java.util.concurrent.TimeUnit;
-import java.util.stream.Collectors;
-
@SmallTest
@RunWith(AndroidJUnit4.class)
public class DisplayModeDirectorTest {
// The tolerance within which we consider something approximately equals.
- private static final String TAG = "DisplayModeDirectorTest";
- private static final boolean DEBUG = false;
private static final float FLOAT_TOLERANCE = 0.01f;
private Context mContext;
- private FakesInjector mInjector;
- private Handler mHandler;
- @Rule
- public FakeSettingsProviderRule mSettingsProviderRule = FakeSettingsProvider.rule();
@Before
public void setUp() throws Exception {
MockitoAnnotations.initMocks(this);
- mContext = spy(new ContextWrapper(ApplicationProvider.getApplicationContext()));
- final MockContentResolver resolver = mSettingsProviderRule.mockContentResolver(mContext);
- when(mContext.getContentResolver()).thenReturn(resolver);
- mInjector = new FakesInjector();
- mHandler = new Handler(Looper.getMainLooper());
+ mContext = InstrumentationRegistry.getInstrumentation().getTargetContext();
}
private DisplayModeDirector createDirectorFromRefreshRateArray(
float[] refreshRates, int baseModeId) {
DisplayModeDirector director =
- new DisplayModeDirector(mContext, mHandler, mInjector);
+ new DisplayModeDirector(mContext, new Handler(Looper.getMainLooper()));
int displayId = 0;
Display.Mode[] modes = new Display.Mode[refreshRates.length];
for (int i = 0; i < refreshRates.length; i++) {
@@ -209,9 +159,9 @@ public class DisplayModeDirectorTest {
}
@Test
- public void testFlickerHasLowerPriorityThanUser() {
- assertTrue(PRIORITY_FLICKER < Vote.PRIORITY_APP_REQUEST_REFRESH_RATE);
- assertTrue(PRIORITY_FLICKER < Vote.PRIORITY_APP_REQUEST_SIZE);
+ public void testBrightnessHasLowerPriorityThanUser() {
+ assertTrue(Vote.PRIORITY_LOW_BRIGHTNESS < Vote.PRIORITY_APP_REQUEST_REFRESH_RATE);
+ assertTrue(Vote.PRIORITY_LOW_BRIGHTNESS < Vote.PRIORITY_APP_REQUEST_SIZE);
int displayId = 0;
DisplayModeDirector director = createDirectorFromFpsRange(60, 90);
@@ -219,7 +169,7 @@ public class DisplayModeDirectorTest {
SparseArray<SparseArray<Vote>> votesByDisplay = new SparseArray<>();
votesByDisplay.put(displayId, votes);
votes.put(Vote.PRIORITY_APP_REQUEST_REFRESH_RATE, Vote.forRefreshRates(60, 90));
- votes.put(PRIORITY_FLICKER, Vote.forRefreshRates(60, 60));
+ votes.put(Vote.PRIORITY_LOW_BRIGHTNESS, Vote.forRefreshRates(60, 60));
director.injectVotesByDisplay(votesByDisplay);
DesiredDisplayModeSpecs desiredSpecs = director.getDesiredDisplayModeSpecs(displayId);
Truth.assertThat(desiredSpecs.primaryRefreshRateRange.min).isWithin(FLOAT_TOLERANCE).of(60);
@@ -227,7 +177,7 @@ public class DisplayModeDirectorTest {
votes.clear();
votes.put(Vote.PRIORITY_APP_REQUEST_REFRESH_RATE, Vote.forRefreshRates(60, 90));
- votes.put(PRIORITY_FLICKER, Vote.forRefreshRates(90, 90));
+ votes.put(Vote.PRIORITY_LOW_BRIGHTNESS, Vote.forRefreshRates(90, 90));
director.injectVotesByDisplay(votesByDisplay);
desiredSpecs = director.getDesiredDisplayModeSpecs(displayId);
Truth.assertThat(desiredSpecs.primaryRefreshRateRange.min).isWithin(FLOAT_TOLERANCE).of(90);
@@ -235,7 +185,7 @@ public class DisplayModeDirectorTest {
votes.clear();
votes.put(Vote.PRIORITY_APP_REQUEST_REFRESH_RATE, Vote.forRefreshRates(90, 90));
- votes.put(PRIORITY_FLICKER, Vote.forRefreshRates(60, 60));
+ votes.put(Vote.PRIORITY_LOW_BRIGHTNESS, Vote.forRefreshRates(60, 60));
director.injectVotesByDisplay(votesByDisplay);
desiredSpecs = director.getDesiredDisplayModeSpecs(displayId);
Truth.assertThat(desiredSpecs.primaryRefreshRateRange.min).isWithin(FLOAT_TOLERANCE).of(90);
@@ -243,7 +193,7 @@ public class DisplayModeDirectorTest {
votes.clear();
votes.put(Vote.PRIORITY_APP_REQUEST_REFRESH_RATE, Vote.forRefreshRates(60, 60));
- votes.put(PRIORITY_FLICKER, Vote.forRefreshRates(90, 90));
+ votes.put(Vote.PRIORITY_LOW_BRIGHTNESS, Vote.forRefreshRates(90, 90));
director.injectVotesByDisplay(votesByDisplay);
desiredSpecs = director.getDesiredDisplayModeSpecs(displayId);
Truth.assertThat(desiredSpecs.primaryRefreshRateRange.min).isWithin(FLOAT_TOLERANCE).of(60);
@@ -252,10 +202,10 @@ public class DisplayModeDirectorTest {
@Test
public void testAppRequestRefreshRateRange() {
- // Confirm that the app request range doesn't include flicker or min refresh rate settings,
- // but does include everything else.
+ // Confirm that the app request range doesn't include low brightness or min refresh rate
+ // settings, but does include everything else.
assertTrue(
- PRIORITY_FLICKER < Vote.APP_REQUEST_REFRESH_RATE_RANGE_PRIORITY_CUTOFF);
+ Vote.PRIORITY_LOW_BRIGHTNESS < Vote.APP_REQUEST_REFRESH_RATE_RANGE_PRIORITY_CUTOFF);
assertTrue(Vote.PRIORITY_USER_SETTING_MIN_REFRESH_RATE
< Vote.APP_REQUEST_REFRESH_RATE_RANGE_PRIORITY_CUTOFF);
assertTrue(Vote.PRIORITY_APP_REQUEST_REFRESH_RATE
@@ -266,7 +216,7 @@ public class DisplayModeDirectorTest {
SparseArray<Vote> votes = new SparseArray<>();
SparseArray<SparseArray<Vote>> votesByDisplay = new SparseArray<>();
votesByDisplay.put(displayId, votes);
- votes.put(PRIORITY_FLICKER, Vote.forRefreshRates(60, 60));
+ votes.put(Vote.PRIORITY_LOW_BRIGHTNESS, Vote.forRefreshRates(60, 60));
director.injectVotesByDisplay(votesByDisplay);
DesiredDisplayModeSpecs desiredSpecs = director.getDesiredDisplayModeSpecs(displayId);
Truth.assertThat(desiredSpecs.primaryRefreshRateRange.min).isWithin(FLOAT_TOLERANCE).of(60);
@@ -352,343 +302,4 @@ public class DisplayModeDirectorTest {
verifyBrightnessObserverCall(director, 90, 90, 0, 90, 90);
verifyBrightnessObserverCall(director, 120, 90, 0, 120, 90);
}
-
- @Test
- public void testBrightnessObserverGetsUpdatedRefreshRatesForZone() {
- DisplayModeDirector director =
- createDirectorFromRefreshRateArray(new float[] {60.f, 90.f}, /* baseModeId= */ 0);
- SensorManager sensorManager = createMockSensorManager(createLightSensor());
-
- final int initialRefreshRate = 60;
- mInjector.getDeviceConfig().setRefreshRateInLowZone(initialRefreshRate);
- director.start(sensorManager);
- assertThat(director.getBrightnessObserver().getRefreshRateInLowZone())
- .isEqualTo(initialRefreshRate);
-
- final int updatedRefreshRate = 90;
- mInjector.getDeviceConfig().setRefreshRateInLowZone(updatedRefreshRate);
- // Need to wait for the property change to propagate to the main thread.
- waitForIdleSync();
- assertThat(director.getBrightnessObserver().getRefreshRateInLowZone())
- .isEqualTo(updatedRefreshRate);
- }
-
- @Test
- public void testBrightnessObserverThresholdsInZone() {
- DisplayModeDirector director =
- createDirectorFromRefreshRateArray(new float[] {60.f, 90.f}, /* baseModeId= */ 0);
- SensorManager sensorManager = createMockSensorManager(createLightSensor());
-
- final int[] initialDisplayThresholds = { 10 };
- final int[] initialAmbientThresholds = { 20 };
-
- final FakeDeviceConfig config = mInjector.getDeviceConfig();
- config.setLowDisplayBrightnessThresholds(initialDisplayThresholds);
- config.setLowAmbientBrightnessThresholds(initialAmbientThresholds);
- director.start(sensorManager);
-
- assertThat(director.getBrightnessObserver().getLowDisplayBrightnessThresholds())
- .isEqualTo(initialDisplayThresholds);
- assertThat(director.getBrightnessObserver().getLowAmbientBrightnessThresholds())
- .isEqualTo(initialAmbientThresholds);
-
- final int[] updatedDisplayThresholds = { 9, 14 };
- final int[] updatedAmbientThresholds = { -1, 19 };
- config.setLowDisplayBrightnessThresholds(updatedDisplayThresholds);
- config.setLowAmbientBrightnessThresholds(updatedAmbientThresholds);
- // Need to wait for the property change to propagate to the main thread.
- waitForIdleSync();
- assertThat(director.getBrightnessObserver().getLowDisplayBrightnessThresholds())
- .isEqualTo(updatedDisplayThresholds);
- assertThat(director.getBrightnessObserver().getLowAmbientBrightnessThresholds())
- .isEqualTo(updatedAmbientThresholds);
- }
-
- @Test
- public void testLockFpsForLowZone() throws Exception {
- DisplayModeDirector director =
- createDirectorFromRefreshRateArray(new float[] {60.f, 90.f}, 0);
- setPeakRefreshRate(90);
- director.getSettingsObserver().setDefaultRefreshRate(90);
- director.getBrightnessObserver().setDefaultDisplayState(true);
-
- final FakeDeviceConfig config = mInjector.getDeviceConfig();
- config.setRefreshRateInLowZone(90);
- config.setLowDisplayBrightnessThresholds(new int[] { 10 });
- config.setLowAmbientBrightnessThresholds(new int[] { 20 });
-
- Sensor lightSensor = createLightSensor();
- SensorManager sensorManager = createMockSensorManager(lightSensor);
-
- director.start(sensorManager);
-
- ArgumentCaptor<SensorEventListener> listenerCaptor =
- ArgumentCaptor.forClass(SensorEventListener.class);
- Mockito.verify(sensorManager, Mockito.timeout(TimeUnit.SECONDS.toMillis(1)))
- .registerListener(
- listenerCaptor.capture(),
- eq(lightSensor),
- anyInt(),
- any(Handler.class));
- SensorEventListener listener = listenerCaptor.getValue();
-
- setBrightness(10);
- // Sensor reads 20 lux,
- listener.onSensorChanged(TestUtils.createSensorEvent(lightSensor, 20 /*lux*/));
-
- Vote vote = director.getVote(Display.DEFAULT_DISPLAY, PRIORITY_FLICKER);
- assertVoteForRefreshRateLocked(vote, 90 /*fps*/);
-
- setBrightness(125);
- // Sensor reads 1000 lux,
- listener.onSensorChanged(TestUtils.createSensorEvent(lightSensor, 1000 /*lux*/));
-
- vote = director.getVote(Display.DEFAULT_DISPLAY, PRIORITY_FLICKER);
- assertThat(vote).isNull();
- }
-
- @Test
- public void testLockFpsForHighZone() throws Exception {
- DisplayModeDirector director =
- createDirectorFromRefreshRateArray(new float[] {60.f, 90.f}, 0);
- setPeakRefreshRate(90 /*fps*/);
- director.getSettingsObserver().setDefaultRefreshRate(90);
- director.getBrightnessObserver().setDefaultDisplayState(true);
-
- final FakeDeviceConfig config = mInjector.getDeviceConfig();
- config.setRefreshRateInHighZone(60);
- config.setHighDisplayBrightnessThresholds(new int[] { 255 });
- config.setHighAmbientBrightnessThresholds(new int[] { 8000 });
-
- Sensor lightSensor = createLightSensor();
- SensorManager sensorManager = createMockSensorManager(lightSensor);
-
- director.start(sensorManager);
-
- ArgumentCaptor<SensorEventListener> listenerCaptor =
- ArgumentCaptor.forClass(SensorEventListener.class);
- Mockito.verify(sensorManager, Mockito.timeout(TimeUnit.SECONDS.toMillis(1)))
- .registerListener(
- listenerCaptor.capture(),
- eq(lightSensor),
- anyInt(),
- any(Handler.class));
- SensorEventListener listener = listenerCaptor.getValue();
-
- setBrightness(100);
- // Sensor reads 2000 lux,
- listener.onSensorChanged(TestUtils.createSensorEvent(lightSensor, 2000));
-
- Vote vote = director.getVote(Display.DEFAULT_DISPLAY, PRIORITY_FLICKER);
- assertThat(vote).isNull();
-
- setBrightness(255);
- // Sensor reads 9000 lux,
- listener.onSensorChanged(TestUtils.createSensorEvent(lightSensor, 9000));
-
- vote = director.getVote(Display.DEFAULT_DISPLAY, PRIORITY_FLICKER);
- assertVoteForRefreshRateLocked(vote, 60 /*fps*/);
- }
-
- private void assertVoteForRefreshRateLocked(Vote vote, float refreshRate) {
- assertThat(vote).isNotNull();
- final DisplayModeDirector.RefreshRateRange expectedRange =
- new DisplayModeDirector.RefreshRateRange(refreshRate, refreshRate);
- assertThat(vote.refreshRateRange).isEqualTo(expectedRange);
- }
-
- private static class FakeDeviceConfig extends FakeDeviceConfigInterface {
- @Override
- public String getProperty(String namespace, String name) {
- Preconditions.checkArgument(DeviceConfig.NAMESPACE_DISPLAY_MANAGER.equals(namespace));
- return super.getProperty(namespace, name);
- }
-
- @Override
- public void addOnPropertiesChangedListener(
- String namespace,
- Executor executor,
- DeviceConfig.OnPropertiesChangedListener listener) {
- Preconditions.checkArgument(DeviceConfig.NAMESPACE_DISPLAY_MANAGER.equals(namespace));
- super.addOnPropertiesChangedListener(namespace, executor, listener);
- }
-
- void setRefreshRateInLowZone(int fps) {
- putPropertyAndNotify(
- DeviceConfig.NAMESPACE_DISPLAY_MANAGER, KEY_REFRESH_RATE_IN_LOW_ZONE,
- String.valueOf(fps));
- }
-
- void setLowDisplayBrightnessThresholds(int[] brightnessThresholds) {
- String thresholds = toPropertyValue(brightnessThresholds);
-
- if (DEBUG) {
- Slog.e(TAG, "Brightness Thresholds = " + thresholds);
- }
-
- putPropertyAndNotify(
- DeviceConfig.NAMESPACE_DISPLAY_MANAGER,
- KEY_FIXED_REFRESH_RATE_LOW_DISPLAY_BRIGHTNESS_THRESHOLDS,
- thresholds);
- }
-
- void setLowAmbientBrightnessThresholds(int[] ambientThresholds) {
- String thresholds = toPropertyValue(ambientThresholds);
-
- if (DEBUG) {
- Slog.e(TAG, "Ambient Thresholds = " + thresholds);
- }
-
- putPropertyAndNotify(
- DeviceConfig.NAMESPACE_DISPLAY_MANAGER,
- KEY_FIXED_REFRESH_RATE_LOW_AMBIENT_BRIGHTNESS_THRESHOLDS,
- thresholds);
- }
-
- void setRefreshRateInHighZone(int fps) {
- putPropertyAndNotify(
- DeviceConfig.NAMESPACE_DISPLAY_MANAGER, KEY_REFRESH_RATE_IN_HIGH_ZONE,
- String.valueOf(fps));
- }
-
- void setHighDisplayBrightnessThresholds(int[] brightnessThresholds) {
- String thresholds = toPropertyValue(brightnessThresholds);
-
- if (DEBUG) {
- Slog.e(TAG, "Brightness Thresholds = " + thresholds);
- }
-
- putPropertyAndNotify(
- DeviceConfig.NAMESPACE_DISPLAY_MANAGER,
- KEY_FIXED_REFRESH_RATE_HIGH_DISPLAY_BRIGHTNESS_THRESHOLDS,
- thresholds);
- }
-
- void setHighAmbientBrightnessThresholds(int[] ambientThresholds) {
- String thresholds = toPropertyValue(ambientThresholds);
-
- if (DEBUG) {
- Slog.e(TAG, "Ambient Thresholds = " + thresholds);
- }
-
- putPropertyAndNotify(
- DeviceConfig.NAMESPACE_DISPLAY_MANAGER,
- KEY_FIXED_REFRESH_RATE_HIGH_AMBIENT_BRIGHTNESS_THRESHOLDS,
- thresholds);
- }
-
- @NonNull
- private static String toPropertyValue(@NonNull int[] intArray) {
- return Arrays.stream(intArray)
- .mapToObj(Integer::toString)
- .collect(Collectors.joining(","));
- }
- }
-
- private void setBrightness(int brightness) {
- Settings.System.putInt(mContext.getContentResolver(), Settings.System.SCREEN_BRIGHTNESS,
- brightness);
- mInjector.notifyBrightnessChanged();
- waitForIdleSync();
- }
-
- private void setPeakRefreshRate(float fps) {
- Settings.System.putFloat(mContext.getContentResolver(), Settings.System.PEAK_REFRESH_RATE,
- fps);
- mInjector.notifyPeakRefreshRateChanged();
- waitForIdleSync();
- }
-
- private static SensorManager createMockSensorManager(Sensor... sensors) {
- SensorManager sensorManager = Mockito.mock(SensorManager.class);
- when(sensorManager.getSensorList(anyInt())).then((invocation) -> {
- List<Sensor> requestedSensors = new ArrayList<>();
- int type = invocation.getArgument(0);
- for (Sensor sensor : sensors) {
- if (sensor.getType() == type || type == Sensor.TYPE_ALL) {
- requestedSensors.add(sensor);
- }
- }
- return requestedSensors;
- });
-
- when(sensorManager.getDefaultSensor(anyInt())).then((invocation) -> {
- int type = invocation.getArgument(0);
- for (Sensor sensor : sensors) {
- if (sensor.getType() == type) {
- return sensor;
- }
- }
- return null;
- });
- return sensorManager;
- }
-
- private static Sensor createLightSensor() {
- try {
- return TestUtils.createSensor(Sensor.TYPE_LIGHT, Sensor.STRING_TYPE_LIGHT);
- } catch (Exception e) {
- // There's nothing we can do if this fails, just throw a RuntimeException so that we
- // don't have to mark every function that might call this as throwing Exception
- throw new RuntimeException("Failed to create a light sensor", e);
- }
- }
-
- private void waitForIdleSync() {
- mHandler.runWithScissors(() -> { }, 500 /*timeout*/);
- }
-
- static class FakesInjector implements DisplayModeDirector.Injector {
- private final FakeDeviceConfig mDeviceConfig;
- private ContentObserver mBrightnessObserver;
- private ContentObserver mPeakRefreshRateObserver;
-
- FakesInjector() {
- mDeviceConfig = new FakeDeviceConfig();
- }
-
- @NonNull
- public FakeDeviceConfig getDeviceConfig() {
- return mDeviceConfig;
- }
-
- @Override
- public void registerBrightnessObserver(@NonNull ContentResolver cr,
- @NonNull ContentObserver observer) {
- if (mBrightnessObserver != null) {
- throw new IllegalStateException("Tried to register a second brightness observer");
- }
- mBrightnessObserver = observer;
- }
-
- @Override
- public void unregisterBrightnessObserver(@NonNull ContentResolver cr,
- @NonNull ContentObserver observer) {
- mBrightnessObserver = null;
- }
-
- void notifyBrightnessChanged() {
- if (mBrightnessObserver != null) {
- mBrightnessObserver.dispatchChange(false /*selfChange*/, DISPLAY_BRIGHTNESS_URI);
- }
- }
-
- @Override
- public void registerPeakRefreshRateObserver(@NonNull ContentResolver cr,
- @NonNull ContentObserver observer) {
- mPeakRefreshRateObserver = observer;
- }
-
- void notifyPeakRefreshRateChanged() {
- if (mPeakRefreshRateObserver != null) {
- mPeakRefreshRateObserver.dispatchChange(false /*selfChange*/,
- PEAK_REFRESH_RATE_URI);
- }
- }
-
- @Override
- public boolean isDeviceInteractive(@NonNull Context context) {
- return true;
- }
- }
}
diff --git a/services/tests/wmtests/src/com/android/server/wm/HighRefreshRateBlacklistTest.java b/services/tests/wmtests/src/com/android/server/wm/HighRefreshRateBlacklistTest.java
index 112b2e98a7f1..f53894ad9ec5 100644
--- a/services/tests/wmtests/src/com/android/server/wm/HighRefreshRateBlacklistTest.java
+++ b/services/tests/wmtests/src/com/android/server/wm/HighRefreshRateBlacklistTest.java
@@ -31,7 +31,7 @@ import androidx.test.filters.SmallTest;
import com.android.internal.R;
import com.android.internal.util.Preconditions;
-import com.android.server.testutils.FakeDeviceConfigInterface;
+import com.android.server.wm.utils.FakeDeviceConfigInterface;
import org.junit.After;
import org.junit.Test;
diff --git a/services/tests/wmtests/src/com/android/server/wm/WindowManagerConstantsTest.java b/services/tests/wmtests/src/com/android/server/wm/WindowManagerConstantsTest.java
index 7a0ef0d7d7a9..52100116df53 100644
--- a/services/tests/wmtests/src/com/android/server/wm/WindowManagerConstantsTest.java
+++ b/services/tests/wmtests/src/com/android/server/wm/WindowManagerConstantsTest.java
@@ -32,7 +32,7 @@ import android.platform.test.annotations.Presubmit;
import androidx.test.filters.SmallTest;
-import com.android.server.testutils.FakeDeviceConfigInterface;
+import com.android.server.wm.utils.FakeDeviceConfigInterface;
import org.junit.After;
import org.junit.Before;
diff --git a/services/tests/servicestests/utils/com/android/server/testutils/FakeDeviceConfigInterface.java b/services/tests/wmtests/src/com/android/server/wm/utils/FakeDeviceConfigInterface.java
index a67f64596ef5..2904a5b73646 100644
--- a/services/tests/servicestests/utils/com/android/server/testutils/FakeDeviceConfigInterface.java
+++ b/services/tests/wmtests/src/com/android/server/wm/utils/FakeDeviceConfigInterface.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.server.testutils;
+package com.android.server.wm.utils;
import android.annotation.NonNull;
import android.provider.DeviceConfig;
@@ -22,7 +22,6 @@ import android.util.ArrayMap;
import android.util.Pair;
import com.android.internal.util.Preconditions;
-import com.android.server.utils.DeviceConfigInterface;
import java.lang.reflect.Constructor;
import java.util.HashMap;
@@ -123,19 +122,6 @@ public class FakeDeviceConfigInterface implements DeviceConfigInterface {
}
@Override
- public float getFloat(String namespace, String name, float defaultValue) {
- String value = getProperty(namespace, name);
- if (value == null) {
- return defaultValue;
- }
- try {
- return Float.parseFloat(value);
- } catch (NumberFormatException e) {
- return defaultValue;
- }
- }
-
- @Override
public boolean getBoolean(String namespace, String name, boolean defaultValue) {
String value = getProperty(namespace, name);
return value != null ? Boolean.parseBoolean(value) : defaultValue;