Fixed crash in getActiveDataSubscriptionId
Fixed by adding null check. If phone switcher is not ready,
use default data sub id from settings.
Bug: 135059959
Test: Manual
Change-Id: Ib62dd6cdf0d547e6f990bbdfb00e82698dc47794
diff --git a/src/java/com/android/internal/telephony/SubscriptionController.java b/src/java/com/android/internal/telephony/SubscriptionController.java
index 799de6e..7792d38 100644
--- a/src/java/com/android/internal/telephony/SubscriptionController.java
+++ b/src/java/com/android/internal/telephony/SubscriptionController.java
@@ -3779,11 +3779,16 @@
final long token = Binder.clearCallingIdentity();
try {
- int subId = PhoneSwitcher.getInstance().getActiveDataSubId();
- if (!SubscriptionManager.isUsableSubscriptionId(subId)) {
- subId = getDefaultDataSubId();
+ PhoneSwitcher phoneSwitcher = PhoneSwitcher.getInstance();
+ if (phoneSwitcher != null) {
+ int activeDataSubId = phoneSwitcher.getActiveDataSubId();
+ if (SubscriptionManager.isUsableSubscriptionId(activeDataSubId)) {
+ return activeDataSubId;
+ }
}
- return subId;
+ // If phone switcher isn't ready, or active data sub id is not available, use default
+ // sub id from settings.
+ return getDefaultDataSubId();
} finally {
Binder.restoreCallingIdentity(token);
}