diff options
| author | 2020-01-21 16:12:38 +0000 | |
|---|---|---|
| committer | 2020-01-21 16:12:38 +0000 | |
| commit | b2cbd9dcc2734b1905a8c79c3a903889525540ab (patch) | |
| tree | 90182f7a761094a2a5e9bc1adf68033da8885e29 | |
| parent | 58423362b9f1423b5c0b9e420784877b147f5339 (diff) | |
| parent | 03c8642490de98ca675f199250d7ad91b42664a1 (diff) | |
Merge "Fix NPE when popping ANR dialog for system"
| -rw-r--r-- | services/core/java/com/android/server/am/ActivityManagerService.java | 3 | ||||
| -rw-r--r-- | services/core/java/com/android/server/am/ProcessRecord.java | 9 |
2 files changed, 6 insertions, 6 deletions
diff --git a/services/core/java/com/android/server/am/ActivityManagerService.java b/services/core/java/com/android/server/am/ActivityManagerService.java index b0369752bdaf..d9fbc85fb6e1 100644 --- a/services/core/java/com/android/server/am/ActivityManagerService.java +++ b/services/core/java/com/android/server/am/ActivityManagerService.java @@ -363,6 +363,7 @@ import com.android.server.wm.ActivityMetricsLaunchObserver; import com.android.server.wm.ActivityServiceConnectionsHolder; import com.android.server.wm.ActivityTaskManagerInternal; import com.android.server.wm.ActivityTaskManagerService; +import com.android.server.wm.WindowManagerInternal; import com.android.server.wm.WindowManagerService; import com.android.server.wm.WindowProcessController; @@ -1505,6 +1506,7 @@ public class ActivityManagerService extends IActivityManager.Stub @VisibleForTesting public WindowManagerService mWindowManager; + WindowManagerInternal mWmInternal; @VisibleForTesting public ActivityTaskManagerService mActivityTaskManager; @VisibleForTesting @@ -2085,6 +2087,7 @@ public class ActivityManagerService extends IActivityManager.Stub public void setWindowManager(WindowManagerService wm) { synchronized (this) { mWindowManager = wm; + mWmInternal = LocalServices.getService(WindowManagerInternal.class); mActivityTaskManager.setWindowManager(wm); } } diff --git a/services/core/java/com/android/server/am/ProcessRecord.java b/services/core/java/com/android/server/am/ProcessRecord.java index cbf058700909..0639db02469d 100644 --- a/services/core/java/com/android/server/am/ProcessRecord.java +++ b/services/core/java/com/android/server/am/ProcessRecord.java @@ -65,8 +65,6 @@ import com.android.internal.app.procstats.ProcessStats; import com.android.internal.os.BatteryStatsImpl; import com.android.internal.os.ProcessCpuTracker; import com.android.internal.os.Zygote; -import com.android.server.LocalServices; -import com.android.server.wm.WindowManagerInternal; import com.android.server.wm.WindowProcessController; import com.android.server.wm.WindowProcessListener; @@ -1804,9 +1802,6 @@ class ProcessRecord implements WindowProcessListener { /** current wait for debugger dialog */ private AppWaitingForDebuggerDialog mWaitDialog; - private final WindowManagerInternal mWmInternal = - LocalServices.getService(WindowManagerInternal.class); - boolean hasCrashDialogs() { return mCrashDialogs != null; } @@ -1932,7 +1927,9 @@ class ProcessRecord implements WindowProcessListener { } // If there is no foreground window display, fallback to last used display. if (displayContexts.isEmpty() || lastUsedOnly) { - displayContexts.add(mWmInternal.getTopFocusedDisplayUiContext()); + displayContexts.add(mService.mWmInternal != null + ? mService.mWmInternal.getTopFocusedDisplayUiContext() + : mService.mUiContext); } return displayContexts; } |