Making clear-all pressable correctly
Bug: 72222505
Test: Manual
Change-Id: I1ca35482a2090c329be6c906f5047612e6948ad2
diff --git a/quickstep/src/com/android/quickstep/views/RecentsView.java b/quickstep/src/com/android/quickstep/views/RecentsView.java
index 29d999d..647415e 100644
--- a/quickstep/src/com/android/quickstep/views/RecentsView.java
+++ b/quickstep/src/com/android/quickstep/views/RecentsView.java
@@ -169,7 +169,7 @@
// Keeps track of task views whose visual state should not be reset
private ArraySet<TaskView> mIgnoreResetTaskViews = new ArraySet<>();
- private RecentsViewContainer mContainerView;
+ private View mClearAllButton;
// Variables for empty state
private final Drawable mEmptyIcon;
@@ -311,12 +311,15 @@
@Override
public boolean onTouchEvent(MotionEvent ev) {
- if (DEBUG_SHOW_CLEAR_ALL_BUTTON && mTouchState == TOUCH_STATE_REST && mScroller.isFinished()
- && getChildCount() != 0
- && ev.getX() > getChildAt(getChildCount() - 1).getRight() - getScrollX()) {
- // If nothing is in motion, allow events to the right of the last task to go to the
- // Clear All button.
- return false;
+ if (DEBUG_SHOW_CLEAR_ALL_BUTTON && ev.getAction() == MotionEvent.ACTION_DOWN
+ && mTouchState == TOUCH_STATE_REST && mScroller.isFinished()
+ && mClearAllButton.getVisibility() == View.VISIBLE) {
+ mClearAllButton.getHitRect(mTempRect);
+ mTempRect.offset(-getLeft(), -getTop());
+ if (mTempRect.contains((int) ev.getX(), (int) ev.getY())) {
+ // If nothing is in motion, let the Clear All button process the event.
+ return false;
+ }
}
if (ev.getAction() == MotionEvent.ACTION_UP && mShowEmptyMessage) {
@@ -928,8 +931,8 @@
mShowEmptyMessage = isEmpty;
updateEmptyStateUi(hasSizeChanged);
invalidate();
- if (mContainerView != null) {
- mContainerView.onEmptyStateChanged(!DEBUG_SHOW_CLEAR_ALL_BUTTON || mShowEmptyMessage);
+ if (mClearAllButton != null) {
+ updateClearAllButtonVisibility();
}
}
@@ -1119,8 +1122,13 @@
R.dimen.clear_all_container_width) - getPaddingEnd();
}
- public void setContainerView(RecentsViewContainer containerView) {
- mContainerView = containerView;
- mContainerView.onEmptyStateChanged(!DEBUG_SHOW_CLEAR_ALL_BUTTON || mShowEmptyMessage);
+ private void updateClearAllButtonVisibility() {
+ mClearAllButton.setVisibility(
+ !DEBUG_SHOW_CLEAR_ALL_BUTTON || mShowEmptyMessage ? GONE : VISIBLE);
+ }
+
+ public void setClearAllButton(View clearAllButton) {
+ mClearAllButton = clearAllButton;
+ updateClearAllButtonVisibility();
}
}
diff --git a/quickstep/src/com/android/quickstep/views/RecentsViewContainer.java b/quickstep/src/com/android/quickstep/views/RecentsViewContainer.java
index ece78c1..a949c89 100644
--- a/quickstep/src/com/android/quickstep/views/RecentsViewContainer.java
+++ b/quickstep/src/com/android/quickstep/views/RecentsViewContainer.java
@@ -43,7 +43,7 @@
});
mRecentsView = (RecentsView) findViewById(R.id.overview_panel);
- mRecentsView.setContainerView(this);
+ mRecentsView.setClearAllButton(mClearAllButton);
}
@Override
@@ -74,8 +74,4 @@
mRecentsView.setContentAlpha(alpha);
setVisibility(alpha > 0 ? VISIBLE : GONE);
}
-
- public void onEmptyStateChanged(boolean isEmpty) {
- mClearAllButton.setVisibility(isEmpty ? GONE : VISIBLE);
- }
}
\ No newline at end of file