Skip to content

Commit 4f0189e

Browse files
nullxceptionMocaRafee
authored andcommitted
Launcher3: Use SelectorWithWidgetPreference for icon pack's selection
RadioPreference is deprecated, so instead of using our own impl, let's use the official alternative of it.
1 parent 3633036 commit 4f0189e

4 files changed

Lines changed: 20 additions & 86 deletions

File tree

res/layout/preference_widget_radiobutton.xml

Lines changed: 0 additions & 25 deletions
This file was deleted.

src/com/android/launcher3/icons/pack/IconPackSettingsFragment.java

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,8 @@
3333

3434
import com.android.launcher3.customization.IconDatabase;
3535

36+
import com.android.settingslib.widget.SelectorWithWidgetPreference;
37+
3638
import java.util.ArrayList;
3739
import java.util.LinkedHashSet;
3840
import java.util.List;
@@ -88,14 +90,14 @@ public void onPause() {
8890
}
8991

9092
@Override
91-
protected List<RadioPreference> getRadioPreferences(Context context) {
93+
protected List<SelectorWithWidgetPreference> getPreferences(Context context) {
9294
final String currentIconPack = IconDatabase.getGlobal(context);
93-
final List<RadioPreference> prefsList = new ArrayList<>();
95+
final List<SelectorWithWidgetPreference> prefsList = new ArrayList<>();
9496
final Set<IconPackInfo> iconPacks = getAvailableIconPacks(context);
9597

9698
for (final IconPackInfo entry : iconPacks) {
9799
final boolean isCurrent = currentIconPack.equals(entry.pkgName);
98-
final RadioPreference pref = buildPreference(context,
100+
final SelectorWithWidgetPreference pref = buildPreference(context,
99101
entry.pkgName, entry.label, isCurrent);
100102
prefsList.add(pref);
101103

@@ -137,9 +139,9 @@ private Set<IconPackInfo> getAvailableIconPacks(Context context) {
137139
return availablePacks;
138140
}
139141

140-
private RadioPreference buildPreference(Context context, String pkgName,
142+
private SelectorWithWidgetPreference buildPreference(Context context, String pkgName,
141143
String label, boolean isChecked) {
142-
final RadioPreference pref = new RadioPreference(context);
144+
final SelectorWithWidgetPreference pref = new SelectorWithWidgetPreference(context);
143145
pref.setKey(pkgName);
144146
pref.setTitle(label);
145147
pref.setPersistent(false);

src/com/android/launcher3/icons/pack/RadioPreference.java

Lines changed: 0 additions & 45 deletions
This file was deleted.

src/com/android/launcher3/icons/pack/RadioSettingsFragment.java

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -24,14 +24,16 @@
2424
import androidx.preference.PreferenceManager;
2525
import androidx.preference.PreferenceScreen;
2626

27+
import com.android.settingslib.widget.SelectorWithWidgetPreference;
28+
2729
import java.util.List;
2830

2931
public 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

Comments
 (0)