summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--services/core/java/com/android/server/wm/WindowStateAnimator.java7
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;
}
}