diff --git a/services/java/com/android/server/WindowManagerService.java b/services/java/com/android/server/WindowManagerService.java index 01a4122c49fb0..84ed3ed8bc9c2 100644 --- a/services/java/com/android/server/WindowManagerService.java +++ b/services/java/com/android/server/WindowManagerService.java @@ -1396,12 +1396,15 @@ public class WindowManagerService extends IWindowManager.Stub } } - } 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!"); }