summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Seigo Nonaka <nona@google.com> 2016-01-22 17:22:11 +0900
committer Roozbeh Pournader <roozbeh@google.com> 2016-01-22 18:13:23 +0000
commitcada57a57bed6fb79a318ddf3cf0a09cd038c034 (patch)
tree87ad6d1ca8c873b5ae52c0ce2061298fee5b7c60
parent60965d2271b9dfa927b35fed2e5229a0f6d4c2ee (diff)
Set the default locale list when it is changed.
When the system language is changed by the Settings app, we need to call LocaleList.setDefault() to change the default locale list since components like TextView should be able to assume that LocaleList.getDefault() returns the latest system locale list. BUG: 26731035 Change-Id: I482567476e1b14cd9b4716343183627f81d96ace
-rw-r--r--core/java/android/app/ActivityThread.java6
-rw-r--r--core/java/android/app/ResourcesManager.java7
2 files changed, 7 insertions, 6 deletions
diff --git a/core/java/android/app/ActivityThread.java b/core/java/android/app/ActivityThread.java
index 93122ddb1c94..7b0195391b47 100644
--- a/core/java/android/app/ActivityThread.java
+++ b/core/java/android/app/ActivityThread.java
@@ -83,6 +83,7 @@ import android.util.AndroidRuntimeException;
import android.util.ArrayMap;
import android.util.DisplayMetrics;
import android.util.EventLog;
+import android.util.LocaleList;
import android.util.Log;
import android.util.LogPrinter;
import android.util.Pair;
@@ -128,7 +129,6 @@ import java.text.DateFormat;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
-import java.util.Locale;
import java.util.Map;
import java.util.Objects;
import java.util.TimeZone;
@@ -4887,9 +4887,9 @@ public final class ActivityThread {
TimeZone.setDefault(null);
/*
- * Initialize the default locale in this process for the reasons we set the time zone.
+ * Initialize the default locales in this process for the reasons we set the time zone.
*/
- Locale.setDefault(data.config.locale);
+ LocaleList.setDefault(data.config.getLocales());
/*
* Update the system configuration since its preloaded and might not
diff --git a/core/java/android/app/ResourcesManager.java b/core/java/android/app/ResourcesManager.java
index 318798458ef0..260216cfefb8 100644
--- a/core/java/android/app/ResourcesManager.java
+++ b/core/java/android/app/ResourcesManager.java
@@ -27,6 +27,7 @@ import android.content.res.ResourcesKey;
import android.hardware.display.DisplayManagerGlobal;
import android.util.ArrayMap;
import android.util.DisplayMetrics;
+import android.util.LocaleList;
import android.util.Log;
import android.util.Pair;
import android.util.Slog;
@@ -34,7 +35,6 @@ import android.view.Display;
import android.view.DisplayAdjustments;
import java.lang.ref.WeakReference;
-import java.util.Locale;
/** @hide */
public class ResourcesManager {
@@ -284,8 +284,9 @@ public class ResourcesManager {
}
// set it for java, this also affects newly created Resources
- if (config.locale != null) {
- Locale.setDefault(config.locale);
+ final LocaleList localeList = config.getLocales();
+ if (!localeList.isEmpty()) {
+ LocaleList.setDefault(localeList);
}
Resources.updateSystemConfiguration(config, defaultDisplayMetrics, compat);