mirror of
https://github.com/LawnchairLauncher/lawnchair.git
synced 2026-03-02 17:06:49 +00:00
Merge "Pause the AllSetActivity background animation more reliably." into tm-qpr-dev am: 2b3bd3039b
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Launcher3/+/19239008 Change-Id: I14edb00abbe20a8c20deecad34ea12c0ce20f2f7 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
committed by
Automerger Merge Worker
commit
3535dd5906
@@ -83,6 +83,8 @@ public class AllSetActivity extends Activity {
|
||||
|
||||
private static final int MAX_SWIPE_DURATION = 350;
|
||||
|
||||
private static final float ANIMATION_PAUSE_ALPHA_THRESHOLD = 0.1f;
|
||||
|
||||
private TISBindHelper mTISBindHelper;
|
||||
private TISBinder mBinder;
|
||||
|
||||
@@ -145,6 +147,10 @@ public class AllSetActivity extends Activity {
|
||||
}
|
||||
|
||||
private void runOnUiHelperThread(Runnable runnable) {
|
||||
if (!isResumed()
|
||||
|| getContentViewAlphaForSwipeProgress() <= ANIMATION_PAUSE_ALPHA_THRESHOLD) {
|
||||
return;
|
||||
}
|
||||
Executors.UI_HELPER_EXECUTOR.execute(runnable);
|
||||
}
|
||||
|
||||
@@ -198,6 +204,7 @@ public class AllSetActivity extends Activity {
|
||||
@Override
|
||||
protected void onResume() {
|
||||
super.onResume();
|
||||
maybeResumeOrPauseBackgroundAnimation();
|
||||
if (mBinder != null) {
|
||||
mBinder.getTaskbarManager().setSetupUIVisible(true);
|
||||
mBinder.setSwipeUpProxy(this::createSwipeUpProxy);
|
||||
@@ -216,6 +223,7 @@ public class AllSetActivity extends Activity {
|
||||
protected void onPause() {
|
||||
super.onPause();
|
||||
clearBinderOverride();
|
||||
maybeResumeOrPauseBackgroundAnimation();
|
||||
if (mSwipeProgress.value >= 1) {
|
||||
finishAndRemoveTask();
|
||||
}
|
||||
@@ -250,10 +258,25 @@ public class AllSetActivity extends Activity {
|
||||
return mSwipeProgress;
|
||||
}
|
||||
|
||||
private float getContentViewAlphaForSwipeProgress() {
|
||||
return Utilities.mapBoundToRange(
|
||||
mSwipeProgress.value, 0, HINT_BOTTOM_FACTOR, 1, 0, LINEAR);
|
||||
}
|
||||
|
||||
private void maybeResumeOrPauseBackgroundAnimation() {
|
||||
boolean shouldPlayAnimation =
|
||||
getContentViewAlphaForSwipeProgress() > ANIMATION_PAUSE_ALPHA_THRESHOLD
|
||||
&& isResumed();
|
||||
if (mAnimatedBackground.isAnimating() && !shouldPlayAnimation) {
|
||||
mAnimatedBackground.pauseAnimation();
|
||||
} else if (!mAnimatedBackground.isAnimating() && shouldPlayAnimation) {
|
||||
mAnimatedBackground.resumeAnimation();
|
||||
}
|
||||
}
|
||||
|
||||
private void onSwipeProgressUpdate() {
|
||||
mBackground.setProgress(mSwipeProgress.value);
|
||||
float alpha = Utilities.mapBoundToRange(
|
||||
mSwipeProgress.value, 0, HINT_BOTTOM_FACTOR, 1, 0, LINEAR);
|
||||
float alpha = getContentViewAlphaForSwipeProgress();
|
||||
mContentView.setAlpha(alpha);
|
||||
mContentView.setTranslationY((alpha - 1) * mSwipeUpShift);
|
||||
|
||||
@@ -265,12 +288,7 @@ public class AllSetActivity extends Activity {
|
||||
mLauncherStartAnim.setPlayFraction(Utilities.mapBoundToRange(
|
||||
mSwipeProgress.value, 0, 1, 0, 1, FAST_OUT_SLOW_IN));
|
||||
}
|
||||
|
||||
if (alpha == 0f) {
|
||||
mAnimatedBackground.pauseAnimation();
|
||||
} else if (!mAnimatedBackground.isAnimating()) {
|
||||
mAnimatedBackground.resumeAnimation();
|
||||
}
|
||||
maybeResumeOrPauseBackgroundAnimation();
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user