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 e7d9fffaf..0159ae15e 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 @@ -61,6 +61,8 @@ class ContactsListViewModel val isListFiltered = MutableLiveData() + val searchInProgress = MutableLiveData() + val isDefaultAccountLinphone = MutableLiveData() val vCardTerminatedEvent: MutableLiveData>> by lazy { @@ -255,6 +257,7 @@ class ContactsListViewModel Log.i( "$TAG Asking Magic search for contacts matching filter [$filter], domain [$domain] and in sources Friends/LDAP/CardDAV" ) + searchInProgress.postValue(filter.isNotEmpty()) magicSearch.getContactsListAsync( filter, domain, @@ -324,6 +327,7 @@ class ContactsListViewModel collator.compare(model1.friend.name, model2.friend.name) } + searchInProgress.postValue(false) favourites.postValue(favouritesList) contactsList.postValue(list) diff --git a/app/src/main/java/org/linphone/ui/main/viewmodel/AddressSelectionViewModel.kt b/app/src/main/java/org/linphone/ui/main/viewmodel/AddressSelectionViewModel.kt index b4898578f..734e9b64d 100644 --- a/app/src/main/java/org/linphone/ui/main/viewmodel/AddressSelectionViewModel.kt +++ b/app/src/main/java/org/linphone/ui/main/viewmodel/AddressSelectionViewModel.kt @@ -56,6 +56,8 @@ abstract class AddressSelectionViewModel val searchFilter = MutableLiveData() + val searchInProgress = MutableLiveData() + val modelsList = MutableLiveData>() val isEmpty = MutableLiveData() @@ -238,6 +240,7 @@ abstract class AddressSelectionViewModel Log.i( "$TAG Asking Magic search for contacts matching filter [$filter], domain [$domain] and in sources [$sources]" ) + searchInProgress.postValue(filter.isNotEmpty()) magicSearch.getContactsListAsync( filter, domain, @@ -322,6 +325,8 @@ abstract class AddressSelectionViewModel list.addAll(favoritesList) list.addAll(contactsList) list.addAll(suggestionsList) + + searchInProgress.postValue(false) modelsList.postValue(list) isEmpty.postValue(list.isEmpty()) Log.i( diff --git a/app/src/main/res/layout-land/contacts_list_fragment.xml b/app/src/main/res/layout-land/contacts_list_fragment.xml index ff56cf270..9f05a9b61 100644 --- a/app/src/main/res/layout-land/contacts_list_fragment.xml +++ b/app/src/main/res/layout-land/contacts_list_fragment.xml @@ -141,7 +141,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:indeterminate="true" - android:visibility="@{viewModel.fetchInProgress ? View.VISIBLE : View.GONE}" + android:visibility="@{viewModel.fetchInProgress || viewModel.searchInProgress ? View.VISIBLE : View.GONE}" app:indicatorColor="?attr/color_main1_500" app:layout_constraintStart_toEndOf="@id/bottom_nav_bar" app:layout_constraintEnd_toEndOf="parent" diff --git a/app/src/main/res/layout/call_transfer_fragment.xml b/app/src/main/res/layout/call_transfer_fragment.xml index 4e48c82b1..d63a24017 100644 --- a/app/src/main/res/layout/call_transfer_fragment.xml +++ b/app/src/main/res/layout/call_transfer_fragment.xml @@ -202,6 +202,18 @@ app:layout_constraintTop_toBottomOf="@id/search_bar" app:layout_constraintBottom_toBottomOf="parent" /> + + + + + + + + + +