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

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

Merge "Show checkmarks at the start of material AlertDialog list items" into lmp-dev

parents 780fcd9f 16f2b90d
Loading
Loading
Loading
Loading
+19 −9
Original line number Original line Diff line number Diff line
@@ -53,6 +53,8 @@ public class CheckedTextView extends TextView implements Checkable {


    private int mBasePadding;
    private int mBasePadding;
    private int mCheckMarkWidth;
    private int mCheckMarkWidth;
    private int mCheckMarkGravity = Gravity.END;

    private boolean mNeedRequestlayout;
    private boolean mNeedRequestlayout;


    private static final int[] CHECKED_STATE_SET = {
    private static final int[] CHECKED_STATE_SET = {
@@ -83,15 +85,17 @@ public class CheckedTextView extends TextView implements Checkable {
        }
        }


        mCheckMarkTintMode = Drawable.parseTintMode(a.getInt(
        mCheckMarkTintMode = Drawable.parseTintMode(a.getInt(
                R.styleable.CompoundButton_buttonTintMode, -1), mCheckMarkTintMode);
                R.styleable.CheckedTextView_checkMarkTintMode, -1), mCheckMarkTintMode);


        if (a.hasValue(R.styleable.CompoundButton_buttonTint)) {
        if (a.hasValue(R.styleable.CheckedTextView_checkMarkTint)) {
            mCheckMarkTintList = a.getColorStateList(R.styleable.CompoundButton_buttonTint);
            mCheckMarkTintList = a.getColorStateList(R.styleable.CheckedTextView_checkMarkTint);
            mHasCheckMarkTint = true;
            mHasCheckMarkTint = true;


            applyCheckMarkTint();
            applyCheckMarkTint();
        }
        }


        mCheckMarkGravity = a.getInt(R.styleable.CheckedTextView_checkMarkGravity, Gravity.END);

        boolean checked = a.getBoolean(R.styleable.CheckedTextView_checked, false);
        boolean checked = a.getBoolean(R.styleable.CheckedTextView_checked, false);
        setChecked(checked);
        setChecked(checked);


@@ -293,7 +297,7 @@ public class CheckedTextView extends TextView implements Checkable {
    @Override
    @Override
    protected void internalSetPadding(int left, int top, int right, int bottom) {
    protected void internalSetPadding(int left, int top, int right, int bottom) {
        super.internalSetPadding(left, top, right, bottom);
        super.internalSetPadding(left, top, right, bottom);
        setBasePadding(isLayoutRtl());
        setBasePadding(isCheckMarkAtStart());
    }
    }


    @Override
    @Override
@@ -306,7 +310,7 @@ public class CheckedTextView extends TextView implements Checkable {
        resetPaddingToInitialValues();
        resetPaddingToInitialValues();
        int newPadding = (mCheckMarkDrawable != null) ?
        int newPadding = (mCheckMarkDrawable != null) ?
                mCheckMarkWidth + mBasePadding : mBasePadding;
                mCheckMarkWidth + mBasePadding : mBasePadding;
        if (isLayoutRtl()) {
        if (isCheckMarkAtStart()) {
            mNeedRequestlayout |= (mPaddingLeft != newPadding);
            mNeedRequestlayout |= (mPaddingLeft != newPadding);
            mPaddingLeft = newPadding;
            mPaddingLeft = newPadding;
        } else {
        } else {
@@ -319,14 +323,20 @@ public class CheckedTextView extends TextView implements Checkable {
        }
        }
    }
    }


    private void setBasePadding(boolean isLayoutRtl) {
    private void setBasePadding(boolean checkmarkAtStart) {
        if (isLayoutRtl) {
        if (checkmarkAtStart) {
            mBasePadding = mPaddingLeft;
            mBasePadding = mPaddingLeft;
        } else {
        } else {
            mBasePadding = mPaddingRight;
            mBasePadding = mPaddingRight;
        }
        }
    }
    }


    private boolean isCheckMarkAtStart() {
        final int gravity = Gravity.getAbsoluteGravity(mCheckMarkGravity, getLayoutDirection());
        final int hgrav = gravity & Gravity.HORIZONTAL_GRAVITY_MASK;
        return hgrav == Gravity.LEFT;
    }

    @Override
    @Override
    protected void onDraw(Canvas canvas) {
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);
        super.onDraw(canvas);
@@ -347,13 +357,13 @@ public class CheckedTextView extends TextView implements Checkable {
                    break;
                    break;
            }
            }
            
            
            final boolean isLayoutRtl = isLayoutRtl();
            final boolean checkMarkAtStart = isCheckMarkAtStart();
            final int width = getWidth();
            final int width = getWidth();
            final int top = y;
            final int top = y;
            final int bottom = top + height;
            final int bottom = top + height;
            final int left;
            final int left;
            final int right;
            final int right;
            if (isLayoutRtl) {
            if (checkMarkAtStart) {
                left = mBasePadding;
                left = mBasePadding;
                right = left + mCheckMarkWidth;
                right = left + mCheckMarkWidth;
            } else {
            } else {
+1 −0
Original line number Original line Diff line number Diff line
@@ -26,4 +26,5 @@
    android:paddingStart="16dip"
    android:paddingStart="16dip"
    android:paddingEnd="16dip"
    android:paddingEnd="16dip"
    android:checkMark="?android:attr/listChoiceIndicatorMultiple"
    android:checkMark="?android:attr/listChoiceIndicatorMultiple"
    android:checkMarkGravity="start"
    android:ellipsize="marquee" />
    android:ellipsize="marquee" />
+1 −0
Original line number Original line Diff line number Diff line
@@ -26,4 +26,5 @@
    android:paddingStart="16dip"
    android:paddingStart="16dip"
    android:paddingEnd="16dip"
    android:paddingEnd="16dip"
    android:checkMark="?android:attr/listChoiceIndicatorSingle"
    android:checkMark="?android:attr/listChoiceIndicatorSingle"
    android:checkMarkGravity="start"
    android:ellipsize="marquee" />
    android:ellipsize="marquee" />
+11 −0
Original line number Original line Diff line number Diff line
@@ -3163,6 +3163,17 @@
                 result to valid color values. Saturate(S + D) -->
                 result to valid color values. Saturate(S + D) -->
            <enum name="add" value="16" />
            <enum name="add" value="16" />
        </attr>
        </attr>
        <!-- Gravity for aligning a CheckedTextView's checkmark to one side or the other. -->
        <attr name="checkMarkGravity">
            <!-- Push object to the left of its container, not changing its size. -->
            <flag name="left" value="0x03" />
            <!-- Push object to the right of its container, not changing its size. -->
            <flag name="right" value="0x05" />
            <!-- Push object to the beginning of its container, not changing its size. -->
            <flag name="start" value="0x00800003" />
            <!-- Push object to the end of its container, not changing its size. -->
            <flag name="end" value="0x00800005" />
        </attr>
    </declare-styleable>
    </declare-styleable>
    <declare-styleable name="EditText">
    <declare-styleable name="EditText">
    </declare-styleable>
    </declare-styleable>
+3 −0
Original line number Original line Diff line number Diff line
@@ -1981,4 +1981,7 @@
  <java-symbol type="string" name="time_picker_am_label" />
  <java-symbol type="string" name="time_picker_am_label" />
  <java-symbol type="string" name="time_picker_pm_label" />
  <java-symbol type="string" name="time_picker_pm_label" />
  <java-symbol type="dimen" name="text_size_small_material" />
  <java-symbol type="dimen" name="text_size_small_material" />
  <java-symbol type="attr" name="checkMarkGravity" />
  <java-symbol type="layout" name="select_dialog_singlechoice_material" />
  <java-symbol type="layout" name="select_dialog_multichoice_material" />
</resources>
</resources>