diff --git a/app/src/main/java/org/linphone/LinphoneActivity.java b/app/src/main/java/org/linphone/LinphoneActivity.java index 476794012..ee84319ec 100644 --- a/app/src/main/java/org/linphone/LinphoneActivity.java +++ b/app/src/main/java/org/linphone/LinphoneActivity.java @@ -1405,9 +1405,16 @@ public class LinphoneActivity extends LinphoneGenericActivity getPackageManager() .checkPermission(Manifest.permission.READ_CONTACTS, getPackageName()); Log.i( - "[Permission] Contacts permission is " + "[Permission] Contacts read permission is " + (contacts == PackageManager.PERMISSION_GRANTED ? "granted" : "denied")); + int wcontacts = + getPackageManager() + .checkPermission(Manifest.permission.WRITE_CONTACTS, getPackageName()); + Log.i( + "[Permission] Contacts write permission is " + + (wcontacts == PackageManager.PERMISSION_GRANTED ? "granted" : "denied")); + int readPhone = getPackageManager() .checkPermission(Manifest.permission.READ_PHONE_STATE, getPackageName()); @@ -1441,12 +1448,21 @@ public class LinphoneActivity extends LinphoneGenericActivity permissionsList.add(Manifest.permission.READ_PHONE_STATE); } } + if (wcontacts != PackageManager.PERMISSION_GRANTED) { + if (LinphonePreferences.instance() + .firstTimeAskingForPermission(Manifest.permission.WRITE_CONTACTS) + || ActivityCompat.shouldShowRequestPermissionRationale( + this, Manifest.permission.WRITE_CONTACTS)) { + Log.i("[Permission] Asking for write contact"); + permissionsList.add(Manifest.permission.WRITE_CONTACTS); + } + } if (contacts != PackageManager.PERMISSION_GRANTED) { if (LinphonePreferences.instance() .firstTimeAskingForPermission(Manifest.permission.READ_CONTACTS) || ActivityCompat.shouldShowRequestPermissionRationale( this, Manifest.permission.READ_CONTACTS)) { - Log.i("[Permission] Asking for mContacts"); + Log.i("[Permission] Asking for read contact"); permissionsList.add(Manifest.permission.READ_CONTACTS); } } else { diff --git a/app/src/main/java/org/linphone/contacts/LinphoneContact.java b/app/src/main/java/org/linphone/contacts/LinphoneContact.java index 49f9525ed..db9d2f9d5 100644 --- a/app/src/main/java/org/linphone/contacts/LinphoneContact.java +++ b/app/src/main/java/org/linphone/contacts/LinphoneContact.java @@ -20,6 +20,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ import android.content.ContentProviderOperation; +import android.content.ContentProviderResult; import android.content.ContentResolver; import android.content.ContentUris; import android.content.ContentValues; @@ -82,20 +83,12 @@ public class LinphoneContact implements Serializable, Comparable 0) { try { - LinphoneService.instance() - .getContentResolver() - .applyBatch(ContactsContract.AUTHORITY, mChangesToCommit); + ContentProviderResult[] results = + LinphoneService.instance() + .getContentResolver() + .applyBatch(ContactsContract.AUTHORITY, mChangesToCommit); + if (results != null && results.length > 0 && results[0] != null) { + Log.i("[Contact] Contact created with URI " + results[0].uri); + } } catch (Exception e) { Log.e(e); } finally { @@ -1164,6 +1196,7 @@ public class LinphoneContact implements Serializable, Comparable