Merge "Prevent blinking when user presses home." into ub-launcher3-master

This commit is contained in:
TreeHugger Robot
2018-02-08 03:48:56 +00:00
committed by Android (Google) Code Review
5 changed files with 73 additions and 16 deletions
@@ -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();
}
}