diff --git a/libs/WindowManager/Shell/res/layout/bubble_overflow_container.xml b/libs/WindowManager/Shell/res/layout/bubble_overflow_container.xml index 76fe3c9bb8627..cb516cdbe49b0 100644 --- a/libs/WindowManager/Shell/res/layout/bubble_overflow_container.xml +++ b/libs/WindowManager/Shell/res/layout/bubble_overflow_container.xml @@ -19,9 +19,8 @@ android:id="@+id/bubble_overflow_container" android:layout_width="match_parent" android:layout_height="match_parent" - android:paddingTop="@dimen/bubble_overflow_padding" - android:paddingLeft="@dimen/bubble_overflow_padding" - android:paddingRight="@dimen/bubble_overflow_padding" + android:paddingLeft="@dimen/bubble_overflow_container_padding_horizontal" + android:paddingRight="@dimen/bubble_overflow_container_padding_horizontal" android:orientation="vertical" android:layout_gravity="center_horizontal"> diff --git a/libs/WindowManager/Shell/res/layout/bubble_overflow_view.xml b/libs/WindowManager/Shell/res/layout/bubble_overflow_view.xml index 05b15060946d0..78de76a5465bb 100644 --- a/libs/WindowManager/Shell/res/layout/bubble_overflow_view.xml +++ b/libs/WindowManager/Shell/res/layout/bubble_overflow_view.xml @@ -22,7 +22,6 @@ android:orientation="vertical"> + android:gravity="center_horizontal|top"/> diff --git a/libs/WindowManager/Shell/res/values/dimen.xml b/libs/WindowManager/Shell/res/values/dimen.xml index 2c96786bb5215..ad38975f1f3a6 100644 --- a/libs/WindowManager/Shell/res/values/dimen.xml +++ b/libs/WindowManager/Shell/res/values/dimen.xml @@ -139,16 +139,21 @@ If this value changes then R.dimen.bubble_expanded_view_min_height in CtsVerifier should also be updated. --> 180dp - - 412dp + + 380dp 30dp 480dp 16dp - - 15dp + + 11dp + + 5dp + + 16dp 7dp diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleOverflowContainerView.java b/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleOverflowContainerView.java index 5e9d97f23c577..fcd0ed7308eff 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleOverflowContainerView.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleOverflowContainerView.java @@ -20,11 +20,13 @@ import static com.android.wm.shell.bubbles.BubbleDebugConfig.DEBUG_OVERFLOW; import static com.android.wm.shell.bubbles.BubbleDebugConfig.TAG_BUBBLES; import static com.android.wm.shell.bubbles.BubbleDebugConfig.TAG_WITH_CLASS_NAME; +import android.annotation.NonNull; import android.content.Context; import android.content.res.Configuration; import android.content.res.Resources; import android.content.res.TypedArray; import android.graphics.Color; +import android.graphics.Rect; import android.util.AttributeSet; import android.util.Log; import android.util.TypedValue; @@ -58,6 +60,8 @@ public class BubbleOverflowContainerView extends LinearLayout { private TextView mEmptyStateTitle; private TextView mEmptyStateSubtitle; private ImageView mEmptyStateImage; + private int mHorizontalMargin; + private int mVerticalMargin; private BubbleController mController; private BubbleOverflowAdapter mAdapter; private RecyclerView mRecyclerView; @@ -77,12 +81,6 @@ public class BubbleOverflowContainerView extends LinearLayout { super(context, columns); } -// @Override -// public boolean canScrollVertically() { -// // TODO (b/162006693): this should be based on items in the list & available height -// return true; -// } - @Override public int getColumnCountForAccessibility(RecyclerView.Recycler recycler, RecyclerView.State state) { @@ -98,6 +96,17 @@ public class BubbleOverflowContainerView extends LinearLayout { } } + private class OverflowItemDecoration extends RecyclerView.ItemDecoration { + @Override + public void getItemOffsets(@NonNull Rect outRect, @NonNull View view, + @NonNull RecyclerView parent, @NonNull RecyclerView.State state) { + outRect.left = mHorizontalMargin; + outRect.top = mVerticalMargin; + outRect.right = mHorizontalMargin; + outRect.bottom = mVerticalMargin; + } + } + public BubbleOverflowContainerView(Context context) { this(context, null); } @@ -161,6 +170,9 @@ public class BubbleOverflowContainerView extends LinearLayout { final int columns = res.getInteger(R.integer.bubbles_overflow_columns); mRecyclerView.setLayoutManager( new OverflowGridLayoutManager(getContext(), columns)); + if (mRecyclerView.getItemDecorationCount() == 0) { + mRecyclerView.addItemDecoration(new OverflowItemDecoration()); + } mAdapter = new BubbleOverflowAdapter(getContext(), mOverflowBubbles, mController::promoteBubbleFromOverflow, mController.getPositioner()); @@ -188,6 +200,13 @@ public class BubbleOverflowContainerView extends LinearLayout { final int mode = res.getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK; final boolean isNightMode = (mode == Configuration.UI_MODE_NIGHT_YES); + mHorizontalMargin = res.getDimensionPixelSize( + R.dimen.bubble_overflow_item_padding_horizontal); + mVerticalMargin = res.getDimensionPixelSize(R.dimen.bubble_overflow_item_padding_vertical); + if (mRecyclerView != null) { + mRecyclerView.invalidateItemDecorations(); + } + mEmptyStateImage.setImageDrawable(isNightMode ? res.getDrawable(R.drawable.bubble_ic_empty_overflow_dark) : res.getDrawable(R.drawable.bubble_ic_empty_overflow_light)); @@ -277,8 +296,7 @@ class BubbleOverflowAdapter extends RecyclerView.Adapter