Phone object for a subId.
getPhoneFromSubId() can return null if input subId is not active.
Use default phone when getPhoneFromSubId() is null.
Bug: 261683747
Test: Manual, Make incoming and outgoing calls.
Change-Id: Ifba00a2983e1c7d1b9c2d71b3c34364c598129b4
diff --git a/src/com/android/phone/PhoneInterfaceManager.java b/src/com/android/phone/PhoneInterfaceManager.java
index 011d041..fd5e97f 100644
--- a/src/com/android/phone/PhoneInterfaceManager.java
+++ b/src/com/android/phone/PhoneInterfaceManager.java
@@ -2468,6 +2468,20 @@
? getDefaultPhone() : getPhone(subId);
}
+ /**
+ * Get phone object associated with a subscription.
+ * Return default phone if phone object associated with subscription is null
+ * @param subId - subscriptionId
+ * @return phone object associated with a subscription or default phone if null.
+ */
+ private Phone getPhoneFromSubIdOrDefault(int subId) {
+ Phone phone = getPhoneFromSubId(subId);
+ if (phone == null) {
+ phone = getDefaultPhone();
+ }
+ return phone;
+ }
+
@Nullable
private UiccPort getUiccPortFromRequest(@NonNull MainThreadRequest request) {
Phone phone = getPhoneFromRequest(request);
@@ -11698,7 +11712,8 @@
boolean updateIfNeeded) {
enforceInteractAcrossUsersPermission("getDefaultRespondViaMessageApplication");
- Context context = getPhone(subId).getContext();
+ Context context = getPhoneFromSubIdOrDefault(subId).getContext();
+
UserHandle userHandle = null;
final long identity = Binder.clearCallingIdentity();
try {