Change to read carrier specific config only after reading IMSI.
Amit Mahajan [Thu, 23 Jul 2015 22:30:21 +0000 (15:30 -0700)]
This is to make sure we decide to use language settings from SIM
(which is controlled by a carrier specific config) only after
the mcc-mnc is known.

Bug: 22255379
Change-Id: I1e0491e9ed01fa27bcb32d6f3708e091a0e25cb5

src/java/com/android/internal/telephony/uicc/RuimRecords.java
src/java/com/android/internal/telephony/uicc/SIMRecords.java

index 50c85e0..965fd63 100644 (file)
@@ -782,7 +782,11 @@ public final class RuimRecords extends IccRecords {
             }
         }
 
-        setSimLanguage(mEFli, mEFpl);
+        Resources resource = Resources.getSystem();
+        if (resource.getBoolean(com.android.internal.R.bool.config_use_sim_language_file)) {
+            setSimLanguage(mEFli, mEFpl);
+        }
+
         mRecordsLoadedRegistrants.notifyRegistrants(
             new AsyncResult(null, null, null));
 
@@ -818,16 +822,13 @@ public final class RuimRecords extends IccRecords {
                 obtainMessage(EVENT_GET_ICCID_DONE));
         mRecordsToLoad++;
 
-        Resources resource = Resources.getSystem();
-        if (resource.getBoolean(com.android.internal.R.bool.config_use_sim_language_file)) {
-            mFh.loadEFTransparent(EF_PL,
-                    obtainMessage(EVENT_GET_ICC_RECORD_DONE, new EfPlLoaded()));
-            mRecordsToLoad++;
+        mFh.loadEFTransparent(EF_PL,
+                obtainMessage(EVENT_GET_ICC_RECORD_DONE, new EfPlLoaded()));
+        mRecordsToLoad++;
 
-            mFh.loadEFTransparent(EF_CSIM_LI,
-                    obtainMessage(EVENT_GET_ICC_RECORD_DONE, new EfCsimLiLoaded()));
-            mRecordsToLoad++;
-        }
+        mFh.loadEFTransparent(EF_CSIM_LI,
+                obtainMessage(EVENT_GET_ICC_RECORD_DONE, new EfCsimLiLoaded()));
+        mRecordsToLoad++;
 
         mFh.loadEFTransparent(EF_CSIM_SPN,
                 obtainMessage(EVENT_GET_ICC_RECORD_DONE, new EfCsimSpnLoaded()));
index d9e8209..3acbd4d 100644 (file)
@@ -1438,7 +1438,12 @@ public class SIMRecords extends IccRecords {
     protected void onAllRecordsLoaded() {
         if (DBG) log("record load complete");
 
-        setSimLanguage(mEfLi, mEfPl);
+        Resources resource = Resources.getSystem();
+        if (resource.getBoolean(com.android.internal.R.bool.config_use_sim_language_file)) {
+            setSimLanguage(mEfLi, mEfPl);
+        } else {
+            if (DBG) log ("Not using EF LI/EF PL");
+        }
 
         if (mParentApp.getState() == AppState.APPSTATE_PIN ||
                mParentApp.getState() == AppState.APPSTATE_PUK) {
@@ -1509,12 +1514,6 @@ public class SIMRecords extends IccRecords {
     }
 
     private void loadEfLiAndEfPl() {
-        Resources resource = Resources.getSystem();
-        if (!resource.getBoolean(com.android.internal.R.bool.config_use_sim_language_file)) {
-            if (DBG) log ("Not using EF LI/EF PL");
-            return;
-        }
-
         if (mParentApp.getType() == AppType.APPTYPE_USIM) {
             mRecordsRequested = true;
             mFh.loadEFTransparent(EF_LI,