Fixed a SIM Lock UI issue

+ The SIM lock option will now appear if there is any SIM with locking
capabilities.
+ Also, if the first slot does not have a SIM in it, then the SIM lock
screen will disable the ability to lock the first slot.

Bug: 18473536
Change-Id: Ib4e0ed6e94b00bc07c9febdad433fdb3c55294b8
This commit is contained in:
PauloftheWest
2014-12-08 13:49:35 -08:00
parent 838d6dc949
commit 0b8788aae4
2 changed files with 25 additions and 3 deletions

View File

@@ -298,7 +298,7 @@ public class SecuritySettings extends SettingsPreferenceFragment
// 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.
@@ -370,6 +370,24 @@ public class SecuritySettings extends SettingsPreferenceFragment
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.
*/