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

Commit cbfe4231 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

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

parents 2cb02549 66d41f87
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>