diff options
| -rw-r--r-- | services/core/java/com/android/server/wm/WindowStateAnimator.java | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/services/core/java/com/android/server/wm/WindowStateAnimator.java b/services/core/java/com/android/server/wm/WindowStateAnimator.java index 053ee970f9ae..dd887e0c0882 100644 --- a/services/core/java/com/android/server/wm/WindowStateAnimator.java +++ b/services/core/java/com/android/server/wm/WindowStateAnimator.java @@ -1646,14 +1646,17 @@ class WindowStateAnimator { // hidden while the screen is turning off. // TODO(b/63773439): These cases should be eliminated, though we probably still // want to process mTurnOnScreen in this way for clarity. - if (mWin.mTurnOnScreen && mWin.mAppToken.canTurnScreenOn()) { + if (mWin.mTurnOnScreen && + (mWin.mAppToken == null || mWin.mAppToken.canTurnScreenOn())) { if (DEBUG_VISIBILITY) Slog.v(TAG, "Show surface turning screen on: " + mWin); mWin.mTurnOnScreen = false; // The window should only turn the screen on once per resume, but // prepareSurfaceLocked can be called multiple times. Set canTurnScreenOn to // false so the window doesn't turn the screen on again during this resume. - mWin.mAppToken.setCanTurnScreenOn(false); + if (mWin.mAppToken != null) { + mWin.mAppToken.setCanTurnScreenOn(false); + } mAnimator.mBulkUpdateParams |= SET_TURN_ON_SCREEN; } } |