Loading quickstep/src/com/android/launcher3/taskbar/TaskbarLauncherStateController.java +8 −5 Original line number Diff line number Diff line Loading @@ -26,6 +26,7 @@ import android.animation.AnimatorSet; import android.animation.ObjectAnimator; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import com.android.launcher3.AbstractFloatingView; import com.android.launcher3.BaseQuickstepLauncher; Loading Loading @@ -74,6 +75,8 @@ import java.util.function.Supplier; private int mState; private LauncherState mLauncherState = LauncherState.NORMAL; private @Nullable TaskBarRecentsAnimationListener mTaskBarRecentsAnimationListener; private boolean mIsAnimatingToLauncherViaGesture; private boolean mIsAnimatingToLauncherViaResume; Loading Loading @@ -163,12 +166,11 @@ import java.util.function.Supplier; animatorSet.play(stashController.applyStateWithoutStart(duration)); animatorSet.play(applyState(duration, false)); TaskBarRecentsAnimationListener listener = new TaskBarRecentsAnimationListener(callbacks); callbacks.addListener(listener); mTaskBarRecentsAnimationListener = new TaskBarRecentsAnimationListener(callbacks); callbacks.addListener(mTaskBarRecentsAnimationListener); RecentsView recentsView = mLauncher.getOverviewPanel(); recentsView.setTaskLaunchListener(() -> { listener.endGestureStateOverride(true); callbacks.removeListener(listener); mTaskBarRecentsAnimationListener.endGestureStateOverride(true); }); return animatorSet; } Loading Loading @@ -382,7 +384,7 @@ import java.util.function.Supplier; } private void onIconAlignmentRatioChangedForStateTransition() { if (!isResumed()) { if (!isResumed() && mTaskBarRecentsAnimationListener == null) { return; } onIconAlignmentRatioChanged(this::getCurrentIconAlignmentRatioForLauncherState); Loading Loading @@ -458,6 +460,7 @@ import java.util.function.Supplier; private void endGestureStateOverride(boolean finishedToApp) { mCallbacks.removeListener(this); mTaskBarRecentsAnimationListener = null; // Update the resumed state immediately to ensure a seamless handoff boolean launcherResumed = !finishedToApp; Loading Loading
quickstep/src/com/android/launcher3/taskbar/TaskbarLauncherStateController.java +8 −5 Original line number Diff line number Diff line Loading @@ -26,6 +26,7 @@ import android.animation.AnimatorSet; import android.animation.ObjectAnimator; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import com.android.launcher3.AbstractFloatingView; import com.android.launcher3.BaseQuickstepLauncher; Loading Loading @@ -74,6 +75,8 @@ import java.util.function.Supplier; private int mState; private LauncherState mLauncherState = LauncherState.NORMAL; private @Nullable TaskBarRecentsAnimationListener mTaskBarRecentsAnimationListener; private boolean mIsAnimatingToLauncherViaGesture; private boolean mIsAnimatingToLauncherViaResume; Loading Loading @@ -163,12 +166,11 @@ import java.util.function.Supplier; animatorSet.play(stashController.applyStateWithoutStart(duration)); animatorSet.play(applyState(duration, false)); TaskBarRecentsAnimationListener listener = new TaskBarRecentsAnimationListener(callbacks); callbacks.addListener(listener); mTaskBarRecentsAnimationListener = new TaskBarRecentsAnimationListener(callbacks); callbacks.addListener(mTaskBarRecentsAnimationListener); RecentsView recentsView = mLauncher.getOverviewPanel(); recentsView.setTaskLaunchListener(() -> { listener.endGestureStateOverride(true); callbacks.removeListener(listener); mTaskBarRecentsAnimationListener.endGestureStateOverride(true); }); return animatorSet; } Loading Loading @@ -382,7 +384,7 @@ import java.util.function.Supplier; } private void onIconAlignmentRatioChangedForStateTransition() { if (!isResumed()) { if (!isResumed() && mTaskBarRecentsAnimationListener == null) { return; } onIconAlignmentRatioChanged(this::getCurrentIconAlignmentRatioForLauncherState); Loading Loading @@ -458,6 +460,7 @@ import java.util.function.Supplier; private void endGestureStateOverride(boolean finishedToApp) { mCallbacks.removeListener(this); mTaskBarRecentsAnimationListener = null; // Update the resumed state immediately to ensure a seamless handoff boolean launcherResumed = !finishedToApp; Loading