? context.getString(R.string.sim_editor_title, i + 1)
: subInfo.getDisplayName())));
}
- }
+ final SubscriptionInfo sir = Utils.findRecordBySlotId(getBaseContext(), 0);
- mPhone = PhoneFactory.getDefaultPhone();
+ mPhone = (sir == null) ? null
+ : PhoneFactory.getPhone(SubscriptionManager.getPhoneId(sir.getSubscriptionId()));
+ } else {
+ mPhone = PhoneFactory.getDefaultPhone();
+ }
mRes = getResources();
updatePreferences();
}
// Do not display SIM lock for devices without an Icc card
TelephonyManager tm = TelephonyManager.getDefault();
- if (!mIsPrimary || !tm.hasIccCard()) {
+ if (!mIsPrimary || !isSimIccReady()) {
root.removePreference(root.findPreference(KEY_SIM_LOCK));
} else {
// Disable SIM lock if there is no ready SIM card.
return root;
}
+ /* Return true if a there is a Slot that has Icc.
+ */
+ private boolean isSimIccReady() {
+ TelephonyManager tm = TelephonyManager.getDefault();
+ final List<SubscriptionInfo> subInfoList =
+ mSubscriptionManager.getActiveSubscriptionInfoList();
+
+ if (subInfoList != null) {
+ for (SubscriptionInfo subInfo : subInfoList) {
+ if (tm.hasIccCard(subInfo.getSubscriptionId())) {
+ return true;
+ }
+ }
+ }
+
+ return false;
+ }
+
/* Return true if a SIM is ready for locking.
* TODO: consider adding to TelephonyManager or SubscritpionManasger.
*/