diff --git a/libs/WindowManager/Shell/res/layout/bubble_manage_button.xml b/libs/WindowManager/Shell/res/layout/bubble_manage_button.xml
index ab02a2e6f91a0..c09ae53746da4 100644
--- a/libs/WindowManager/Shell/res/layout/bubble_manage_button.xml
+++ b/libs/WindowManager/Shell/res/layout/bubble_manage_button.xml
@@ -22,7 +22,8 @@
android:layout_width="wrap_content"
android:layout_height="40dp"
android:layout_marginTop="8dp"
- android:layout_marginLeft="8dp"
+ android:layout_marginLeft="16dp"
+ android:layout_marginBottom="8dp"
android:focusable="true"
android:text="@string/manage_bubbles_text"
android:textSize="@*android:dimen/text_size_body_2_material"
diff --git a/libs/WindowManager/Shell/res/layout/bubble_menu_view.xml b/libs/WindowManager/Shell/res/layout/bubble_menu_view.xml
deleted file mode 100644
index d19b65394cd89..0000000000000
--- a/libs/WindowManager/Shell/res/layout/bubble_menu_view.xml
+++ /dev/null
@@ -1,45 +0,0 @@
-
-
-
-
-
-
-
-
-
diff --git a/libs/WindowManager/Shell/res/values/dimen.xml b/libs/WindowManager/Shell/res/values/dimen.xml
index a58202857cfc6..e32d3251f788f 100644
--- a/libs/WindowManager/Shell/res/values/dimen.xml
+++ b/libs/WindowManager/Shell/res/values/dimen.xml
@@ -85,13 +85,6 @@
16dp
-
- 20dp
- 20dp
- 12dp
- 4dp
- 22dp
-
1dp
@@ -109,7 +102,7 @@
16dp
- 16dp
+ 8dp
60dp
@@ -119,7 +112,7 @@
52dp
- 4dp
+ 16dp
8dp
@@ -151,7 +144,7 @@
16dp
- 48dp
+ 56dp
60dp
@@ -170,7 +163,7 @@
120dp
- 8dp
+ 5dp
40dp
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleExpandedView.java b/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleExpandedView.java
index f5c453d942e12..158babe256525 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleExpandedView.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleExpandedView.java
@@ -113,7 +113,6 @@ public class BubbleExpandedView extends LinearLayout {
private ShapeDrawable mTopPointer;
private ShapeDrawable mLeftPointer;
private ShapeDrawable mRightPointer;
- private int mExpandedViewPadding;
private float mCornerRadius = 0f;
private int mBackgroundColorFloating;
@@ -349,7 +348,6 @@ public class BubbleExpandedView extends LinearLayout {
Resources res = getResources();
mMinHeight = res.getDimensionPixelSize(R.dimen.bubble_expanded_default_height);
mOverflowHeight = res.getDimensionPixelSize(R.dimen.bubble_overflow_height);
- mExpandedViewPadding = res.getDimensionPixelSize(R.dimen.bubble_expanded_view_padding);
updateFontSize();
@@ -667,13 +665,15 @@ public class BubbleExpandedView extends LinearLayout {
? mExpandedViewContainerLocation[1] - mPositioner.getInsets().top
: 0;
int settingsHeight = mIsOverflow ? 0 : mManageButtonHeight;
+ int pointerHeight = mPositioner.showBubblesVertically()
+ ? mPointerWidth
+ : (int) (mPointerHeight - mPointerOverlap + mPointerMargin);
return mPositioner.getAvailableRect().height()
- expandedContainerY
- getPaddingTop()
- getPaddingBottom()
- settingsHeight
- - mPointerHeight
- - mPointerMargin;
+ - pointerHeight;
}
/**
@@ -721,15 +721,14 @@ public class BubbleExpandedView extends LinearLayout {
: 0;
final float paddingRight = (showVertically && !onLeft)
? mPointerHeight - mPointerOverlap : 0;
- final int paddingTop = showVertically ? 0
- : mExpandedViewPadding;
- setPadding((int) paddingLeft, paddingTop, (int) paddingRight, 0);
+ final float paddingTop = showVertically ? 0
+ : mPointerHeight - mPointerOverlap;
+ setPadding((int) paddingLeft, (int) paddingTop, (int) paddingRight, 0);
final float expandedViewY = mPositioner.getExpandedViewY();
- final float bubbleSize = mPositioner.getBubbleBitmapSize();
final float bubbleCenter = showVertically
- ? bubblePosition + (bubbleSize / 2f) - expandedViewY
- : bubblePosition + (bubbleSize / 2f);
+ ? bubblePosition + (mPositioner.getBubbleSize() / 2f) - expandedViewY
+ : bubblePosition + (mPositioner.getBubbleBitmapSize() / 2f) - mPointerWidth;
// Post because we need the width of the view
post(() -> {
float pointerY;
@@ -741,7 +740,7 @@ public class BubbleExpandedView extends LinearLayout {
: getWidth() - mPaddingRight - mPointerOverlap;
} else {
pointerY = mPointerOverlap;
- pointerX = bubbleCenter - mPaddingLeft - (mPointerWidth / 2f);
+ pointerX = bubbleCenter - (mPointerWidth / 2f);
}
mPointerView.setTranslationY(pointerY);
mPointerView.setTranslationX(pointerX);
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubblePositioner.java b/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubblePositioner.java
index ae1a053ae19e9..65a0ddab64fc6 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubblePositioner.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubblePositioner.java
@@ -72,12 +72,13 @@ public class BubblePositioner {
private int mBubbleBitmapSize;
private int mExpandedViewLargeScreenWidth;
private int mExpandedViewPadding;
- private int mPointerHeight;
- private int mBubblePaddingTop;
+ private int mPointerMargin;
+ private float mPointerWidth;
+ private float mPointerHeight;
private PointF mPinLocation;
private PointF mRestingStackPosition;
- private int[] mLeftRightPadding = new int[2];
+ private int[] mPaddings = new int[4];
private boolean mIsLargeScreen;
private boolean mShowingInTaskbar;
@@ -154,8 +155,9 @@ public class BubblePositioner {
mExpandedViewLargeScreenWidth = res.getDimensionPixelSize(
R.dimen.bubble_expanded_view_tablet_width);
mExpandedViewPadding = res.getDimensionPixelSize(R.dimen.bubble_expanded_view_padding);
+ mPointerWidth = res.getDimensionPixelSize(R.dimen.bubble_pointer_width);
mPointerHeight = res.getDimensionPixelSize(R.dimen.bubble_pointer_height);
- mBubblePaddingTop = res.getDimensionPixelSize(R.dimen.bubble_padding_top);
+ mPointerMargin = res.getDimensionPixelSize(R.dimen.bubble_pointer_margin);
if (mShowingInTaskbar) {
adjustForTaskbar();
}
@@ -251,30 +253,32 @@ public class BubblePositioner {
final boolean isLargeOrOverflow = mIsLargeScreen || isOverflow;
if (showBubblesVertically()) {
if (!onLeft) {
- rightPadding += mPointerHeight + mBubbleSize;
+ rightPadding += mBubbleSize - mPointerHeight;
leftPadding += isLargeOrOverflow
? (mPositionRect.width() - rightPadding - mExpandedViewLargeScreenWidth)
: 0;
} else {
- //TODO: pointer height should be padding between pointer & bubbles here & above
- leftPadding += mPointerHeight + mBubbleSize;
+ leftPadding += mBubbleSize - mPointerHeight;
rightPadding += isLargeOrOverflow
? (mPositionRect.width() - leftPadding - mExpandedViewLargeScreenWidth)
: 0;
}
}
- mLeftRightPadding[0] = leftPadding;
- mLeftRightPadding[1] = rightPadding;
- return mLeftRightPadding;
+ // [left, top, right, bottom]
+ mPaddings[0] = leftPadding;
+ mPaddings[1] = showBubblesVertically() ? 0 : mPointerMargin;
+ mPaddings[2] = rightPadding;
+ mPaddings[3] = 0;
+ return mPaddings;
}
/** Calculates the y position of the expanded view when it is expanded. */
public float getExpandedViewY() {
final int top = getAvailableRect().top;
if (showBubblesVertically()) {
- return top + mExpandedViewPadding;
+ return top - mPointerWidth;
} else {
- return top + mBubbleSize + mBubblePaddingTop;
+ return top + mBubbleSize + mPointerMargin;
}
}
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleStackView.java b/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleStackView.java
index 64a3b8f0da32c..c6a9c108135f7 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleStackView.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleStackView.java
@@ -247,7 +247,6 @@ public class BubbleStackView extends FrameLayout
private int mBubbleElevation;
private int mBubbleTouchPadding;
private int mExpandedViewPadding;
- private int mPointerHeight;
private int mCornerRadius;
private int mImeOffset;
@Nullable private BubbleViewProvider mExpandedBubble;
@@ -767,7 +766,6 @@ public class BubbleStackView extends FrameLayout
mBubbleSize = res.getDimensionPixelSize(R.dimen.individual_bubble_size);
mBubbleElevation = res.getDimensionPixelSize(R.dimen.bubble_elevation);
mBubbleTouchPadding = res.getDimensionPixelSize(R.dimen.bubble_touch_padding);
- mPointerHeight = res.getDimensionPixelSize(R.dimen.bubble_pointer_height);
mImeOffset = res.getDimensionPixelSize(R.dimen.pip_ime_offset);
mExpandedViewPadding = res.getDimensionPixelSize(R.dimen.bubble_expanded_view_padding);
@@ -2700,7 +2698,7 @@ public class BubbleStackView extends FrameLayout
&& BubbleOverflow.KEY.equals(mExpandedBubble.getKey());
int[] paddings = mPositioner.getExpandedViewPadding(
mStackAnimationController.isStackOnLeftSide(), isOverflowExpanded);
- mExpandedViewContainer.setPadding(paddings[0], 0, paddings[1], 0);
+ mExpandedViewContainer.setPadding(paddings[0], paddings[1], paddings[2], paddings[3]);
if (mIsExpansionAnimating) {
mExpandedViewContainer.setVisibility(mIsExpanded ? VISIBLE : GONE);
}
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/animation/ExpandedAnimationController.java b/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/animation/ExpandedAnimationController.java
index fc499572bbc3a..7f55403ba33c6 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/animation/ExpandedAnimationController.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/animation/ExpandedAnimationController.java
@@ -208,7 +208,6 @@ public class ExpandedAnimationController
Resources res = mLayout.getContext().getResources();
mBubblePaddingTop = res.getDimensionPixelSize(R.dimen.bubble_padding_top);
mStackOffsetPx = res.getDimensionPixelSize(R.dimen.bubble_stack_offset);
- mBubblePaddingTop = res.getDimensionPixelSize(R.dimen.bubble_padding_top);
mBubbleSizePx = mPositioner.getBubbleSize();
mBubblesMaxRendered = res.getInteger(R.integer.bubbles_max_rendered);
mBubblesMaxSpace = res.getDimensionPixelSize(R.dimen.bubble_max_spacing);
@@ -276,8 +275,8 @@ public class ExpandedAnimationController
boolean onLeft = mCollapsePoint != null
&& mCollapsePoint.x < (availableRect.width() / 2f);
float translationX = onLeft
- ? availableRect.left + mExpandedViewPadding
- : availableRect.right - mBubbleSizePx - mExpandedViewPadding;
+ ? availableRect.left
+ : availableRect.right - mBubbleSizePx;
path.lineTo(translationX, getBubbleXOrYForOrientation(index));
} else {
path.lineTo(getBubbleXOrYForOrientation(index), expandedY);
@@ -621,8 +620,8 @@ public class ExpandedAnimationController
&& mCollapsePoint.x < (availableRect.width() / 2f);
animationForChild(bubble)
.translationX(onLeft
- ? availableRect.left + mExpandedViewPadding
- : availableRect.right - mBubbleSizePx - mExpandedViewPadding)
+ ? availableRect.left
+ : availableRect.right - mBubbleSizePx)
.translationY(getBubbleXOrYForOrientation(i))
.start();
} else {