summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Roozbeh Pournader <roozbeh@google.com> 2015-12-02 18:39:50 -0800
committer Roozbeh Pournader <roozbeh@google.com> 2015-12-02 18:39:50 -0800
commit8a412e0bb76e22d65cb2e3de1eff9945e502ecc3 (patch)
treea71a73de10a30476abcfe7391ea259d0c1632828
parent47040d6247c8eeb4d2172c4970be405be9337fd2 (diff)
Fix null locale edge cases in Configuration and Resources
Previously, Configuration#setTo() would not copy a null locale, and Resources#updateConfiguration() could fail if it was updated with a configuration with a null locale or empty locale list. Bug: 25874762 Change-Id: I76ef5769a16a5165b91c8e5ec5d926c67ef4f3c5
-rw-r--r--core/java/android/content/res/Configuration.java4
-rw-r--r--core/java/android/content/res/Resources.java2
2 files changed, 2 insertions, 4 deletions
diff --git a/core/java/android/content/res/Configuration.java b/core/java/android/content/res/Configuration.java
index 1a19a585cd89..7db5a0889a35 100644
--- a/core/java/android/content/res/Configuration.java
+++ b/core/java/android/content/res/Configuration.java
@@ -724,9 +724,7 @@ public final class Configuration implements Parcelable, Comparable<Configuration
fontScale = o.fontScale;
mcc = o.mcc;
mnc = o.mnc;
- if (o.locale != null) {
- locale = (Locale) o.locale.clone();
- }
+ locale = o.locale == null ? null : (Locale) o.locale.clone();
o.fixUpLocaleList();
mLocaleList = o.mLocaleList;
userSetLocale = o.userSetLocale;
diff --git a/core/java/android/content/res/Resources.java b/core/java/android/content/res/Resources.java
index 7b3dde4262f4..eadad44c9a81 100644
--- a/core/java/android/content/res/Resources.java
+++ b/core/java/android/content/res/Resources.java
@@ -1988,7 +1988,7 @@ public class Resources {
}
synchronized (sSync) {
if (mPluralRule != null) {
- mPluralRule = PluralRules.forLocale(config.getLocales().getPrimary());
+ mPluralRule = PluralRules.forLocale(mConfiguration.getLocales().getPrimary());
}
}
}