Merge "Change getVisualVoicemailPackageName() to use subId"
diff --git a/src/com/android/phone/vvm/VvmSimStateTracker.java b/src/com/android/phone/vvm/VvmSimStateTracker.java
index 069111a..1059f86 100644
--- a/src/com/android/phone/vvm/VvmSimStateTracker.java
+++ b/src/com/android/phone/vvm/VvmSimStateTracker.java
@@ -80,12 +80,19 @@
}
public void listen() {
- getTelephonyManager(mContext, mPhoneAccountHandle)
- .listen(this, PhoneStateListener.LISTEN_SERVICE_STATE);
+ TelephonyManager telephonyManager = getTelephonyManager(mContext, mPhoneAccountHandle);
+ if(telephonyManager == null){
+ VvmLog.e(TAG, "Cannot create TelephonyManager from " + mPhoneAccountHandle);
+ return;
+ }
+ telephonyManager.listen(this, PhoneStateListener.LISTEN_SERVICE_STATE);
}
public void unlisten() {
- getTelephonyManager(mContext, mPhoneAccountHandle)
+ // TelephonyManager does not need to be pinned to an account when removing a
+ // PhoneStateListener, and mPhoneAccountHandle might be invalid at this point
+ // (e.g. SIM removal)
+ mContext.getSystemService(TelephonyManager.class)
.listen(this, PhoneStateListener.LISTEN_NONE);
sListeners.put(mPhoneAccountHandle, null);
}
diff --git a/src/com/android/phone/vvm/omtp/OmtpVvmCarrierConfigHelper.java b/src/com/android/phone/vvm/omtp/OmtpVvmCarrierConfigHelper.java
index 0b321b5..c82012a 100644
--- a/src/com/android/phone/vvm/omtp/OmtpVvmCarrierConfigHelper.java
+++ b/src/com/android/phone/vvm/omtp/OmtpVvmCarrierConfigHelper.java
@@ -35,6 +35,7 @@
import com.android.phone.vvm.omtp.sms.StatusMessage;
import com.android.phone.vvm.omtp.utils.PhoneAccountHandleConverter;
import java.util.Arrays;
+import java.util.Collections;
import java.util.Set;
/**
@@ -280,10 +281,14 @@
if (!bundle.containsKey(KEY_VVM_DISABLED_CAPABILITIES_STRING_ARRAY)) {
return null;
}
- ArraySet<String> result = new ArraySet<String>();
- result.addAll(
- Arrays.asList(bundle.getStringArray(KEY_VVM_DISABLED_CAPABILITIES_STRING_ARRAY)));
- return result;
+ String[] disabledCapabilities =
+ bundle.getStringArray(KEY_VVM_DISABLED_CAPABILITIES_STRING_ARRAY);
+ if (disabledCapabilities != null && disabledCapabilities.length > 0) {
+ ArraySet<String> result = new ArraySet<>();
+ Collections.addAll(result, disabledCapabilities);
+ return result;
+ }
+ return null;
}
public String getClientPrefix() {