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

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

Merge "Add SettingsSpinnerPreference#setClickable" into sc-dev

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


    /**
    /**
     * Perform inflation from XML and apply a class-specific base style.
     * 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) {
    public SettingsSpinnerPreference(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
        super(context, attrs, defStyle);
        setLayoutResource(R.layout.settings_spinner_preference);
        setLayoutResource(R.layout.settings_spinner_preference);
        setSelectable(false);
    }
    }


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


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


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

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