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);
         }