Do not assume default voice sub is always available
Do not assume default voice sub is always available
Bug: 140153462
Test: verified with Tycho that it is not reproducible
Change-Id: Idf85aad66b71768f3f952e3c13342867c29d0c57
diff --git a/src/com/android/ons/OpportunisticNetworkService.java b/src/com/android/ons/OpportunisticNetworkService.java
index 6db5fa8..72c0038 100644
--- a/src/com/android/ons/OpportunisticNetworkService.java
+++ b/src/com/android/ons/OpportunisticNetworkService.java
@@ -127,6 +127,11 @@
}
List<SubscriptionInfo> subscriptionInfos =
mSubscriptionManager.getActiveSubscriptionInfoList(false);
+ if (subscriptionInfos == null) {
+ return;
+ }
+
+ logDebug("handleSimStateChange: subscriptionInfos - " + subscriptionInfos);
for (SubscriptionInfo subscriptionInfo : subscriptionInfos) {
if (subscriptionInfo.getSubscriptionId() == carrierAppConfigInput.getPrimarySub()) {
return;
@@ -413,10 +418,12 @@
final long identity = Binder.clearCallingIdentity();
try {
ONSConfigInput onsConfigInput = new ONSConfigInput(availableNetworks, callbackStub);
- onsConfigInput.setPrimarySub(
- mSubscriptionManager.getDefaultVoiceSubscriptionInfo().getSubscriptionId());
- onsConfigInput.setPreferredDataSub(availableNetworks.get(0).getSubId());
- mONSConfigInputHashMap.put(CARRIER_APP_CONFIG_NAME, onsConfigInput);
+ SubscriptionInfo subscriptionInfo = mSubscriptionManager.getDefaultVoiceSubscriptionInfo();
+ if (subscriptionInfo != null) {
+ onsConfigInput.setPrimarySub(subscriptionInfo.getSubscriptionId());
+ onsConfigInput.setPreferredDataSub(availableNetworks.get(0).getSubId());
+ mONSConfigInputHashMap.put(CARRIER_APP_CONFIG_NAME, onsConfigInput);
+ }
if (mIsEnabled) {
/* if carrier is reporting availability, then it takes higher priority. */