Loading packages/SettingsLib/SettingsSpinner/src/com/android/settingslib/widget/SettingsSpinnerPreference.java +14 −0 Original line number Original line Diff line number Diff line Loading @@ -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. Loading @@ -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); } } /** /** Loading @@ -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); } } /** /** Loading Loading @@ -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); Loading packages/SettingsLib/tests/integ/src/com/android/settingslib/widget/SettingsSpinnerPreferenceTest.java +20 −0 Original line number Original line Diff line number Diff line Loading @@ -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(); } } } Loading
packages/SettingsLib/SettingsSpinner/src/com/android/settingslib/widget/SettingsSpinnerPreference.java +14 −0 Original line number Original line Diff line number Diff line Loading @@ -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. Loading @@ -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); } } /** /** Loading @@ -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); } } /** /** Loading Loading @@ -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); Loading
packages/SettingsLib/tests/integ/src/com/android/settingslib/widget/SettingsSpinnerPreferenceTest.java +20 −0 Original line number Original line Diff line number Diff line Loading @@ -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(); } } }