Promote keyguardGoingAwayWallpaper check condition.

Transit is moved to WindowContainer. Promote the check from
activityRecord to animatingContainer.
Also fix the duration of non-app window transition have not scaled.

Fixes: 152016945
Test: atest WallpaperControllerTests AppTransitionControllerTest
Change-Id: Icb09841db1c1db9195d34635163792139ba2e095
This commit is contained in:
wilsonshih
2020-03-25 11:57:29 +08:00
parent 393c9121ce
commit cb867f5337
2 changed files with 8 additions and 7 deletions

View File

@@ -618,6 +618,7 @@ public class AppTransitionController {
Animation anim = mService.mPolicy.createKeyguardWallpaperExit(
(flags & TRANSIT_FLAG_KEYGUARD_GOING_AWAY_TO_SHADE) != 0);
if (anim != null) {
anim.scaleCurrentDuration(mService.getTransitionAnimationScaleLocked());
mDisplayContent.mWallpaperController.startWallpaperAnimation(anim);
}
}

View File

@@ -142,11 +142,13 @@ class WallpaperController {
mFindResults.setUseTopWallpaperAsTarget(true);
}
final boolean keyguardGoingAwayWithWallpaper = (w.mActivityRecord != null
&& w.mActivityRecord.isAnimating(TRANSITION | PARENTS)
&& AppTransition.isKeyguardGoingAwayTransit(w.mActivityRecord.getTransit())
&& (w.mActivityRecord.getTransitFlags()
& TRANSIT_FLAG_KEYGUARD_GOING_AWAY_WITH_WALLPAPER) != 0);
final WindowContainer animatingContainer = w.mActivityRecord != null
? w.mActivityRecord.getAnimatingContainer() : null;
final boolean keyguardGoingAwayWithWallpaper = (animatingContainer != null
&& animatingContainer.isAnimating(TRANSITION | PARENTS)
&& AppTransition.isKeyguardGoingAwayTransit(animatingContainer.mTransit)
&& (animatingContainer.mTransitFlags
& TRANSIT_FLAG_KEYGUARD_GOING_AWAY_WITH_WALLPAPER) != 0);
boolean needsShowWhenLockedWallpaper = false;
if ((w.mAttrs.flags & FLAG_SHOW_WHEN_LOCKED) != 0
@@ -166,8 +168,6 @@ class WallpaperController {
final RecentsAnimationController recentsAnimationController =
mService.getRecentsAnimationController();
final WindowContainer animatingContainer =
w.mActivityRecord != null ? w.mActivityRecord.getAnimatingContainer() : null;
final boolean animationWallpaper = animatingContainer != null
&& animatingContainer.getAnimation() != null
&& animatingContainer.getAnimation().getShowWallpaper();