diff options
author | Tyler Gunn <tgunn@google.com> | 2022-06-04 00:21:51 +0000 |
---|---|---|
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2022-06-04 00:21:51 +0000 |
commit | d2d05083feac1f3fa2fab19479ba7fc459f6b324 (patch) | |
tree | baa56576735b98e4a6167c1c9b13018e4d3061bb | |
parent | e85250c5bf6dc2088cb1378bbd0777fb1a739e0e (diff) | |
parent | 529cd5265bd8b0c468f3fcb8f46b9756b5d3350e (diff) | |
download | ContactsProvider-d2d05083feac1f3fa2fab19479ba7fc459f6b324.tar.gz |
Merge "Add null-check for SubscriptionInfo when trying to get IccId." into tm-dev am: 529cd5265b
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/providers/ContactsProvider/+/18675640
Change-Id: Icecf6083ac83b4da54df0de732ed89fc5c09d8f5
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-rw-r--r-- | src/com/android/providers/contacts/CallLogProvider.java | 8 | ||||
-rw-r--r-- | tests/src/com/android/providers/contacts/CallLogProviderTest.java | 12 |
2 files changed, 18 insertions, 2 deletions
diff --git a/src/com/android/providers/contacts/CallLogProvider.java b/src/com/android/providers/contacts/CallLogProvider.java index b2674834..da2d0b8a 100644 --- a/src/com/android/providers/contacts/CallLogProvider.java +++ b/src/com/android/providers/contacts/CallLogProvider.java @@ -54,6 +54,7 @@ import android.provider.CallLog.Calls; import android.telecom.PhoneAccount; import android.telecom.PhoneAccountHandle; import android.telecom.TelecomManager; +import android.telephony.SubscriptionInfo; import android.telephony.SubscriptionManager; import android.telephony.TelephonyManager; import android.text.TextUtils; @@ -1349,8 +1350,11 @@ public class CallLogProvider extends ContentProvider { PhoneAccountHandle phoneAccountHandle = (PhoneAccountHandle) arg; String iccId = null; try { - iccId = mSubscriptionManager.getActiveSubscriptionInfo( - Integer.parseInt(phoneAccountHandle.getId())).getIccId(); + SubscriptionInfo info = mSubscriptionManager.getActiveSubscriptionInfo( + Integer.parseInt(phoneAccountHandle.getId())); + if (info != null) { + iccId = info.getIccId(); + } } catch (NumberFormatException nfe) { // Ignore the exception, iccId will remain null and be handled below. } diff --git a/tests/src/com/android/providers/contacts/CallLogProviderTest.java b/tests/src/com/android/providers/contacts/CallLogProviderTest.java index c7555823..a0a8483f 100644 --- a/tests/src/com/android/providers/contacts/CallLogProviderTest.java +++ b/tests/src/com/android/providers/contacts/CallLogProviderTest.java @@ -18,6 +18,8 @@ package com.android.providers.contacts; import static android.provider.CallLog.Calls.MISSED_REASON_NOT_MISSED; +import static com.android.providers.contacts.ContactsProvider2.BACKGROUND_TASK_MIGRATE_PHONE_ACCOUNT_HANDLES; + import static org.mockito.Mockito.eq; import static org.mockito.Mockito.when; @@ -736,6 +738,16 @@ public class CallLogProviderTest extends BaseContactsProvider2Test { assertEquals(10, mCallLogProvider.getLastSyncTime(/* forShadow =*/ false)); } + public void testNullSubscriptionInfo() { + PhoneAccountHandle handle = new PhoneAccountHandle(new ComponentName( + TELEPHONY_PACKAGE, TELEPHONY_CLASS), TEST_PHONE_ACCOUNT_HANDLE_SUB_ID); + when(mSubscriptionManager.getActiveSubscriptionInfo(eq( + Integer.parseInt(TEST_PHONE_ACCOUNT_HANDLE_SUB_ID)))).thenReturn(null); + + mCallLogProvider.performBackgroundTask( + BACKGROUND_TASK_MIGRATE_PHONE_ACCOUNT_HANDLES, handle); + } + private ContentValues getDefaultValues(int callType) { ContentValues values = new ContentValues(); values.put(Calls.TYPE, callType); |