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

Commit d498e898 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Automerger Merge Worker
Browse files

Merge "Add SettingsSpinnerPreference#setClickable" into sc-dev am: c90d1c30

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/14495980

Change-Id: If4d428ab91395a867258e5730af4082e070f4f13
parents b53d7ee7 c90d1c30
Loading
Loading
Loading
Loading
+14 −0
Original line number Diff line number Diff line
@@ -36,6 +36,7 @@ public class SettingsSpinnerPreference extends Preference {
    private SettingsSpinnerAdapter mAdapter;
    private AdapterView.OnItemSelectedListener mListener;
    private int mPosition; //Default 0 for internal shard storage.
    private boolean mIsClickable = true;

    /**
     * Perform inflation from XML and apply a class-specific base style.
@@ -50,6 +51,7 @@ public class SettingsSpinnerPreference extends Preference {
    public SettingsSpinnerPreference(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
        setLayoutResource(R.layout.settings_spinner_preference);
        setSelectable(false);
    }

    /**
@@ -62,6 +64,7 @@ public class SettingsSpinnerPreference extends Preference {
    public SettingsSpinnerPreference(Context context, AttributeSet attrs) {
        super(context, attrs);
        setLayoutResource(R.layout.settings_spinner_preference);
        setSelectable(false);
    }

    /**
@@ -98,10 +101,21 @@ public class SettingsSpinnerPreference extends Preference {
        notifyChanged();
    }

    /** Set clickable of the spinner. */
    public void setClickable(boolean isClickable) {
        if (mIsClickable == isClickable) {
            return;
        }
        mIsClickable = isClickable;
        notifyChanged();
    }

    @Override
    public void onBindViewHolder(PreferenceViewHolder holder) {
        super.onBindViewHolder(holder);
        final SettingsSpinner spinner = (SettingsSpinner) holder.findViewById(R.id.spinner);
        spinner.setEnabled(mIsClickable);
        spinner.setClickable(mIsClickable);
        spinner.setAdapter(mAdapter);
        spinner.setSelection(mPosition);
        spinner.setOnItemSelectedListener(mOnSelectedListener);
+20 −0
Original line number Diff line number Diff line
@@ -89,4 +89,24 @@ public class SettingsSpinnerPreferenceTest {
        assertThat(mSpinnerPreference.getSelectedItem())
                .isEqualTo(mSpinner.getAdapter().getItem(1));
    }

    @Test
    public void onBindViewHolder_setClickableTrue_isClickableTrue() {
        mSpinnerPreference.setClickable(true);

        mSpinnerPreference.onBindViewHolder(mViewHolder);

        assertThat(mSpinner.isClickable()).isTrue();
        assertThat(mSpinner.isEnabled()).isTrue();
    }

    @Test
    public void onBindViewHolder_setClickableFalse_isClickableFalse() {
        mSpinnerPreference.setClickable(false);

        mSpinnerPreference.onBindViewHolder(mViewHolder);

        assertThat(mSpinner.isClickable()).isFalse();
        assertThat(mSpinner.isEnabled()).isFalse();
    }
}