SubscriptionUtil checks that SubscriptionInfo is null before accessing.

Test: atest -c SubscriptionUtilTest
Bug: 178707680
Change-Id: I03938405929c3307460107671bbe695ee5e0f6e9
This commit is contained in:
Jeremy Goldman
2021-02-01 10:42:53 +08:00
parent ca502c24b6
commit 3dd2878437
2 changed files with 23 additions and 0 deletions

View File

@@ -338,6 +338,9 @@ public class SubscriptionUtil {
@VisibleForTesting @VisibleForTesting
public static CharSequence getUniqueSubscriptionDisplayName( public static CharSequence getUniqueSubscriptionDisplayName(
SubscriptionInfo info, Context context) { SubscriptionInfo info, Context context) {
if (info == null) {
return "";
}
return getUniqueSubscriptionDisplayName(info.getSubscriptionId(), context); return getUniqueSubscriptionDisplayName(info.getSubscriptionId(), context);
} }

View File

@@ -380,6 +380,26 @@ public class SubscriptionUtilTest {
assertEquals(CARRIER_1, name); assertEquals(CARRIER_1, name);
} }
@Test
public void getUniqueDisplayName_nullSubscriptionInfo_emptyStringReturned() {
final SubscriptionInfo info1 = mock(SubscriptionInfo.class);
when(info1.getSubscriptionId()).thenReturn(SUBID_1);
when(info1.getDisplayName()).thenReturn(CARRIER_1);
when(mSubMgr.getActiveSubscriptionInfoList()).thenReturn(
Arrays.asList(info1));
TelephonyManager sub1Telmgr = mock(TelephonyManager.class);
when(sub1Telmgr.getLine1Number()).thenReturn("1112223333");
when(mTelMgr.createForSubscriptionId(SUBID_1)).thenReturn(sub1Telmgr);
SubscriptionInfo info2 = null;
final CharSequence name =
SubscriptionUtil.getUniqueSubscriptionDisplayName(info2, mContext);
assertThat(name).isNotNull();
assertTrue(TextUtils.isEmpty(name));
}
@Test @Test
public void isInactiveInsertedPSim_nullSubInfo_doesNotCrash() { public void isInactiveInsertedPSim_nullSubInfo_doesNotCrash() {
assertThat(SubscriptionUtil.isInactiveInsertedPSim(null)).isFalse(); assertThat(SubscriptionUtil.isInactiveInsertedPSim(null)).isFalse();