diff options
Diffstat (limited to 'packages')
5 files changed, 36 insertions, 23 deletions
diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardSecurityModel.java b/packages/Keyguard/src/com/android/keyguard/KeyguardSecurityModel.java index a5d260d..5350e5a 100644 --- a/packages/Keyguard/src/com/android/keyguard/KeyguardSecurityModel.java +++ b/packages/Keyguard/src/com/android/keyguard/KeyguardSecurityModel.java @@ -82,10 +82,10 @@ public class KeyguardSecurityModel { KeyguardUpdateMonitor monitor = KeyguardUpdateMonitor.getInstance(mContext); SecurityMode mode = SecurityMode.None; if (monitor.getNextSubIdForState(IccCardConstants.State.PIN_REQUIRED) - != SubscriptionManager.INVALID_SUB_ID) { + != SubscriptionManager.INVALID_SUBSCRIPTION_ID) { mode = SecurityMode.SimPin; } else if (monitor.getNextSubIdForState(IccCardConstants.State.PUK_REQUIRED) - != SubscriptionManager.INVALID_SUB_ID + != SubscriptionManager.INVALID_SUBSCRIPTION_ID && mLockPatternUtils.isPukUnlockScreenEnable()) { mode = SecurityMode.SimPuk; } else { diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardSimPinView.java b/packages/Keyguard/src/com/android/keyguard/KeyguardSimPinView.java index d8feaf8..1f4311e 100644 --- a/packages/Keyguard/src/com/android/keyguard/KeyguardSimPinView.java +++ b/packages/Keyguard/src/com/android/keyguard/KeyguardSimPinView.java @@ -71,7 +71,7 @@ public class KeyguardSimPinView extends KeyguardPinBasedInputView { if (DEBUG) Log.v(TAG, "Resetting state"); KeyguardUpdateMonitor monitor = KeyguardUpdateMonitor.getInstance(mContext); mSubId = monitor.getNextSubIdForState(IccCardConstants.State.PIN_REQUIRED); - if (mSubId != SubscriptionManager.INVALID_SUB_ID) { + if (mSubId != SubscriptionManager.INVALID_SUBSCRIPTION_ID) { int count = TelephonyManager.getDefault().getSimCount(); Resources rez = getResources(); final String msg; diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardSimPukView.java b/packages/Keyguard/src/com/android/keyguard/KeyguardSimPukView.java index c5d940c..e7f0635 100644 --- a/packages/Keyguard/src/com/android/keyguard/KeyguardSimPukView.java +++ b/packages/Keyguard/src/com/android/keyguard/KeyguardSimPukView.java @@ -114,7 +114,7 @@ public class KeyguardSimPukView extends KeyguardPinBasedInputView { state = ENTER_PUK; KeyguardUpdateMonitor monitor = KeyguardUpdateMonitor.getInstance(mContext); mSubId = monitor.getNextSubIdForState(IccCardConstants.State.PUK_REQUIRED); - if (mSubId != SubscriptionManager.INVALID_SUB_ID) { + if (mSubId != SubscriptionManager.INVALID_SUBSCRIPTION_ID) { int count = TelephonyManager.getDefault().getSimCount(); Resources rez = getResources(); final String msg; diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardUpdateMonitor.java b/packages/Keyguard/src/com/android/keyguard/KeyguardUpdateMonitor.java index 48b2eac..7f1314d 100644 --- a/packages/Keyguard/src/com/android/keyguard/KeyguardUpdateMonitor.java +++ b/packages/Keyguard/src/com/android/keyguard/KeyguardUpdateMonitor.java @@ -27,7 +27,6 @@ import android.content.ContentResolver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; -import android.content.pm.UserInfo; import android.database.ContentObserver; import android.graphics.Bitmap; @@ -40,9 +39,7 @@ import static android.os.BatteryManager.EXTRA_LEVEL; import static android.os.BatteryManager.EXTRA_HEALTH; import android.media.AudioManager; -import android.media.IRemoteControlDisplay; import android.os.BatteryManager; -import android.os.Bundle; import android.os.Handler; import android.os.IRemoteCallback; import android.os.Message; @@ -60,8 +57,8 @@ import android.service.fingerprint.FingerprintManager; import android.service.fingerprint.FingerprintManagerReceiver; import android.service.fingerprint.FingerprintUtils; import android.telephony.SubscriptionInfo; -import android.telephony.SubscriptionListener; import android.telephony.SubscriptionManager; +import android.telephony.SubscriptionManager.OnSubscriptionsChangedListener; import android.telephony.TelephonyManager; import android.util.Log; import android.util.SparseBooleanArray; @@ -158,7 +155,8 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { private boolean mSwitchingUser; private boolean mScreenOn; - protected List<SubscriptionInfo> mSubscriptionInfo; + private SubscriptionManager mSubscriptionManager; + private List<SubscriptionInfo> mSubscriptionInfo; private final Handler mHandler = new Handler() { @Override @@ -237,9 +235,10 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { } }; - private SubscriptionListener mSubscriptionListener = new SubscriptionListener() { + private OnSubscriptionsChangedListener mSubscriptionListener = + new OnSubscriptionsChangedListener() { @Override - public void onSubscriptionInfoChanged() { + public void onSubscriptionsChanged() { mHandler.sendEmptyMessage(MSG_SIM_SUBSCRIPTION_INFO_CHANGED); } }; @@ -267,8 +266,13 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { protected void handleSimSubscriptionInfoChanged() { if (DEBUG_SIM_STATES) { Log.v(TAG, "onSubscriptionInfoChanged()"); - for (SubscriptionInfo subInfo : SubscriptionManager.getActiveSubscriptionInfoList()) { - Log.v(TAG, "SubInfo:" + subInfo); + List<SubscriptionInfo> sil = mSubscriptionManager.getActiveSubscriptionInfoList(); + if (sil != null) { + for (SubscriptionInfo subInfo : sil) { + Log.v(TAG, "SubInfo:" + subInfo); + } + } else { + Log.v(TAG, "onSubscriptionInfoChanged: list is null"); } } List<SubscriptionInfo> subscriptionInfos = getSubscriptionInfo(true /* forceReload */); @@ -291,9 +295,17 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { } } + /** @return List of SubscriptionInfo records, maybe empty but never null */ List<SubscriptionInfo> getSubscriptionInfo(boolean forceReload) { - if (mSubscriptionInfo == null || forceReload) { - mSubscriptionInfo = SubscriptionManager.getActiveSubscriptionInfoList(); + List<SubscriptionInfo> sil = mSubscriptionInfo; + if (sil == null || forceReload) { + sil = mSubscriptionManager.getActiveSubscriptionInfoList(); + } + if (sil == null) { + // getActiveSubscriptionInfoList was null callers expect an empty list. + mSubscriptionInfo = new ArrayList<SubscriptionInfo>(); + } else { + mSubscriptionInfo = sil; } return mSubscriptionInfo; } @@ -524,7 +536,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { String stateExtra = intent.getStringExtra(IccCardConstants.INTENT_KEY_ICC_STATE); int slotId = intent.getIntExtra(PhoneConstants.SLOT_KEY, 0); int subId = intent.getIntExtra(PhoneConstants.SUBSCRIPTION_KEY, - SubscriptionManager.INVALID_SUB_ID); + SubscriptionManager.INVALID_SUBSCRIPTION_ID); if (IccCardConstants.INTENT_VALUE_ICC_ABSENT.equals(stateExtra)) { final String absentReason = intent .getStringExtra(IccCardConstants.INTENT_KEY_LOCKED_REASON); @@ -660,6 +672,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { private KeyguardUpdateMonitor(Context context) { mContext = context; + mSubscriptionManager = SubscriptionManager.from(context); mDeviceProvisioned = isDeviceProvisionedInSettingsDb(); // Since device can't be un-provisioned, we only need to register a content observer // to update mDeviceProvisioned when we are... @@ -698,8 +711,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { context.registerReceiverAsUser(mBroadcastAllReceiver, UserHandle.ALL, allUserFilter, null, null); - SubscriptionManager.register(mContext, mSubscriptionListener, - SubscriptionListener.LISTEN_SUBSCRIPTION_INFO_LIST_CHANGED); + mSubscriptionManager.registerOnSubscriptionsChangedListener(mSubscriptionListener); try { ActivityManagerNative.getDefault().registerUserSwitchObserver( new IUserSwitchObserver.Stub() { @@ -952,7 +964,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { + slotId + ", state=" + state +")"); } - if (subId == SubscriptionManager.INVALID_SUB_ID) { + if (subId == SubscriptionManager.INVALID_SUBSCRIPTION_ID) { Log.w(TAG, "invalid subId in handleSimStateChange()"); return; } @@ -1338,11 +1350,11 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { /** * Find the next SubscriptionId for a SIM in the given state, favoring lower slot numbers first. * @param state - * @return subid or {@link SubscriptionManager#INVALID_SUB_ID} if none found + * @return subid or {@link SubscriptionManager#INVALID_SUBSCRIPTION_ID} if none found */ public int getNextSubIdForState(State state) { List<SubscriptionInfo> list = getSubscriptionInfo(false /* forceReload */); - int resultId = SubscriptionManager.INVALID_SUB_ID; + int resultId = SubscriptionManager.INVALID_SUBSCRIPTION_ID; int bestSlotId = Integer.MAX_VALUE; // Favor lowest slot first for (int i = 0; i < list.size(); i++) { final SubscriptionInfo info = list.get(i); diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java b/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java index 8213127..d8f8727 100644 --- a/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java +++ b/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java @@ -926,9 +926,10 @@ public class KeyguardViewMediator extends SystemUI { // if the setup wizard hasn't run yet, don't show final boolean requireSim = !SystemProperties.getBoolean("keyguard.no_require_sim", false); final boolean absent = mUpdateMonitor.getNextSubIdForState( - IccCardConstants.State.ABSENT) != SubscriptionManager.INVALID_SUB_ID; + IccCardConstants.State.ABSENT) != SubscriptionManager.INVALID_SUBSCRIPTION_ID; final boolean disabled = mUpdateMonitor.getNextSubIdForState( - IccCardConstants.State.PERM_DISABLED) != SubscriptionManager.INVALID_SUB_ID; + IccCardConstants.State.PERM_DISABLED) + != SubscriptionManager.INVALID_SUBSCRIPTION_ID; final boolean lockedOrMissing = mUpdateMonitor.isSimPinSecure() || ((absent || disabled) && requireSim); |