Merge "Prevent blinking when user presses home." into ub-launcher3-master
This commit is contained in:
committed by
Android (Google) Code Review
commit
7780fa7bc7
@@ -16,7 +16,6 @@
|
||||
package com.android.launcher3;
|
||||
|
||||
import android.animation.AnimatorSet;
|
||||
import android.os.Handler;
|
||||
|
||||
import com.android.systemui.shared.system.RemoteAnimationRunnerCompat;
|
||||
|
||||
|
||||
@@ -87,7 +87,7 @@ public class LauncherAppTransitionManagerImpl extends LauncherAppTransitionManag
|
||||
private View mFloatingView;
|
||||
private boolean mIsRtl;
|
||||
|
||||
private Animator mCurrentAnimator;
|
||||
private LauncherTransitionAnimator mCurrentAnimator;
|
||||
|
||||
public LauncherAppTransitionManagerImpl(Context context) {
|
||||
mLauncher = Launcher.getLauncher(context);
|
||||
@@ -109,7 +109,7 @@ public class LauncherAppTransitionManagerImpl extends LauncherAppTransitionManag
|
||||
mDeviceProfile = dp;
|
||||
}
|
||||
|
||||
private void setCurrentAnimator(Animator animator) {
|
||||
private void setCurrentAnimator(LauncherTransitionAnimator animator) {
|
||||
if (mCurrentAnimator != null && mCurrentAnimator.isRunning()) {
|
||||
mCurrentAnimator.cancel();
|
||||
}
|
||||
@@ -117,9 +117,9 @@ public class LauncherAppTransitionManagerImpl extends LauncherAppTransitionManag
|
||||
}
|
||||
|
||||
@Override
|
||||
public void finishAnimation() {
|
||||
public void finishLauncherAnimation() {
|
||||
if (mCurrentAnimator != null && mCurrentAnimator.isRunning()) {
|
||||
mCurrentAnimator.end();
|
||||
mCurrentAnimator.finishLauncherAnimation();
|
||||
}
|
||||
mCurrentAnimator = null;
|
||||
}
|
||||
@@ -139,10 +139,10 @@ public class LauncherAppTransitionManagerImpl extends LauncherAppTransitionManag
|
||||
// Post at front of queue ignoring sync barriers to make sure it gets
|
||||
// processed before the next frame.
|
||||
postAtFrontOfQueueAsynchronously(v.getHandler(), () -> {
|
||||
mAnimator = new AnimatorSet();
|
||||
setCurrentAnimator(mAnimator);
|
||||
mAnimator.play(getLauncherAnimators(v));
|
||||
mAnimator.play(getWindowAnimators(v, targets));
|
||||
LauncherTransitionAnimator animator = new LauncherTransitionAnimator(
|
||||
getLauncherAnimators(v), getWindowAnimators(v, targets));
|
||||
setCurrentAnimator(animator);
|
||||
mAnimator = animator.getAnimatorSet();
|
||||
mAnimator.addListener(new AnimatorListenerAdapter() {
|
||||
@Override
|
||||
public void onAnimationEnd(Animator animation) {
|
||||
@@ -449,16 +449,16 @@ public class LauncherAppTransitionManagerImpl extends LauncherAppTransitionManag
|
||||
return;
|
||||
}
|
||||
|
||||
mAnimator = new AnimatorSet();
|
||||
setCurrentAnimator(mAnimator);
|
||||
LauncherTransitionAnimator animator = new LauncherTransitionAnimator(
|
||||
getLauncherResumeAnimation(), getClosingWindowAnimators(targets));
|
||||
setCurrentAnimator(animator);
|
||||
mAnimator = animator.getAnimatorSet();
|
||||
mAnimator.addListener(new AnimatorListenerAdapter() {
|
||||
@Override
|
||||
public void onAnimationEnd(Animator animation) {
|
||||
finishedCallback.run();
|
||||
}
|
||||
});
|
||||
mAnimator.play(getClosingWindowAnimators(targets));
|
||||
mAnimator.play(getLauncherResumeAnimation());
|
||||
mAnimator.start();
|
||||
|
||||
// Because t=0 has the app icon in its original spot, we can skip the
|
||||
|
||||
@@ -0,0 +1,58 @@
|
||||
/*
|
||||
* Copyright (C) 2018 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package com.android.launcher3;
|
||||
|
||||
import android.animation.Animator;
|
||||
import android.animation.AnimatorSet;
|
||||
|
||||
/**
|
||||
* Creates an AnimatorSet consisting on one Animator for Launcher transition, and one Animator for
|
||||
* the Window transitions.
|
||||
*
|
||||
* Allows for ending the Launcher animator without ending the Window animator.
|
||||
*/
|
||||
public class LauncherTransitionAnimator {
|
||||
|
||||
private AnimatorSet mAnimatorSet;
|
||||
private Animator mLauncherAnimator;
|
||||
private Animator mWindowAnimator;
|
||||
|
||||
LauncherTransitionAnimator(Animator launcherAnimator, Animator windowAnimator) {
|
||||
mLauncherAnimator = launcherAnimator;
|
||||
mWindowAnimator = windowAnimator;
|
||||
|
||||
mAnimatorSet = new AnimatorSet();
|
||||
mAnimatorSet.play(launcherAnimator);
|
||||
mAnimatorSet.play(windowAnimator);
|
||||
}
|
||||
|
||||
public AnimatorSet getAnimatorSet() {
|
||||
return mAnimatorSet;
|
||||
}
|
||||
|
||||
public void cancel() {
|
||||
mAnimatorSet.cancel();
|
||||
}
|
||||
|
||||
public boolean isRunning() {
|
||||
return mAnimatorSet.isRunning();
|
||||
}
|
||||
|
||||
public void finishLauncherAnimation() {
|
||||
mLauncherAnimator.end();
|
||||
}
|
||||
}
|
||||
@@ -65,7 +65,7 @@ public class LauncherAppTransitionManager {
|
||||
return getDefaultActivityLaunchOptions(launcher, v);
|
||||
}
|
||||
|
||||
/** Cancels the current transition animation */
|
||||
public void finishAnimation() {
|
||||
/** Cancels the current Launcher transition animation */
|
||||
public void finishLauncherAnimation() {
|
||||
}
|
||||
}
|
||||
|
||||
@@ -276,7 +276,7 @@ public class LauncherStateManager {
|
||||
// finish it and let this state animation take over.
|
||||
LauncherAppTransitionManager transitionManager = mLauncher.getAppTransitionManager();
|
||||
if (transitionManager != null) {
|
||||
transitionManager.finishAnimation();
|
||||
transitionManager.finishLauncherAnimation();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user