Loading core/java/android/content/res/Configuration.java +21 −1 Original line number Diff line number Diff line Loading @@ -55,6 +55,7 @@ import android.os.Parcel; import android.os.Parcelable; import android.text.TextUtils; import android.util.DisplayMetrics; import android.util.Slog; import android.util.proto.ProtoInputStream; import android.util.proto.ProtoOutputStream; import android.util.proto.WireTypeMismatchException; Loading @@ -70,6 +71,7 @@ import java.io.IOException; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.util.ArrayList; import java.util.IllformedLocaleException; import java.util.List; import java.util.Locale; Loading @@ -87,6 +89,8 @@ public final class Configuration implements Parcelable, Comparable<Configuration /** @hide */ public static final Configuration EMPTY = new Configuration(); private static final String TAG = "Configuration"; /** * Current user preference for the scaling factor for fonts, relative * to the base density scaling. Loading Loading @@ -1186,6 +1190,7 @@ public final class Configuration implements Parcelable, Comparable<Configuration String language = ""; String country = ""; String variant = ""; String script = ""; try { while (protoInputStream.nextField() != ProtoInputStream.NO_MORE_FIELDS) { Loading @@ -1200,6 +1205,9 @@ public final class Configuration implements Parcelable, Comparable<Configuration case (int) LocaleProto.VARIANT: variant = protoInputStream.readString(LocaleProto.VARIANT); break; case (int) LocaleProto.SCRIPT: script = protoInputStream.readString(LocaleProto.SCRIPT); break; } } } catch (WireTypeMismatchException wtme) { Loading @@ -1207,7 +1215,19 @@ public final class Configuration implements Parcelable, Comparable<Configuration throw wtme; } finally { protoInputStream.end(localeToken); list.add(new Locale(language, country, variant)); try { final Locale locale = new Locale.Builder() .setLanguage(language) .setRegion(country) .setVariant(variant) .setScript(script) .build(); list.add(locale); } catch (IllformedLocaleException e) { Slog.e(TAG, "readFromProto error building locale with: " + "language-" + language + ";country-" + country + ";variant-" + variant + ";script-" + script); } } break; case (int) SCREEN_LAYOUT: Loading core/java/android/os/LocaleList.java +1 −0 Original line number Diff line number Diff line Loading @@ -157,6 +157,7 @@ public final class LocaleList implements Parcelable { 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); } } Loading core/proto/android/content/locale.proto +1 −0 Original line number Diff line number Diff line Loading @@ -27,5 +27,6 @@ message LocaleProto { optional string language = 1; optional string country = 2; optional string variant = 3; optional string script = 4; } services/tests/servicestests/src/com/android/server/usage/UsageStatsDatabaseTest.java +16 −0 Original line number Diff line number Diff line Loading @@ -223,6 +223,22 @@ public class UsageStatsDatabaseTest { config9.densityDpi = 19; mIntervalStats.getOrCreateConfigurationStats(config9); Configuration config10 = new Configuration(); final Locale locale10 = new Locale.Builder() .setLocale(new Locale("zh", "CN")) .setScript("Hans") .build(); config10.setLocale(locale10); mIntervalStats.getOrCreateConfigurationStats(config10); Configuration config11 = new Configuration(); final Locale locale11 = new Locale.Builder() .setLocale(new Locale("zh", "CN")) .setScript("Hant") .build(); config11.setLocale(locale11); mIntervalStats.getOrCreateConfigurationStats(config11); mIntervalStats.activeConfiguration = config9; } Loading Loading
core/java/android/content/res/Configuration.java +21 −1 Original line number Diff line number Diff line Loading @@ -55,6 +55,7 @@ import android.os.Parcel; import android.os.Parcelable; import android.text.TextUtils; import android.util.DisplayMetrics; import android.util.Slog; import android.util.proto.ProtoInputStream; import android.util.proto.ProtoOutputStream; import android.util.proto.WireTypeMismatchException; Loading @@ -70,6 +71,7 @@ import java.io.IOException; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.util.ArrayList; import java.util.IllformedLocaleException; import java.util.List; import java.util.Locale; Loading @@ -87,6 +89,8 @@ public final class Configuration implements Parcelable, Comparable<Configuration /** @hide */ public static final Configuration EMPTY = new Configuration(); private static final String TAG = "Configuration"; /** * Current user preference for the scaling factor for fonts, relative * to the base density scaling. Loading Loading @@ -1186,6 +1190,7 @@ public final class Configuration implements Parcelable, Comparable<Configuration String language = ""; String country = ""; String variant = ""; String script = ""; try { while (protoInputStream.nextField() != ProtoInputStream.NO_MORE_FIELDS) { Loading @@ -1200,6 +1205,9 @@ public final class Configuration implements Parcelable, Comparable<Configuration case (int) LocaleProto.VARIANT: variant = protoInputStream.readString(LocaleProto.VARIANT); break; case (int) LocaleProto.SCRIPT: script = protoInputStream.readString(LocaleProto.SCRIPT); break; } } } catch (WireTypeMismatchException wtme) { Loading @@ -1207,7 +1215,19 @@ public final class Configuration implements Parcelable, Comparable<Configuration throw wtme; } finally { protoInputStream.end(localeToken); list.add(new Locale(language, country, variant)); try { final Locale locale = new Locale.Builder() .setLanguage(language) .setRegion(country) .setVariant(variant) .setScript(script) .build(); list.add(locale); } catch (IllformedLocaleException e) { Slog.e(TAG, "readFromProto error building locale with: " + "language-" + language + ";country-" + country + ";variant-" + variant + ";script-" + script); } } break; case (int) SCREEN_LAYOUT: Loading
core/java/android/os/LocaleList.java +1 −0 Original line number Diff line number Diff line Loading @@ -157,6 +157,7 @@ public final class LocaleList implements Parcelable { 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); } } Loading
core/proto/android/content/locale.proto +1 −0 Original line number Diff line number Diff line Loading @@ -27,5 +27,6 @@ message LocaleProto { optional string language = 1; optional string country = 2; optional string variant = 3; optional string script = 4; }
services/tests/servicestests/src/com/android/server/usage/UsageStatsDatabaseTest.java +16 −0 Original line number Diff line number Diff line Loading @@ -223,6 +223,22 @@ public class UsageStatsDatabaseTest { config9.densityDpi = 19; mIntervalStats.getOrCreateConfigurationStats(config9); Configuration config10 = new Configuration(); final Locale locale10 = new Locale.Builder() .setLocale(new Locale("zh", "CN")) .setScript("Hans") .build(); config10.setLocale(locale10); mIntervalStats.getOrCreateConfigurationStats(config10); Configuration config11 = new Configuration(); final Locale locale11 = new Locale.Builder() .setLocale(new Locale("zh", "CN")) .setScript("Hant") .build(); config11.setLocale(locale11); mIntervalStats.getOrCreateConfigurationStats(config11); mIntervalStats.activeConfiguration = config9; } Loading