Loading src/com/android/settings/regionalpreferences/NumberingSystemItemController.java +16 −6 Original line number Diff line number Diff line Loading @@ -34,18 +34,22 @@ import com.android.internal.app.LocaleStore; 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 java.util.Locale; /** Uses to control the preference UI of numbering system page. */ public class NumberingSystemItemController extends BasePreferenceController { private static final String TAG = NumberingSystemItemController.class.getSimpleName(); private static final String DISPLAY_KEYWORD_NUMBERING_SYSTEM = "numbers"; static final String ARG_VALUE_NUMBERING_SYSTEM_SELECT = "arg_value_numbering_system_select"; static final String ARG_VALUE_LANGUAGE_SELECT = "arg_value_language_select"; static final String KEY_SELECTED_LANGUAGE = "key_selected_language"; private static final String DISPLAY_KEYWORD_NUMBERING_SYSTEM = "numbers"; private final MetricsFeatureProvider mMetricsFeatureProvider; private String mOption = ""; private String mSelectedLanguage = ""; Loading @@ -60,6 +64,7 @@ public class NumberingSystemItemController extends BasePreferenceController { RegionalPreferencesEntriesFragment.ARG_KEY_REGIONAL_PREFERENCE, ""); mSelectedLanguage = argument.getString( NumberingSystemItemController.KEY_SELECTED_LANGUAGE, ""); mMetricsFeatureProvider = FeatureFactory.getFactory(context).getMetricsFeatureProvider(); } /** Loading Loading @@ -146,10 +151,13 @@ public class NumberingSystemItemController extends BasePreferenceController { } private void handleLanguageSelect(Preference preference) { String selectedLanguage = preference.getKey(); mMetricsFeatureProvider.action(mContext, SettingsEnums.ACTION_CHOOSE_LANGUAGE_FOR_NUMBERS_PREFERENCES, selectedLanguage); final Bundle extra = new Bundle(); extra.putString(RegionalPreferencesEntriesFragment.ARG_KEY_REGIONAL_PREFERENCE, ARG_VALUE_NUMBERING_SYSTEM_SELECT); extra.putString(KEY_SELECTED_LANGUAGE, preference.getKey()); extra.putString(KEY_SELECTED_LANGUAGE, selectedLanguage); new SubSettingLauncher(preference.getContext()) .setDestination(NumberingPreferencesFragment.class.getName()) .setSourceMetricsCategory( Loading @@ -163,13 +171,15 @@ public class NumberingSystemItemController extends BasePreferenceController { TickButtonPreference pref = (TickButtonPreference) mPreferenceScreen.getPreference(i); Log.i(TAG, "[onPreferenceClick] key is " + pref.getKey()); if (pref.getKey().equals(preference.getKey())) { String numberingSystem = pref.getKey(); pref.setSelected(true); Locale updatedLocale = saveNumberingSystemToLocale( Locale.forLanguageTag(mSelectedLanguage), pref.getKey()); saveNumberingSystemToLocale(Locale.forLanguageTag(mSelectedLanguage), numberingSystem); mMetricsFeatureProvider.action(mContext, SettingsEnums.ACTION_SET_NUMBERS_PREFERENCES, numberingSystem); // After updated locale to framework, this fragment will recreate, // so it need to update the argement of selected language. // so it needs to update the argument of selected language. Bundle bundle = new Bundle(); bundle.putString(RegionalPreferencesEntriesFragment.ARG_KEY_REGIONAL_PREFERENCE, ARG_VALUE_NUMBERING_SYSTEM_SELECT); Loading tests/unit/src/com/android/settings/regionalpreferences/NumberingSystemItemControllerTest.java +11 −0 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.verify; import android.app.settings.SettingsEnums; import android.content.Context; import android.os.Bundle; import android.os.LocaleList; Loading @@ -33,6 +34,7 @@ import androidx.preference.PreferenceScreen; import androidx.test.annotation.UiThreadTest; import androidx.test.core.app.ApplicationProvider; import com.android.settings.testutils.FakeFeatureFactory; import com.android.settings.widget.TickButtonPreference; import org.junit.After; Loading @@ -47,6 +49,7 @@ public class NumberingSystemItemControllerTest { private NumberingPreferencesFragment mFragment; private PreferenceScreen mPreferenceScreen; private LocaleList mCacheLocale; private FakeFeatureFactory mFeatureFactory; @Before @UiThreadTest Loading @@ -55,6 +58,7 @@ public class NumberingSystemItemControllerTest { Looper.prepare(); } mApplicationContext = ApplicationProvider.getApplicationContext(); mFeatureFactory = FakeFeatureFactory.setupForTest(); mFragment = spy(new NumberingPreferencesFragment()); PreferenceManager preferenceManager = new PreferenceManager(mApplicationContext); mPreferenceScreen = preferenceManager.createPreferenceScreen(mApplicationContext); Loading Loading @@ -89,6 +93,10 @@ public class NumberingSystemItemControllerTest { } assertTrue(isCallingStartActivity); verify(mFeatureFactory.metricsFeatureProvider).action( mApplicationContext, SettingsEnums.ACTION_CHOOSE_LANGUAGE_FOR_NUMBERS_PREFERENCES, "I_am_the_key"); } @Test Loading @@ -109,6 +117,9 @@ public class NumberingSystemItemControllerTest { mController.handlePreferenceTreeClick(preference); verify(mFragment).setArguments(any()); verify(mFeatureFactory.metricsFeatureProvider).action( mApplicationContext, SettingsEnums.ACTION_SET_NUMBERS_PREFERENCES, "test_key"); } @Test Loading Loading
src/com/android/settings/regionalpreferences/NumberingSystemItemController.java +16 −6 Original line number Diff line number Diff line Loading @@ -34,18 +34,22 @@ import com.android.internal.app.LocaleStore; 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 java.util.Locale; /** Uses to control the preference UI of numbering system page. */ public class NumberingSystemItemController extends BasePreferenceController { private static final String TAG = NumberingSystemItemController.class.getSimpleName(); private static final String DISPLAY_KEYWORD_NUMBERING_SYSTEM = "numbers"; static final String ARG_VALUE_NUMBERING_SYSTEM_SELECT = "arg_value_numbering_system_select"; static final String ARG_VALUE_LANGUAGE_SELECT = "arg_value_language_select"; static final String KEY_SELECTED_LANGUAGE = "key_selected_language"; private static final String DISPLAY_KEYWORD_NUMBERING_SYSTEM = "numbers"; private final MetricsFeatureProvider mMetricsFeatureProvider; private String mOption = ""; private String mSelectedLanguage = ""; Loading @@ -60,6 +64,7 @@ public class NumberingSystemItemController extends BasePreferenceController { RegionalPreferencesEntriesFragment.ARG_KEY_REGIONAL_PREFERENCE, ""); mSelectedLanguage = argument.getString( NumberingSystemItemController.KEY_SELECTED_LANGUAGE, ""); mMetricsFeatureProvider = FeatureFactory.getFactory(context).getMetricsFeatureProvider(); } /** Loading Loading @@ -146,10 +151,13 @@ public class NumberingSystemItemController extends BasePreferenceController { } private void handleLanguageSelect(Preference preference) { String selectedLanguage = preference.getKey(); mMetricsFeatureProvider.action(mContext, SettingsEnums.ACTION_CHOOSE_LANGUAGE_FOR_NUMBERS_PREFERENCES, selectedLanguage); final Bundle extra = new Bundle(); extra.putString(RegionalPreferencesEntriesFragment.ARG_KEY_REGIONAL_PREFERENCE, ARG_VALUE_NUMBERING_SYSTEM_SELECT); extra.putString(KEY_SELECTED_LANGUAGE, preference.getKey()); extra.putString(KEY_SELECTED_LANGUAGE, selectedLanguage); new SubSettingLauncher(preference.getContext()) .setDestination(NumberingPreferencesFragment.class.getName()) .setSourceMetricsCategory( Loading @@ -163,13 +171,15 @@ public class NumberingSystemItemController extends BasePreferenceController { TickButtonPreference pref = (TickButtonPreference) mPreferenceScreen.getPreference(i); Log.i(TAG, "[onPreferenceClick] key is " + pref.getKey()); if (pref.getKey().equals(preference.getKey())) { String numberingSystem = pref.getKey(); pref.setSelected(true); Locale updatedLocale = saveNumberingSystemToLocale( Locale.forLanguageTag(mSelectedLanguage), pref.getKey()); saveNumberingSystemToLocale(Locale.forLanguageTag(mSelectedLanguage), numberingSystem); mMetricsFeatureProvider.action(mContext, SettingsEnums.ACTION_SET_NUMBERS_PREFERENCES, numberingSystem); // After updated locale to framework, this fragment will recreate, // so it need to update the argement of selected language. // so it needs to update the argument of selected language. Bundle bundle = new Bundle(); bundle.putString(RegionalPreferencesEntriesFragment.ARG_KEY_REGIONAL_PREFERENCE, ARG_VALUE_NUMBERING_SYSTEM_SELECT); Loading
tests/unit/src/com/android/settings/regionalpreferences/NumberingSystemItemControllerTest.java +11 −0 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.verify; import android.app.settings.SettingsEnums; import android.content.Context; import android.os.Bundle; import android.os.LocaleList; Loading @@ -33,6 +34,7 @@ import androidx.preference.PreferenceScreen; import androidx.test.annotation.UiThreadTest; import androidx.test.core.app.ApplicationProvider; import com.android.settings.testutils.FakeFeatureFactory; import com.android.settings.widget.TickButtonPreference; import org.junit.After; Loading @@ -47,6 +49,7 @@ public class NumberingSystemItemControllerTest { private NumberingPreferencesFragment mFragment; private PreferenceScreen mPreferenceScreen; private LocaleList mCacheLocale; private FakeFeatureFactory mFeatureFactory; @Before @UiThreadTest Loading @@ -55,6 +58,7 @@ public class NumberingSystemItemControllerTest { Looper.prepare(); } mApplicationContext = ApplicationProvider.getApplicationContext(); mFeatureFactory = FakeFeatureFactory.setupForTest(); mFragment = spy(new NumberingPreferencesFragment()); PreferenceManager preferenceManager = new PreferenceManager(mApplicationContext); mPreferenceScreen = preferenceManager.createPreferenceScreen(mApplicationContext); Loading Loading @@ -89,6 +93,10 @@ public class NumberingSystemItemControllerTest { } assertTrue(isCallingStartActivity); verify(mFeatureFactory.metricsFeatureProvider).action( mApplicationContext, SettingsEnums.ACTION_CHOOSE_LANGUAGE_FOR_NUMBERS_PREFERENCES, "I_am_the_key"); } @Test Loading @@ -109,6 +117,9 @@ public class NumberingSystemItemControllerTest { mController.handlePreferenceTreeClick(preference); verify(mFragment).setArguments(any()); verify(mFeatureFactory.metricsFeatureProvider).action( mApplicationContext, SettingsEnums.ACTION_SET_NUMBERS_PREFERENCES, "test_key"); } @Test Loading