diff --git a/app/src/main/java/org/linphone/ui/main/chat/fragment/ConversationsListFragment.kt b/app/src/main/java/org/linphone/ui/main/chat/fragment/ConversationsListFragment.kt index 86a99668a..e8db46ca3 100644 --- a/app/src/main/java/org/linphone/ui/main/chat/fragment/ConversationsListFragment.kt +++ b/app/src/main/java/org/linphone/ui/main/chat/fragment/ConversationsListFragment.kt @@ -26,7 +26,6 @@ import android.view.ViewGroup import android.view.animation.Animation import android.view.animation.AnimationUtils import androidx.annotation.UiThread -import androidx.core.view.doOnPreDraw import androidx.lifecycle.ViewModelProvider import androidx.navigation.findNavController import androidx.navigation.fragment.findNavController @@ -111,7 +110,6 @@ class ConversationsListFragment : AbstractTopBarFragment() { } override fun onViewCreated(view: View, savedInstanceState: Bundle?) { - postponeEnterTransition() super.onViewCreated(view, savedInstanceState) listViewModel = ViewModelProvider(this)[ConversationsListViewModel::class.java] @@ -184,10 +182,7 @@ class ConversationsListFragment : AbstractTopBarFragment() { listViewModel.conversations.observe(viewLifecycleOwner) { adapter.submitList(it) Log.i("$TAG Conversations list ready with [${it.size}] items") - - (view.parent as? ViewGroup)?.doOnPreDraw { - startPostponedEnterTransition() - } + listViewModel.fetchInProgress.value = false } sharedViewModel.showConversationEvent.observe(viewLifecycleOwner) { diff --git a/app/src/main/java/org/linphone/ui/main/chat/viewmodel/ConversationsListViewModel.kt b/app/src/main/java/org/linphone/ui/main/chat/viewmodel/ConversationsListViewModel.kt index ffecf599f..32daf1f3f 100644 --- a/app/src/main/java/org/linphone/ui/main/chat/viewmodel/ConversationsListViewModel.kt +++ b/app/src/main/java/org/linphone/ui/main/chat/viewmodel/ConversationsListViewModel.kt @@ -105,6 +105,8 @@ class ConversationsListViewModel @UiThread constructor() : AbstractTopBarViewMod } init { + fetchInProgress.value = true + coreContext.postOnCoreThread { core -> coreContext.contactsManager.addListener(contactsListener) core.addListener(coreListener) @@ -179,12 +181,10 @@ class ConversationsListViewModel @UiThread constructor() : AbstractTopBarViewMod if (count == 15) { conversations.postValue(list) - fetchInProgress.postValue(false) } } conversations.postValue(list) - fetchInProgress.postValue(false) } @WorkerThread diff --git a/app/src/main/java/org/linphone/ui/main/contacts/fragment/ContactsListFragment.kt b/app/src/main/java/org/linphone/ui/main/contacts/fragment/ContactsListFragment.kt index 1180909d0..9acb2eec5 100644 --- a/app/src/main/java/org/linphone/ui/main/contacts/fragment/ContactsListFragment.kt +++ b/app/src/main/java/org/linphone/ui/main/contacts/fragment/ContactsListFragment.kt @@ -31,7 +31,6 @@ import android.view.animation.AnimationUtils import android.widget.PopupWindow import androidx.annotation.UiThread import androidx.core.content.FileProvider -import androidx.core.view.doOnPreDraw import androidx.databinding.DataBindingUtil import androidx.lifecycle.ViewModelProvider import androidx.navigation.findNavController @@ -97,7 +96,6 @@ class ContactsListFragment : AbstractTopBarFragment() { } override fun onViewCreated(view: View, savedInstanceState: Bundle?) { - postponeEnterTransition() super.onViewCreated(view, savedInstanceState) listViewModel = ViewModelProvider(this)[ContactsListViewModel::class.java] @@ -128,10 +126,7 @@ class ContactsListFragment : AbstractTopBarFragment() { ) { adapter.submitList(it) Log.i("$TAG Contacts list updated with [${it.size}] items") - - (view.parent as? ViewGroup)?.doOnPreDraw { - startPostponedEnterTransition() - } + listViewModel.fetchInProgress.value = false } listViewModel.favourites.observe( diff --git a/app/src/main/java/org/linphone/ui/main/contacts/viewmodel/ContactsListViewModel.kt b/app/src/main/java/org/linphone/ui/main/contacts/viewmodel/ContactsListViewModel.kt index b03dda4e7..067f9b0d9 100644 --- a/app/src/main/java/org/linphone/ui/main/contacts/viewmodel/ContactsListViewModel.kt +++ b/app/src/main/java/org/linphone/ui/main/contacts/viewmodel/ContactsListViewModel.kt @@ -92,6 +92,7 @@ class ContactsListViewModel @UiThread constructor() : AbstractTopBarViewModel() } init { + fetchInProgress.value = true showFavourites.value = true coreContext.postOnCoreThread { core -> @@ -259,7 +260,6 @@ class ContactsListViewModel @UiThread constructor() : AbstractTopBarViewModel() if (firstLoad && count == 20) { contactsList.postValue(list) - fetchInProgress.postValue(false) } } @@ -273,7 +273,6 @@ class ContactsListViewModel @UiThread constructor() : AbstractTopBarViewModel() favourites.postValue(favouritesList) contactsList.postValue(list) - fetchInProgress.postValue(false) Log.i("$TAG Processed [${results.size}] results") firstLoad = false diff --git a/app/src/main/java/org/linphone/ui/main/history/fragment/HistoryListFragment.kt b/app/src/main/java/org/linphone/ui/main/history/fragment/HistoryListFragment.kt index dd5ea5b60..4d84fc53c 100644 --- a/app/src/main/java/org/linphone/ui/main/history/fragment/HistoryListFragment.kt +++ b/app/src/main/java/org/linphone/ui/main/history/fragment/HistoryListFragment.kt @@ -31,7 +31,6 @@ import android.view.animation.Animation import android.view.animation.AnimationUtils import android.widget.PopupWindow import androidx.annotation.UiThread -import androidx.core.view.doOnPreDraw import androidx.databinding.DataBindingUtil import androidx.lifecycle.ViewModelProvider import androidx.navigation.findNavController @@ -98,7 +97,6 @@ class HistoryListFragment : AbstractTopBarFragment() { } override fun onViewCreated(view: View, savedInstanceState: Bundle?) { - postponeEnterTransition() super.onViewCreated(view, savedInstanceState) listViewModel = ViewModelProvider(this)[HistoryListViewModel::class.java] @@ -194,10 +192,7 @@ class HistoryListFragment : AbstractTopBarFragment() { listViewModel.callLogs.observe(viewLifecycleOwner) { adapter.submitList(it) Log.i("$TAG Call logs ready with [${it.size}] items") - - (view.parent as? ViewGroup)?.doOnPreDraw { - startPostponedEnterTransition() - } + listViewModel.fetchInProgress.value = false } listViewModel.historyDeletedEvent.observe(viewLifecycleOwner) { diff --git a/app/src/main/java/org/linphone/ui/main/history/viewmodel/HistoryListViewModel.kt b/app/src/main/java/org/linphone/ui/main/history/viewmodel/HistoryListViewModel.kt index ed29f5b3b..fcf90e0d3 100644 --- a/app/src/main/java/org/linphone/ui/main/history/viewmodel/HistoryListViewModel.kt +++ b/app/src/main/java/org/linphone/ui/main/history/viewmodel/HistoryListViewModel.kt @@ -61,6 +61,8 @@ class HistoryListViewModel @UiThread constructor() : AbstractTopBarViewModel() { } init { + fetchInProgress.value = true + coreContext.postOnCoreThread { core -> coreContext.contactsManager.addListener(contactsListener) core.addListener(coreListener) @@ -123,11 +125,9 @@ class HistoryListViewModel @UiThread constructor() : AbstractTopBarViewModel() { if (count == 20) { callLogs.postValue(list) - fetchInProgress.postValue(false) } } callLogs.postValue(list) - fetchInProgress.postValue(false) } } diff --git a/app/src/main/java/org/linphone/ui/main/meetings/fragment/MeetingsListFragment.kt b/app/src/main/java/org/linphone/ui/main/meetings/fragment/MeetingsListFragment.kt index be7800d8f..ec7257c40 100644 --- a/app/src/main/java/org/linphone/ui/main/meetings/fragment/MeetingsListFragment.kt +++ b/app/src/main/java/org/linphone/ui/main/meetings/fragment/MeetingsListFragment.kt @@ -92,7 +92,6 @@ class MeetingsListFragment : AbstractTopBarFragment() { } override fun onViewCreated(view: View, savedInstanceState: Bundle?) { - postponeEnterTransition() super.onViewCreated(view, savedInstanceState) listViewModel = ViewModelProvider(this)[MeetingsListViewModel::class.java] @@ -137,10 +136,9 @@ class MeetingsListFragment : AbstractTopBarFragment() { val newCount = it.size adapter.submitList(it) Log.i("$TAG Meetings list ready with [$newCount] items") + listViewModel.fetchInProgress.value = false (view.parent as? ViewGroup)?.doOnPreDraw { - startPostponedEnterTransition() - if (currentCount < newCount) { scrollToToday() } diff --git a/app/src/main/java/org/linphone/ui/main/meetings/viewmodel/MeetingsListViewModel.kt b/app/src/main/java/org/linphone/ui/main/meetings/viewmodel/MeetingsListViewModel.kt index c7aaeb5db..6216afeb1 100644 --- a/app/src/main/java/org/linphone/ui/main/meetings/viewmodel/MeetingsListViewModel.kt +++ b/app/src/main/java/org/linphone/ui/main/meetings/viewmodel/MeetingsListViewModel.kt @@ -49,6 +49,8 @@ class MeetingsListViewModel @UiThread constructor() : AbstractTopBarViewModel() } init { + fetchInProgress.value = true + coreContext.postOnCoreThread { core -> core.addListener(coreListener) @@ -74,6 +76,10 @@ class MeetingsListViewModel @UiThread constructor() : AbstractTopBarViewModel() @WorkerThread private fun computeMeetingsList(filter: String) { + if (meetings.value.orEmpty().isEmpty()) { + fetchInProgress.postValue(true) + } + val list = arrayListOf() var source = coreContext.core.defaultAccount?.conferenceInformationList diff --git a/app/src/main/res/layout-land/chat_list_fragment.xml b/app/src/main/res/layout-land/chat_list_fragment.xml index d9f99c5af..f429b6c84 100644 --- a/app/src/main/res/layout-land/chat_list_fragment.xml +++ b/app/src/main/res/layout-land/chat_list_fragment.xml @@ -98,6 +98,18 @@ android:layout_marginTop="@dimen/top_bar_height" android:layout_marginStart="@dimen/landscape_nav_bar_width" /> + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - -