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

Commit 11a8af5e authored by Adam Powell's avatar Adam Powell Committed by Android (Google) Code Review
Browse files

Merge "Clean up button bar styles"

parents 8da8fc1f cf035763
Loading
Loading
Loading
Loading
+126 −49
Original line number Diff line number Diff line
@@ -1949,7 +1949,7 @@
 type="int"
 transient="false"
 volatile="false"
 value="16843555"
 value="16843553"
 static="true"
 final="true"
 deprecated="not deprecated"
@@ -1960,7 +1960,7 @@
 type="int"
 transient="false"
 volatile="false"
 value="16843554"
 value="16843552"
 static="true"
 final="true"
 deprecated="not deprecated"
@@ -1971,7 +1971,7 @@
 type="int"
 transient="false"
 volatile="false"
 value="16843556"
 value="16843554"
 static="true"
 final="true"
 deprecated="not deprecated"
@@ -2088,17 +2088,6 @@
 visibility="public"
>
</field>
<field name="alertDialogButtonGroupStyle"
 type="int"
 transient="false"
 volatile="false"
 value="16843547"
 static="true"
 final="true"
 deprecated="not deprecated"
 visibility="public"
>
</field>
<field name="alertDialogStyle"
 type="int"
 transient="false"
@@ -2180,7 +2169,7 @@
 type="int"
 transient="false"
 volatile="false"
 value="16843568"
 value="16843566"
 static="true"
 final="true"
 deprecated="not deprecated"
@@ -2312,7 +2301,7 @@
 type="int"
 transient="false"
 volatile="false"
 value="16843563"
 value="16843561"
 static="true"
 final="true"
 deprecated="not deprecated"
@@ -2389,7 +2378,7 @@
 type="int"
 transient="false"
 volatile="false"
 value="16843552"
 value="16843550"
 static="true"
 final="true"
 deprecated="not deprecated"
@@ -2499,7 +2488,7 @@
 type="int"
 transient="false"
 volatile="false"
 value="16843565"
 value="16843563"
 static="true"
 final="true"
 deprecated="not deprecated"
@@ -2543,7 +2532,7 @@
 type="int"
 transient="false"
 volatile="false"
 value="16843580"
 value="16843578"
 static="true"
 final="true"
 deprecated="not deprecated"
@@ -2671,11 +2660,22 @@
 visibility="public"
>
</field>
<field name="buttonGroupStyle"
<field name="buttonBarButtonStyle"
 type="int"
 transient="false"
 volatile="false"
 value="16843546"
 value="16843582"
 static="true"
 final="true"
 deprecated="not deprecated"
 visibility="public"
>
</field>
<field name="buttonBarStyle"
 type="int"
 transient="false"
 volatile="false"
 value="16843581"
 static="true"
 final="true"
 deprecated="not deprecated"
@@ -3577,7 +3577,7 @@
 type="int"
 transient="false"
 volatile="false"
 value="16843581"
 value="16843579"
 static="true"
 final="true"
 deprecated="not deprecated"
@@ -3588,7 +3588,7 @@
 type="int"
 transient="false"
 volatile="false"
 value="16843579"
 value="16843577"
 static="true"
 final="true"
 deprecated="not deprecated"
@@ -3929,7 +3929,7 @@
 type="int"
 transient="false"
 volatile="false"
 value="16843549"
 value="16843547"
 static="true"
 final="true"
 deprecated="not deprecated"
@@ -3984,7 +3984,7 @@
 type="int"
 transient="false"
 volatile="false"
 value="16843550"
 value="16843548"
 static="true"
 final="true"
 deprecated="not deprecated"
@@ -4875,7 +4875,7 @@
 type="int"
 transient="false"
 volatile="false"
 value="16843548"
 value="16843546"
 static="true"
 final="true"
 deprecated="not deprecated"
@@ -4886,7 +4886,7 @@
 type="int"
 transient="false"
 volatile="false"
 value="16843566"
 value="16843564"
 static="true"
 final="true"
 deprecated="not deprecated"
@@ -5216,7 +5216,7 @@
 type="int"
 transient="false"
 volatile="false"
 value="16843561"
 value="16843559"
 static="true"
 final="true"
 deprecated="not deprecated"
@@ -5480,7 +5480,7 @@
 type="int"
 transient="false"
 volatile="false"
 value="16843582"
 value="16843580"
 static="true"
 final="true"
 deprecated="not deprecated"
@@ -6756,7 +6756,7 @@
 type="int"
 transient="false"
 volatile="false"
 value="16843567"
 value="16843565"
 static="true"
 final="true"
 deprecated="not deprecated"
@@ -7306,7 +7306,7 @@
 type="int"
 transient="false"
 volatile="false"
 value="16843562"
 value="16843560"
 static="true"
 final="true"
 deprecated="not deprecated"
@@ -7779,7 +7779,7 @@
 type="int"
 transient="false"
 volatile="false"
 value="16843575"
 value="16843573"
 static="true"
 final="true"
 deprecated="not deprecated"
@@ -7790,7 +7790,7 @@
 type="int"
 transient="false"
 volatile="false"
 value="16843576"
 value="16843574"
 static="true"
 final="true"
 deprecated="not deprecated"
@@ -7801,7 +7801,7 @@
 type="int"
 transient="false"
 volatile="false"
 value="16843577"
 value="16843575"
 static="true"
 final="true"
 deprecated="not deprecated"
@@ -7900,7 +7900,7 @@
 type="int"
 transient="false"
 volatile="false"
 value="16843573"
 value="16843571"
 static="true"
 final="true"
 deprecated="not deprecated"
@@ -7911,7 +7911,7 @@
 type="int"
 transient="false"
 volatile="false"
 value="16843574"
 value="16843572"
 static="true"
 final="true"
 deprecated="not deprecated"
@@ -8259,6 +8259,17 @@
 visibility="public"
>
</field>
<field name="segmentedButtonStyle"
 type="int"
 transient="false"
 volatile="false"
 value="16843583"
 static="true"
 final="true"
 deprecated="not deprecated"
 visibility="public"
>
</field>
<field name="selectAllOnFocus"
 type="int"
 transient="false"
@@ -8285,7 +8296,7 @@
 type="int"
 transient="false"
 volatile="false"
 value="16843551"
 value="16843549"
 static="true"
 final="true"
 deprecated="not deprecated"
@@ -8439,7 +8450,7 @@
 type="int"
 transient="false"
 volatile="false"
 value="16843578"
 value="16843576"
 static="true"
 final="true"
 deprecated="not deprecated"
@@ -8692,7 +8703,7 @@
 type="int"
 transient="false"
 volatile="false"
 value="16843564"
 value="16843562"
 static="true"
 final="true"
 deprecated="not deprecated"
@@ -9627,7 +9638,7 @@
 type="int"
 transient="false"
 volatile="false"
 value="16843558"
 value="16843556"
 static="true"
 final="true"
 deprecated="not deprecated"
@@ -9638,7 +9649,7 @@
 type="int"
 transient="false"
 volatile="false"
 value="16843557"
 value="16843555"
 static="true"
 final="true"
 deprecated="not deprecated"
@@ -9660,7 +9671,7 @@
 type="int"
 transient="false"
 volatile="false"
 value="16843559"
 value="16843557"
 static="true"
 final="true"
 deprecated="not deprecated"
@@ -10078,7 +10089,7 @@
 type="int"
 transient="false"
 volatile="false"
 value="16843569"
 value="16843567"
 static="true"
 final="true"
 deprecated="not deprecated"
@@ -10089,7 +10100,7 @@
 type="int"
 transient="false"
 volatile="false"
 value="16843570"
 value="16843568"
 static="true"
 final="true"
 deprecated="not deprecated"
@@ -10100,7 +10111,7 @@
 type="int"
 transient="false"
 volatile="false"
 value="16843571"
 value="16843569"
 static="true"
 final="true"
 deprecated="not deprecated"
@@ -10111,7 +10122,7 @@
 type="int"
 transient="false"
 volatile="false"
 value="16843572"
 value="16843570"
 static="true"
 final="true"
 deprecated="not deprecated"
@@ -10188,7 +10199,7 @@
 type="int"
 transient="false"
 volatile="false"
 value="16843553"
 value="16843551"
 static="true"
 final="true"
 deprecated="not deprecated"
@@ -10650,7 +10661,7 @@
 type="int"
 transient="false"
 volatile="false"
 value="16843560"
 value="16843558"
 static="true"
 final="true"
 deprecated="not deprecated"
@@ -14387,6 +14398,72 @@
 visibility="public"
>
</field>
<field name="Holo_ButtonBar"
 type="int"
 transient="false"
 volatile="false"
 value="16974050"
 static="true"
 final="true"
 deprecated="not deprecated"
 visibility="public"
>
</field>
<field name="Holo_ButtonBar_AlertDialog"
 type="int"
 transient="false"
 volatile="false"
 value="16974052"
 static="true"
 final="true"
 deprecated="not deprecated"
 visibility="public"
>
</field>
<field name="Holo_Light_ButtonBar"
 type="int"
 transient="false"
 volatile="false"
 value="16974051"
 static="true"
 final="true"
 deprecated="not deprecated"
 visibility="public"
>
</field>
<field name="Holo_Light_ButtonBar_AlertDialog"
 type="int"
 transient="false"
 volatile="false"
 value="16974053"
 static="true"
 final="true"
 deprecated="not deprecated"
 visibility="public"
>
</field>
<field name="Holo_Light_SegmentedButton"
 type="int"
 transient="false"
 volatile="false"
 value="16974055"
 static="true"
 final="true"
 deprecated="not deprecated"
 visibility="public"
>
</field>
<field name="Holo_SegmentedButton"
 type="int"
 transient="false"
 volatile="false"
 value="16974054"
 static="true"
 final="true"
 deprecated="not deprecated"
 visibility="public"
>
</field>
<field name="MediaButton"
 type="int"
 transient="false"
@@ -250330,7 +250407,7 @@
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="t" type="T">
<parameter name="arg0" type="T">
</parameter>
</method>
</interface>
+1 −2
Original line number Diff line number Diff line
@@ -16,7 +16,6 @@

package android.app;

import android.app.ActionBar.Tab;
import android.content.Context;
import android.content.res.TypedArray;
import android.graphics.drawable.Drawable;
@@ -39,7 +38,7 @@ public abstract class ActionBar {
    /**
     * Standard navigation mode. Consists of either a logo or icon
     * and title text with an optional subtitle. Clicking any of these elements
     * will dispatch onActionItemSelected to the registered Callback with
     * will dispatch onOptionsItemSelected to the host Activity with
     * a MenuItem with item ID android.R.id.home.
     */
    public static final int NAVIGATION_MODE_STANDARD = 0;
+0 −260
Original line number Diff line number Diff line
/*
 * Copyright (C) 2010 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package android.widget;

import android.content.Context;
import android.content.res.TypedArray;
import android.graphics.Canvas;
import android.graphics.Rect;
import android.graphics.drawable.Drawable;
import android.util.AttributeSet;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup;

/**
 * @hide
 */
public class ButtonGroup extends LinearLayout {
    private static final String LOG = "ButtonGroup";

    private Drawable mDivider;
    private int mDividerWidth;
    private int mDividerHeight;
    private int mButtonBackgroundRes;
    private int mShowDividers;

    /**
     * Don't show any dividers.
     */
    public static final int SHOW_DIVIDER_NONE = 0;
    /**
     * Show a divider at the beginning of the group.
     */
    public static final int SHOW_DIVIDER_BEGINNING = 1;
    /**
     * Show dividers between each item in the group.
     */
    public static final int SHOW_DIVIDER_MIDDLE = 2;
    /**
     * Show a divider at the end of the group.
     */
    public static final int SHOW_DIVIDER_END = 4;

    private final Rect mTempRect = new Rect();

    public ButtonGroup(Context context) {
        this(context, null);
    }
    
    public ButtonGroup(Context context, AttributeSet attrs) {
        this(context, attrs, com.android.internal.R.attr.buttonGroupStyle);
    }
    
    public ButtonGroup(Context context, AttributeSet attrs, int defStyleRes) {
        super(context, attrs, defStyleRes);
        
        TypedArray a = context.obtainStyledAttributes(attrs,
                com.android.internal.R.styleable.ButtonGroup, defStyleRes, 0);
        
        setDividerDrawable(a.getDrawable(com.android.internal.R.styleable.ButtonGroup_divider));
        mButtonBackgroundRes = a.getResourceId(
                com.android.internal.R.styleable.ButtonGroup_buttonBackground, 0);
        setShowDividers(a.getInt(com.android.internal.R.styleable.ButtonGroup_showDividers,
                SHOW_DIVIDER_MIDDLE));
        a.recycle();
    }

    /**
     * Set how dividers should be shown between items in this button group.
     *
     * @param showDividers One or more of {@link #SHOW_DIVIDER_BEGINNING},
     *                     {@link #SHOW_DIVIDER_MIDDLE}, or {@link #SHOW_DIVIDER_END},
     *                     or {@link #SHOW_DIVIDER_NONE} to show no dividers.
     */
    public void setShowDividers(int showDividers) {
        if (showDividers != mShowDividers) {
            requestLayout();
        }
        mShowDividers = showDividers;
    }

    /**
     * @return A flag set indicating how dividers should be shown around items.
     * @see #setShowDividers(int)
     */
    public int getShowDividers() {
        return mShowDividers;
    }

    /**
     * Set a drawable to be used as a divider between items.
     * @param divider Drawable that will divide each item.
     */
    public void setDividerDrawable(Drawable divider) {
        if (divider == mDivider) {
            return;
        }
        mDivider = divider;
        if (divider != null) {
            mDividerWidth = divider.getIntrinsicWidth();
            mDividerHeight = divider.getIntrinsicHeight();
        } else {
            mDividerWidth = 0;
            mDividerHeight = 0;
        }
        requestLayout();
    }

    /**
     * Retrieve the drawable used to draw dividers between items.
     * @return The divider drawable
     */
    public Drawable getDividerDrawable() {
        return mDivider;
    }

    @Override
    public void addView(View child, int index, ViewGroup.LayoutParams params) {
        if (child instanceof Button && mButtonBackgroundRes != 0) {
            // Preserve original padding as we change the background
            final int paddingLeft = child.getPaddingLeft();
            final int paddingRight = child.getPaddingRight();
            final int paddingTop = child.getPaddingTop();
            final int paddingBottom = child.getPaddingBottom();
            child.setBackgroundResource(mButtonBackgroundRes);
            child.setPadding(paddingLeft, paddingTop, paddingRight, paddingBottom);
        }

        super.addView(child, index, params);
    }

    @Override
    public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
        super.onMeasure(widthMeasureSpec, heightMeasureSpec);

        // Add the extra size that dividers contribute.
        int dividerCount = 0;
        if ((mShowDividers & SHOW_DIVIDER_MIDDLE) == SHOW_DIVIDER_MIDDLE) {
            final int childCount = getChildCount();
            for (int i = 0; i < childCount; i++) {
                if (getChildAt(i).getVisibility() != GONE) {
                    dividerCount++;
                }
            }
            dividerCount = Math.max(0, dividerCount);
        }
        if ((mShowDividers & SHOW_DIVIDER_BEGINNING) == SHOW_DIVIDER_BEGINNING) {
            dividerCount++;
        }
        if ((mShowDividers & SHOW_DIVIDER_END) == SHOW_DIVIDER_END) {
            dividerCount++;
        }

        if (getOrientation() == VERTICAL) {
            final int dividerSize = mDividerHeight * dividerCount;
            setMeasuredDimension(getMeasuredWidthAndState(),
                    resolveSizeAndState(getMeasuredHeight() + dividerSize, heightMeasureSpec,
                            getMeasuredHeightAndState()));
        } else {
            final int dividerSize = mDividerWidth * dividerCount;
            setMeasuredDimension(resolveSizeAndState(getMeasuredWidth() + dividerSize,
                            widthMeasureSpec, getMeasuredWidthAndState()),
                    getMeasuredHeightAndState());
        }
    }

    @Override
    public void onLayout(boolean changed, int l, int t, int r, int b) {
        super.onLayout(changed, l, t, r, b);

        final boolean begin = (mShowDividers & SHOW_DIVIDER_BEGINNING) == SHOW_DIVIDER_BEGINNING;
        final boolean middle = (mShowDividers & SHOW_DIVIDER_MIDDLE) == SHOW_DIVIDER_MIDDLE;

        // Offset children to leave space for dividers.
        if (getOrientation() == VERTICAL) {
            int offset = begin ? mDividerHeight : 0;
            final int childCount = getChildCount();
            for (int i = 0; i < childCount; i++) {
                View child = getChildAt(i);
                child.offsetTopAndBottom(offset);
                if (middle && child.getVisibility() != GONE) {
                    offset += mDividerHeight;
                }
            }
        } else {
            int offset = begin ? mDividerWidth : 0;
            final int childCount = getChildCount();
            for (int i = 0; i < childCount; i++) {
                View child = getChildAt(i);
                child.offsetLeftAndRight(offset);
                if (middle && child.getVisibility() != GONE) {
                    offset += mDividerWidth;
                }
            }
        }
    }

    @Override
    public void dispatchDraw(Canvas canvas) {
        if (mDivider == null) {
            super.dispatchDraw(canvas);
            return;
        }

        final boolean begin = (mShowDividers & SHOW_DIVIDER_BEGINNING) == SHOW_DIVIDER_BEGINNING;
        final boolean middle = (mShowDividers & SHOW_DIVIDER_MIDDLE) == SHOW_DIVIDER_MIDDLE;
        final boolean end = (mShowDividers & SHOW_DIVIDER_END) == SHOW_DIVIDER_END;
        final boolean vertical = getOrientation() == VERTICAL;

        final Rect bounds = mTempRect;
        bounds.left = mPaddingLeft;
        bounds.right = mRight - mLeft - mPaddingRight;
        bounds.top = mPaddingTop;
        bounds.bottom = mBottom - mTop - mPaddingBottom;

        if (begin) {
            if (vertical) {
                bounds.bottom = bounds.top + mDividerHeight;
            } else {
                bounds.right = bounds.left + mDividerWidth;
            }
            mDivider.setBounds(bounds);
            mDivider.draw(canvas);
        }

        final int childCount = getChildCount();
        int i = 0;
        while (i < childCount) {
            final View child = getChildAt(i);
            i++;
            if ((middle && i < childCount && child.getVisibility() != GONE) || end) {
                if (vertical) {
                    bounds.top = child.getBottom();
                    bounds.bottom = bounds.top + mDividerHeight;
                } else {
                    bounds.left = child.getRight();
                    bounds.right = bounds.left + mDividerWidth;
                }
                mDivider.setBounds(bounds);
                mDivider.draw(canvas);
            }
        }

        super.dispatchDraw(canvas);
    }
}
+1 −7
Original line number Diff line number Diff line
@@ -95,8 +95,7 @@ public class ActionMenuView extends LinearLayout implements MenuBuilder.ItemInvo
        TypedArray a = context.obtainStyledAttributes(com.android.internal.R.styleable.Theme);
        final int buttonStyle = a.getResourceId(
                com.android.internal.R.styleable.Theme_actionButtonStyle, 0);
        final int groupStyle = a.getResourceId(
                com.android.internal.R.styleable.Theme_buttonGroupStyle, 0);
        mDivider = a.getDrawable(com.android.internal.R.styleable.Theme_dividerVertical);
        a.recycle();
        
        a = context.obtainStyledAttributes(buttonStyle, com.android.internal.R.styleable.View);
@@ -104,11 +103,6 @@ public class ActionMenuView extends LinearLayout implements MenuBuilder.ItemInvo
        mButtonPaddingRight = a.getDimension(com.android.internal.R.styleable.View_paddingRight, 0);
        a.recycle();
        
        a = context.obtainStyledAttributes(groupStyle,
                com.android.internal.R.styleable.ButtonGroup);
        mDivider = a.getDrawable(com.android.internal.R.styleable.ButtonGroup_divider);
        a.recycle();
        
        mDividerPadding = DIVIDER_PADDING * res.getDisplayMetrics().density;

        setBaselineAligned(false);
+6 −3
Original line number Diff line number Diff line
@@ -105,8 +105,8 @@
        android:layout_height="wrap_content"
        android:minHeight="54dip"
        android:orientation="vertical" >
        <ButtonGroup
            style="?android:attr/alertDialogButtonGroupStyle"
        <LinearLayout
            style="?android:attr/buttonBarStyle"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
@@ -124,18 +124,21 @@
                android:layout_width="0dip"
                android:layout_gravity="left"
                android:layout_weight="1"
                style="?android:attr/buttonBarButtonStyle"
                android:maxLines="2"
                android:layout_height="wrap_content" />
            <Button android:id="@+id/button3"
                android:layout_width="0dip"
                android:layout_gravity="center_horizontal"
                android:layout_weight="1"
                style="?android:attr/buttonBarButtonStyle"
                android:maxLines="2"
                android:layout_height="wrap_content" />
            <Button android:id="@+id/button2"
                android:layout_width="0dip"
                android:layout_gravity="right"
                android:layout_weight="1"
                style="?android:attr/buttonBarButtonStyle"
                android:maxLines="2"
                android:layout_height="wrap_content" />
            <LinearLayout android:id="@+id/rightSpacer"
@@ -144,6 +147,6 @@
                android:layout_height="wrap_content"
                android:orientation="horizontal"
                android:visibility="gone" />
        </ButtonGroup>
        </LinearLayout>
     </LinearLayout>
</com.android.internal.widget.WeightedLinearLayout>
Loading