summaryrefslogtreecommitdiffstats
path: root/packages
diff options
context:
space:
mode:
Diffstat (limited to 'packages')
-rw-r--r--packages/Keyguard/src/com/android/keyguard/KeyguardSecurityModel.java4
-rw-r--r--packages/Keyguard/src/com/android/keyguard/KeyguardSimPinView.java2
-rw-r--r--packages/Keyguard/src/com/android/keyguard/KeyguardSimPukView.java2
-rw-r--r--packages/Keyguard/src/com/android/keyguard/KeyguardUpdateMonitor.java46
-rw-r--r--packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java5
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);