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
This commit is contained in:
@@ -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();
|
||||
|
||||
@@ -90,11 +90,13 @@
|
||||
android:orientation="vertical"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content">
|
||||
<!-- horizontal padding = 8dp content padding - 4dp margin that tab buttons have. -->
|
||||
<TabWidget
|
||||
android:id="@android:id/tabs"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:tabStripEnabled="false"
|
||||
android:paddingHorizontal="4dp"
|
||||
android:visibility="gone" />
|
||||
<FrameLayout
|
||||
android:id="@android:id/tabcontent"
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
android:layout_height="36dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_marginVertical="6dp"
|
||||
android:layout_marginHorizontal="4dp"
|
||||
android:layout_marginHorizontal="@dimen/resolver_profile_tab_margin"
|
||||
android:background="@drawable/resolver_profile_tab_bg"
|
||||
android:textColor="@color/resolver_profile_tab_text"
|
||||
android:textSize="@dimen/resolver_tab_text_size"
|
||||
|
||||
@@ -962,6 +962,7 @@
|
||||
<dimen name="resolver_title_padding_bottom">0dp</dimen>
|
||||
<dimen name="resolver_empty_state_container_padding_top">48dp</dimen>
|
||||
<dimen name="resolver_empty_state_container_padding_bottom">8dp</dimen>
|
||||
<dimen name="resolver_profile_tab_margin">4dp</dimen>
|
||||
|
||||
<dimen name="chooser_action_button_icon_size">18dp</dimen>
|
||||
|
||||
|
||||
@@ -4315,6 +4315,7 @@
|
||||
<java-symbol type="dimen" name="resolver_title_padding_bottom" />
|
||||
<java-symbol type="dimen" name="resolver_empty_state_container_padding_top" />
|
||||
<java-symbol type="dimen" name="resolver_empty_state_container_padding_bottom" />
|
||||
<java-symbol type="dimen" name="resolver_profile_tab_margin" />
|
||||
|
||||
<java-symbol type="string" name="config_deviceSpecificDisplayAreaPolicyProvider" />
|
||||
|
||||
|
||||
Reference in New Issue
Block a user