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

Commit 88d63ea3 authored by Peter_Liang's avatar Peter_Liang
Browse files

New feature “Text and reading options” for SetupWizard, Wallpaper, and Settings (9/n).

- Fine-tune the legacy interface of the LabeledSeekBarPreference
1) If not set any label, the layout should be gone instead of visible. If not gone, the preference will have redundant space.

Bug: 211503117
Test: make -j64 RunSettingsRoboTests ROBOTEST_FILTER=LabeledSeekBarPreferenceTest
Change-Id: Ideea8589e35083eb89495c0eceba38c62b4807a7
parent cc5808cb
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -53,10 +53,12 @@
        android:layout_below="@android:id/summary" />

    <LinearLayout
        android:id="@+id/label_frame"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/seekbar_frame"
        android:orientation="horizontal">
        android:orientation="horizontal"
        android:visibility="gone">

        <TextView
            android:id="@android:id/text1"
+13 −6
Original line number Diff line number Diff line
@@ -74,11 +74,9 @@ public class LabeledSeekBarPreference extends SeekBarPreference {
        final TypedArray styledAttrs = context.obtainStyledAttributes(attrs,
                R.styleable.LabeledSeekBarPreference);
        mTextStartId = styledAttrs.getResourceId(
                R.styleable.LabeledSeekBarPreference_textStart,
                R.string.summary_placeholder);
                R.styleable.LabeledSeekBarPreference_textStart, /* defValue= */ 0);
        mTextEndId = styledAttrs.getResourceId(
                R.styleable.LabeledSeekBarPreference_textEnd,
                R.string.summary_placeholder);
                R.styleable.LabeledSeekBarPreference_textEnd, /* defValue= */ 0);
        mTickMarkId = styledAttrs.getResourceId(
                R.styleable.LabeledSeekBarPreference_tickMark, /* defValue= */ 0);
        mIconStartId = styledAttrs.getResourceId(
@@ -115,9 +113,18 @@ public class LabeledSeekBarPreference extends SeekBarPreference {
        super.onBindViewHolder(holder);

        final TextView startText = (TextView) holder.findViewById(android.R.id.text1);
        final TextView endText = (TextView) holder.findViewById(android.R.id.text2);
        if (mTextStartId > 0) {
            startText.setText(mTextStartId);
        }

        final TextView endText = (TextView) holder.findViewById(android.R.id.text2);
        if (mTextEndId > 0) {
            endText.setText(mTextEndId);
        }

        final View labelFrame = holder.findViewById(R.id.label_frame);
        final boolean isValidTextResIdExist = mTextStartId > 0 || mTextEndId > 0;
        labelFrame.setVisibility(isValidTextResIdExist ? View.VISIBLE : View.GONE);

        final SeekBar seekBar = (SeekBar) holder.findViewById(com.android.internal.R.id.seekbar);
        if (mTickMarkId != 0) {
+28 −0
Original line number Diff line number Diff line
@@ -66,6 +66,7 @@ public class LabeledSeekBarPreferenceTest {
    private TextView mSummary;
    private ViewGroup mIconStartFrame;
    private ViewGroup mIconEndFrame;
    private View mLabelFrame;
    private LabeledSeekBarPreference mSeekBarPreference;

    @Mock
@@ -89,6 +90,7 @@ public class LabeledSeekBarPreferenceTest {
        mSummary = (TextView) mViewHolder.findViewById(android.R.id.summary);
        mIconStartFrame = (ViewGroup) mViewHolder.findViewById(R.id.icon_start_frame);
        mIconEndFrame = (ViewGroup) mViewHolder.findViewById(R.id.icon_end_frame);
        mLabelFrame = mViewHolder.findViewById(R.id.label_frame);
    }

    @Test
@@ -120,6 +122,32 @@ public class LabeledSeekBarPreferenceTest {
        assertThat(mSummary.getVisibility()).isEqualTo(View.GONE);
    }

    @Test
    public void setTextAttributes_textStart_textEnd_labelFrameVisible() {
        final AttributeSet attributeSet = Robolectric.buildAttributeSet()
                .addAttribute(R.attr.textStart, "@string/screen_zoom_make_smaller_desc")
                .addAttribute(R.attr.textEnd, "@string/screen_zoom_make_larger_desc")
                .build();
        final LabeledSeekBarPreference seekBarPreference =
                new LabeledSeekBarPreference(mContext, attributeSet);

        seekBarPreference.onBindViewHolder(mViewHolder);

        assertThat(mLabelFrame.getVisibility()).isEqualTo(View.VISIBLE);
    }

    @Test
    public void notSetTextAttributes_labelFrameGone() {
        final AttributeSet attributeSet = Robolectric.buildAttributeSet()
                .build();
        final LabeledSeekBarPreference seekBarPreference =
                new LabeledSeekBarPreference(mContext, attributeSet);

        seekBarPreference.onBindViewHolder(mViewHolder);

        assertThat(mLabelFrame.getVisibility()).isEqualTo(View.GONE);
    }

    @Test
    public void setIconAttributes_iconVisible() {
        final AttributeSet attributeSet = Robolectric.buildAttributeSet()