Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a78c4bff authored by Zoey Chen's avatar Zoey Chen Committed by Automerger Merge Worker
Browse files

Merge "[Regional Preference] Set numbering system when select it" into udc-dev am: 74ab90bb

parents dc945624 74ab90bb
Loading
Loading
Loading
Loading
+6 −4
Original line number Diff line number Diff line
@@ -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) {
+29 −0
Original line number Diff line number Diff line
@@ -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() {