Added logs

This commit is contained in:
Sylvain Berfini 2018-12-06 22:45:52 +01:00
parent 573bf2366a
commit e12c82cd20
2 changed files with 86 additions and 37 deletions

View file

@ -1405,9 +1405,16 @@ public class LinphoneActivity extends LinphoneGenericActivity
getPackageManager() getPackageManager()
.checkPermission(Manifest.permission.READ_CONTACTS, getPackageName()); .checkPermission(Manifest.permission.READ_CONTACTS, getPackageName());
Log.i( Log.i(
"[Permission] Contacts permission is " "[Permission] Contacts read permission is "
+ (contacts == PackageManager.PERMISSION_GRANTED ? "granted" : "denied")); + (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 = int readPhone =
getPackageManager() getPackageManager()
.checkPermission(Manifest.permission.READ_PHONE_STATE, getPackageName()); .checkPermission(Manifest.permission.READ_PHONE_STATE, getPackageName());
@ -1441,12 +1448,21 @@ public class LinphoneActivity extends LinphoneGenericActivity
permissionsList.add(Manifest.permission.READ_PHONE_STATE); 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 (contacts != PackageManager.PERMISSION_GRANTED) {
if (LinphonePreferences.instance() if (LinphonePreferences.instance()
.firstTimeAskingForPermission(Manifest.permission.READ_CONTACTS) .firstTimeAskingForPermission(Manifest.permission.READ_CONTACTS)
|| ActivityCompat.shouldShowRequestPermissionRationale( || ActivityCompat.shouldShowRequestPermissionRationale(
this, Manifest.permission.READ_CONTACTS)) { this, Manifest.permission.READ_CONTACTS)) {
Log.i("[Permission] Asking for mContacts"); Log.i("[Permission] Asking for read contact");
permissionsList.add(Manifest.permission.READ_CONTACTS); permissionsList.add(Manifest.permission.READ_CONTACTS);
} }
} else { } else {

View file

@ -20,6 +20,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/ */
import android.content.ContentProviderOperation; import android.content.ContentProviderOperation;
import android.content.ContentProviderResult;
import android.content.ContentResolver; import android.content.ContentResolver;
import android.content.ContentUris; import android.content.ContentUris;
import android.content.ContentValues; import android.content.ContentValues;
@ -82,20 +83,12 @@ public class LinphoneContact implements Serializable, Comparable<LinphoneContact
} }
private void createAndroidContact() { private void createAndroidContact() {
addChangesToCommit(
ContentProviderOperation.newInsert(ContactsContract.RawContacts.CONTENT_URI)
.withValue(ContactsContract.RawContacts.ACCOUNT_TYPE, null)
.withValue(ContactsContract.RawContacts.ACCOUNT_NAME, null)
.withValue(
ContactsContract.RawContacts.AGGREGATION_MODE,
ContactsContract.RawContacts.AGGREGATION_MODE_DEFAULT)
.build());
mAndroidId = "0"; mAndroidId = "0";
if (LinphoneManager.getInstance() if (LinphoneManager.getInstance()
.getContext() .getContext()
.getResources() .getResources()
.getBoolean(R.bool.use_linphone_tag)) { .getBoolean(R.bool.use_linphone_tag)) {
mAndroidTagId = "0"; Log.i("[Contact] Creating contact using linphone account type");
addChangesToCommit( addChangesToCommit(
ContentProviderOperation.newInsert(ContactsContract.RawContacts.CONTENT_URI) ContentProviderOperation.newInsert(ContactsContract.RawContacts.CONTENT_URI)
.withValue( .withValue(
@ -133,6 +126,16 @@ public class LinphoneContact implements Serializable, Comparable<LinphoneContact
.withValueBackReference( .withValueBackReference(
ContactsContract.AggregationExceptions.RAW_CONTACT_ID2, 0) ContactsContract.AggregationExceptions.RAW_CONTACT_ID2, 0)
.build()); .build());
} else {
Log.i("[Contact] Creating contact using default account type");
addChangesToCommit(
ContentProviderOperation.newInsert(ContactsContract.RawContacts.CONTENT_URI)
.withValue(ContactsContract.RawContacts.ACCOUNT_TYPE, null)
.withValue(ContactsContract.RawContacts.ACCOUNT_NAME, null)
.withValue(
ContactsContract.RawContacts.AGGREGATION_MODE,
ContactsContract.RawContacts.AGGREGATION_MODE_DEFAULT)
.build());
} }
} }
@ -218,9 +221,18 @@ public class LinphoneContact implements Serializable, Comparable<LinphoneContact
} }
if (commitChanges) { if (commitChanges) {
if (mFirstName != null || mLastName != null) { String select =
ContactsContract.Data.CONTACT_ID
+ "=? AND "
+ ContactsContract.Data.MIMETYPE
+ "='"
+ ContactsContract.CommonDataKinds.StructuredName.CONTENT_ITEM_TYPE
+ "'";
String[] args = new String[] {getAndroidId()};
if (mFirstName != null || mLastName != null) {
if (!isAndroidContact() || "0".equals(getAndroidId())) { if (!isAndroidContact() || "0".equals(getAndroidId())) {
Log.i("[Contact] Setting given & family name to new contact");
addChangesToCommit( addChangesToCommit(
ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI) ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI)
.withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, 0) .withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, 0)
@ -228,18 +240,6 @@ public class LinphoneContact implements Serializable, Comparable<LinphoneContact
ContactsContract.Data.MIMETYPE, ContactsContract.Data.MIMETYPE,
ContactsContract.CommonDataKinds.StructuredName ContactsContract.CommonDataKinds.StructuredName
.CONTENT_ITEM_TYPE) .CONTENT_ITEM_TYPE)
.build());
addChangesToCommit(
ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI)
.withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, 0)
.withValue(
ContactsContract.Data.MIMETYPE,
ContactsContract.CommonDataKinds.StructuredName
.CONTENT_ITEM_TYPE)
.withValue(
ContactsContract.CommonDataKinds.StructuredName
.DISPLAY_NAME,
mFullName)
.withValue( .withValue(
ContactsContract.CommonDataKinds.StructuredName ContactsContract.CommonDataKinds.StructuredName
.GIVEN_NAME, .GIVEN_NAME,
@ -250,16 +250,7 @@ public class LinphoneContact implements Serializable, Comparable<LinphoneContact
ln) ln)
.build()); .build());
} else { } else {
String select = Log.i("[Contact] Setting given & family name to existing contact");
ContactsContract.Data.CONTACT_ID
+ "=? AND "
+ ContactsContract.Data.MIMETYPE
+ "='"
+ ContactsContract.CommonDataKinds.StructuredName
.CONTENT_ITEM_TYPE
+ "'";
String[] args = new String[] {getAndroidId()};
addChangesToCommit( addChangesToCommit(
ContentProviderOperation.newUpdate(ContactsContract.Data.CONTENT_URI) ContentProviderOperation.newUpdate(ContactsContract.Data.CONTENT_URI)
.withSelection(select, args) .withSelection(select, args)
@ -277,6 +268,34 @@ public class LinphoneContact implements Serializable, Comparable<LinphoneContact
ln) ln)
.build()); .build());
} }
} else {
if (!isAndroidContact() || "0".equals(getAndroidId())) {
Log.i("[Contact] Setting display name to new contact");
addChangesToCommit(
ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI)
.withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, 0)
.withValue(
ContactsContract.Data.MIMETYPE,
ContactsContract.CommonDataKinds.StructuredName
.CONTENT_ITEM_TYPE)
.withValue(
CommonDataKinds.StructuredName.DISPLAY_NAME, mFullName)
.build());
} else {
Log.i("[Contact] Setting display name to existing contact");
addChangesToCommit(
ContentProviderOperation.newUpdate(ContactsContract.Data.CONTENT_URI)
.withSelection(select, args)
.withValue(
ContactsContract.Data.MIMETYPE,
ContactsContract.CommonDataKinds.StructuredName
.CONTENT_ITEM_TYPE)
.withValue(
ContactsContract.CommonDataKinds.StructuredName
.DISPLAY_NAME,
mFullName)
.build());
}
} }
} }
} }
@ -308,6 +327,7 @@ public class LinphoneContact implements Serializable, Comparable<LinphoneContact
String[] args = new String[] {getAndroidId()}; String[] args = new String[] {getAndroidId()};
if (mOrganization != null) { if (mOrganization != null) {
Log.i("[Contact] Updating organization in existing contact");
addChangesToCommit( addChangesToCommit(
ContentProviderOperation.newUpdate(ContactsContract.Data.CONTENT_URI) ContentProviderOperation.newUpdate(ContactsContract.Data.CONTENT_URI)
.withSelection(select, args) .withSelection(select, args)
@ -320,6 +340,7 @@ public class LinphoneContact implements Serializable, Comparable<LinphoneContact
org) org)
.build()); .build());
} else { } else {
Log.i("[Contact] Setting organization in existing contact");
addChangesToCommit( addChangesToCommit(
ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI) ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI)
.withValue(ContactsContract.Data.RAW_CONTACT_ID, mAndroidRawId) .withValue(ContactsContract.Data.RAW_CONTACT_ID, mAndroidRawId)
@ -333,6 +354,7 @@ public class LinphoneContact implements Serializable, Comparable<LinphoneContact
.build()); .build());
} }
} else { } else {
Log.i("[Contact] Setting organization to new contact");
addChangesToCommit( addChangesToCommit(
ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI) ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI)
.withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, 0) .withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, 0)
@ -524,6 +546,7 @@ public class LinphoneContact implements Serializable, Comparable<LinphoneContact
.getResources() .getResources()
.getBoolean(R.bool.use_linphone_tag)) { .getBoolean(R.bool.use_linphone_tag)) {
if (mAndroidTagId != null) { if (mAndroidTagId != null) {
Log.i("[Contact] Adding linphone SIP address to existing contact");
addChangesToCommit( addChangesToCommit(
ContentProviderOperation.newInsert( ContentProviderOperation.newInsert(
ContactsContract.Data.CONTENT_URI) ContactsContract.Data.CONTENT_URI)
@ -542,6 +565,7 @@ public class LinphoneContact implements Serializable, Comparable<LinphoneContact
.withValue(ContactsContract.Data.DATA3, noa.getValue()) .withValue(ContactsContract.Data.DATA3, noa.getValue())
.build()); .build());
} else { } else {
Log.i("[Contact] Adding linphone SIP address to new contact");
addChangesToCommit( addChangesToCommit(
ContentProviderOperation.newInsert( ContentProviderOperation.newInsert(
ContactsContract.Data.CONTENT_URI) ContactsContract.Data.CONTENT_URI)
@ -562,6 +586,7 @@ public class LinphoneContact implements Serializable, Comparable<LinphoneContact
} else { } else {
ContentValues values = new ContentValues(); ContentValues values = new ContentValues();
if (noa.isSIPAddress()) { if (noa.isSIPAddress()) {
Log.i("[Contact] Adding SIP address...");
values.put( values.put(
ContactsContract.Data.MIMETYPE, ContactsContract.Data.MIMETYPE,
CommonDataKinds.SipAddress.CONTENT_ITEM_TYPE); CommonDataKinds.SipAddress.CONTENT_ITEM_TYPE);
@ -576,6 +601,7 @@ public class LinphoneContact implements Serializable, Comparable<LinphoneContact
ContactsManager.getInstance() ContactsManager.getInstance()
.getString(R.string.addressbook_label)); .getString(R.string.addressbook_label));
} else { } else {
Log.i("[Contact] Adding phone number...");
values.put( values.put(
ContactsContract.Data.MIMETYPE, ContactsContract.Data.MIMETYPE,
ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE); ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE);
@ -590,6 +616,7 @@ public class LinphoneContact implements Serializable, Comparable<LinphoneContact
.getString(R.string.addressbook_label)); .getString(R.string.addressbook_label));
} }
if (mAndroidRawId != null) { if (mAndroidRawId != null) {
Log.i("[Contact] ...to exisisting contact");
addChangesToCommit( addChangesToCommit(
ContentProviderOperation.newInsert( ContentProviderOperation.newInsert(
ContactsContract.Data.CONTENT_URI) ContactsContract.Data.CONTENT_URI)
@ -599,6 +626,7 @@ public class LinphoneContact implements Serializable, Comparable<LinphoneContact
.withValues(values) .withValues(values)
.build()); .build());
} else { } else {
Log.i("[Contact] ...to new contact");
addChangesToCommit( addChangesToCommit(
ContentProviderOperation.newInsert( ContentProviderOperation.newInsert(
ContactsContract.Data.CONTENT_URI) ContactsContract.Data.CONTENT_URI)
@ -815,9 +843,13 @@ public class LinphoneContact implements Serializable, Comparable<LinphoneContact
&& ContactsManager.getInstance().hasContactsAccess() && ContactsManager.getInstance().hasContactsAccess()
&& mChangesToCommit.size() > 0) { && mChangesToCommit.size() > 0) {
try { try {
LinphoneService.instance() ContentProviderResult[] results =
.getContentResolver() LinphoneService.instance()
.applyBatch(ContactsContract.AUTHORITY, mChangesToCommit); .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) { } catch (Exception e) {
Log.e(e); Log.e(e);
} finally { } finally {
@ -1164,6 +1196,7 @@ public class LinphoneContact implements Serializable, Comparable<LinphoneContact
.withValueBackReference( .withValueBackReference(
ContactsContract.AggregationExceptions.RAW_CONTACT_ID2, 0) ContactsContract.AggregationExceptions.RAW_CONTACT_ID2, 0)
.build()); .build());
Log.i("[Contact] Creating linphone tag");
try { try {
LinphoneService.instance() LinphoneService.instance()