Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6c9a82a9 authored by Marcus Hagerott's avatar Marcus Hagerott Committed by Automerger Merge Worker
Browse files

Merge "Fix NullPointerException to get sim accounts" am: 8b70a6bf am:...

Merge "Fix NullPointerException to get sim accounts" am: 8b70a6bf am: 78522e89 am: f85eb899 am: 9b279fbc

Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/2089525



Change-Id: I1b5cd50d85eb27cc464f62350469b3e7de74d076
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents 2cd0df34 9b279fbc
Loading
Loading
Loading
Loading
+14 −4
Original line number Diff line number Diff line
@@ -8434,7 +8434,7 @@ public final class ContactsContract {
            extras.putString(KEY_ACCOUNT_NAME, accountName);
            extras.putString(KEY_ACCOUNT_TYPE, accountType);

            contentResolver.call(ContactsContract.AUTHORITY_URI,
            nullSafeCall(contentResolver, ContactsContract.AUTHORITY_URI,
                    ContactsContract.SimContacts.ADD_SIM_ACCOUNT_METHOD,
                    null, extras);
        }
@@ -8457,7 +8457,7 @@ public final class ContactsContract {
            Bundle extras = new Bundle();
            extras.putInt(KEY_SIM_SLOT_INDEX, simSlotIndex);

            contentResolver.call(ContactsContract.AUTHORITY_URI,
            nullSafeCall(contentResolver, ContactsContract.AUTHORITY_URI,
                    ContactsContract.SimContacts.REMOVE_SIM_ACCOUNT_METHOD,
                    null, extras);
        }
@@ -8469,7 +8469,7 @@ public final class ContactsContract {
         */
        public static @NonNull List<SimAccount> getSimAccounts(
                @NonNull ContentResolver contentResolver) {
            Bundle response = contentResolver.call(ContactsContract.AUTHORITY_URI,
            Bundle response = nullSafeCall(contentResolver, ContactsContract.AUTHORITY_URI,
                    ContactsContract.SimContacts.QUERY_SIM_ACCOUNTS_METHOD,
                    null, null);
            List<SimAccount> result = response.getParcelableArrayList(KEY_SIM_ACCOUNTS, android.provider.ContactsContract.SimAccount.class);
@@ -9088,7 +9088,8 @@ public final class ContactsContract {
         * @param contactId the id of the contact to undemote.
         */
        public static void undemote(ContentResolver contentResolver, long contactId) {
            contentResolver.call(ContactsContract.AUTHORITY_URI, PinnedPositions.UNDEMOTE_METHOD,
            nullSafeCall(contentResolver, ContactsContract.AUTHORITY_URI,
                    PinnedPositions.UNDEMOTE_METHOD,
                    String.valueOf(contactId), null);
        }

@@ -10300,4 +10301,13 @@ public final class ContactsContract {
        public static final String CONTENT_ITEM_TYPE =
                "vnd.android.cursor.item/contact_metadata_sync_state";
    }

    private static Bundle nullSafeCall(@NonNull ContentResolver resolver, @NonNull Uri uri,
            @NonNull String method, @Nullable String arg, @Nullable Bundle extras) {
        try (ContentProviderClient client = resolver.acquireContentProviderClient(uri)) {
            return client.call(method, arg, extras);
        } catch (RemoteException e) {
            throw e.rethrowAsRuntimeException();
        }
    }
}