ActivityManagerInternal null check while checking process state
Bug: 390107600
Test: atest DisplayManagerServiceTest
Flag: com.android.server.display.feature.flags.refresh_rate_event_for_foreground_apps
Change-Id: I2977e221ad342a026c915f5869e825ed102925be
diff --git a/services/core/java/com/android/server/display/DisplayManagerService.java b/services/core/java/com/android/server/display/DisplayManagerService.java
index 3598b9b..a11dd3b 100644
--- a/services/core/java/com/android/server/display/DisplayManagerService.java
+++ b/services/core/java/com/android/server/display/DisplayManagerService.java
@@ -4157,7 +4157,8 @@
public boolean shouldReceiveRefreshRateWithChangeUpdate(int event) {
if (mFlags.isRefreshRateEventForForegroundAppsEnabled()
- && event == DisplayManagerGlobal.EVENT_DISPLAY_REFRESH_RATE_CHANGED) {
+ && event == DisplayManagerGlobal.EVENT_DISPLAY_REFRESH_RATE_CHANGED
+ && mActivityManagerInternal != null) {
int procState = mActivityManagerInternal.getUidProcessState(mUid);
int importance = ActivityManager.RunningAppProcessInfo
.procStateToImportance(procState);
diff --git a/services/tests/displayservicetests/src/com/android/server/display/DisplayManagerServiceTest.java b/services/tests/displayservicetests/src/com/android/server/display/DisplayManagerServiceTest.java
index e8b28ac..b5ea0df 100644
--- a/services/tests/displayservicetests/src/com/android/server/display/DisplayManagerServiceTest.java
+++ b/services/tests/displayservicetests/src/com/android/server/display/DisplayManagerServiceTest.java
@@ -2126,11 +2126,12 @@
@Test
public void test_displayChangedNotified_displayInfoFramerateOverridden() {
+ when(mMockFlags.isFramerateOverrideTriggersRrCallbacksEnabled()).thenReturn(false);
+
DisplayManagerService displayManager =
- new DisplayManagerService(mContext, mShortMockedInjector);
+ new DisplayManagerService(mContext, mBasicInjector);
DisplayManagerService.BinderService displayManagerBinderService =
displayManager.new BinderService();
- when(mMockFlags.isFramerateOverrideTriggersRrCallbacksEnabled()).thenReturn(false);
registerDefaultDisplays(displayManager);
displayManager.onBootPhase(SystemService.PHASE_WAIT_FOR_DEFAULT_DISPLAY);