diff options
| author | Colin Cross <ccross@android.com> | 2019-09-10 19:18:48 +0000 |
|---|---|---|
| committer | Android (Google) Code Review <android-gerrit@google.com> | 2019-09-10 19:18:48 +0000 |
| commit | dd67a548b27f171ccabbf47af76075d252cb883e (patch) | |
| tree | f0321c0b9ab43cd0a5634eab5fb808eb4edf6601 /core/java | |
| parent | bdfd7d6adbc4fe02adcb1da0fca99f01acb87606 (diff) | |
| parent | 68cdb74d9198dac04c9a5f65f77d685b69673f79 (diff) | |
Merge "Revert "Use language tags to store Configuration's locale list."" into qt-dev
Diffstat (limited to 'core/java')
| -rw-r--r-- | core/java/android/content/res/Configuration.java | 11 | ||||
| -rw-r--r-- | core/java/android/os/LocaleList.java | 22 |
2 files changed, 23 insertions, 10 deletions
diff --git a/core/java/android/content/res/Configuration.java b/core/java/android/content/res/Configuration.java index ac1cbd4619df..9cf54f41a64b 100644 --- a/core/java/android/content/res/Configuration.java +++ b/core/java/android/content/res/Configuration.java @@ -23,7 +23,6 @@ import static android.content.ConfigurationProto.HARD_KEYBOARD_HIDDEN; import static android.content.ConfigurationProto.KEYBOARD; import static android.content.ConfigurationProto.KEYBOARD_HIDDEN; import static android.content.ConfigurationProto.LOCALES; -import static android.content.ConfigurationProto.LOCALE_LIST; import static android.content.ConfigurationProto.MCC; import static android.content.ConfigurationProto.MNC; import static android.content.ConfigurationProto.NAVIGATION; @@ -1112,7 +1111,7 @@ public final class Configuration implements Parcelable, Comparable<Configuration protoOutputStream.write(MCC, mcc); protoOutputStream.write(MNC, mnc); if (mLocaleList != null) { - protoOutputStream.write(LOCALE_LIST, mLocaleList.toLanguageTags()); + mLocaleList.writeToProto(protoOutputStream, LOCALES); } protoOutputStream.write(SCREEN_LAYOUT, screenLayout); protoOutputStream.write(COLOR_MODE, colorMode); @@ -1284,14 +1283,6 @@ public final class Configuration implements Parcelable, Comparable<Configuration case (int) WINDOW_CONFIGURATION: windowConfiguration.readFromProto(protoInputStream, WINDOW_CONFIGURATION); break; - case (int) LOCALE_LIST: - try { - setLocales(LocaleList.forLanguageTags(protoInputStream.readString( - LOCALE_LIST))); - } catch (Exception e) { - Slog.e(TAG, "error parsing locale list in configuration.", e); - } - break; } } } finally { diff --git a/core/java/android/os/LocaleList.java b/core/java/android/os/LocaleList.java index 0de09efad8ea..7782753e4abc 100644 --- a/core/java/android/os/LocaleList.java +++ b/core/java/android/os/LocaleList.java @@ -21,7 +21,9 @@ import android.annotation.NonNull; import android.annotation.Nullable; import android.annotation.Size; import android.annotation.UnsupportedAppUsage; +import android.content.LocaleProto; import android.icu.util.ULocale; +import android.util.proto.ProtoOutputStream; import com.android.internal.annotations.GuardedBy; @@ -141,6 +143,26 @@ public final class LocaleList implements Parcelable { } /** + * Helper to write LocaleList to a protocol buffer output stream. Assumes the parent + * protobuf has declared the locale as repeated. + * + * @param protoOutputStream Stream to write the locale to. + * @param fieldId Field Id of the Locale as defined in the parent message. + * @hide + */ + public void writeToProto(ProtoOutputStream protoOutputStream, long fieldId) { + for (int i = 0; i < mList.length; i++) { + final Locale locale = mList[i]; + final long token = protoOutputStream.start(fieldId); + protoOutputStream.write(LocaleProto.LANGUAGE, locale.getLanguage()); + protoOutputStream.write(LocaleProto.COUNTRY, locale.getCountry()); + protoOutputStream.write(LocaleProto.VARIANT, locale.getVariant()); + protoOutputStream.write(LocaleProto.SCRIPT, locale.getScript()); + protoOutputStream.end(token); + } + } + + /** * Retrieves a String representation of the language tags in this list. */ @NonNull |
