diff --git a/src/com/android/settings/network/SubscriptionUtil.java b/src/com/android/settings/network/SubscriptionUtil.java index ff5de3e4d40..6dcba0a552b 100644 --- a/src/com/android/settings/network/SubscriptionUtil.java +++ b/src/com/android/settings/network/SubscriptionUtil.java @@ -338,6 +338,9 @@ public class SubscriptionUtil { @VisibleForTesting public static CharSequence getUniqueSubscriptionDisplayName( SubscriptionInfo info, Context context) { + if (info == null) { + return ""; + } return getUniqueSubscriptionDisplayName(info.getSubscriptionId(), context); } diff --git a/tests/unit/src/com/android/settings/network/SubscriptionUtilTest.java b/tests/unit/src/com/android/settings/network/SubscriptionUtilTest.java index b36675aa397..8c99b40a346 100644 --- a/tests/unit/src/com/android/settings/network/SubscriptionUtilTest.java +++ b/tests/unit/src/com/android/settings/network/SubscriptionUtilTest.java @@ -380,6 +380,26 @@ public class SubscriptionUtilTest { 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 public void isInactiveInsertedPSim_nullSubInfo_doesNotCrash() { assertThat(SubscriptionUtil.isInactiveInsertedPSim(null)).isFalse();