2424import androidx .preference .PreferenceManager ;
2525import androidx .preference .PreferenceScreen ;
2626
27+ import com .android .settingslib .widget .SelectorWithWidgetPreference ;
28+
2729import java .util .List ;
2830
2931public abstract class RadioSettingsFragment extends PreferenceFragment implements
3032 Preference .OnPreferenceClickListener {
31- private RadioPreference selectedPreference = null ;
33+ private SelectorWithWidgetPreference selectedPreference = null ;
3234 private RadioHeaderPreference headerPref = null ;
3335
34- protected abstract List <RadioPreference > getRadioPreferences (Context context );
36+ protected abstract List <SelectorWithWidgetPreference > getPreferences (Context context );
3537
3638 @ Override
3739 public void onCreatePreferences (Bundle savedInstanceState , String rootKey ) {
@@ -44,19 +46,19 @@ public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
4446 screen .addPreference (headerPref );
4547 }
4648
47- loadRadioPreferences (context , screen , null );
49+ loadPreferences (context , screen , null );
4850 setPreferenceScreen (screen );
4951 }
5052
5153 @ Override
5254 public boolean onPreferenceClick (Preference preference ) {
53- if (preference instanceof RadioPreference ) {
55+ if (preference instanceof SelectorWithWidgetPreference ) {
5456 onSelected (preference .getKey ());
5557
5658 if (selectedPreference != null ) {
5759 selectedPreference .setChecked (false );
5860 }
59- selectedPreference = (RadioPreference ) preference ;
61+ selectedPreference = (SelectorWithWidgetPreference ) preference ;
6062 selectedPreference .setChecked (true );
6163 return true ;
6264 } else {
@@ -75,7 +77,7 @@ protected RadioHeaderPreference getHeader(Context context) {
7577 return null ;
7678 }
7779
78- protected final void setSelectedPreference (RadioPreference preference ) {
80+ protected final void setSelectedPreference (SelectorWithWidgetPreference preference ) {
7981 selectedPreference = preference ;
8082 }
8183
@@ -105,23 +107,23 @@ protected void reloadPreferences() {
105107 final int numPreferences = screen .getPreferenceCount ();
106108 for (int i = numPreferences - 1 ; i >= 0 ; i --) {
107109 final Preference p = screen .getPreference (i );
108- if (p instanceof RadioPreference ) {
110+ if (p instanceof SelectorWithWidgetPreference ) {
109111 screen .removePreference (p );
110112 }
111113 }
112114
113115 // Add radio preferences
114116 final PreferenceManager prefManager = getPreferenceManager ();
115117 final Context context = prefManager .getContext ();
116- loadRadioPreferences (context , screen , currentKey );
118+ loadPreferences (context , screen , currentKey );
117119 }
118120
119- private void loadRadioPreferences (Context context , PreferenceScreen screen ,
121+ private void loadPreferences (Context context , PreferenceScreen screen ,
120122 String currentKey ) {
121123 boolean hasSetNewCurrent = false ;
122124
123- final List <RadioPreference > prefs = getRadioPreferences (context );
124- for (final RadioPreference p : prefs ) {
125+ final List <SelectorWithWidgetPreference > prefs = getPreferences (context );
126+ for (final SelectorWithWidgetPreference p : prefs ) {
125127 if (currentKey != null && currentKey .equals (p .getKey ())) {
126128 p .setChecked (true );
127129 selectedPreference = p ;
0 commit comments