Loading packages/SystemUI/src/com/android/systemui/recents/views/TaskStackLayoutAlgorithm.java +1 −1 Original line number Diff line number Diff line Loading @@ -416,7 +416,7 @@ public class TaskStackLayoutAlgorithm { int prevFocusState = mFocusState; mFocusState = focusState; updateFrontBackTransforms(); if (mCb != null) { if (mCb != null && (prevFocusState != focusState)) { mCb.onFocusStateChanged(prevFocusState, focusState); } } Loading packages/SystemUI/src/com/android/systemui/recents/views/TaskStackView.java +4 −13 Original line number Diff line number Diff line Loading @@ -647,7 +647,7 @@ public class TaskStackView extends FrameLayout implements TaskStack.TaskStackCal */ private void relayoutTaskViews(AnimationProps animation, boolean ignoreTaskOverrides) { // If we had a deferred animation, cancel that mDeferredTaskViewLayoutAnimation = null; cancelDeferredTaskViewLayoutAnimation(); // Synchronize the current set of TaskViews bindVisibleTaskViews(mStackScroller.getStackScroll(), Loading Loading @@ -739,23 +739,12 @@ public class TaskStackView extends FrameLayout implements TaskStack.TaskStackCal /** * Cancels all {@link TaskView} animations. * * @see #cancelAllTaskViewAnimations(ArraySet<Task.TaskKey>) */ void cancelAllTaskViewAnimations() { cancelAllTaskViewAnimations(mIgnoreTasks); } /** * Cancels all {@link TaskView} animations. * * @param ignoreTasksSet The set of tasks to continue running their animations. */ void cancelAllTaskViewAnimations(ArraySet<Task.TaskKey> ignoreTasksSet) { List<TaskView> taskViews = getTaskViews(); for (int i = taskViews.size() - 1; i >= 0; i--) { final TaskView tv = taskViews.get(i); if (!ignoreTasksSet.contains(tv.getTask().key)) { if (!mIgnoreTasks.contains(tv.getTask().key)) { tv.cancelTransformAnimation(); } } Loading Loading @@ -1675,8 +1664,10 @@ public class TaskStackView extends FrameLayout implements TaskStack.TaskStackCal public final void onBusEvent(DismissRecentsToHomeAnimationStarted event) { // Stop any scrolling cancelDeferredTaskViewLayoutAnimation(); mStackScroller.stopScroller(); mStackScroller.stopBoundScrollAnimation(); mTouchHandler.finishAnimations(); // Start the task animations mAnimationHelper.startExitToHomeAnimation(event.animated, event.getAnimationTrigger()); Loading packages/SystemUI/src/com/android/systemui/recents/views/TaskStackViewTouchHandler.java +14 −10 Original line number Diff line number Diff line Loading @@ -188,6 +188,18 @@ class TaskStackViewTouchHandler implements SwipeHelper.Callback { return true; } /** * Finishes all scroll-fling and swipe animations currently running. */ public void finishAnimations() { Utilities.cancelAnimationWithoutCallbacks(mScrollFlingAnimator); ArrayMap<View, Animator> existingAnimators = new ArrayMap<>(mSwipeHelperAnimations); for (int i = 0; i < existingAnimators.size(); i++) { existingAnimators.get(existingAnimators.keyAt(i)).end(); } mSwipeHelperAnimations.clear(); } private boolean handleTouchEvent(MotionEvent ev) { // Short circuit if we have no children if (mSv.getTaskViews().size() == 0) { Loading @@ -207,19 +219,11 @@ class TaskStackViewTouchHandler implements SwipeHelper.Callback { mActiveTaskView = findViewAtPoint(mDownX, mDownY); // Stop the current scroll if it is still flinging mSv.cancelDeferredTaskViewLayoutAnimation(); mScroller.stopScroller(); mScroller.stopBoundScrollAnimation(); mScroller.resetDeltaScroll(); Utilities.cancelAnimationWithoutCallbacks(mScrollFlingAnimator); // Finish any existing task animations from the delete mSv.cancelAllTaskViewAnimations(); // Finish any of the swipe helper animations ArrayMap<View, Animator> existingAnimators = new ArrayMap<>(mSwipeHelperAnimations); for (int i = 0; i < existingAnimators.size(); i++) { existingAnimators.get(existingAnimators.keyAt(i)).end(); } mSwipeHelperAnimations.clear(); finishAnimations(); // Initialize the velocity tracker initOrResetVelocityTracker(); Loading Loading
packages/SystemUI/src/com/android/systemui/recents/views/TaskStackLayoutAlgorithm.java +1 −1 Original line number Diff line number Diff line Loading @@ -416,7 +416,7 @@ public class TaskStackLayoutAlgorithm { int prevFocusState = mFocusState; mFocusState = focusState; updateFrontBackTransforms(); if (mCb != null) { if (mCb != null && (prevFocusState != focusState)) { mCb.onFocusStateChanged(prevFocusState, focusState); } } Loading
packages/SystemUI/src/com/android/systemui/recents/views/TaskStackView.java +4 −13 Original line number Diff line number Diff line Loading @@ -647,7 +647,7 @@ public class TaskStackView extends FrameLayout implements TaskStack.TaskStackCal */ private void relayoutTaskViews(AnimationProps animation, boolean ignoreTaskOverrides) { // If we had a deferred animation, cancel that mDeferredTaskViewLayoutAnimation = null; cancelDeferredTaskViewLayoutAnimation(); // Synchronize the current set of TaskViews bindVisibleTaskViews(mStackScroller.getStackScroll(), Loading Loading @@ -739,23 +739,12 @@ public class TaskStackView extends FrameLayout implements TaskStack.TaskStackCal /** * Cancels all {@link TaskView} animations. * * @see #cancelAllTaskViewAnimations(ArraySet<Task.TaskKey>) */ void cancelAllTaskViewAnimations() { cancelAllTaskViewAnimations(mIgnoreTasks); } /** * Cancels all {@link TaskView} animations. * * @param ignoreTasksSet The set of tasks to continue running their animations. */ void cancelAllTaskViewAnimations(ArraySet<Task.TaskKey> ignoreTasksSet) { List<TaskView> taskViews = getTaskViews(); for (int i = taskViews.size() - 1; i >= 0; i--) { final TaskView tv = taskViews.get(i); if (!ignoreTasksSet.contains(tv.getTask().key)) { if (!mIgnoreTasks.contains(tv.getTask().key)) { tv.cancelTransformAnimation(); } } Loading Loading @@ -1675,8 +1664,10 @@ public class TaskStackView extends FrameLayout implements TaskStack.TaskStackCal public final void onBusEvent(DismissRecentsToHomeAnimationStarted event) { // Stop any scrolling cancelDeferredTaskViewLayoutAnimation(); mStackScroller.stopScroller(); mStackScroller.stopBoundScrollAnimation(); mTouchHandler.finishAnimations(); // Start the task animations mAnimationHelper.startExitToHomeAnimation(event.animated, event.getAnimationTrigger()); Loading
packages/SystemUI/src/com/android/systemui/recents/views/TaskStackViewTouchHandler.java +14 −10 Original line number Diff line number Diff line Loading @@ -188,6 +188,18 @@ class TaskStackViewTouchHandler implements SwipeHelper.Callback { return true; } /** * Finishes all scroll-fling and swipe animations currently running. */ public void finishAnimations() { Utilities.cancelAnimationWithoutCallbacks(mScrollFlingAnimator); ArrayMap<View, Animator> existingAnimators = new ArrayMap<>(mSwipeHelperAnimations); for (int i = 0; i < existingAnimators.size(); i++) { existingAnimators.get(existingAnimators.keyAt(i)).end(); } mSwipeHelperAnimations.clear(); } private boolean handleTouchEvent(MotionEvent ev) { // Short circuit if we have no children if (mSv.getTaskViews().size() == 0) { Loading @@ -207,19 +219,11 @@ class TaskStackViewTouchHandler implements SwipeHelper.Callback { mActiveTaskView = findViewAtPoint(mDownX, mDownY); // Stop the current scroll if it is still flinging mSv.cancelDeferredTaskViewLayoutAnimation(); mScroller.stopScroller(); mScroller.stopBoundScrollAnimation(); mScroller.resetDeltaScroll(); Utilities.cancelAnimationWithoutCallbacks(mScrollFlingAnimator); // Finish any existing task animations from the delete mSv.cancelAllTaskViewAnimations(); // Finish any of the swipe helper animations ArrayMap<View, Animator> existingAnimators = new ArrayMap<>(mSwipeHelperAnimations); for (int i = 0; i < existingAnimators.size(); i++) { existingAnimators.get(existingAnimators.keyAt(i)).end(); } mSwipeHelperAnimations.clear(); finishAnimations(); // Initialize the velocity tracker initOrResetVelocityTracker(); Loading