Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b2cbd9dc authored by Riddle Hsu's avatar Riddle Hsu Committed by Android (Google) Code Review
Browse files

Merge "Fix NPE when popping ANR dialog for system"

parents 58423362 03c86424
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -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);
        }
    }
+3 −6
Original line number Diff line number Diff line
@@ -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;
        }