diff --git a/app/src/main/java/org/linphone/contact/ContactDataInterface.kt b/app/src/main/java/org/linphone/contact/ContactDataInterface.kt index 1aa9ab221..95132a0b4 100644 --- a/app/src/main/java/org/linphone/contact/ContactDataInterface.kt +++ b/app/src/main/java/org/linphone/contact/ContactDataInterface.kt @@ -50,20 +50,12 @@ open class GenericContactData(private val sipAddress: Address) : ContactDataInte final override val displayName: MutableLiveData = MutableLiveData() final override val securityLevel: MutableLiveData = MutableLiveData() - private val contactsUpdatedListener = object : ContactsUpdatedListenerStub() { - override fun onContactUpdated(friend: Friend) { - contactLookup() - } - } - init { securityLevel.value = ChatRoomSecurityLevel.ClearText - coreContext.contactsManager.addListener(contactsUpdatedListener) contactLookup() } open fun destroy() { - coreContext.contactsManager.removeListener(contactsUpdatedListener) } private fun contactLookup() { @@ -79,24 +71,11 @@ abstract class GenericContactViewModel(private val sipAddress: Address) : Messag final override val displayName: MutableLiveData = MutableLiveData() final override val securityLevel: MutableLiveData = MutableLiveData() - private val contactsUpdatedListener = object : ContactsUpdatedListenerStub() { - override fun onContactUpdated(friend: Friend) { - contactLookup() - } - } - init { securityLevel.value = ChatRoomSecurityLevel.ClearText - coreContext.contactsManager.addListener(contactsUpdatedListener) contactLookup() } - override fun onCleared() { - coreContext.contactsManager.removeListener(contactsUpdatedListener) - - super.onCleared() - } - private fun contactLookup() { displayName.value = LinphoneUtils.getDisplayName(sipAddress) contact.value = coreContext.contactsManager.findContactByAddress(sipAddress) diff --git a/app/src/main/java/org/linphone/contact/ContactLoader.kt b/app/src/main/java/org/linphone/contact/ContactLoader.kt index ad913ff82..9baf4ec28 100644 --- a/app/src/main/java/org/linphone/contact/ContactLoader.kt +++ b/app/src/main/java/org/linphone/contact/ContactLoader.kt @@ -41,6 +41,7 @@ import org.linphone.R import org.linphone.core.Factory import org.linphone.core.Friend import org.linphone.core.GlobalState +import org.linphone.core.SubscribePolicy import org.linphone.core.tools.Log import org.linphone.utils.LinphoneUtils import org.linphone.utils.PhoneNumberUtils @@ -136,7 +137,10 @@ class ContactLoader : LoaderManager.LoaderCallbacks { friend.starred = starred friend.nativeUri = "${ContactsContract.Contacts.CONTENT_LOOKUP_URI}/$lookupKey" + + // Disable short term presence friend.isSubscribesEnabled = false + friend.incSubscribePolicy = SubscribePolicy.SPDeny } when (mime) { diff --git a/app/src/main/java/org/linphone/contact/ContactsManager.kt b/app/src/main/java/org/linphone/contact/ContactsManager.kt index 860eed764..feb478f24 100644 --- a/app/src/main/java/org/linphone/contact/ContactsManager.kt +++ b/app/src/main/java/org/linphone/contact/ContactsManager.kt @@ -283,7 +283,6 @@ class ContactsManager(private val context: Context) { val id = friend.refKey if (id != null) { storePresenceInNativeContact(friend) - notifyListeners(friend) } } }