Move bubbles top, manage button below

Bug: 131849856
Test: manual
Change-Id: I75a0a66d8d8177d1426f6951287986e37128243e
This commit is contained in:
Lyn Han
2019-05-15 10:55:07 -07:00
parent 83518d9436
commit 5aa27e262d
4 changed files with 24 additions and 15 deletions

View File

@@ -30,11 +30,12 @@
<com.android.systemui.statusbar.AlphaOptimizedButton
style="@android:style/Widget.Material.Button.Borderless"
android:id="@+id/settings_button"
android:layout_gravity="end"
android:layout_gravity="start"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:focusable="true"
android:text="@string/manage_bubbles_text"
android:textColor="?attr/wallpaperTextColor"/>
android:textColor="?attr/wallpaperTextColor"
/>
</com.android.systemui.bubbles.BubbleExpandedView>

View File

@@ -174,7 +174,7 @@ public class BubbleExpandedView extends LinearLayout implements View.OnClickList
mPointerDrawable = new ShapeDrawable(TriangleShape.create(
mPointerWidth, mPointerHeight, false /* pointUp */));
mPointerWidth, mPointerHeight, true /* pointUp */));
mPointerView.setBackground(mPointerDrawable);
mSettingsIconHeight = getContext().getResources().getDimensionPixelSize(
@@ -186,8 +186,14 @@ public class BubbleExpandedView extends LinearLayout implements View.OnClickList
true /* singleTaskInstance */);
addView(mActivityView);
// Make sure pointer is below activity view
bringChildToFront(mPointerView);
// Expanded stack layout, top to bottom:
// Expanded view container
// ==> bubble row
// ==> expanded view
// ==> activity view
// ==> manage button
bringChildToFront(mActivityView);
bringChildToFront(mSettingsIcon);
applyThemeAttrs();

View File

@@ -176,6 +176,7 @@ public class BubbleStackView extends FrameLayout {
private int mExpandedViewPadding;
private int mExpandedAnimateXDistance;
private int mExpandedAnimateYDistance;
private int mPointerHeight;
private int mStatusBarHeight;
private int mPipDismissHeight;
private int mImeOffset;
@@ -303,6 +304,8 @@ public class BubbleStackView extends FrameLayout {
res.getDimensionPixelSize(R.dimen.bubble_expanded_animate_x_distance);
mExpandedAnimateYDistance =
res.getDimensionPixelSize(R.dimen.bubble_expanded_animate_y_distance);
mPointerHeight = res.getDimensionPixelSize(R.dimen.bubble_pointer_height);
mStatusBarHeight =
res.getDimensionPixelSize(com.android.internal.R.dimen.status_bar_height);
mPipDismissHeight = mContext.getResources().getDimensionPixelSize(
@@ -1282,15 +1285,16 @@ public class BubbleStackView extends FrameLayout {
*/
int getMaxExpandedHeight() {
int expandedY = (int) mExpandedAnimationController.getExpandedY();
return expandedY - getStatusBarHeight();
// PIP dismiss view uses FLAG_LAYOUT_IN_SCREEN so we need to subtract the bottom inset
int pipDismissHeight = mPipDismissHeight - getBottomInset();
return mDisplaySize.y - expandedY - mBubbleSize - pipDismissHeight;
}
/**
* Calculates the y position of the expanded view when it is expanded.
*/
float getYPositionForExpandedView() {
return mExpandedAnimationController.getExpandedY()
- mExpandedBubble.expandedView.getExpandedSize() - mBubblePadding;
return getStatusBarHeight() + mBubbleSize + mBubblePadding + mPointerHeight;
}
/**

View File

@@ -301,13 +301,11 @@ public class ExpandedAnimationController
return 0;
}
final WindowInsets insets = mLayout.getRootWindowInsets();
int keyboardHeight = insets.getSystemWindowInsetBottom()
- insets.getStableInsetBottom();
float bottomInset = keyboardHeight > 0
? keyboardHeight
: (mPipDismissHeight - insets.getStableInsetBottom());
// Stable insets are excluded from display size, so we must subtract it
return mDisplaySize.y - mBubbleSizePx - mBubblePaddingPx - bottomInset;
return mBubblePaddingPx + Math.max(
mStatusBarHeight,
insets.getDisplayCutout() != null
? insets.getDisplayCutout().getSafeInsetTop()
: 0);
}
@Override