diff --git a/src/com/android/settings/regionalpreferences/NumberingSystemItemController.java b/src/com/android/settings/regionalpreferences/NumberingSystemItemController.java index de0d386ccae..9f0c4041ebf 100644 --- a/src/com/android/settings/regionalpreferences/NumberingSystemItemController.java +++ b/src/com/android/settings/regionalpreferences/NumberingSystemItemController.java @@ -35,8 +35,8 @@ import com.android.settings.core.BasePreferenceController; import com.android.settings.core.SubSettingLauncher; import com.android.settings.dashboard.DashboardFragment; import com.android.settings.overlay.FeatureFactory; -import com.android.settings.widget.TickButtonPreference; import com.android.settingslib.core.instrumentation.MetricsFeatureProvider; +import com.android.settingslib.widget.SelectorWithWidgetPreference; import java.util.Locale; @@ -138,13 +138,13 @@ public class NumberingSystemItemController extends BasePreferenceController { for (String localeTag : locales) { Locale supportedLocale = Locale.forLanguageTag(localeTag); if (isSameBaseLocale(targetLocale, supportedLocale)) { - TickButtonPreference pref = new TickButtonPreference(mContext); + SelectorWithWidgetPreference pref = new SelectorWithWidgetPreference(mContext); String numberingName = getNumberingSystem(supportedLocale); pref.setTitle(numberingName); String key = supportedLocale.getUnicodeLocaleType( ExtensionTypes.NUMBERING_SYSTEM); pref.setKey(key == null ? RegionalPreferencesDataUtils.DEFAULT_VALUE : key); - pref.setSelected(isSameNumberingSystem(targetLocale, supportedLocale)); + pref.setChecked(isSameNumberingSystem(targetLocale, supportedLocale)); screen.addPreference(pref); } } @@ -168,11 +168,12 @@ public class NumberingSystemItemController extends BasePreferenceController { private void handleNumberSystemSelect(Preference preference) { for (int i = 0; i < mPreferenceScreen.getPreferenceCount(); i++) { - TickButtonPreference pref = (TickButtonPreference) mPreferenceScreen.getPreference(i); + SelectorWithWidgetPreference pref = + (SelectorWithWidgetPreference) mPreferenceScreen.getPreference(i); Log.i(TAG, "[onPreferenceClick] key is " + pref.getKey()); if (pref.getKey().equals(preference.getKey())) { String numberingSystem = pref.getKey(); - pref.setSelected(true); + pref.setChecked(true); Locale updatedLocale = saveNumberingSystemToLocale(Locale.forLanguageTag(mSelectedLanguage), numberingSystem); @@ -188,7 +189,7 @@ public class NumberingSystemItemController extends BasePreferenceController { mParentFragment.setArguments(bundle); continue; } - pref.setSelected(false); + pref.setChecked(false); } } diff --git a/src/com/android/settings/regionalpreferences/RegionalPreferenceListBasePreferenceController.java b/src/com/android/settings/regionalpreferences/RegionalPreferenceListBasePreferenceController.java index 8be0043e822..dda057984fc 100644 --- a/src/com/android/settings/regionalpreferences/RegionalPreferenceListBasePreferenceController.java +++ b/src/com/android/settings/regionalpreferences/RegionalPreferenceListBasePreferenceController.java @@ -24,8 +24,8 @@ import androidx.preference.PreferenceScreen; import com.android.settings.core.BasePreferenceController; import com.android.settings.overlay.FeatureFactory; -import com.android.settings.widget.TickButtonPreference; import com.android.settingslib.core.instrumentation.MetricsFeatureProvider; +import com.android.settingslib.widget.SelectorWithWidgetPreference; /** A base controller for handling all regional preferences controllers. */ public abstract class RegionalPreferenceListBasePreferenceController extends @@ -54,15 +54,14 @@ public abstract class RegionalPreferenceListBasePreferenceController extends String[] unitValues = getUnitValues(); for (int i = 0; i < unitValues.length; i++) { - TickButtonPreference pref = new TickButtonPreference(mContext); + SelectorWithWidgetPreference pref = new SelectorWithWidgetPreference(mContext); mPreferenceCategory.addPreference(pref); final String item = unitValues[i]; final String value = RegionalPreferencesDataUtils.getDefaultUnicodeExtensionData( mContext, getExtensionTypes()); pref.setTitle(getPreferenceTitle(item)); pref.setKey(item); - pref.setOnPreferenceClickListener(clickedPref -> { - setSelected(pref); + pref.setOnClickListener(v -> { RegionalPreferencesDataUtils.savePreference(mContext, getExtensionTypes(), item.equals(RegionalPreferencesDataUtils.DEFAULT_VALUE) ? null : item); @@ -70,20 +69,8 @@ public abstract class RegionalPreferenceListBasePreferenceController extends getMetricsActionKey() == SettingsEnums.ACTION_SET_FIRST_DAY_OF_WEEK ? "" : getPreferenceTitle(value) + " > " + getPreferenceTitle(item); mMetricsFeatureProvider.action(mContext, getMetricsActionKey(), metrics); - return true; }); - pref.setSelected(!value.isEmpty() && item.equals(value)); - } - } - - private void setSelected(TickButtonPreference preference) { - for (int i = 0; i < mPreferenceCategory.getPreferenceCount(); i++) { - TickButtonPreference pref = (TickButtonPreference) mPreferenceCategory.getPreference(i); - if (pref.getKey().equals(preference.getKey())) { - pref.setSelected(true); - continue; - } - pref.setSelected(false); + pref.setChecked(!value.isEmpty() && item.equals(value)); } } diff --git a/tests/unit/src/com/android/settings/regionalpreferences/FirstDayOfWeekItemListControllerTest.java b/tests/unit/src/com/android/settings/regionalpreferences/FirstDayOfWeekItemListControllerTest.java index 3b72cba75b7..1881e01b5ff 100644 --- a/tests/unit/src/com/android/settings/regionalpreferences/FirstDayOfWeekItemListControllerTest.java +++ b/tests/unit/src/com/android/settings/regionalpreferences/FirstDayOfWeekItemListControllerTest.java @@ -25,16 +25,15 @@ import android.os.LocaleList; import android.os.Looper; import android.provider.Settings; -import com.android.internal.app.LocalePicker; -import com.android.settings.widget.TickButtonPreference; - -import androidx.preference.PreferenceManager; -import androidx.preference.Preference; import androidx.preference.PreferenceCategory; +import androidx.preference.PreferenceManager; import androidx.preference.PreferenceScreen; import androidx.test.core.app.ApplicationProvider; import androidx.test.ext.junit.runners.AndroidJUnit4; +import com.android.internal.app.LocalePicker; +import com.android.settingslib.widget.SelectorWithWidgetPreference; + import org.junit.After; import org.junit.Before; import org.junit.Test; @@ -91,8 +90,9 @@ public class FirstDayOfWeekItemListControllerTest { @Test public void displayPreference_setSelectPreferredFirstDayOfWeekIsDefault() { - TickButtonPreference pref = (TickButtonPreference) mPreferenceCategory.getPreference(0); - pref.performClick(); + SelectorWithWidgetPreference pref = + (SelectorWithWidgetPreference) mPreferenceCategory.getPreference(0); + pref.onClick(); String record = Settings.System.getString( mContext.getContentResolver(), Settings.System.LOCALE_PREFERENCES); @@ -103,8 +103,9 @@ public class FirstDayOfWeekItemListControllerTest { @Test public void displayPreference_setSelectPreferredFirstDayOfWeekIsSunday() { - TickButtonPreference pref = (TickButtonPreference) mPreferenceCategory.getPreference(1); - pref.performClick(); + SelectorWithWidgetPreference pref = + (SelectorWithWidgetPreference) mPreferenceCategory.getPreference(1); + pref.onClick(); String record = Settings.System.getString( mContext.getContentResolver(), Settings.System.LOCALE_PREFERENCES); @@ -114,8 +115,9 @@ public class FirstDayOfWeekItemListControllerTest { @Test public void displayPreference_setSelectPreferredFirstDayOfWeekIsMonday() { - TickButtonPreference pref = (TickButtonPreference) mPreferenceCategory.getPreference(2); - pref.performClick(); + SelectorWithWidgetPreference pref = + (SelectorWithWidgetPreference) mPreferenceCategory.getPreference(2); + pref.onClick(); String record = Settings.System.getString( mContext.getContentResolver(), Settings.System.LOCALE_PREFERENCES); diff --git a/tests/unit/src/com/android/settings/regionalpreferences/NumberingSystemItemControllerTest.java b/tests/unit/src/com/android/settings/regionalpreferences/NumberingSystemItemControllerTest.java index 50e21fe6b3f..91ecbf9225f 100644 --- a/tests/unit/src/com/android/settings/regionalpreferences/NumberingSystemItemControllerTest.java +++ b/tests/unit/src/com/android/settings/regionalpreferences/NumberingSystemItemControllerTest.java @@ -38,7 +38,7 @@ import androidx.test.core.app.ApplicationProvider; import com.android.internal.app.LocalePicker; import com.android.settings.testutils.FakeFeatureFactory; -import com.android.settings.widget.TickButtonPreference; +import com.android.settingslib.widget.SelectorWithWidgetPreference; import org.junit.After; import org.junit.Before; @@ -82,7 +82,8 @@ public class NumberingSystemItemControllerTest { NumberingSystemItemController.ARG_VALUE_LANGUAGE_SELECT); bundle.putString( NumberingSystemItemController.KEY_SELECTED_LANGUAGE, Locale.US.toLanguageTag()); - TickButtonPreference preference = new TickButtonPreference(mApplicationContext); + SelectorWithWidgetPreference preference = + new SelectorWithWidgetPreference(mApplicationContext); preference.setKey("I_am_the_key"); mPreferenceScreen.addPreference(preference); mController = new NumberingSystemItemController(mApplicationContext, bundle); @@ -110,7 +111,8 @@ public class NumberingSystemItemControllerTest { NumberingSystemItemController.ARG_VALUE_NUMBERING_SYSTEM_SELECT); bundle.putString( NumberingSystemItemController.KEY_SELECTED_LANGUAGE, Locale.US.toLanguageTag()); - TickButtonPreference preference = new TickButtonPreference(mApplicationContext); + SelectorWithWidgetPreference preference = + new SelectorWithWidgetPreference(mApplicationContext); preference.setKey("test_key"); mPreferenceScreen.addPreference(preference); mController = new NumberingSystemItemController(mApplicationContext, bundle); @@ -133,8 +135,10 @@ public class NumberingSystemItemControllerTest { NumberingSystemItemController.ARG_VALUE_NUMBERING_SYSTEM_SELECT); bundle.putString( NumberingSystemItemController.KEY_SELECTED_LANGUAGE, "ar-BH"); - TickButtonPreference defaultPreference = new TickButtonPreference(mApplicationContext); - TickButtonPreference numberPreference = new TickButtonPreference(mApplicationContext); + SelectorWithWidgetPreference defaultPreference = + new SelectorWithWidgetPreference(mApplicationContext); + SelectorWithWidgetPreference numberPreference = + new SelectorWithWidgetPreference(mApplicationContext); defaultPreference.setKey("default"); numberPreference.setKey("latn"); mPreferenceScreen.addPreference(defaultPreference); diff --git a/tests/unit/src/com/android/settings/regionalpreferences/TemperatureUnitListControllerTest.java b/tests/unit/src/com/android/settings/regionalpreferences/TemperatureUnitListControllerTest.java index 0417443aee5..deedb648791 100644 --- a/tests/unit/src/com/android/settings/regionalpreferences/TemperatureUnitListControllerTest.java +++ b/tests/unit/src/com/android/settings/regionalpreferences/TemperatureUnitListControllerTest.java @@ -17,6 +17,7 @@ package com.android.settings.regionalpreferences; import static com.google.common.truth.Truth.assertThat; + import static org.mockito.Mockito.spy; import android.content.Context; @@ -24,16 +25,15 @@ import android.os.LocaleList; import android.os.Looper; import android.provider.Settings; -import com.android.internal.app.LocalePicker; -import com.android.settings.widget.TickButtonPreference; - -import androidx.preference.PreferenceManager; -import androidx.preference.Preference; import androidx.preference.PreferenceCategory; +import androidx.preference.PreferenceManager; import androidx.preference.PreferenceScreen; import androidx.test.core.app.ApplicationProvider; import androidx.test.ext.junit.runners.AndroidJUnit4; +import com.android.internal.app.LocalePicker; +import com.android.settingslib.widget.SelectorWithWidgetPreference; + import org.junit.After; import org.junit.Before; import org.junit.Test; @@ -88,8 +88,9 @@ public class TemperatureUnitListControllerTest { @Test public void displayPreference_setSelectPreferredTemperatureUnitIsDefault() { - TickButtonPreference pref = (TickButtonPreference) mPreferenceCategory.getPreference(0); - pref.performClick(); + SelectorWithWidgetPreference pref = + (SelectorWithWidgetPreference) mPreferenceCategory.getPreference(0); + pref.onClick(); String record = Settings.System.getString( mContext.getContentResolver(), Settings.System.LOCALE_PREFERENCES); @@ -101,8 +102,9 @@ public class TemperatureUnitListControllerTest { @Test public void displayPreference_setSelectPreferredTemperatureUnitIsCelsius() { - TickButtonPreference pref = (TickButtonPreference) mPreferenceCategory.getPreference(1); - pref.performClick(); + SelectorWithWidgetPreference pref = + (SelectorWithWidgetPreference) mPreferenceCategory.getPreference(1); + pref.onClick(); String record = Settings.System.getString( mContext.getContentResolver(), Settings.System.LOCALE_PREFERENCES); @@ -112,8 +114,9 @@ public class TemperatureUnitListControllerTest { @Test public void displayPreference_setSelectPreferredTemperatureUnitIsFahrenhe() { - TickButtonPreference pref = (TickButtonPreference) mPreferenceCategory.getPreference(2); - pref.performClick(); + SelectorWithWidgetPreference pref = + (SelectorWithWidgetPreference) mPreferenceCategory.getPreference(2); + pref.onClick(); String record = Settings.System.getString( mContext.getContentResolver(), Settings.System.LOCALE_PREFERENCES);