summaryrefslogtreecommitdiffstats
path: root/packages/Keyguard/src/com/android/keyguard/KeyguardUpdateMonitor.java
diff options
context:
space:
mode:
authorWink Saville <wink@google.com>2014-11-22 10:08:16 -0800
committerWink Saville <wink@google.com>2014-11-22 10:08:16 -0800
commitd09c4cad65c708f2c4810d24295456708a2000d2 (patch)
tree27dd308bdb4d662a149287a7cc168770a065a992 /packages/Keyguard/src/com/android/keyguard/KeyguardUpdateMonitor.java
parent85f463c5b59350fa4c4a05007f8a7b65a9a89da3 (diff)
downloadframeworks_base-d09c4cad65c708f2c4810d24295456708a2000d2.zip
frameworks_base-d09c4cad65c708f2c4810d24295456708a2000d2.tar.gz
frameworks_base-d09c4cad65c708f2c4810d24295456708a2000d2.tar.bz2
Additional changes to SubscriptionManager API as per API council.
bug: 17575308 Change-Id: Idd98aa46c15a9219ccf28091c62602ac8bf16c62
Diffstat (limited to 'packages/Keyguard/src/com/android/keyguard/KeyguardUpdateMonitor.java')
-rw-r--r--packages/Keyguard/src/com/android/keyguard/KeyguardUpdateMonitor.java46
1 files changed, 29 insertions, 17 deletions
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);