From 7376a67ad05ecb39a85dcad2a6f81b592302b93f Mon Sep 17 00:00:00 2001 From: Mady Mellor Date: Wed, 12 May 2021 15:15:34 -0700 Subject: [PATCH 1/2] Update the manage button to the new style Also fixes a bug where the overflow view would still leave space for the manage button even though we don't show something there. Bug: 183658858 Test: manual - open a bubble and observe the manage button, should be on a dark background with light text regardless of light / dark theme. Change-Id: Ie3f67ccd26ad4d75a3ed21a3dee43e2f74d07022 --- .../res/drawable/bubble_manage_btn_bg.xml | 30 +++++++++++++++++++ .../Shell/res/layout/bubble_expanded_view.xml | 9 ++++-- .../wm/shell/bubbles/BubbleExpandedView.java | 3 +- 3 files changed, 38 insertions(+), 4 deletions(-) create mode 100644 libs/WindowManager/Shell/res/drawable/bubble_manage_btn_bg.xml diff --git a/libs/WindowManager/Shell/res/drawable/bubble_manage_btn_bg.xml b/libs/WindowManager/Shell/res/drawable/bubble_manage_btn_bg.xml new file mode 100644 index 0000000000000..8710fb8ac69b2 --- /dev/null +++ b/libs/WindowManager/Shell/res/drawable/bubble_manage_btn_bg.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/libs/WindowManager/Shell/res/layout/bubble_expanded_view.xml b/libs/WindowManager/Shell/res/layout/bubble_expanded_view.xml index 33e009efd3716..cd15f25877fdb 100644 --- a/libs/WindowManager/Shell/res/layout/bubble_expanded_view.xml +++ b/libs/WindowManager/Shell/res/layout/bubble_expanded_view.xml @@ -28,15 +28,18 @@ /> 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 7755cc0e6aedd..53a47b70b0c16 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 @@ -651,11 +651,12 @@ public class BubbleExpandedView extends LinearLayout { // Remove top insets back here because availableRect.height would account for that ? mExpandedViewContainerLocation[1] - mPositioner.getInsets().top : 0; + int settingsHeight = mIsOverflow ? 0 : mSettingsIconHeight; return mPositioner.getAvailableRect().height() - expandedContainerY - getPaddingTop() - getPaddingBottom() - - mSettingsIconHeight + - settingsHeight - mPointerHeight - mPointerMargin; } From 70e798e4744066238413ab0068d88d80d03977f7 Mon Sep 17 00:00:00 2001 From: Mady Mellor Date: Wed, 12 May 2021 15:19:26 -0700 Subject: [PATCH 2/2] Make the pointer for bubbles expanded view rounded Test: manual - open a bubble and note that the pointer is rounded Bug: 183658029 Change-Id: I65f460289dc7128aa95e9ad7575a3bb39be629bf --- libs/WindowManager/Shell/res/values/dimen.xml | 11 +++++-- .../wm/shell/bubbles/BubbleExpandedView.java | 33 ++++++++++++++----- 2 files changed, 33 insertions(+), 11 deletions(-) diff --git a/libs/WindowManager/Shell/res/values/dimen.xml b/libs/WindowManager/Shell/res/values/dimen.xml index 9b1beb3c9ab59..f4c4d025908ed 100644 --- a/libs/WindowManager/Shell/res/values/dimen.xml +++ b/libs/WindowManager/Shell/res/values/dimen.xml @@ -139,10 +139,15 @@ 200dp 50dp - - 8dp - + + 10dp + 12dp + + 2dp + + 1dp 16dp 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 53a47b70b0c16..6a68b06527bea 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 @@ -39,7 +39,9 @@ import android.content.res.Resources; import android.content.res.TypedArray; import android.graphics.Bitmap; import android.graphics.Color; +import android.graphics.CornerPathEffect; import android.graphics.Outline; +import android.graphics.Paint; import android.graphics.Picture; import android.graphics.Rect; import android.graphics.drawable.ShapeDrawable; @@ -105,6 +107,9 @@ public class BubbleExpandedView extends LinearLayout { private int mSettingsIconHeight; private int mPointerWidth; private int mPointerHeight; + private float mPointerRadius; + private float mPointerOverlap; + private CornerPathEffect mPointerEffect; private ShapeDrawable mCurrentPointer; private ShapeDrawable mTopPointer; private ShapeDrawable mLeftPointer; @@ -348,7 +353,9 @@ public class BubbleExpandedView extends LinearLayout { mPointerMargin = res.getDimensionPixelSize(R.dimen.bubble_pointer_margin); mPointerWidth = res.getDimensionPixelSize(R.dimen.bubble_pointer_width); mPointerHeight = res.getDimensionPixelSize(R.dimen.bubble_pointer_height); - + mPointerRadius = getResources().getDimensionPixelSize(R.dimen.bubble_pointer_radius); + mPointerEffect = new CornerPathEffect(mPointerRadius); + mPointerOverlap = getResources().getDimensionPixelSize(R.dimen.bubble_pointer_overlap); mTopPointer = new ShapeDrawable(TriangleShape.create( mPointerWidth, mPointerHeight, true /* pointUp */)); mLeftPointer = new ShapeDrawable(TriangleShape.createHorizontal( @@ -408,8 +415,12 @@ public class BubbleExpandedView extends LinearLayout { lp.width = mPointerWidth; lp.height = mPointerHeight; } - mPointerView.setLayoutParams(lp); mCurrentPointer.setTint(mBackgroundColorFloating); + + Paint arrowPaint = mCurrentPointer.getPaint(); + arrowPaint.setColor(mBackgroundColorFloating); + arrowPaint.setPathEffect(mPointerEffect); + mPointerView.setLayoutParams(lp); mPointerView.setBackground(mCurrentPointer); } @@ -701,10 +712,14 @@ public class BubbleExpandedView extends LinearLayout { public void setPointerPosition(float bubblePosition, boolean onLeft) { // Pointer gets drawn in the padding final boolean showVertically = mPositioner.showBubblesVertically(); - final int paddingLeft = (showVertically && onLeft) ? mPointerHeight : 0; - final int paddingRight = (showVertically && !onLeft) ? mPointerHeight : 0; - final int paddingTop = showVertically ? 0 : mExpandedViewPadding; - setPadding(paddingLeft, paddingTop, paddingRight, 0); + final float paddingLeft = (showVertically && onLeft) + ? mPointerHeight - mPointerOverlap + : 0; + final float paddingRight = (showVertically && !onLeft) + ? mPointerHeight - mPointerOverlap : 0; + final int paddingTop = showVertically ? 0 + : mExpandedViewPadding; + setPadding((int) paddingLeft, paddingTop, (int) paddingRight, 0); final float expandedViewY = mPositioner.getExpandedViewY(); final float bubbleSize = mPositioner.getBubbleBitmapSize(); @@ -717,9 +732,11 @@ public class BubbleExpandedView extends LinearLayout { float pointerX; if (showVertically) { pointerY = bubbleCenter - (mPointerWidth / 2f); - pointerX = onLeft ? -mPointerHeight : getWidth() - mPaddingRight; + pointerX = onLeft + ? -mPointerHeight + mPointerOverlap + : getWidth() - mPaddingRight - mPointerOverlap; } else { - pointerY = 0; + pointerY = mPointerOverlap; pointerX = bubbleCenter - mPaddingLeft - (mPointerWidth / 2f); } mPointerView.setTranslationY(pointerY);