Merge "Reduce operations in postApplyAnimation for shell transition" into tm-qpr-dev
This commit is contained in:
@@ -5443,25 +5443,20 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A
|
||||
*/
|
||||
private void postApplyAnimation(boolean visible, boolean fromTransition) {
|
||||
final boolean usingShellTransitions = mTransitionController.isShellTransitionsEnabled();
|
||||
final boolean delayed = isAnimating(PARENTS | CHILDREN,
|
||||
final boolean delayed = !usingShellTransitions && isAnimating(PARENTS | CHILDREN,
|
||||
ANIMATION_TYPE_APP_TRANSITION | ANIMATION_TYPE_WINDOW_ANIMATION
|
||||
| ANIMATION_TYPE_RECENTS);
|
||||
if (!delayed) {
|
||||
if (!delayed && !usingShellTransitions) {
|
||||
// We aren't delayed anything, but exiting windows rely on the animation finished
|
||||
// callback being called in case the ActivityRecord was pretending to be delayed,
|
||||
// which we might have done because we were in closing/opening apps list.
|
||||
if (!usingShellTransitions) {
|
||||
onAnimationFinished(ANIMATION_TYPE_APP_TRANSITION, null /* AnimationAdapter */);
|
||||
if (visible) {
|
||||
// The token was made immediately visible, there will be no entrance animation.
|
||||
// We need to inform the client the enter animation was finished.
|
||||
mEnteringAnimation = true;
|
||||
mWmService.mActivityManagerAppTransitionNotifier.onAppTransitionFinishedLocked(
|
||||
token);
|
||||
}
|
||||
} else {
|
||||
// update wallpaper target
|
||||
setAppLayoutChanges(FINISH_LAYOUT_REDO_WALLPAPER, "ActivityRecord");
|
||||
onAnimationFinished(ANIMATION_TYPE_APP_TRANSITION, null /* AnimationAdapter */);
|
||||
if (visible) {
|
||||
// The token was made immediately visible, there will be no entrance animation.
|
||||
// We need to inform the client the enter animation was finished.
|
||||
mEnteringAnimation = true;
|
||||
mWmService.mActivityManagerAppTransitionNotifier.onAppTransitionFinishedLocked(
|
||||
token);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5470,8 +5465,8 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A
|
||||
// updated.
|
||||
// If we're becoming invisible, update the client visibility if we are not running an
|
||||
// animation. Otherwise, we'll update client visibility in onAnimationFinished.
|
||||
if (visible || !isAnimating(PARENTS, ANIMATION_TYPE_APP_TRANSITION | ANIMATION_TYPE_RECENTS)
|
||||
|| usingShellTransitions) {
|
||||
if (visible || usingShellTransitions
|
||||
|| !isAnimating(PARENTS, ANIMATION_TYPE_APP_TRANSITION | ANIMATION_TYPE_RECENTS)) {
|
||||
setClientVisible(visible);
|
||||
}
|
||||
|
||||
|
||||
@@ -37,6 +37,7 @@ import static android.view.WindowManagerPolicyConstants.KEYGUARD_GOING_AWAY_FLAG
|
||||
import static android.view.WindowManagerPolicyConstants.KEYGUARD_GOING_AWAY_FLAG_TO_SHADE;
|
||||
import static android.view.WindowManagerPolicyConstants.KEYGUARD_GOING_AWAY_FLAG_WITH_WALLPAPER;
|
||||
|
||||
import static com.android.server.policy.WindowManagerPolicy.FINISH_LAYOUT_REDO_WALLPAPER;
|
||||
import static com.android.server.wm.ActivityTaskManagerDebugConfig.TAG_ATM;
|
||||
import static com.android.server.wm.ActivityTaskManagerDebugConfig.TAG_WITH_CLASS_NAME;
|
||||
import static com.android.server.wm.ActivityTaskSupervisor.PRESERVE_WINDOWS;
|
||||
@@ -651,6 +652,12 @@ class KeyguardController {
|
||||
mRequestDismissKeyguard = lastDismissKeyguardActivity != mDismissingKeyguardActivity
|
||||
&& !mOccluded && !mKeyguardGoingAway
|
||||
&& mDismissingKeyguardActivity != null;
|
||||
if (mOccluded && mKeyguardShowing && !display.isSleeping() && !top.fillsParent()
|
||||
&& display.mWallpaperController.getWallpaperTarget() == null) {
|
||||
// The occluding activity may be translucent or not fill screen. Then let wallpaper
|
||||
// to check whether it should set itself as target to avoid blank background.
|
||||
display.pendingLayoutChanges |= FINISH_LAYOUT_REDO_WALLPAPER;
|
||||
}
|
||||
|
||||
if (mTopTurnScreenOnActivity != lastTurnScreenOnActivity
|
||||
&& mTopTurnScreenOnActivity != null
|
||||
|
||||
Reference in New Issue
Block a user