Merge changes I23fdfa3a,Ibe43fd74 into rvc-dev

* changes:
  Don't allow the overflow bubble to be dragged out.
  Fix inability to return to selected bubble after opening overflow.
This commit is contained in:
TreeHugger Robot
2020-03-11 21:51:42 +00:00
committed by Android (Google) Code Review
2 changed files with 20 additions and 3 deletions

View File

@@ -1386,6 +1386,11 @@ public class BubbleStackView extends FrameLayout {
if (DEBUG_BUBBLE_STACK_VIEW) { if (DEBUG_BUBBLE_STACK_VIEW) {
Log.d(TAG, "onBubbleDragStart: bubble=" + bubble); Log.d(TAG, "onBubbleDragStart: bubble=" + bubble);
} }
if (bubble.equals(mBubbleOverflow.getIconView())) {
return;
}
mExpandedAnimationController.prepareForBubbleDrag(bubble, mMagneticTarget); mExpandedAnimationController.prepareForBubbleDrag(bubble, mMagneticTarget);
// We're dragging an individual bubble, so set the magnetized object to the magnetized // We're dragging an individual bubble, so set the magnetized object to the magnetized
@@ -1398,7 +1403,7 @@ public class BubbleStackView extends FrameLayout {
/** Called with the coordinates to which an individual bubble has been dragged. */ /** Called with the coordinates to which an individual bubble has been dragged. */
public void onBubbleDragged(View bubble, float x, float y) { public void onBubbleDragged(View bubble, float x, float y) {
if (!mIsExpanded || mIsExpansionAnimating) { if (!mIsExpanded || mIsExpansionAnimating || bubble.equals(mBubbleOverflow.getIconView())) {
return; return;
} }
@@ -1413,7 +1418,7 @@ public class BubbleStackView extends FrameLayout {
Log.d(TAG, "onBubbleDragFinish: bubble=" + bubble); Log.d(TAG, "onBubbleDragFinish: bubble=" + bubble);
} }
if (!mIsExpanded || mIsExpansionAnimating) { if (!mIsExpanded || mIsExpansionAnimating || bubble.equals(mBubbleOverflow.getIconView())) {
return; return;
} }
@@ -1421,6 +1426,18 @@ public class BubbleStackView extends FrameLayout {
hideDismissTarget(); hideDismissTarget();
} }
/** Expands the clicked bubble. */
public void expandBubble(Bubble bubble) {
if (bubble.equals(mBubbleData.getSelectedBubble())) {
// If the bubble we're supposed to expand is the selected bubble, that means the
// overflow bubble is currently expanded. Don't tell BubbleData to set this bubble as
// selected, since it already is. Just call the stack's setSelectedBubble to expand it.
setSelectedBubble(bubble);
} else {
mBubbleData.setSelectedBubble(bubble);
}
}
void onDragStart() { void onDragStart() {
if (DEBUG_BUBBLE_STACK_VIEW) { if (DEBUG_BUBBLE_STACK_VIEW) {
Log.d(TAG, "onDragStart()"); Log.d(TAG, "onDragStart()");

View File

@@ -189,7 +189,7 @@ class BubbleTouchHandler implements View.OnTouchListener {
if (key == BubbleOverflow.KEY) { if (key == BubbleOverflow.KEY) {
mStack.showOverflow(); mStack.showOverflow();
} else { } else {
mBubbleData.setSelectedBubble(mBubbleData.getBubbleWithKey(key)); mStack.expandBubble(mBubbleData.getBubbleWithKey(key));
} }
} }
resetForNextGesture(); resetForNextGesture();