From 80ef161e48d73cb83ee9e5162ce099a148a3aed6 Mon Sep 17 00:00:00 2001 From: Matt Casey Date: Tue, 24 May 2022 01:01:44 +0000 Subject: [PATCH] Align outer edge of profile tabs and icons Previously tabs were full-width, now they align with the outer edges of icons. In ResovlerActivity, this is constant. In ChooserActivity, the placement of the icons is based upon the icon count and layout width, so it must be computed at runtime. Bug: 233330219 Test: Manually with various orientations across Chooser and Resolver. Test: atest ResolverActivityTest, atest ChooserActivityTest Change-Id: I2009211c277f6ea0b3f14a06a54e82f4c190c564 --- .../android/internal/app/ChooserActivity.java | 17 +++++++++++++++++ core/res/res/layout/resolver_list.xml | 2 ++ .../res/layout/resolver_profile_tab_button.xml | 2 +- core/res/res/values/dimens.xml | 1 + core/res/res/values/symbols.xml | 1 + 5 files changed, 22 insertions(+), 1 deletion(-) diff --git a/core/java/com/android/internal/app/ChooserActivity.java b/core/java/com/android/internal/app/ChooserActivity.java index 468293862cd3d..61c844ac81706 100644 --- a/core/java/com/android/internal/app/ChooserActivity.java +++ b/core/java/com/android/internal/app/ChooserActivity.java @@ -1002,6 +1002,7 @@ public class ChooserActivity extends ResolverActivity implements mMaxTargetsPerRow = getResources().getInteger(R.integer.config_chooser_max_targets_per_row); adjustPreviewWidth(newConfig.orientation, null); updateStickyContentPreview(); + updateTabPadding(); } private boolean shouldDisplayLandscape(int orientation) { @@ -1024,6 +1025,20 @@ public class ChooserActivity extends ResolverActivity implements updateLayoutWidth(R.id.content_preview_file_layout, width, parent); } + private void updateTabPadding() { + if (shouldShowTabs()) { + View tabs = findViewById(R.id.tabs); + float iconSize = getResources().getDimension(R.dimen.chooser_icon_size); + // The entire width consists of icons or padding. Divide the item padding in half to get + // paddingHorizontal. + float padding = (tabs.getWidth() - mMaxTargetsPerRow * iconSize) + / mMaxTargetsPerRow / 2; + // Subtract the margin the buttons already have. + padding -= getResources().getDimension(R.dimen.resolver_profile_tab_margin); + tabs.setPadding((int) padding, 0, (int) padding, 0); + } + } + private void updateLayoutWidth(int layoutResourceId, int width, View parent) { View view = parent.findViewById(layoutResourceId); if (view != null && view.getLayoutParams() != null) { @@ -2480,6 +2495,8 @@ public class ChooserActivity extends ResolverActivity implements recyclerView.setAdapter(gridAdapter); ((GridLayoutManager) recyclerView.getLayoutManager()).setSpanCount( mMaxTargetsPerRow); + + updateTabPadding(); } UserHandle currentUserHandle = mChooserMultiProfilePagerAdapter.getCurrentUserHandle(); diff --git a/core/res/res/layout/resolver_list.xml b/core/res/res/layout/resolver_list.xml index 8480ec37a79e6..6a200d05c2d78 100644 --- a/core/res/res/layout/resolver_list.xml +++ b/core/res/res/layout/resolver_list.xml @@ -90,11 +90,13 @@ android:orientation="vertical" android:layout_width="match_parent" android:layout_height="wrap_content"> + 0dp 48dp 8dp + 4dp 18dp diff --git a/core/res/res/values/symbols.xml b/core/res/res/values/symbols.xml index e111ee184be15..137767dbbba42 100644 --- a/core/res/res/values/symbols.xml +++ b/core/res/res/values/symbols.xml @@ -4315,6 +4315,7 @@ +