Merge "[Regional Preference] Set numbering system when select it" into udc-dev
This commit is contained in:
@@ -183,7 +183,8 @@ public class NumberingSystemItemController extends BasePreferenceController {
|
||||
Bundle bundle = new Bundle();
|
||||
bundle.putString(RegionalPreferencesEntriesFragment.ARG_KEY_REGIONAL_PREFERENCE,
|
||||
ARG_VALUE_NUMBERING_SYSTEM_SELECT);
|
||||
bundle.putString(KEY_SELECTED_LANGUAGE, updatedLocale.toLanguageTag());
|
||||
bundle.putString(KEY_SELECTED_LANGUAGE,
|
||||
updatedLocale != null ? updatedLocale.toLanguageTag() : "");
|
||||
mParentFragment.setArguments(bundle);
|
||||
continue;
|
||||
}
|
||||
@@ -194,13 +195,14 @@ public class NumberingSystemItemController extends BasePreferenceController {
|
||||
private Locale saveNumberingSystemToLocale(Locale targetLocale, String value) {
|
||||
LocaleList localeList = LocalePicker.getLocales();
|
||||
Locale[] locales = new Locale[localeList.size()];
|
||||
Locale updatedLocale = null;
|
||||
for (int i = 0; i < localeList.size(); i++) {
|
||||
Locale locale = localeList.get(i);
|
||||
if (targetLocale.equals(locale)) {
|
||||
if (value.equals(RegionalPreferencesDataUtils.DEFAULT_VALUE)) {
|
||||
if (RegionalPreferencesDataUtils.DEFAULT_VALUE.equals(value)) {
|
||||
value = null;
|
||||
}
|
||||
Locale updatedLocale = new Locale.Builder()
|
||||
updatedLocale = new Locale.Builder()
|
||||
.setLocale(locale)
|
||||
.setUnicodeLocaleKeyword(ExtensionTypes.NUMBERING_SYSTEM, value)
|
||||
.build();
|
||||
@@ -210,7 +212,7 @@ public class NumberingSystemItemController extends BasePreferenceController {
|
||||
locales[i] = localeList.get(i);
|
||||
}
|
||||
LocalePicker.updateLocales(new LocaleList(locales));
|
||||
return targetLocale;
|
||||
return updatedLocale;
|
||||
}
|
||||
|
||||
private static String getNumberingSystem(Locale locale) {
|
||||
|
@@ -16,6 +16,8 @@
|
||||
|
||||
package com.android.settings.regionalpreferences;
|
||||
|
||||
import static com.google.common.truth.Truth.assertThat;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
import static org.mockito.ArgumentMatchers.any;
|
||||
@@ -34,6 +36,7 @@ import androidx.preference.PreferenceScreen;
|
||||
import androidx.test.annotation.UiThreadTest;
|
||||
import androidx.test.core.app.ApplicationProvider;
|
||||
|
||||
import com.android.internal.app.LocalePicker;
|
||||
import com.android.settings.testutils.FakeFeatureFactory;
|
||||
import com.android.settings.widget.TickButtonPreference;
|
||||
|
||||
@@ -68,6 +71,7 @@ public class NumberingSystemItemControllerTest {
|
||||
@After
|
||||
public void tearDown() {
|
||||
LocaleList.setDefault(mCacheLocale);
|
||||
LocalePicker.updateLocales(mCacheLocale);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -122,6 +126,31 @@ public class NumberingSystemItemControllerTest {
|
||||
"test_key");
|
||||
}
|
||||
|
||||
@Test
|
||||
@UiThreadTest
|
||||
public void handlePreferenceTreeClick_numbersSelect_numberingSystemIsUpdated() {
|
||||
LocalePicker.updateLocales(LocaleList.forLanguageTags("en-US,zh-TW,ar-BH"));
|
||||
Bundle bundle = new Bundle();
|
||||
bundle.putString(RegionalPreferencesEntriesFragment.ARG_KEY_REGIONAL_PREFERENCE,
|
||||
NumberingSystemItemController.ARG_VALUE_NUMBERING_SYSTEM_SELECT);
|
||||
bundle.putString(
|
||||
NumberingSystemItemController.KEY_SELECTED_LANGUAGE, "ar-BH");
|
||||
TickButtonPreference defaultPreference = new TickButtonPreference(mApplicationContext);
|
||||
TickButtonPreference numberPreference = new TickButtonPreference(mApplicationContext);
|
||||
defaultPreference.setKey("default");
|
||||
numberPreference.setKey("latn");
|
||||
mPreferenceScreen.addPreference(defaultPreference);
|
||||
mPreferenceScreen.addPreference(numberPreference);
|
||||
mController = new NumberingSystemItemController(mApplicationContext, bundle);
|
||||
mController.setParentFragment(mFragment);
|
||||
mController.displayPreference(mPreferenceScreen);
|
||||
|
||||
mController.handlePreferenceTreeClick(numberPreference);
|
||||
|
||||
assertThat(LocalePicker.getLocales().toLanguageTags()).contains(
|
||||
"en-US,zh-TW,ar-BH-u-nu-latn");
|
||||
}
|
||||
|
||||
@Test
|
||||
@UiThreadTest
|
||||
public void displayPreference_languageOptAndHas2LocaleWithSingleNu_showNothing() {
|
||||
|
Reference in New Issue
Block a user