diff --git a/res/values/non_localizable_custom.xml b/res/values/non_localizable_custom.xml index a84e65a8c..de0d63ee6 100644 --- a/res/values/non_localizable_custom.xml +++ b/res/values/non_localizable_custom.xml @@ -50,6 +50,7 @@ false false + true true false diff --git a/src/org/linphone/ContactsManager.java b/src/org/linphone/ContactsManager.java index fbfc99d0c..bdfb75f2f 100644 --- a/src/org/linphone/ContactsManager.java +++ b/src/org/linphone/ContactsManager.java @@ -425,9 +425,11 @@ public class ContactsManager { contact.refresh(contentResolver); //Add tag to Linphone contact if it not existed - if(!isContactHasLinphoneTag(contact,contentResolver)){ - Compatibility.createLinphoneContactTag(context,contentResolver,contact, - findRawContactID(contentResolver, String.valueOf(contact.getID()))); + if (LinphoneActivity.instance().getResources().getBoolean(R.bool.use_linphone_tag)) { + if (!isContactHasLinphoneTag(contact, contentResolver)) { + Compatibility.createLinphoneContactTag(context, contentResolver, contact, + findRawContactID(contentResolver, String.valueOf(contact.getID()))); + } } sipContactList.add(contact); @@ -441,10 +443,11 @@ public class ContactsManager { continue; //Remove linphone contact tag if the contact has no sip address - if(removeContactTagIsNeeded(contact) && isContactHasLinphoneTag(contact,contentResolver)){ - removeLinphoneContactTag(contact); + if (LinphoneActivity.instance().getResources().getBoolean(R.bool.use_linphone_tag)) { + if (removeContactTagIsNeeded(contact) && isContactHasLinphoneTag(contact, contentResolver)) { + removeLinphoneContactTag(contact); + } } - for (Contact c : sipContactList) { if (c != null && c.getID().equals(contact.getID())) { contact = c; diff --git a/src/org/linphone/EditContactFragment.java b/src/org/linphone/EditContactFragment.java index f2e23bd5c..9bd986a40 100644 --- a/src/org/linphone/EditContactFragment.java +++ b/src/org/linphone/EditContactFragment.java @@ -466,7 +466,9 @@ public class EditContactFragment extends Fragment { } else { Compatibility.deleteSipAddressFromContact(ops, oldNumberOrAddress, String.valueOf(contactID)); } - Compatibility.deleteLinphoneContactTag(ops, oldNumberOrAddress, contactsManager.findRawLinphoneContactID(String.valueOf(contactID))); + if (getResources().getBoolean(R.bool.use_linphone_tag)) { + Compatibility.deleteLinphoneContactTag(ops, oldNumberOrAddress, contactsManager.findRawLinphoneContactID(String.valueOf(contactID))); + } } else { String select = ContactsContract.Data.CONTACT_ID + "=? AND " + ContactsContract.Data.MIMETYPE + "='" + ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE + "' AND " @@ -525,7 +527,9 @@ public class EditContactFragment extends Fragment { } Compatibility.addSipAddressToContact(getActivity(), ops, newNumberOrAddress, rawContactId); - Compatibility.addLinphoneContactTag(getActivity(), ops, newNumberOrAddress, contactsManager.findRawLinphoneContactID(String.valueOf(contactID))); + if (getResources().getBoolean(R.bool.use_linphone_tag)) { + Compatibility.addLinphoneContactTag(getActivity(), ops, newNumberOrAddress, contactsManager.findRawLinphoneContactID(String.valueOf(contactID))); + } } else { ops.add(ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI) .withValue(ContactsContract.Data.RAW_CONTACT_ID, rawContactId) @@ -557,7 +561,9 @@ public class EditContactFragment extends Fragment { } } Compatibility.updateSipAddressForContact(ops, oldNumberOrAddress, newNumberOrAddress, String.valueOf(contactID)); - Compatibility.updateLinphoneContactTag(getActivity(), ops, newNumberOrAddress, oldNumberOrAddress, contactsManager.findRawLinphoneContactID(String.valueOf(contactID))); + if (getResources().getBoolean(R.bool.use_linphone_tag)) { + Compatibility.updateLinphoneContactTag(getActivity(), ops, newNumberOrAddress, oldNumberOrAddress, contactsManager.findRawLinphoneContactID(String.valueOf(contactID))); + } } else { String select = ContactsContract.Data.CONTACT_ID + "=? AND " + ContactsContract.Data.MIMETYPE + "='" + ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE + "' AND " diff --git a/src/org/linphone/LinphoneActivity.java b/src/org/linphone/LinphoneActivity.java index 271e435b7..b425f249a 100644 --- a/src/org/linphone/LinphoneActivity.java +++ b/src/org/linphone/LinphoneActivity.java @@ -149,7 +149,9 @@ public class LinphoneActivity extends FragmentActivity implements OnClickListene } } - ContactsManager.getInstance().initializeSyncAccount(getApplicationContext(), getContentResolver()); + if (getResources().getBoolean(R.bool.use_linphone_tag)) { + ContactsManager.getInstance().initializeSyncAccount(getApplicationContext(), getContentResolver()); + } if(!LinphonePreferences.instance().isContactsMigrationDone()){ ContactsManager.getInstance().migrateContacts(); @@ -613,21 +615,19 @@ public class LinphoneActivity extends FragmentActivity implements OnClickListene String displayName = contact != null ? contact.getName() : null; String pictureUri = contact != null && contact.getPhotoUri() != null ? contact.getPhotoUri().toString() : null; - if (currentFragment == FragmentsAvailable.CHATLIST || currentFragment == FragmentsAvailable.CHAT) { - if (isTablet()) { - Fragment fragment2 = getSupportFragmentManager().findFragmentById(R.id.fragmentContainer2); - if (fragment2 != null && fragment2.isVisible() && currentFragment == FragmentsAvailable.CHAT) { - ChatFragment chatFragment = (ChatFragment) fragment2; - chatFragment.changeDisplayedChat(sipUri, displayName, pictureUri); - } else { - Bundle extras = new Bundle(); - extras.putString("SipUri", sipUri); - if (lAddress.getDisplayName() != null) { - extras.putString("DisplayName", displayName); - extras.putString("PictureUri", pictureUri); - } - changeCurrentFragment(FragmentsAvailable.CHAT, extras); + if (isTablet() && (currentFragment == FragmentsAvailable.CHATLIST || currentFragment == FragmentsAvailable.CHAT)) { + Fragment fragment2 = getSupportFragmentManager().findFragmentById(R.id.fragmentContainer2); + if (fragment2 != null && fragment2.isVisible() && currentFragment == FragmentsAvailable.CHAT) { + ChatFragment chatFragment = (ChatFragment) fragment2; + chatFragment.changeDisplayedChat(sipUri, displayName, pictureUri); + } else { + Bundle extras = new Bundle(); + extras.putString("SipUri", sipUri); + if (lAddress.getDisplayName() != null) { + extras.putString("DisplayName", displayName); + extras.putString("PictureUri", pictureUri); } + changeCurrentFragment(FragmentsAvailable.CHAT, extras); } } else { Intent intent = new Intent(this, ChatActivity.class);