mirror of
https://github.com/LawnchairLauncher/lawnchair.git
synced 2026-02-19 02:38:20 +00:00
Merge "Fix some jank with transitions" into ub-launcher3-edmonton
This commit is contained in:
@@ -335,10 +335,14 @@ public class LauncherAppTransitionManagerImpl extends LauncherAppTransitionManag
|
||||
launcherAnimator.play(dragLayerAlpha);
|
||||
launcherAnimator.play(dragLayerTransY);
|
||||
mDragLayer.setLayerType(View.LAYER_TYPE_HARDWARE, null);
|
||||
|
||||
// Pause page indicator animations as they lead to layer trashing.
|
||||
mLauncher.getWorkspace().getPageIndicator().pauseAnimations();
|
||||
endListener = () -> {
|
||||
mDragLayer.setLayerType(View.LAYER_TYPE_NONE, null);
|
||||
mDragLayer.setAlpha(1);
|
||||
mDragLayer.setTranslationY(0);
|
||||
mLauncher.getWorkspace().getPageIndicator().skipAnimationsToEnd();
|
||||
};
|
||||
}
|
||||
return new Pair<>(launcherAnimator, endListener);
|
||||
@@ -694,6 +698,13 @@ public class LauncherAppTransitionManagerImpl extends LauncherAppTransitionManag
|
||||
workspaceAnimator.setStartDelay(LAUNCHER_RESUME_START_DELAY);
|
||||
workspaceAnimator.setDuration(333);
|
||||
workspaceAnimator.setInterpolator(Interpolators.FAST_OUT_SLOW_IN);
|
||||
currentPage.setLayerType(View.LAYER_TYPE_HARDWARE, null);
|
||||
workspaceAnimator.addListener(new AnimatorListenerAdapter() {
|
||||
@Override
|
||||
public void onAnimationEnd(Animator animation) {
|
||||
currentPage.setLayerType(View.LAYER_TYPE_NONE, null);
|
||||
}
|
||||
});
|
||||
|
||||
// Animate the shelf in two parts: slide in, and overeshoot.
|
||||
AllAppsTransitionController allAppsController = mLauncher.getAllAppsController();
|
||||
@@ -715,7 +726,6 @@ public class LauncherAppTransitionManagerImpl extends LauncherAppTransitionManag
|
||||
allAppsOvershoot.setDuration(153);
|
||||
allAppsOvershoot.setInterpolator(Interpolators.OVERSHOOT_0);
|
||||
|
||||
|
||||
anim.play(workspaceAnimator);
|
||||
anim.playSequentially(allAppsSlideIn, allAppsOvershoot);
|
||||
anim.addListener(mReapplyStateListener);
|
||||
|
||||
@@ -41,8 +41,9 @@ public class WorkspacePageIndicator extends View implements Insettable, PageIndi
|
||||
private static final int LINE_ALPHA_ANIMATOR_INDEX = 0;
|
||||
private static final int NUM_PAGES_ANIMATOR_INDEX = 1;
|
||||
private static final int TOTAL_SCROLL_ANIMATOR_INDEX = 2;
|
||||
private static final int ANIMATOR_COUNT = 3;
|
||||
|
||||
private ValueAnimator[] mAnimators = new ValueAnimator[3];
|
||||
private ValueAnimator[] mAnimators = new ValueAnimator[ANIMATOR_COUNT];
|
||||
|
||||
private final Handler mDelayedLineFadeHandler = new Handler(Looper.getMainLooper());
|
||||
private final Launcher mLauncher;
|
||||
@@ -232,6 +233,28 @@ public class WorkspacePageIndicator extends View implements Insettable, PageIndi
|
||||
mAnimators[animatorIndex].start();
|
||||
}
|
||||
|
||||
/**
|
||||
* Pauses all currently running animations.
|
||||
*/
|
||||
public void pauseAnimations() {
|
||||
for (int i = 0; i < ANIMATOR_COUNT; i++) {
|
||||
if (mAnimators[i] != null) {
|
||||
mAnimators[i].pause();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Force-ends all currently running or paused animations.
|
||||
*/
|
||||
public void skipAnimationsToEnd() {
|
||||
for (int i = 0; i < ANIMATOR_COUNT; i++) {
|
||||
if (mAnimators[i] != null) {
|
||||
mAnimators[i].end();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setInsets(Rect insets) {
|
||||
DeviceProfile grid = mLauncher.getDeviceProfile();
|
||||
|
||||
Reference in New Issue
Block a user