summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMaurice Lam <yukl@google.com>2019-03-19 14:50:04 -0700
committerMaurice Lam <yukl@google.com>2019-03-19 14:50:04 -0700
commit43f19d66c3f874dc97520c4231e03cbda7e80c9a (patch)
tree2f344fa6347d502e4b5c860039d10f6bf2bbf562
parent4cafc9e99b6ae30ed7ca43f5e612b6f2d867bbcd (diff)
downloadlocalepicker-android11-d2-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.bp4
-rw-r--r--src/com/android/localepicker/LocaleHelper.java44
-rw-r--r--src/com/android/localepicker/LocaleStore.java21
-rw-r--r--src/com/android/localepicker/SuggestedLocaleAdapter.java7
4 files changed, 23 insertions, 53 deletions
diff --git a/Android.bp b/Android.bp
index 680c703..9138aa1 100644
--- a/Android.bp
+++ b/Android.bp
@@ -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;