Merge "Merge "Fixed NullPointerException" am: 5fb16be925 am: cbe5bbdcd5 am: 456b2bf87b am: b301288cd7 am: 036496e2d0" into rvc-dev
diff --git a/src/com/android/settings/IccLockSettings.java b/src/com/android/settings/IccLockSettings.java
index a9b496a..4340039 100644
--- a/src/com/android/settings/IccLockSettings.java
+++ b/src/com/android/settings/IccLockSettings.java
@@ -31,6 +31,7 @@
 import android.os.PersistableBundle;
 import android.telephony.CarrierConfigManager;
 import android.telephony.SubscriptionInfo;
+import android.telephony.SubscriptionManager;
 import android.telephony.TelephonyManager;
 import android.text.TextUtils;
 import android.util.Log;
@@ -231,13 +232,16 @@
         for (int i = 0; i < numSims; ++i) {
             final SubscriptionInfo subInfo =
                     getActiveSubscriptionInfoForSimSlotIndex(subInfoList, i);
-            final CarrierConfigManager carrierConfigManager = getContext().getSystemService(
-                    CarrierConfigManager.class);
-            final PersistableBundle bundle = carrierConfigManager.getConfigForSubId(
-                    subInfo.getSubscriptionId());
-            if (bundle != null
-                    && !bundle.getBoolean(CarrierConfigManager.KEY_HIDE_SIM_LOCK_SETTINGS_BOOL)) {
-                componenterList.add(subInfo);
+            if (subInfo != null) {
+                final CarrierConfigManager carrierConfigManager = getContext().getSystemService(
+                        CarrierConfigManager.class);
+                final PersistableBundle bundle = carrierConfigManager.getConfigForSubId(
+                        subInfo.getSubscriptionId());
+                if (bundle != null
+                        && !bundle.getBoolean(CarrierConfigManager
+                        .KEY_HIDE_SIM_LOCK_SETTINGS_BOOL)) {
+                    componenterList.add(subInfo);
+                }
             }
         }
 
@@ -292,7 +296,8 @@
         final List<SubscriptionInfo> subInfoList =
                 mProxySubscriptionMgr.getActiveSubscriptionsInfo();
         final SubscriptionInfo sir = getActiveSubscriptionInfoForSimSlotIndex(subInfoList, mSlotId);
-        mSubId = sir.getSubscriptionId();
+        mSubId = (sir == null) ? SubscriptionManager.INVALID_SUBSCRIPTION_ID
+            : sir.getSubscriptionId();
 
         if (mPinDialog != null) {
             mPinDialog.setEnabled(sir != null);
@@ -679,8 +684,6 @@
         @Override
         public void onTabChanged(String tabId) {
             mSlotId = Integer.parseInt(tabId);
-            final SubscriptionInfo sir = getActiveSubscriptionInfoForSimSlotIndex(
-                    mProxySubscriptionMgr.getActiveSubscriptionsInfo(), mSlotId);
 
             // The User has changed tab; update the body.
             updatePreferences();