mirror of
https://github.com/LawnchairLauncher/lawnchair.git
synced 2026-03-04 01:46:49 +00:00
Merge "Revert "Add debug logs to help identify when setRecentsAttachedToAppWindow will not animate properly."" into tm-qpr-dev am: b9e03da563
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Launcher3/+/20521649 Change-Id: Iaff26841709cacabfd6254e1e05c8a328eb36da9 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
8b9090cc35
@@ -288,7 +288,7 @@ public abstract class AbsSwipeUpHandler<T extends StatefulActivity<S>,
|
||||
private AnimatorControllerWithResistance mLauncherTransitionController;
|
||||
private boolean mHasEndedLauncherTransition;
|
||||
|
||||
private AnimationFactory mAnimationFactory = (t, s) -> { };
|
||||
private AnimationFactory mAnimationFactory = (t) -> { };
|
||||
|
||||
private boolean mWasLauncherAlreadyVisible;
|
||||
|
||||
@@ -536,9 +536,7 @@ public abstract class AbsSwipeUpHandler<T extends StatefulActivity<S>,
|
||||
Runnable initAnimFactory = () -> {
|
||||
mAnimationFactory = mActivityInterface.prepareRecentsUI(mDeviceState,
|
||||
mWasLauncherAlreadyVisible, this::onAnimatorPlaybackControllerCreated);
|
||||
maybeUpdateRecentsAttachedState(
|
||||
false /* animate */,
|
||||
new ActiveGestureLog.CompoundString("on Launcher start (animate=false)"));
|
||||
maybeUpdateRecentsAttachedState(false /* animate */);
|
||||
if (mGestureState.getEndTarget() != null) {
|
||||
// Update the end target in case the gesture ended before we init.
|
||||
mAnimationFactory.setEndTarget(mGestureState.getEndTarget());
|
||||
@@ -643,8 +641,7 @@ public abstract class AbsSwipeUpHandler<T extends StatefulActivity<S>,
|
||||
}
|
||||
|
||||
private void initializeLauncherAnimationController() {
|
||||
buildAnimationController(new ActiveGestureLog.CompoundString(
|
||||
"initializing launcher animation controller"));
|
||||
buildAnimationController();
|
||||
|
||||
Object traceToken = TraceHelper.INSTANCE.beginSection("logToggleRecents",
|
||||
TraceHelper.FLAG_IGNORE_BINDERS);
|
||||
@@ -663,11 +660,7 @@ public abstract class AbsSwipeUpHandler<T extends StatefulActivity<S>,
|
||||
@Override
|
||||
public void onMotionPauseDetected() {
|
||||
mHasMotionEverBeenPaused = true;
|
||||
maybeUpdateRecentsAttachedState(
|
||||
true/* animate */,
|
||||
true/* moveFocusedTask */,
|
||||
new ActiveGestureLog.CompoundString(
|
||||
"motion pause detected (animate=true)"));
|
||||
maybeUpdateRecentsAttachedState(true/* animate */, true/* moveFocusedTask */);
|
||||
Optional.ofNullable(mActivityInterface.getTaskbarController())
|
||||
.ifPresent(TaskbarUIController::startTranslationSpring);
|
||||
performHapticFeedback();
|
||||
@@ -680,13 +673,12 @@ public abstract class AbsSwipeUpHandler<T extends StatefulActivity<S>,
|
||||
};
|
||||
}
|
||||
|
||||
private void maybeUpdateRecentsAttachedState(ActiveGestureLog.CompoundString reason) {
|
||||
maybeUpdateRecentsAttachedState(true /* animate */, reason.append(" (animate=true)"));
|
||||
private void maybeUpdateRecentsAttachedState() {
|
||||
maybeUpdateRecentsAttachedState(true /* animate */);
|
||||
}
|
||||
|
||||
private void maybeUpdateRecentsAttachedState(
|
||||
boolean animate, ActiveGestureLog.CompoundString reason) {
|
||||
maybeUpdateRecentsAttachedState(animate, false /* moveFocusedTask */, reason);
|
||||
private void maybeUpdateRecentsAttachedState(boolean animate) {
|
||||
maybeUpdateRecentsAttachedState(animate, false /* moveFocusedTask */);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -698,8 +690,7 @@ public abstract class AbsSwipeUpHandler<T extends StatefulActivity<S>,
|
||||
* @param animate whether to animate when attaching RecentsView
|
||||
* @param moveFocusedTask whether to move focused task to front when attaching
|
||||
*/
|
||||
private void maybeUpdateRecentsAttachedState(
|
||||
boolean animate, boolean moveFocusedTask, ActiveGestureLog.CompoundString reason) {
|
||||
private void maybeUpdateRecentsAttachedState(boolean animate, boolean moveFocusedTask) {
|
||||
if (!mDeviceState.isFullyGesturalNavMode() || mRecentsView == null) {
|
||||
return;
|
||||
}
|
||||
@@ -709,25 +700,14 @@ public abstract class AbsSwipeUpHandler<T extends StatefulActivity<S>,
|
||||
final boolean recentsAttachedToAppWindow;
|
||||
if (mGestureState.getEndTarget() != null) {
|
||||
recentsAttachedToAppWindow = mGestureState.getEndTarget().recentsAttachedToAppWindow;
|
||||
reason.append("; gesture state end target != null (attached=")
|
||||
.append(Boolean.toString(recentsAttachedToAppWindow))
|
||||
.append(")");
|
||||
} else if (mContinuingLastGesture
|
||||
&& mRecentsView.getRunningTaskIndex() != mRecentsView.getNextPage()) {
|
||||
recentsAttachedToAppWindow = true;
|
||||
reason.append("; continuing last gesture (attached=true)");
|
||||
} else if (runningTaskTarget != null && isNotInRecents(runningTaskTarget)) {
|
||||
// The window is going away so make sure recents is always visible in this case.
|
||||
recentsAttachedToAppWindow = true;
|
||||
reason.append("; make sure recents is always visible (attached=true)");
|
||||
} else {
|
||||
recentsAttachedToAppWindow = mHasMotionEverBeenPaused || mIsLikelyToStartNewTask;
|
||||
reason.append(mHasMotionEverBeenPaused
|
||||
? "; motion has been paused"
|
||||
: "; gesture is likely to start a new task")
|
||||
.append(" (attached=")
|
||||
.append(Boolean.toString(recentsAttachedToAppWindow))
|
||||
.append(")");
|
||||
}
|
||||
if (moveFocusedTask && !mAnimationFactory.hasRecentsEverAttachedToAppWindow()
|
||||
&& recentsAttachedToAppWindow) {
|
||||
@@ -735,8 +715,7 @@ public abstract class AbsSwipeUpHandler<T extends StatefulActivity<S>,
|
||||
// TaskView jumping to new position as we move the tasks.
|
||||
mRecentsView.moveFocusedTaskToFront();
|
||||
}
|
||||
mAnimationFactory.setRecentsAttachedToAppWindow(
|
||||
recentsAttachedToAppWindow, animate, reason);
|
||||
mAnimationFactory.setRecentsAttachedToAppWindow(recentsAttachedToAppWindow, animate);
|
||||
|
||||
// Reapply window transform throughout the attach animation, as the animation affects how
|
||||
// much the window is bound by overscroll (vs moving freely).
|
||||
@@ -771,29 +750,22 @@ public abstract class AbsSwipeUpHandler<T extends StatefulActivity<S>,
|
||||
}
|
||||
|
||||
public void setIsLikelyToStartNewTask(boolean isLikelyToStartNewTask) {
|
||||
setIsLikelyToStartNewTask(
|
||||
isLikelyToStartNewTask,
|
||||
true /* animate */,
|
||||
new ActiveGestureLog.CompoundString(
|
||||
"setting gesture likely to start (animate=true)"));
|
||||
setIsLikelyToStartNewTask(isLikelyToStartNewTask, true /* animate */);
|
||||
}
|
||||
|
||||
private void setIsLikelyToStartNewTask(
|
||||
boolean isLikelyToStartNewTask,
|
||||
boolean animate,
|
||||
ActiveGestureLog.CompoundString reason) {
|
||||
private void setIsLikelyToStartNewTask(boolean isLikelyToStartNewTask, boolean animate) {
|
||||
if (mIsLikelyToStartNewTask != isLikelyToStartNewTask) {
|
||||
mIsLikelyToStartNewTask = isLikelyToStartNewTask;
|
||||
maybeUpdateRecentsAttachedState(animate, reason);
|
||||
maybeUpdateRecentsAttachedState(animate);
|
||||
}
|
||||
}
|
||||
|
||||
private void buildAnimationController(ActiveGestureLog.CompoundString reason) {
|
||||
private void buildAnimationController() {
|
||||
if (!canCreateNewOrUpdateExistingLauncherTransitionController()) {
|
||||
return;
|
||||
}
|
||||
initTransitionEndpoints(mActivity.getDeviceProfile());
|
||||
mAnimationFactory.createActivityInterface(mTransitionDragLength, reason);
|
||||
mAnimationFactory.createActivityInterface(mTransitionDragLength);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -808,7 +780,7 @@ public abstract class AbsSwipeUpHandler<T extends StatefulActivity<S>,
|
||||
@Override
|
||||
public WindowInsets onApplyWindowInsets(View view, WindowInsets windowInsets) {
|
||||
WindowInsets result = view.onApplyWindowInsets(windowInsets);
|
||||
buildAnimationController(new ActiveGestureLog.CompoundString("applying window insets"));
|
||||
buildAnimationController();
|
||||
// Reapply the current shift to ensure it takes new insets into account, e.g. when long
|
||||
// pressing to stash taskbar without moving the finger.
|
||||
updateFinalShift();
|
||||
@@ -982,10 +954,7 @@ public abstract class AbsSwipeUpHandler<T extends StatefulActivity<S>,
|
||||
});
|
||||
}
|
||||
notifyGestureStartedAsync();
|
||||
setIsLikelyToStartNewTask(
|
||||
isLikelyToStartNewTask,
|
||||
false /* animate */,
|
||||
new ActiveGestureLog.CompoundString("on gesture started (animate=false)"));
|
||||
setIsLikelyToStartNewTask(isLikelyToStartNewTask, false /* animate */);
|
||||
mStateCallback.setStateOnUiThread(STATE_GESTURE_STARTED);
|
||||
mGestureStarted = true;
|
||||
}
|
||||
@@ -1066,8 +1035,7 @@ public abstract class AbsSwipeUpHandler<T extends StatefulActivity<S>,
|
||||
|
||||
private void onSettledOnEndTarget() {
|
||||
// Fast-finish the attaching animation if it's still running.
|
||||
maybeUpdateRecentsAttachedState(false, new ActiveGestureLog.CompoundString(
|
||||
"on settled on end target (animate=false)"));
|
||||
maybeUpdateRecentsAttachedState(false);
|
||||
final GestureEndTarget endTarget = mGestureState.getEndTarget();
|
||||
// Wait until the given View (if supplied) draws before resuming the last task.
|
||||
View postResumeLastTask = mActivityInterface.onSettledOnEndTarget(endTarget);
|
||||
@@ -1391,8 +1359,7 @@ public abstract class AbsSwipeUpHandler<T extends StatefulActivity<S>,
|
||||
@UiThread
|
||||
private void animateToProgressInternal(float start, float end, long duration,
|
||||
Interpolator interpolator, GestureEndTarget target, PointF velocityPxPerMs) {
|
||||
maybeUpdateRecentsAttachedState(new ActiveGestureLog.CompoundString(
|
||||
"animate to progress internal"));
|
||||
maybeUpdateRecentsAttachedState();
|
||||
|
||||
// If we are transitioning to launcher, then listen for the activity to be restarted while
|
||||
// the transition is in progress
|
||||
@@ -1715,9 +1682,7 @@ public abstract class AbsSwipeUpHandler<T extends StatefulActivity<S>,
|
||||
mRecentsView.post(mRecentsView::resetTaskVisuals);
|
||||
}
|
||||
// Make sure recents is in its final state
|
||||
maybeUpdateRecentsAttachedState(
|
||||
false, new ActiveGestureLog.CompoundString(
|
||||
"setting up window animation (animate=false)"));
|
||||
maybeUpdateRecentsAttachedState(false);
|
||||
mActivityInterface.onSwipeUpToHomeComplete(mDeviceState);
|
||||
}
|
||||
});
|
||||
|
||||
@@ -60,7 +60,6 @@ import com.android.launcher3.touch.PagedOrientationHandler;
|
||||
import com.android.launcher3.util.DisplayController;
|
||||
import com.android.launcher3.util.NavigationMode;
|
||||
import com.android.launcher3.views.ScrimView;
|
||||
import com.android.quickstep.util.ActiveGestureLog;
|
||||
import com.android.quickstep.util.ActivityInitListener;
|
||||
import com.android.quickstep.util.AnimatorControllerWithResistance;
|
||||
import com.android.quickstep.views.RecentsView;
|
||||
@@ -399,16 +398,14 @@ public abstract class BaseActivityInterface<STATE_TYPE extends BaseState<STATE_T
|
||||
|
||||
public interface AnimationFactory {
|
||||
|
||||
void createActivityInterface(long transitionLength, ActiveGestureLog.CompoundString reason);
|
||||
void createActivityInterface(long transitionLength);
|
||||
|
||||
/**
|
||||
* @param attached Whether to show RecentsView alongside the app window. If false, recents
|
||||
* will be hidden by some property we can animate, e.g. alpha.
|
||||
* @param animate Whether to animate recents to/from its new attached state.
|
||||
* @param reason Explanation for why this method is being called with the given param values
|
||||
*/
|
||||
default void setRecentsAttachedToAppWindow(
|
||||
boolean attached, boolean animate, ActiveGestureLog.CompoundString reason) { }
|
||||
default void setRecentsAttachedToAppWindow(boolean attached, boolean animate) { }
|
||||
|
||||
default boolean isRecentsAttachedToAppWindow() {
|
||||
return false;
|
||||
@@ -450,8 +447,7 @@ public abstract class BaseActivityInterface<STATE_TYPE extends BaseState<STATE_T
|
||||
}
|
||||
|
||||
@Override
|
||||
public void createActivityInterface(
|
||||
long transitionLength, ActiveGestureLog.CompoundString reason) {
|
||||
public void createActivityInterface(long transitionLength) {
|
||||
PendingAnimation pa = new PendingAnimation(transitionLength * 2);
|
||||
createBackgroundToOverviewAnim(mActivity, pa);
|
||||
AnimatorPlaybackController controller = pa.createPlaybackController();
|
||||
@@ -474,29 +470,13 @@ public abstract class BaseActivityInterface<STATE_TYPE extends BaseState<STATE_T
|
||||
// (because we set the animation as the current state animation), so we reapply the
|
||||
// attached state here as well to ensure recents is shown/hidden appropriately.
|
||||
if (DisplayController.getNavigationMode(mActivity) == NavigationMode.NO_BUTTON) {
|
||||
setRecentsAttachedToAppWindow(
|
||||
mIsAttachedToWindow,
|
||||
false,
|
||||
reason.append("; reapplying the attached state (attached=")
|
||||
.append(Boolean.toString(mIsAttachedToWindow))
|
||||
.append(", animate=false)"));
|
||||
setRecentsAttachedToAppWindow(mIsAttachedToWindow, false);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setRecentsAttachedToAppWindow(
|
||||
boolean attached, boolean animate, ActiveGestureLog.CompoundString reason) {
|
||||
// TODO(b/244593270): remove these logs; too verbose
|
||||
ActiveGestureLog.INSTANCE.addLog(
|
||||
new ActiveGestureLog.CompoundString("setRecentsAttachedToAppWindow: attached=")
|
||||
.append(Boolean.toString(attached))
|
||||
.append(", animate=")
|
||||
.append(Boolean.toString(animate))
|
||||
.append(", reason=")
|
||||
.append(reason));
|
||||
public void setRecentsAttachedToAppWindow(boolean attached, boolean animate) {
|
||||
if (mIsAttachedToWindow == attached && animate) {
|
||||
ActiveGestureLog.INSTANCE.addLog(new ActiveGestureLog.CompoundString(
|
||||
"setRecentsAttachedToAppWindow: exiting early"));
|
||||
return;
|
||||
}
|
||||
mActivity.getStateManager()
|
||||
@@ -525,11 +505,6 @@ public abstract class BaseActivityInterface<STATE_TYPE extends BaseState<STATE_T
|
||||
float fromTranslation = ADJACENT_PAGE_HORIZONTAL_OFFSET.get(
|
||||
mActivity.getOverviewPanel());
|
||||
float toTranslation = attached ? 0 : 1;
|
||||
ActiveGestureLog.INSTANCE.addLog(new ActiveGestureLog.CompoundString(
|
||||
"setRecentsAttachedToAppWindow: fromTranslation=")
|
||||
.append(Float.toString(fromTranslation))
|
||||
.append(", toTranslation=")
|
||||
.append(Float.toString(toTranslation)));
|
||||
|
||||
Animator translationAnimator = mActivity.getStateManager().createStateElementAnimation(
|
||||
INDEX_RECENTS_TRANSLATE_X_ANIM, fromTranslation, toTranslation);
|
||||
|
||||
Reference in New Issue
Block a user