Loading services/core/java/com/android/server/display/mode/DisplayModeDirector.java +25 −6 Original line number Diff line number Diff line Loading @@ -2322,8 +2322,7 @@ public class DisplayModeDirector { private final SparseBooleanArray mAuthenticationPossible = new SparseBooleanArray(); public void observe() { StatusBarManagerInternal statusBar = LocalServices.getService(StatusBarManagerInternal.class); StatusBarManagerInternal statusBar = mInjector.getStatusBarManagerInternal(); if (statusBar == null) { return; } Loading Loading @@ -2427,10 +2426,9 @@ public class DisplayModeDirector { public void observe() { mDisplayManager = mContext.getSystemService(DisplayManager.class); mDisplayManagerInternal = LocalServices.getService(DisplayManagerInternal.class); mDisplayManagerInternal = mInjector.getDisplayManagerInternal(); final SensorManagerInternal sensorManager = LocalServices.getService(SensorManagerInternal.class); final SensorManagerInternal sensorManager = mInjector.getSensorManagerInternal(); sensorManager.addProximityActiveListener(BackgroundThread.getExecutor(), this); synchronized (mSensorObserverLock) { Loading Loading @@ -2547,7 +2545,7 @@ public class DisplayModeDirector { synchronized (mLock) { setupHdrRefreshRates(mDefaultDisplayDeviceConfig); } mDisplayManagerInternal = LocalServices.getService(DisplayManagerInternal.class); mDisplayManagerInternal = mInjector.getDisplayManagerInternal(); mInjector.registerDisplayListener(this, mHandler, DisplayManager.EVENT_FLAG_DISPLAY_BRIGHTNESS | DisplayManager.EVENT_FLAG_DISPLAY_REMOVED); Loading Loading @@ -2788,6 +2786,12 @@ public class DisplayModeDirector { boolean registerThermalServiceListener(IThermalEventListener listener); boolean supportsFrameRateOverride(); DisplayManagerInternal getDisplayManagerInternal(); StatusBarManagerInternal getStatusBarManagerInternal(); SensorManagerInternal getSensorManagerInternal(); } @VisibleForTesting Loading Loading @@ -2885,6 +2889,21 @@ public class DisplayModeDirector { return SurfaceFlingerProperties.enable_frame_rate_override().orElse(true); } @Override public DisplayManagerInternal getDisplayManagerInternal() { return LocalServices.getService(DisplayManagerInternal.class); } @Override public StatusBarManagerInternal getStatusBarManagerInternal() { return LocalServices.getService(StatusBarManagerInternal.class); } @Override public SensorManagerInternal getSensorManagerInternal() { return LocalServices.getService(SensorManagerInternal.class); } private DisplayManager getDisplayManager() { if (mDisplayManager == null) { mDisplayManager = mContext.getSystemService(DisplayManager.class); Loading services/tests/displayservicetests/src/com/android/server/display/mode/DisplayModeDirectorTest.java +30 −10 Original line number Diff line number Diff line Loading @@ -88,7 +88,6 @@ import com.android.internal.os.BackgroundThread; import com.android.internal.util.Preconditions; import com.android.internal.util.test.FakeSettingsProvider; import com.android.internal.util.test.FakeSettingsProviderRule; import com.android.server.LocalServices; import com.android.server.display.DisplayDeviceConfig; import com.android.server.display.TestUtils; import com.android.server.display.mode.DisplayModeDirector.BrightnessObserver; Loading Loading @@ -149,15 +148,9 @@ public class DisplayModeDirectorTest { mContext = spy(new ContextWrapper(ApplicationProvider.getApplicationContext())); final MockContentResolver resolver = mSettingsProviderRule.mockContentResolver(mContext); when(mContext.getContentResolver()).thenReturn(resolver); mInjector = spy(new FakesInjector()); mInjector = spy(new FakesInjector(mDisplayManagerInternalMock, mStatusBarMock, mSensorManagerInternalMock)); mHandler = new Handler(Looper.getMainLooper()); LocalServices.removeServiceForTest(StatusBarManagerInternal.class); LocalServices.addService(StatusBarManagerInternal.class, mStatusBarMock); LocalServices.removeServiceForTest(SensorManagerInternal.class); LocalServices.addService(SensorManagerInternal.class, mSensorManagerInternalMock); LocalServices.removeServiceForTest(DisplayManagerInternal.class); LocalServices.addService(DisplayManagerInternal.class, mDisplayManagerInternalMock); } private DisplayModeDirector createDirectorFromRefreshRateArray( Loading Loading @@ -2831,16 +2824,28 @@ public class DisplayModeDirectorTest { private final DisplayInfo mDisplayInfo; private final Display mDisplay; private boolean mDisplayInfoValid = true; private ContentObserver mBrightnessObserver; private final DisplayManagerInternal mDisplayManagerInternal; private final StatusBarManagerInternal mStatusBarManagerInternal; private final SensorManagerInternal mSensorManagerInternal; private ContentObserver mPeakRefreshRateObserver; FakesInjector() { this(null, null, null); } FakesInjector(DisplayManagerInternal displayManagerInternal, StatusBarManagerInternal statusBarManagerInternal, SensorManagerInternal sensorManagerInternal) { mDeviceConfig = new FakeDeviceConfig(); mDisplayInfo = new DisplayInfo(); mDisplayInfo.defaultModeId = MODE_ID; mDisplayInfo.supportedModes = new Display.Mode[] {new Display.Mode(MODE_ID, 800, 600, /* refreshRate= */ 60)}; mDisplay = createDisplay(DISPLAY_ID); mDisplayManagerInternal = displayManagerInternal; mStatusBarManagerInternal = statusBarManagerInternal; mSensorManagerInternal = sensorManagerInternal; } @NonNull Loading Loading @@ -2896,6 +2901,21 @@ public class DisplayModeDirectorTest { return true; } @Override public DisplayManagerInternal getDisplayManagerInternal() { return mDisplayManagerInternal; } @Override public StatusBarManagerInternal getStatusBarManagerInternal() { return mStatusBarManagerInternal; } @Override public SensorManagerInternal getSensorManagerInternal() { return mSensorManagerInternal; } protected Display createDisplay(int id) { return new Display(DisplayManagerGlobal.getInstance(), id, mDisplayInfo, ApplicationProvider.getApplicationContext().getResources()); Loading Loading
services/core/java/com/android/server/display/mode/DisplayModeDirector.java +25 −6 Original line number Diff line number Diff line Loading @@ -2322,8 +2322,7 @@ public class DisplayModeDirector { private final SparseBooleanArray mAuthenticationPossible = new SparseBooleanArray(); public void observe() { StatusBarManagerInternal statusBar = LocalServices.getService(StatusBarManagerInternal.class); StatusBarManagerInternal statusBar = mInjector.getStatusBarManagerInternal(); if (statusBar == null) { return; } Loading Loading @@ -2427,10 +2426,9 @@ public class DisplayModeDirector { public void observe() { mDisplayManager = mContext.getSystemService(DisplayManager.class); mDisplayManagerInternal = LocalServices.getService(DisplayManagerInternal.class); mDisplayManagerInternal = mInjector.getDisplayManagerInternal(); final SensorManagerInternal sensorManager = LocalServices.getService(SensorManagerInternal.class); final SensorManagerInternal sensorManager = mInjector.getSensorManagerInternal(); sensorManager.addProximityActiveListener(BackgroundThread.getExecutor(), this); synchronized (mSensorObserverLock) { Loading Loading @@ -2547,7 +2545,7 @@ public class DisplayModeDirector { synchronized (mLock) { setupHdrRefreshRates(mDefaultDisplayDeviceConfig); } mDisplayManagerInternal = LocalServices.getService(DisplayManagerInternal.class); mDisplayManagerInternal = mInjector.getDisplayManagerInternal(); mInjector.registerDisplayListener(this, mHandler, DisplayManager.EVENT_FLAG_DISPLAY_BRIGHTNESS | DisplayManager.EVENT_FLAG_DISPLAY_REMOVED); Loading Loading @@ -2788,6 +2786,12 @@ public class DisplayModeDirector { boolean registerThermalServiceListener(IThermalEventListener listener); boolean supportsFrameRateOverride(); DisplayManagerInternal getDisplayManagerInternal(); StatusBarManagerInternal getStatusBarManagerInternal(); SensorManagerInternal getSensorManagerInternal(); } @VisibleForTesting Loading Loading @@ -2885,6 +2889,21 @@ public class DisplayModeDirector { return SurfaceFlingerProperties.enable_frame_rate_override().orElse(true); } @Override public DisplayManagerInternal getDisplayManagerInternal() { return LocalServices.getService(DisplayManagerInternal.class); } @Override public StatusBarManagerInternal getStatusBarManagerInternal() { return LocalServices.getService(StatusBarManagerInternal.class); } @Override public SensorManagerInternal getSensorManagerInternal() { return LocalServices.getService(SensorManagerInternal.class); } private DisplayManager getDisplayManager() { if (mDisplayManager == null) { mDisplayManager = mContext.getSystemService(DisplayManager.class); Loading
services/tests/displayservicetests/src/com/android/server/display/mode/DisplayModeDirectorTest.java +30 −10 Original line number Diff line number Diff line Loading @@ -88,7 +88,6 @@ import com.android.internal.os.BackgroundThread; import com.android.internal.util.Preconditions; import com.android.internal.util.test.FakeSettingsProvider; import com.android.internal.util.test.FakeSettingsProviderRule; import com.android.server.LocalServices; import com.android.server.display.DisplayDeviceConfig; import com.android.server.display.TestUtils; import com.android.server.display.mode.DisplayModeDirector.BrightnessObserver; Loading Loading @@ -149,15 +148,9 @@ public class DisplayModeDirectorTest { mContext = spy(new ContextWrapper(ApplicationProvider.getApplicationContext())); final MockContentResolver resolver = mSettingsProviderRule.mockContentResolver(mContext); when(mContext.getContentResolver()).thenReturn(resolver); mInjector = spy(new FakesInjector()); mInjector = spy(new FakesInjector(mDisplayManagerInternalMock, mStatusBarMock, mSensorManagerInternalMock)); mHandler = new Handler(Looper.getMainLooper()); LocalServices.removeServiceForTest(StatusBarManagerInternal.class); LocalServices.addService(StatusBarManagerInternal.class, mStatusBarMock); LocalServices.removeServiceForTest(SensorManagerInternal.class); LocalServices.addService(SensorManagerInternal.class, mSensorManagerInternalMock); LocalServices.removeServiceForTest(DisplayManagerInternal.class); LocalServices.addService(DisplayManagerInternal.class, mDisplayManagerInternalMock); } private DisplayModeDirector createDirectorFromRefreshRateArray( Loading Loading @@ -2831,16 +2824,28 @@ public class DisplayModeDirectorTest { private final DisplayInfo mDisplayInfo; private final Display mDisplay; private boolean mDisplayInfoValid = true; private ContentObserver mBrightnessObserver; private final DisplayManagerInternal mDisplayManagerInternal; private final StatusBarManagerInternal mStatusBarManagerInternal; private final SensorManagerInternal mSensorManagerInternal; private ContentObserver mPeakRefreshRateObserver; FakesInjector() { this(null, null, null); } FakesInjector(DisplayManagerInternal displayManagerInternal, StatusBarManagerInternal statusBarManagerInternal, SensorManagerInternal sensorManagerInternal) { mDeviceConfig = new FakeDeviceConfig(); mDisplayInfo = new DisplayInfo(); mDisplayInfo.defaultModeId = MODE_ID; mDisplayInfo.supportedModes = new Display.Mode[] {new Display.Mode(MODE_ID, 800, 600, /* refreshRate= */ 60)}; mDisplay = createDisplay(DISPLAY_ID); mDisplayManagerInternal = displayManagerInternal; mStatusBarManagerInternal = statusBarManagerInternal; mSensorManagerInternal = sensorManagerInternal; } @NonNull Loading Loading @@ -2896,6 +2901,21 @@ public class DisplayModeDirectorTest { return true; } @Override public DisplayManagerInternal getDisplayManagerInternal() { return mDisplayManagerInternal; } @Override public StatusBarManagerInternal getStatusBarManagerInternal() { return mStatusBarManagerInternal; } @Override public SensorManagerInternal getSensorManagerInternal() { return mSensorManagerInternal; } protected Display createDisplay(int id) { return new Display(DisplayManagerGlobal.getInstance(), id, mDisplayInfo, ApplicationProvider.getApplicationContext().getResources()); Loading