OSDN Git Service

AI 145993: Fix Phone-oriented default-locale selection.
authorRobert Greenwalt <>
Mon, 13 Apr 2009 23:11:29 +0000 (16:11 -0700)
committerThe Android Open Source Project <initial-contribution@android.com>
Mon, 13 Apr 2009 23:11:29 +0000 (16:11 -0700)
  When several locales for a given language are available we were always
  selecting the first.
  BUG=1785986

Automated import of CL 145993

telephony/java/com/android/internal/telephony/PhoneBase.java

index 4fb5f61..3571f02 100644 (file)
@@ -360,7 +360,7 @@ public abstract class PhoneBase implements Phone {
             return; // no match possible
         }
         language.toLowerCase();
-        if (null != country) {
+        if (null == country) {
             country = "";
         }
         country = country.toUpperCase();
@@ -374,10 +374,11 @@ public abstract class PhoneBase implements Phone {
                 for(int i = 0; i < N; i++) {
                     if (locales[i]!=null && locales[i].length() >= 2 &&
                             locales[i].substring(0,2).equals(language)) {
-                        if (locales[i].length() >= 5 &&
-                                locales[i].substring(3,5).equals(country)) {
-                            bestMatch = locales[i];
-                            break;
+                        if (locales[i].length() >= 5) {
+                            if (locales[i].substring(3,5).equals(country)) {
+                                bestMatch = locales[i];
+                                break;
+                            }
                         } else if (null == bestMatch) {
                             bestMatch = locales[i];
                         }
@@ -386,7 +387,6 @@ 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));