diff --git a/contacts/lib/src/main/java/org/signal/contacts/SystemContactsRepository.kt b/contacts/lib/src/main/java/org/signal/contacts/SystemContactsRepository.kt index 0a64c8e3490017f7d339f4f7de0d03d89273fe9e..94af14c4194ecc66d55456ed75da01b98a1b1470 100644 --- a/contacts/lib/src/main/java/org/signal/contacts/SystemContactsRepository.kt +++ b/contacts/lib/src/main/java/org/signal/contacts/SystemContactsRepository.kt @@ -87,15 +87,19 @@ object SystemContactsRepository { var account: Account? = if (accounts.isNotEmpty()) accounts[0] else null if (account == null) { - Log.i(TAG, "Attempting to create a new account...") - val newAccount = Account(accountDisplayName, applicationId) - - if (accountManager.addAccountExplicitly(newAccount, null, null)) { - Log.i(TAG, "Successfully created a new account.") - ContentResolver.setIsSyncable(newAccount, ContactsContract.AUTHORITY, 1) - account = newAccount - } else { - Log.w(TAG, "Failed to create a new account!") + try { + Log.i(TAG, "Attempting to create a new account...") + val newAccount = Account(accountDisplayName, applicationId) + + if (accountManager.addAccountExplicitly(newAccount, null, null)) { + Log.i(TAG, "Successfully created a new account.") + ContentResolver.setIsSyncable(newAccount, ContactsContract.AUTHORITY, 1) + account = newAccount + } else { + Log.w(TAG, "Failed to create a new account!") + } + } catch (e: SecurityException) { + Log.w(TAG, "Failed to add an account.", e) } }