Fix issue #2149126: unable to answer incoming call, various problems
Now that we can have a non-app-window cross-wallpaper animation,
we need to make sure to not access a null app token.
Change-Id: Ia00debd4b2b431d15bd074927a9035e1bc0a6445
diff --git a/services/java/com/android/server/WindowManagerService.java b/services/java/com/android/server/WindowManagerService.java
index 01a4122..84ed3ed 100644
--- a/services/java/com/android/server/WindowManagerService.java
+++ b/services/java/com/android/server/WindowManagerService.java
@@ -1396,12 +1396,15 @@
}
}
- } else {
+ } else if (mLowerWallpaperTarget != null) {
// Is it time to stop animating?
- if (mLowerWallpaperTarget == null
- || mLowerWallpaperTarget.mAppToken.animation == null
- || mUpperWallpaperTarget == null
- || mUpperWallpaperTarget.mAppToken.animation == null) {
+ boolean lowerAnimating = mLowerWallpaperTarget.mAnimation != null
+ || (mLowerWallpaperTarget.mAppToken != null
+ && mLowerWallpaperTarget.mAppToken.animation != null);
+ boolean upperAnimating = mUpperWallpaperTarget.mAnimation != null
+ || (mUpperWallpaperTarget.mAppToken != null
+ && mUpperWallpaperTarget.mAppToken.animation != null);
+ if (!lowerAnimating || !upperAnimating) {
if (DEBUG_WALLPAPER) {
Log.v(TAG, "No longer animating wallpaper targets!");
}