Fix ArrayIndexOutOfBoundsException at RadioInfo
Bug: 365120921
Flag: EXEMPT bug fix
Test: devicetest
Change-Id: I2d5ea9661760f2b831e717036a0bf166323cdb1e
diff --git a/src/com/android/phone/settings/RadioInfo.java b/src/com/android/phone/settings/RadioInfo.java
index dcd6971..6149aa7 100644
--- a/src/com/android/phone/settings/RadioInfo.java
+++ b/src/com/android/phone/settings/RadioInfo.java
@@ -361,6 +361,7 @@
private int mPreferredNetworkTypeResult;
private int mCellInfoRefreshRateIndex;
private int mPhoneId = SubscriptionManager.INVALID_PHONE_INDEX;
+ private static final int DEFAULT_PHONE_ID = 0;
private int mSubId = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
@@ -583,7 +584,15 @@
mPhone = getPhone(SubscriptionManager.getDefaultSubscriptionId());
}
mSubId = SubscriptionManager.getDefaultSubscriptionId();
- mPhoneId = SubscriptionManager.getPhoneId(mSubId);
+ if (mPhone != null) {
+ mPhoneId = mPhone.getPhoneId();
+ } else {
+ mPhoneId = SubscriptionManager.getPhoneId(mSubId);
+ }
+ if (!SubscriptionManager.isValidPhoneId(mPhoneId)) {
+ mPhoneId = DEFAULT_PHONE_ID;
+ }
+
mTelephonyManager = getSystemService(TelephonyManager.class)
.createForSubscriptionId(mSubId);
mEuiccManager = getSystemService(EuiccManager.class);