summaryrefslogtreecommitdiffstats
path: root/telephony/java/com
diff options
context:
space:
mode:
Diffstat (limited to 'telephony/java/com')
-rw-r--r--telephony/java/com/android/internal/telephony/PhoneBase.java21
1 files changed, 8 insertions, 13 deletions
diff --git a/telephony/java/com/android/internal/telephony/PhoneBase.java b/telephony/java/com/android/internal/telephony/PhoneBase.java
index 20c54fb..1ff0f7e 100644
--- a/telephony/java/com/android/internal/telephony/PhoneBase.java
+++ b/telephony/java/com/android/internal/telephony/PhoneBase.java
@@ -490,7 +490,7 @@ public abstract class PhoneBase implements Phone {
if (null == language) {
return; // no match possible
}
- language.toLowerCase();
+ language = language.toLowerCase();
if (null == country) {
country = "";
}
@@ -503,13 +503,12 @@ public abstract class PhoneBase implements Phone {
final int N = locales.length;
String bestMatch = null;
for(int i = 0; i < N; i++) {
- if (locales[i]!=null && locales[i].length() >= 2 &&
+ // only match full (lang + country) locales
+ if (locales[i]!=null && locales[i].length() >= 5 &&
locales[i].substring(0,2).equals(language)) {
- if (locales[i].length() >= 5) {
- if (locales[i].substring(3,5).equals(country)) {
- bestMatch = locales[i];
- break;
- }
+ if (locales[i].substring(3,5).equals(country)) {
+ bestMatch = locales[i];
+ break;
} else if (null == bestMatch) {
bestMatch = locales[i];
}
@@ -518,12 +517,8 @@ public abstract class PhoneBase implements Phone {
if (null != bestMatch) {
IActivityManager am = ActivityManagerNative.getDefault();
Configuration config = am.getConfiguration();
- if (bestMatch.length() >= 5) {
- config.locale = new Locale(bestMatch.substring(0,2),
- bestMatch.substring(3,5));
- } else {
- config.locale = new Locale(bestMatch.substring(0,2));
- }
+ config.locale = new Locale(bestMatch.substring(0,2),
+ bestMatch.substring(3,5));
config.userSetLocale = true;
am.updateConfiguration(config);
}