diff --git a/app/src/main/java/org/linphone/contact/ContactLoader.kt b/app/src/main/java/org/linphone/contact/ContactLoader.kt index 9b5514075..6b8b662a6 100644 --- a/app/src/main/java/org/linphone/contact/ContactLoader.kt +++ b/app/src/main/java/org/linphone/contact/ContactLoader.kt @@ -59,7 +59,8 @@ class ContactLoader : LoaderManager.LoaderCallbacks { } override fun onCreateLoader(id: Int, args: Bundle?): Loader { - Log.i("[Contacts Loader] Loader created") + val lastFetch = coreContext.contactsManager.latestContactFetch + Log.i("[Contacts Loader] Loader created, ${if (lastFetch.isEmpty()) "first fetch" else "last fetch happened at [$lastFetch]"}") coreContext.contactsManager.fetchInProgress.value = true val mimeType = ContactsContract.Data.MIMETYPE @@ -267,8 +268,11 @@ class ContactLoader : LoaderManager.LoaderCallbacks { friends.clear() Log.i("[Contacts Loader] Friends added") - fl.updateSubscriptions() - Log.i("[Contacts Loader] Subscription(s) updated") + // Only update subscriptions when default account is registered or anytime if it isn't the first contacts fetch + if (core.defaultAccount?.state == RegistrationState.Ok || coreContext.contactsManager.latestContactFetch.isNotEmpty()) { + Log.i("[Contacts Loader] Updating friend list [$fl] subscriptions") + fl.updateSubscriptions() + } coreContext.contactsManager.fetchFinished() } diff --git a/app/src/main/java/org/linphone/contact/ContactsManager.kt b/app/src/main/java/org/linphone/contact/ContactsManager.kt index 394195db6..294a2c24e 100644 --- a/app/src/main/java/org/linphone/contact/ContactsManager.kt +++ b/app/src/main/java/org/linphone/contact/ContactsManager.kt @@ -44,6 +44,7 @@ import org.linphone.core.tools.Log import org.linphone.utils.ImageUtils import org.linphone.utils.LinphoneUtils import org.linphone.utils.PermissionHelper +import org.linphone.utils.TimestampUtils interface ContactsUpdatedListener { fun onContactsUpdated() @@ -111,7 +112,7 @@ class ContactsManager(private val context: Context) { fun fetchFinished() { Log.i("[Contacts Manager] Contacts loader have finished") - latestContactFetch = System.currentTimeMillis().toString() + latestContactFetch = TimestampUtils.timeToString(System.currentTimeMillis(), false) updateLocalContacts() fetchInProgress.value = false notifyListeners()