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

Commit 33a030cc authored by Mihai Popa's avatar Mihai Popa Committed by android-build-merger
Browse files

Merge "No divider between floating toolbar item groups" into pi-dev

am: cbfe4231

Change-Id: Ie1c2304fc59da877f3fc80a718113deb4eb1ae7c
parents 0ae978ae cbfe4231
Loading
Loading
Loading
Loading
+7 −64
Original line number Diff line number Diff line
@@ -1176,6 +1176,9 @@ public final class FloatingToolbar {
                final boolean showIcon = isFirstItem && menuItem.getItemId() == R.id.textAssist;
                final View menuItemButton = createMenuItemButton(
                        mContext, menuItem, mIconTextSpacing, showIcon);
                if (!showIcon && menuItemButton instanceof LinearLayout) {
                    ((LinearLayout) menuItemButton).setGravity(Gravity.CENTER);
                }

                // Adding additional start padding for the first button to even out button spacing.
                if (isFirstItem) {
@@ -1200,57 +1203,21 @@ public final class FloatingToolbar {
                final int menuItemButtonWidth = Math.min(
                        menuItemButton.getMeasuredWidth(), toolbarWidth);

                final boolean isNewGroup = !isFirstItem && lastGroupId != menuItem.getGroupId();
                final int extraPadding = isNewGroup ? menuItemButton.getPaddingEnd() * 2 : 0;

                // Check if we can fit an item while reserving space for the overflowButton.
                final boolean canFitWithOverflow =
                        menuItemButtonWidth <=
                                availableWidth - mOverflowButtonSize.getWidth() - extraPadding;
                                availableWidth - mOverflowButtonSize.getWidth();
                final boolean canFitNoOverflow =
                        isLastItem && menuItemButtonWidth <= availableWidth - extraPadding;
                        isLastItem && menuItemButtonWidth <= availableWidth;
                if (canFitWithOverflow || canFitNoOverflow) {
                    if (isNewGroup) {
                        final View divider = createDivider(mContext);
                        final int dividerWidth = divider.getLayoutParams().width;

                        // Add extra padding to the end of the previous button.
                        // Half of the extra padding (less borderWidth) goes to the previous button.
                        final View previousButton = mMainPanel.getChildAt(
                                mMainPanel.getChildCount() - 1);
                        final int prevPaddingEnd = previousButton.getPaddingEnd()
                                + extraPadding / 2 - dividerWidth;
                        previousButton.setPaddingRelative(
                                previousButton.getPaddingStart(),
                                previousButton.getPaddingTop(),
                                prevPaddingEnd,
                                previousButton.getPaddingBottom());
                        final ViewGroup.LayoutParams prevParams = previousButton.getLayoutParams();
                        prevParams.width += extraPadding / 2 - dividerWidth;
                        previousButton.setLayoutParams(prevParams);

                        // Add extra padding to the start of this button.
                        // Other half of the extra padding goes to this button.
                        final int paddingStart = menuItemButton.getPaddingStart()
                                + extraPadding / 2;
                        menuItemButton.setPaddingRelative(
                                paddingStart,
                                menuItemButton.getPaddingTop(),
                                menuItemButton.getPaddingEnd(),
                                menuItemButton.getPaddingBottom());

                        // Include a divider.
                        mMainPanel.addView(divider);
                    }

                    setButtonTagAndClickListener(menuItemButton, menuItem);
                    // Set tooltips for main panel items, but not overflow items (b/35726766).
                    menuItemButton.setTooltipText(menuItem.getTooltipText());
                    mMainPanel.addView(menuItemButton);
                    final ViewGroup.LayoutParams params = menuItemButton.getLayoutParams();
                    params.width = menuItemButtonWidth + extraPadding / 2;
                    params.width = menuItemButtonWidth;
                    menuItemButton.setLayoutParams(params);
                    availableWidth -= menuItemButtonWidth + extraPadding;
                    availableWidth -= menuItemButtonWidth;
                    remainingMenuItems.pop();
                } else {
                    break;
@@ -1726,30 +1693,6 @@ public final class FloatingToolbar {
        return popupWindow;
    }

    private static View createDivider(Context context) {
        // TODO: Inflate this instead.
        View divider = new View(context);

        int _1dp = (int) TypedValue.applyDimension(
                TypedValue.COMPLEX_UNIT_DIP, 1, context.getResources().getDisplayMetrics());
        LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
                _1dp, ViewGroup.LayoutParams.MATCH_PARENT);
        params.setMarginsRelative(0, _1dp * 10, 0, _1dp * 10);
        divider.setLayoutParams(params);

        TypedArray a = context.obtainStyledAttributes(
                new TypedValue().data, new int[] { R.attr.floatingToolbarDividerColor });
        divider.setBackgroundColor(a.getColor(0, 0));
        a.recycle();

        divider.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_NO);
        divider.setEnabled(false);
        divider.setFocusable(false);
        divider.setContentDescription(null);

        return divider;
    }

    /**
     * Creates an "appear" animation for the specified view.
     *
+1 −1
Original line number Diff line number Diff line
@@ -536,7 +536,7 @@
    <dimen name="floating_toolbar_menu_image_width">24dp</dimen>
    <dimen name="floating_toolbar_menu_image_button_width">56dp</dimen>
    <dimen name="floating_toolbar_menu_image_button_vertical_padding">12dp</dimen>
    <dimen name="floating_toolbar_menu_button_side_padding">11dp</dimen>
    <dimen name="floating_toolbar_menu_button_side_padding">8dp</dimen>
    <dimen name="floating_toolbar_overflow_image_button_width">60dp</dimen>
    <dimen name="floating_toolbar_overflow_side_padding">18dp</dimen>
    <dimen name="floating_toolbar_text_size">14sp</dimen>