diff --git a/packages/SystemUI/res/layout/accessibility_floating_menu_item.xml b/packages/SystemUI/res/layout/accessibility_floating_menu_item.xml
index f7357b27af5f0..2067f85249a24 100644
--- a/packages/SystemUI/res/layout/accessibility_floating_menu_item.xml
+++ b/packages/SystemUI/res/layout/accessibility_floating_menu_item.xml
@@ -19,8 +19,8 @@
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:paddingStart="@dimen/accessibility_floating_menu_padding"
- android:paddingEnd="@dimen/accessibility_floating_menu_padding"
+ android:paddingStart="@dimen/accessibility_floating_menu_small_padding"
+ android:paddingEnd="@dimen/accessibility_floating_menu_small_padding"
android:orientation="vertical"
android:gravity="center">
@@ -29,9 +29,4 @@
android:layout_width="@dimen/accessibility_floating_menu_small_width_height"
android:layout_height="@dimen/accessibility_floating_menu_small_width_height"/>
-
-
\ No newline at end of file
diff --git a/packages/SystemUI/res/values/dimens.xml b/packages/SystemUI/res/values/dimens.xml
index 24eac1593195d..a5bf7945f1d7d 100644
--- a/packages/SystemUI/res/values/dimens.xml
+++ b/packages/SystemUI/res/values/dimens.xml
@@ -1465,16 +1465,17 @@
4dp
- 5dp
+ 3dp
1dp
-2dp
16dp
- 6dp
+ 6dp
36dp
25dp
20dp
+ 8dp
56dp
- 33dp
+ 35dp
35dp
8dp
diff --git a/packages/SystemUI/src/com/android/systemui/accessibility/floatingmenu/AccessibilityFloatingMenuView.java b/packages/SystemUI/src/com/android/systemui/accessibility/floatingmenu/AccessibilityFloatingMenuView.java
index e85bd885c88a6..77273ca92ef16 100644
--- a/packages/SystemUI/src/com/android/systemui/accessibility/floatingmenu/AccessibilityFloatingMenuView.java
+++ b/packages/SystemUI/src/com/android/systemui/accessibility/floatingmenu/AccessibilityFloatingMenuView.java
@@ -409,11 +409,13 @@ public class AccessibilityFloatingMenuView extends FrameLayout
mSizeType = newSizeType;
- updateIconSizeWith(newSizeType);
+ updateItemViewWith(newSizeType);
updateRadiusWith(newSizeType, mRadiusType, mTargets.size());
// When the icon sized changed, the menu size and location will be impacted.
updateLocationWith(mAlignment, mPercentageY);
+ updateScrollModeWith(hasExceededMaxLayoutHeight());
+ updateOffsetWith(mShapeType, mAlignment);
setSystemGestureExclusion();
fadeOut();
@@ -601,24 +603,35 @@ public class AccessibilityFloatingMenuView extends FrameLayout
mScreenHeight = dm.heightPixels;
mMargin =
res.getDimensionPixelSize(R.dimen.accessibility_floating_menu_margin);
- mPadding =
- res.getDimensionPixelSize(R.dimen.accessibility_floating_menu_padding);
mInset =
res.getDimensionPixelSize(R.dimen.accessibility_floating_menu_stroke_inset);
mSquareScaledTouchSlop =
sq(ViewConfiguration.get(getContext()).getScaledTouchSlop());
+
+ updateItemViewDimensionsWith(mSizeType);
}
- private void updateIconSizeWith(@SizeType int sizeType) {
+ private void updateItemViewDimensionsWith(@SizeType int sizeType) {
final Resources res = getResources();
+ final int paddingResId =
+ sizeType == SizeType.SMALL
+ ? R.dimen.accessibility_floating_menu_small_padding
+ : R.dimen.accessibility_floating_menu_large_padding;
+ mPadding = res.getDimensionPixelSize(paddingResId);
+
final int iconResId =
sizeType == SizeType.SMALL
? R.dimen.accessibility_floating_menu_small_width_height
: R.dimen.accessibility_floating_menu_large_width_height;
mIconWidth = res.getDimensionPixelSize(iconResId);
mIconHeight = mIconWidth;
+ }
+ private void updateItemViewWith(@SizeType int sizeType) {
+ updateItemViewDimensionsWith(sizeType);
+
+ mAdapter.setItemPadding(mPadding);
mAdapter.setIconWidthHeight(mIconWidth);
mAdapter.notifyDataSetChanged();
}
@@ -630,7 +643,6 @@ public class AccessibilityFloatingMenuView extends FrameLayout
final LayoutParams layoutParams =
new LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT,
ViewGroup.LayoutParams.WRAP_CONTENT);
- layoutParams.setMargins(mMargin, mMargin, mMargin, mMargin);
mListView.setLayoutParams(layoutParams);
final InstantInsetLayerDrawable layerDrawable =
new InstantInsetLayerDrawable(new Drawable[]{background});
@@ -645,6 +657,10 @@ public class AccessibilityFloatingMenuView extends FrameLayout
}
private void updateListView() {
+ final LayoutParams layoutParams = (FrameLayout.LayoutParams) mListView.getLayoutParams();
+ layoutParams.setMargins(mMargin, mMargin, mMargin, mMargin);
+ mListView.setLayoutParams(layoutParams);
+
final int elevation =
getResources().getDimensionPixelSize(R.dimen.accessibility_floating_menu_elevation);
mListView.setElevation(elevation);
@@ -676,11 +692,13 @@ public class AccessibilityFloatingMenuView extends FrameLayout
updateDimensions();
updateListView();
- updateIconSizeWith(mSizeType);
+ updateItemViewWith(mSizeType);
updateColor();
updateStrokeWith(newConfig.uiMode, mAlignment);
updateLocationWith(mAlignment, mPercentageY);
+ updateRadiusWith(mSizeType, mRadiusType, mTargets.size());
updateScrollModeWith(hasExceededMaxLayoutHeight());
+ setSystemGestureExclusion();
mLastConfiguration.setTo(newConfig);
}
diff --git a/packages/SystemUI/src/com/android/systemui/accessibility/floatingmenu/AccessibilityTargetAdapter.java b/packages/SystemUI/src/com/android/systemui/accessibility/floatingmenu/AccessibilityTargetAdapter.java
index 76106e7c2cf1f..63cfd5123c969 100644
--- a/packages/SystemUI/src/com/android/systemui/accessibility/floatingmenu/AccessibilityTargetAdapter.java
+++ b/packages/SystemUI/src/com/android/systemui/accessibility/floatingmenu/AccessibilityTargetAdapter.java
@@ -16,8 +16,6 @@
package com.android.systemui.accessibility.floatingmenu;
-import static android.view.View.GONE;
-
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
@@ -43,6 +41,7 @@ import java.util.List;
*/
public class AccessibilityTargetAdapter extends Adapter {
private int mIconWidthHeight;
+ private int mItemPadding;
private final List mTargets;
@IntDef({
@@ -84,6 +83,7 @@ public class AccessibilityTargetAdapter extends Adapter {
final AccessibilityTarget target = mTargets.get(position);
holder.mIconView.setBackground(target.getIcon());
holder.updateIconWidthHeight(mIconWidthHeight);
+ holder.updateItemPadding(mItemPadding, getItemCount());
holder.itemView.setOnClickListener((v) -> target.onSelected());
holder.itemView.setStateDescription(target.getStateDescription());
holder.itemView.setContentDescription(target.getLabel());
@@ -120,14 +120,16 @@ public class AccessibilityTargetAdapter extends Adapter {
mIconWidthHeight = iconWidthHeight;
}
+ public void setItemPadding(int itemPadding) {
+ mItemPadding = itemPadding;
+ }
+
static class ViewHolder extends RecyclerView.ViewHolder {
final View mIconView;
- final View mDivider;
ViewHolder(View itemView) {
super(itemView);
mIconView = itemView.findViewById(R.id.icon_view);
- mDivider = itemView.findViewById(R.id.transparent_divider);
}
void updateIconWidthHeight(int newValue) {
@@ -139,21 +141,31 @@ public class AccessibilityTargetAdapter extends Adapter {
layoutParams.height = newValue;
mIconView.setLayoutParams(layoutParams);
}
+
+ void updateItemPadding(int padding, int size) {
+ itemView.setPaddingRelative(padding, padding, padding, padding);
+ }
}
static class TopViewHolder extends ViewHolder {
TopViewHolder(View itemView) {
super(itemView);
- final int padding = itemView.getPaddingStart();
- itemView.setPaddingRelative(padding, padding, padding, 0);
+ }
+
+ @Override
+ void updateItemPadding(int padding, int size) {
+ final int paddingBottom = size <= 2 ? padding : 0;
+ itemView.setPaddingRelative(padding, padding, padding, paddingBottom);
}
}
static class BottomViewHolder extends ViewHolder {
BottomViewHolder(View itemView) {
super(itemView);
- mDivider.setVisibility(GONE);
- final int padding = itemView.getPaddingStart();
+ }
+
+ @Override
+ void updateItemPadding(int padding, int size) {
itemView.setPaddingRelative(padding, 0, padding, padding);
}
}
diff --git a/packages/SystemUI/tests/src/com/android/systemui/accessibility/floatingmenu/AccessibilityFloatingMenuViewTest.java b/packages/SystemUI/tests/src/com/android/systemui/accessibility/floatingmenu/AccessibilityFloatingMenuViewTest.java
index 0de257ad424b5..b166e171f0cb6 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/accessibility/floatingmenu/AccessibilityFloatingMenuViewTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/accessibility/floatingmenu/AccessibilityFloatingMenuViewTest.java
@@ -111,7 +111,7 @@ public class AccessibilityFloatingMenuViewTest extends SysuiTestCase {
final int margin =
res.getDimensionPixelSize(R.dimen.accessibility_floating_menu_margin);
final int padding =
- res.getDimensionPixelSize(R.dimen.accessibility_floating_menu_padding);
+ res.getDimensionPixelSize(R.dimen.accessibility_floating_menu_small_padding);
final int iconWidthHeight =
res.getDimensionPixelSize(R.dimen.accessibility_floating_menu_small_width_height);
final int menuWidth = padding * 2 + iconWidthHeight;