From 35d7de0bf2b7d19e72d4db5f629c14f0d1fca4bd Mon Sep 17 00:00:00 2001 From: chaviw Date: Wed, 23 Aug 2017 12:29:02 -0700 Subject: [PATCH] Check for null appToken AppWindowToken can be null for non-app windows. Test: Existing tests pass Fixes: 65018183 Change-Id: I81c7e4e2bec40c588771cc46e4a8061c7112765a --- .../java/com/android/server/wm/WindowStateAnimator.java | 7 +++++-- 1 file 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 053ee970f9ae8..dd887e0c08825 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; } }