diff options
author | Maurice Lam <yukl@google.com> | 2019-03-19 14:50:04 -0700 |
---|---|---|
committer | Maurice Lam <yukl@google.com> | 2019-03-19 14:50:04 -0700 |
commit | 43f19d66c3f874dc97520c4231e03cbda7e80c9a (patch) | |
tree | 2f344fa6347d502e4b5c860039d10f6bf2bbf562 | |
parent | 4cafc9e99b6ae30ed7ca43f5e612b6f2d867bbcd (diff) | |
download | localepicker-android11-qpr1-s1-release.tar.gz |
Move locale picker library to build with system SDKr_aml_301500702android-vts-11.0_r9android-vts-11.0_r8android-vts-11.0_r7android-vts-11.0_r6android-vts-11.0_r5android-vts-11.0_r4android-vts-11.0_r3android-vts-11.0_r2android-vts-11.0_r16android-vts-11.0_r15android-vts-11.0_r14android-vts-11.0_r13android-vts-11.0_r12android-vts-11.0_r11android-vts-11.0_r10android-vts-11.0_r1android-security-11.0.0_r76android-security-11.0.0_r75android-security-11.0.0_r74android-security-11.0.0_r73android-security-11.0.0_r72android-security-11.0.0_r71android-security-11.0.0_r70android-security-11.0.0_r69android-security-11.0.0_r68android-security-11.0.0_r67android-security-11.0.0_r66android-security-11.0.0_r65android-security-11.0.0_r64android-security-11.0.0_r63android-security-11.0.0_r62android-security-11.0.0_r61android-security-11.0.0_r60android-security-11.0.0_r59android-security-11.0.0_r58android-security-11.0.0_r57android-security-11.0.0_r56android-security-11.0.0_r55android-security-11.0.0_r54android-security-11.0.0_r53android-security-11.0.0_r52android-security-11.0.0_r51android-security-11.0.0_r50android-security-11.0.0_r49android-security-11.0.0_r1android-platform-11.0.0_r9android-platform-11.0.0_r8android-platform-11.0.0_r7android-platform-11.0.0_r6android-platform-11.0.0_r5android-platform-11.0.0_r4android-platform-11.0.0_r3android-platform-11.0.0_r2android-platform-11.0.0_r13android-platform-11.0.0_r12android-platform-11.0.0_r11android-platform-11.0.0_r10android-platform-11.0.0_r1android-mainline-12.0.0_r55android-mainline-11.0.0_r9android-mainline-11.0.0_r8android-mainline-11.0.0_r7android-mainline-11.0.0_r6android-mainline-11.0.0_r5android-mainline-11.0.0_r45android-mainline-11.0.0_r44android-mainline-11.0.0_r43android-mainline-11.0.0_r42android-mainline-11.0.0_r41android-mainline-11.0.0_r40android-mainline-11.0.0_r4android-mainline-11.0.0_r39android-mainline-11.0.0_r38android-mainline-11.0.0_r37android-mainline-11.0.0_r36android-mainline-11.0.0_r35android-mainline-11.0.0_r34android-mainline-11.0.0_r33android-mainline-11.0.0_r32android-mainline-11.0.0_r31android-mainline-11.0.0_r30android-mainline-11.0.0_r3android-mainline-11.0.0_r29android-mainline-11.0.0_r28android-mainline-11.0.0_r27android-mainline-11.0.0_r26android-mainline-11.0.0_r25android-mainline-11.0.0_r24android-mainline-11.0.0_r23android-mainline-11.0.0_r22android-mainline-11.0.0_r21android-mainline-11.0.0_r20android-mainline-11.0.0_r2android-mainline-11.0.0_r19android-mainline-11.0.0_r18android-mainline-11.0.0_r17android-mainline-11.0.0_r16android-mainline-11.0.0_r15android-mainline-11.0.0_r14android-mainline-11.0.0_r13android-mainline-11.0.0_r12android-mainline-11.0.0_r10android-mainline-11.0.0_r1android-cts-11.0_r9android-cts-11.0_r8android-cts-11.0_r7android-cts-11.0_r6android-cts-11.0_r5android-cts-11.0_r4android-cts-11.0_r3android-cts-11.0_r2android-cts-11.0_r16android-cts-11.0_r15android-cts-11.0_r14android-cts-11.0_r13android-cts-11.0_r12android-cts-11.0_r11android-cts-11.0_r10android-cts-11.0_r1android-11.0.0_r9android-11.0.0_r8android-11.0.0_r7android-11.0.0_r6android-11.0.0_r5android-11.0.0_r48android-11.0.0_r47android-11.0.0_r46android-11.0.0_r45android-11.0.0_r44android-11.0.0_r43android-11.0.0_r42android-11.0.0_r41android-11.0.0_r40android-11.0.0_r4android-11.0.0_r39android-11.0.0_r38android-11.0.0_r37android-11.0.0_r36android-11.0.0_r35android-11.0.0_r34android-11.0.0_r33android-11.0.0_r32android-11.0.0_r31android-11.0.0_r30android-11.0.0_r3android-11.0.0_r29android-11.0.0_r28android-11.0.0_r27android-11.0.0_r26android-11.0.0_r25android-11.0.0_r24android-11.0.0_r23android-11.0.0_r22android-11.0.0_r21android-11.0.0_r20android-11.0.0_r2android-11.0.0_r19android-11.0.0_r18android-11.0.0_r17android-11.0.0_r16android-11.0.0_r15android-11.0.0_r14android-11.0.0_r13android-11.0.0_r12android-11.0.0_r11android-11.0.0_r10android-11.0.0_r1android11-tests-releaseandroid11-security-releaseandroid11-s1-releaseandroid11-releaseandroid11-qpr3-s1-releaseandroid11-qpr3-releaseandroid11-qpr2-releaseandroid11-qpr1-s2-releaseandroid11-qpr1-s1-releaseandroid11-qpr1-releaseandroid11-qpr1-d-s1-releaseandroid11-qpr1-d-releaseandroid11-qpr1-c-releaseandroid11-platform-releaseandroid11-mainline-tethering-releaseandroid11-mainline-sparse-2021-jan-releaseandroid11-mainline-sparse-2020-dec-releaseandroid11-mainline-releaseandroid11-mainline-permission-releaseandroid11-mainline-os-statsd-releaseandroid11-mainline-networkstack-releaseandroid11-mainline-media-swcodec-releaseandroid11-mainline-media-releaseandroid11-mainline-extservices-releaseandroid11-mainline-documentsui-releaseandroid11-mainline-conscrypt-releaseandroid11-mainline-cellbroadcast-releaseandroid11-mainline-captiveportallogin-releaseandroid11-gsiandroid11-devandroid11-d2-releaseandroid11-d1-s7-releaseandroid11-d1-s6-releaseandroid11-d1-s5-releaseandroid11-d1-s1-releaseandroid11-d1-releaseandroid11-d1-b-release
Test: mma
Bug: 114040620
Change-Id: I716e03666d83bf08c336abc439ab0b7f67cecf8e
-rw-r--r-- | Android.bp | 4 | ||||
-rw-r--r-- | src/com/android/localepicker/LocaleHelper.java | 44 | ||||
-rw-r--r-- | src/com/android/localepicker/LocaleStore.java | 21 | ||||
-rw-r--r-- | src/com/android/localepicker/SuggestedLocaleAdapter.java | 7 |
4 files changed, 23 insertions, 53 deletions
@@ -15,6 +15,10 @@ android_library { name: "localepicker", manifest: "AndroidManifest.xml", + sdk_version: "system_current", + static_libs: [ + "androidx.annotation_annotation", + ], resource_dirs: [ "res", ], diff --git a/src/com/android/localepicker/LocaleHelper.java b/src/com/android/localepicker/LocaleHelper.java index 7fd598f..ed2c543 100644 --- a/src/com/android/localepicker/LocaleHelper.java +++ b/src/com/android/localepicker/LocaleHelper.java @@ -16,12 +16,13 @@ package com.android.localepicker; -import android.annotation.IntRange; import android.icu.text.ListFormatter; import android.icu.util.ULocale; import android.os.LocaleList; import android.text.TextUtils; +import androidx.annotation.IntRange; + import java.text.Collator; import java.util.Comparator; import java.util.Locale; @@ -159,52 +160,13 @@ public class LocaleHelper { } /** - * Returns the locale list localized for display in the provided locale. - * - * @param locales the list of locales whose names is to be displayed. - * @param displayLocale the locale in which to display the names. - * If this is null, it will use the default locale. - * @param maxLocales maximum number of locales to display. Generates ellipsis after that. - * @return the locale aware list of locale names - */ - public static String getDisplayLocaleList( - LocaleList locales, Locale displayLocale, @IntRange(from=1) int maxLocales) { - - final Locale dispLocale = displayLocale == null ? Locale.getDefault() : displayLocale; - - final boolean ellipsisNeeded = locales.size() > maxLocales; - final int localeCount, listCount; - if (ellipsisNeeded) { - localeCount = maxLocales; - listCount = maxLocales + 1; // One extra slot for the ellipsis - } else { - listCount = localeCount = locales.size(); - } - final String[] localeNames = new String[listCount]; - for (int i = 0; i < localeCount; i++) { - localeNames[i] = LocaleHelper.getDisplayName(locales.get(i), dispLocale, false); - } - if (ellipsisNeeded) { - // Theoretically, we want to extract this from ICU's Resource Bundle for - // "Ellipsis/final", which seeAms to have different strings than the normal ellipsis for - // Hong Kong Traditional Chinese (zh_Hant_HK) and Dzongkha (dz). But that has two - // problems: it's expensive to extract it, and in case the output string becomes - // automatically ellipsized, it can result in weird output. - localeNames[maxLocales] = TextUtils.getEllipsisString(TextUtils.TruncateAt.END); - } - - ListFormatter lfn = ListFormatter.getInstance(dispLocale); - return lfn.format((Object[]) localeNames); - } - - /** * Adds the likely subtags for a provided locale ID. * * @param locale the locale to maximize. * @return the maximized Locale instance. */ public static Locale addLikelySubtags(Locale locale) { - return libcore.icu.ICU.addLikelySubtags(locale); + return ULocale.addLikelySubtags(ULocale.forLocale(locale)).toLocale(); } /** diff --git a/src/com/android/localepicker/LocaleStore.java b/src/com/android/localepicker/LocaleStore.java index 5d07ff2..ff4f85a 100644 --- a/src/com/android/localepicker/LocaleStore.java +++ b/src/com/android/localepicker/LocaleStore.java @@ -16,13 +16,15 @@ package com.android.localepicker; +import android.app.ActivityManager; import android.content.Context; +import android.content.res.Resources; +import android.icu.util.ULocale; import android.os.LocaleList; import android.provider.Settings; import android.telephony.TelephonyManager; -import com.android.internal.annotations.VisibleForTesting; -import com.android.internal.app.LocalePicker; +import androidx.annotation.VisibleForTesting; import java.io.Serializable; import java.util.HashMap; @@ -191,7 +193,7 @@ public class LocaleStore { private static Set<String> getSimCountries(Context context) { Set<String> result = new HashSet<>(); - TelephonyManager tm = TelephonyManager.from(context); + TelephonyManager tm = context.getSystemService(TelephonyManager.class); if (tm != null) { String iso = tm.getSimCountryIso().toUpperCase(Locale.US); @@ -266,13 +268,14 @@ public class LocaleStore { final boolean isInDeveloperMode = Settings.Global.getInt(context.getContentResolver(), Settings.Global.DEVELOPMENT_SETTINGS_ENABLED, 0) != 0; - for (String localeId : LocalePicker.getSupportedLocales(context)) { - if (localeId.isEmpty()) { - throw new IllformedLocaleException("Bad locale entry in locale_config.xml"); + ActivityManager activityManager = context.getSystemService(ActivityManager.class); + for (Locale locale : activityManager.getSupportedLocales()) { + if (locale == null) { + throw new NullPointerException("Bad locale entry in locale_config.xml"); } - LocaleInfo li = new LocaleInfo(localeId); + LocaleInfo li = new LocaleInfo(locale); - if (LocaleList.isPseudoLocale(li.getLocale())) { + if (LocaleList.isPseudoLocale(ULocale.forLocale(li.getLocale()))) { if (isInDeveloperMode) { li.setTranslated(true); li.mIsPseudo = true; @@ -298,7 +301,7 @@ public class LocaleStore { // TODO: See if we can reuse what LocaleList.matchScore does final HashSet<String> localizedLocales = new HashSet<>(); - for (String localeId : LocalePicker.getSystemAssetLocales()) { + for (String localeId : Resources.getSystem().getAssets().getLocales()) { LocaleInfo li = new LocaleInfo(localeId); final String country = li.getLocale().getCountry(); // All this is to figure out if we should suggest a country diff --git a/src/com/android/localepicker/SuggestedLocaleAdapter.java b/src/com/android/localepicker/SuggestedLocaleAdapter.java index 97e2971..c012263 100644 --- a/src/com/android/localepicker/SuggestedLocaleAdapter.java +++ b/src/com/android/localepicker/SuggestedLocaleAdapter.java @@ -16,8 +16,6 @@ package com.android.localepicker; -import android.annotation.NonNull; -import android.annotation.Nullable; import android.content.Context; import android.content.res.Configuration; import android.text.TextUtils; @@ -29,7 +27,10 @@ import android.widget.Filter; import android.widget.Filterable; import android.widget.TextView; -import com.android.internal.annotations.VisibleForTesting; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.annotation.VisibleForTesting; + import com.android.localepicker.R; import java.util.ArrayList; |