Collapse the stack on clicks rather than on down

Fixes an issue where you'd collapse the bubble
accidentally when performing back gesture in the padding
around the expanded view.

This means things will hide 'on up' rather than 'on down'
but I think that's fine / more expected behavior.

Removed some old code.

Test: manual - expand the bubble stack, open a 2nd activity in the
               bubble, perform gesture back => 2nd activity goes
               away & the bubble doesn't collapse
Bug: 190102948
Change-Id: I016bd9b3091938974f3330f4d005d4ef6bcccfee
This commit is contained in:
Mady Mellor
2021-06-04 10:44:36 -07:00
parent 1746c1e330
commit 37632bb6e4
2 changed files with 9 additions and 34 deletions

View File

@@ -290,27 +290,6 @@ public class BubbleExpandedView extends LinearLayout {
applyThemeAttrs();
setClipToPadding(false);
setOnTouchListener((view, motionEvent) -> {
if (mTaskView == null) {
return false;
}
final Rect avBounds = new Rect();
mTaskView.getBoundsOnScreen(avBounds);
// Consume and ignore events on the expanded view padding that are within the
// ActivityView's vertical bounds. These events are part of a back gesture, and so they
// should not collapse the stack (which all other touches on areas around the AV would
// do).
if (motionEvent.getRawY() >= avBounds.top
&& motionEvent.getRawY() <= avBounds.bottom
&& (motionEvent.getRawX() < avBounds.left
|| motionEvent.getRawX() > avBounds.right)) {
return true;
}
return false;
});
// BubbleStackView is forced LTR, but we want to respect the locale for expanded view layout
// so the Manage button appears on the right.

View File

@@ -932,20 +932,16 @@ public class BubbleStackView extends FrameLayout
}
});
// If the stack itself is touched, it means none of its touchable views (bubbles, flyouts,
// ActivityViews, etc.) were touched. Collapse the stack if it's expanded.
setOnTouchListener((view, ev) -> {
if (ev.getAction() == MotionEvent.ACTION_DOWN) {
if (mShowingManage) {
showManageMenu(false /* show */);
} else if (mStackEduView != null && mStackEduView.getVisibility() == VISIBLE) {
mStackEduView.hide(false);
} else if (mBubbleData.isExpanded()) {
mBubbleData.setExpanded(false);
}
// If the stack itself is clicked, it means none of its touchable views (bubbles, flyouts,
// TaskView, etc.) were touched. Collapse the stack if it's expanded.
setOnClickListener(view -> {
if (mShowingManage) {
showManageMenu(false /* show */);
} else if (mStackEduView != null && mStackEduView.getVisibility() == VISIBLE) {
mStackEduView.hide(false);
} else if (mBubbleData.isExpanded()) {
mBubbleData.setExpanded(false);
}
return true;
});
animate()