OSDN Git Service

Continue with the animation if wallpaper fails to draw
authorWinson Chung <winsonc@google.com>
Tue, 18 Jun 2019 18:22:53 +0000 (11:22 -0700)
committerWinson Chung <winsonc@google.com>
Fri, 21 Jun 2019 17:28:35 +0000 (17:28 +0000)
- This is preferable to canceling the animation, which the user just
  interprets as the nav gesture not working, and may fix some cases
  where the user may interpret a swipe up as not working if the wallpaper
  is slow to draw.

Bug: 135536076
Bug: 134091263
Test: atest RecentsAnimationTests
Test: atest RecentsAnimationControllerTests
Change-Id: Icf9ed20971a701a254383c65aa1811a99680ba51

services/core/java/com/android/server/wm/WallpaperController.java

index da873b8..21410c4 100644 (file)
@@ -24,7 +24,6 @@ import static android.view.WindowManager.LayoutParams.TYPE_WALLPAPER;
 import static android.view.WindowManager.TRANSIT_FLAG_KEYGUARD_GOING_AWAY_WITH_WALLPAPER;
 
 import static com.android.server.policy.WindowManagerPolicy.FINISH_LAYOUT_REDO_WALLPAPER;
-import static com.android.server.wm.RecentsAnimationController.REORDER_MOVE_TO_ORIGINAL_POSITION;
 import static com.android.server.wm.WindowManagerDebugConfig.DEBUG_APP_TRANSITIONS;
 import static com.android.server.wm.WindowManagerDebugConfig.DEBUG_SCREENSHOT;
 import static com.android.server.wm.WindowManagerDebugConfig.DEBUG_WALLPAPER;
@@ -612,10 +611,10 @@ class WallpaperController {
             if (DEBUG_APP_TRANSITIONS || DEBUG_WALLPAPER) Slog.v(TAG,
                     "*** WALLPAPER DRAW TIMEOUT");
 
-            // If there was a recents animation in progress, cancel that animation
+            // If there was a pending recents animation, start the animation anyways (it's better
+            // to not see the wallpaper than for the animation to not start)
             if (mService.getRecentsAnimationController() != null) {
-                mService.getRecentsAnimationController().cancelAnimation(
-                        REORDER_MOVE_TO_ORIGINAL_POSITION, "wallpaperDrawPendingTimeout");
+                mService.getRecentsAnimationController().startAnimation();
             }
             return true;
         }