Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 80ef161e authored by Matt Casey's avatar Matt Casey
Browse files

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
parent bf1f22d0
Loading
Loading
Loading
Loading
+17 −0
Original line number Diff line number Diff line
@@ -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();
+2 −0
Original line number Diff line number Diff line
@@ -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"
+1 −1
Original line number Diff line number Diff line
@@ -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"
+1 −0
Original line number Diff line number Diff line
@@ -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>

+1 −0
Original line number Diff line number Diff line
@@ -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" />