Animate clear all button's alpha after last task has scrolled beyond its edge.
Test: manual
Fix: 208879377
Change-Id: Iad43abbe36d11317869a0c5aa6a8d59fd1fddb67
diff --git a/quickstep/src/com/android/quickstep/views/ClearAllButton.java b/quickstep/src/com/android/quickstep/views/ClearAllButton.java
index 332cbeb..50be5ea 100644
--- a/quickstep/src/com/android/quickstep/views/ClearAllButton.java
+++ b/quickstep/src/com/android/quickstep/views/ClearAllButton.java
@@ -141,7 +141,10 @@
}
applyPrimaryTranslation();
applySecondaryTranslation();
- mScrollAlpha = 1 - shift / orientationSize;
+ float clearAllSpacing =
+ recentsView.getPageSpacing() + recentsView.getClearAllExtraPageSpacing();
+ clearAllSpacing = mIsRtl ? -clearAllSpacing : clearAllSpacing;
+ mScrollAlpha = Math.max((clearAllScroll + clearAllSpacing - scroll) / clearAllSpacing, 0);
updateAlpha();
}
diff --git a/quickstep/src/com/android/quickstep/views/RecentsView.java b/quickstep/src/com/android/quickstep/views/RecentsView.java
index e64e439..3fa0169 100644
--- a/quickstep/src/com/android/quickstep/views/RecentsView.java
+++ b/quickstep/src/com/android/quickstep/views/RecentsView.java
@@ -1289,10 +1289,11 @@
return;
}
TaskView taskView = getTaskViewAt(mNextPage);
- // Only snap to fully visible focused task.
- if (taskView == null
- || !taskView.isFocusedTask()
- || !isTaskViewFullyVisible(taskView)) {
+ // Snap to fully visible focused task and clear all button.
+ boolean shouldSnapToFocusedTask = taskView != null && taskView.isFocusedTask()
+ && isTaskViewFullyVisible(taskView);
+ boolean shouldSnapToClearAll = mNextPage == indexOfChild(mClearAllButton);
+ if (!shouldSnapToFocusedTask && !shouldSnapToClearAll) {
return;
}
}
@@ -4535,7 +4536,7 @@
? getClearAllExtraPageSpacing() : 0;
}
- private int getClearAllExtraPageSpacing() {
+ protected int getClearAllExtraPageSpacing() {
return showAsGrid()
? Math.max(mActivity.getDeviceProfile().overviewGridSideMargin - mPageSpacing, 0)
: 0;