diff --git a/AndroidManifest.xml b/AndroidManifest.xml index 13851f5d7..c7929b16b 100755 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -2,7 +2,7 @@ + android:versionCode="3214" android:versionName="3.2.1" android:installLocation="auto"> diff --git a/src/org/linphone/LinphoneContact.java b/src/org/linphone/LinphoneContact.java index ddf614d94..aedc62d37 100644 --- a/src/org/linphone/LinphoneContact.java +++ b/src/org/linphone/LinphoneContact.java @@ -49,7 +49,7 @@ import android.provider.ContactsContract.CommonDataKinds; public class LinphoneContact implements Serializable, Comparable { /** - * + * */ private static final long serialVersionUID = 9015568163905205244L; @@ -61,7 +61,7 @@ public class LinphoneContact implements Serializable, Comparable changesToCommit2; private boolean hasSipAddress; private transient Bitmap photoBitmap, thumbnailBitmap; - + public LinphoneContact() { addresses = new ArrayList(); androidId = null; @@ -71,7 +71,7 @@ public class LinphoneContact implements Serializable, Comparable(); hasSipAddress = false; } - + @Override protected void finalize() throws Throwable { if (photoBitmap != null) { @@ -84,7 +84,7 @@ public class LinphoneContact implements Serializable, Comparable 0 && lastName.length() > 0) { @@ -137,25 +137,25 @@ public class LinphoneContact implements Serializable, Comparable 0) { + + public void save() { + if (isAndroidContact() && ContactsManager.getInstance().hasContactsAccess() && changesToCommit.size() > 0) { try { ContactsManager.getInstance().getContentResolver().applyBatch(ContactsContract.AUTHORITY, changesToCommit); createLinphoneTagIfNeeded(); @@ -533,7 +533,7 @@ public class LinphoneContact implements Serializable, Comparable(); } } - + createOrUpdateFriend(); } @@ -548,22 +548,22 @@ public class LinphoneContact implements Serializable, Comparable(); hasSipAddress = false; - + if (isAndroidContact()) { getContactNames(); setThumbnailUri(getContactThumbnailPictureUri()); @@ -604,7 +604,7 @@ public class LinphoneContact implements Serializable, Comparable getAddressesAndNumbersForAndroidContact() { List result = new ArrayList(); ContentResolver resolver = ContactsManager.getInstance().getContentResolver(); - + String select = ContactsContract.Data.CONTACT_ID + " =? AND (" + ContactsContract.Data.MIMETYPE + "=? OR " + ContactsContract.Data.MIMETYPE + "=?)"; String[] projection = new String[] { ContactsContract.CommonDataKinds.SipAddress.SIP_ADDRESS, ContactsContract.Data.MIMETYPE }; // PHONE_NUMBER == SIP_ADDRESS == "data1"... Cursor c = resolver.query(ContactsContract.Data.CONTENT_URI, projection, select, new String[]{ getAndroidId(), ContactsContract.CommonDataKinds.SipAddress.CONTENT_ITEM_TYPE, ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE }, null); @@ -736,7 +736,7 @@ public class LinphoneContact implements Serializable, Comparable 0) { @@ -759,32 +759,32 @@ public class LinphoneContact implements Serializable, Comparable batch = new ArrayList(); - + batch.add(ContentProviderOperation.newInsert(ContactsContract.RawContacts.CONTENT_URI) .withValue(ContactsContract.RawContacts.ACCOUNT_TYPE, ContactsManager.getInstance().getString(R.string.sync_account_type)) .withValue(ContactsContract.RawContacts.ACCOUNT_NAME, ContactsManager.getInstance().getString(R.string.sync_account_name)) @@ -824,13 +824,13 @@ public class LinphoneContact implements Serializable, Comparable 0) { for(ContentProviderOperation cpo : changesToCommit2) { batch.add(cpo); } } - + try { ContactsManager.getInstance().getContentResolver().applyBatch(ContactsContract.AUTHORITY, batch); androidTagId = findLinphoneRawContactId(); diff --git a/submodules/linphone b/submodules/linphone index 1b8f370bc..a87a9ecd4 160000 --- a/submodules/linphone +++ b/submodules/linphone @@ -1 +1 @@ -Subproject commit 1b8f370bc785ef64eb23e1cb45f509c9b98aab85 +Subproject commit a87a9ecd454616d04baa9e04e9e1ffa9ff36c375