diff --git a/app/src/main/java/org/linphone/ui/main/calls/fragment/StartCallFragment.kt b/app/src/main/java/org/linphone/ui/main/calls/fragment/StartCallFragment.kt index a6077cf5f..6b988f9d6 100644 --- a/app/src/main/java/org/linphone/ui/main/calls/fragment/StartCallFragment.kt +++ b/app/src/main/java/org/linphone/ui/main/calls/fragment/StartCallFragment.kt @@ -130,6 +130,7 @@ class StartCallFragment : GenericFragment() { viewLifecycleOwner ) { contactsAdapter.submitList(it) + viewModel.emptyContactsList.value = it.isEmpty() (view.parent as? ViewGroup)?.doOnPreDraw { startPostponedEnterTransition() @@ -138,6 +139,7 @@ class StartCallFragment : GenericFragment() { suggestionsListViewModel.suggestionsList.observe(viewLifecycleOwner) { suggestionsAdapter.submitList(it) + viewModel.emptySuggestionsList.value = it.isEmpty() } viewModel.searchFilter.observe(viewLifecycleOwner) { filter -> diff --git a/app/src/main/java/org/linphone/ui/main/calls/viewmodel/StartCallViewModel.kt b/app/src/main/java/org/linphone/ui/main/calls/viewmodel/StartCallViewModel.kt index 4405cfebb..5464085e2 100644 --- a/app/src/main/java/org/linphone/ui/main/calls/viewmodel/StartCallViewModel.kt +++ b/app/src/main/java/org/linphone/ui/main/calls/viewmodel/StartCallViewModel.kt @@ -24,4 +24,8 @@ import androidx.lifecycle.ViewModel class StartCallViewModel : ViewModel() { val searchFilter = MutableLiveData() + + val emptyContactsList = MutableLiveData() + + val emptySuggestionsList = MutableLiveData() } diff --git a/app/src/main/java/org/linphone/ui/main/calls/viewmodel/SuggestionsListViewModel.kt b/app/src/main/java/org/linphone/ui/main/calls/viewmodel/SuggestionsListViewModel.kt index 2d606bf83..1d9ad5db0 100644 --- a/app/src/main/java/org/linphone/ui/main/calls/viewmodel/SuggestionsListViewModel.kt +++ b/app/src/main/java/org/linphone/ui/main/calls/viewmodel/SuggestionsListViewModel.kt @@ -93,30 +93,24 @@ class SuggestionsListViewModel : ViewModel() { @WorkerThread fun processMagicSearchResults(results: Array) { - Log.i("$TAG Processing ${results.size} results") + Log.i("$TAG Processing [${results.size}] results") suggestionsList.value.orEmpty().forEach(ContactAvatarModel::destroy) val list = arrayListOf() for (result in results) { - val friend = result.friend + // We don't want Friends here as they would also be in contacts list + if (result.friend == null) { + val fakeFriend = createFriendFromSearchResult(result) + val model = ContactAvatarModel(fakeFriend) + model.noAlphabet.postValue(true) - val model = if (friend != null) { - ContactAvatarModel(friend) - } else { - Log.w("$TAG SearchResult [$result] has no Friend!") - val fakeFriend = - createFriendFromSearchResult(result) - ContactAvatarModel(fakeFriend) + list.add(model) } - model.noAlphabet.postValue(true) - - list.add(model) } suggestionsList.postValue(list) - - Log.i("$TAG Processed ${results.size} results") + Log.i("$TAG Processed [${results.size}] results, extracted [${list.size}] suggestions") } @UiThread 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 dfa59c442..5660848dc 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 @@ -106,7 +106,7 @@ class ContactsListViewModel : ViewModel() { @WorkerThread fun processMagicSearchResults(results: Array) { - Log.i("$TAG Processing ${results.size} results") + Log.i("$TAG Processing [${results.size}] results") contactsList.value.orEmpty().forEach(ContactAvatarModel::destroy) val list = arrayListOf() @@ -143,7 +143,7 @@ class ContactsListViewModel : ViewModel() { favourites.postValue(favouritesList) contactsList.postValue(list) - Log.i("$TAG Processed ${results.size} results") + Log.i("$TAG Processed [${results.size}] results") } @UiThread diff --git a/app/src/main/res/layout/call_start_fragment.xml b/app/src/main/res/layout/call_start_fragment.xml index 30b6f2275..2b30f3bbc 100644 --- a/app/src/main/res/layout/call_start_fragment.xml +++ b/app/src/main/res/layout/call_start_fragment.xml @@ -103,6 +103,34 @@ app:layout_constraintTop_toTopOf="@id/group_call_icon" app:layout_constraintBottom_toBottomOf="@id/group_call_icon"/> + + + + + 0dp + 75dp 280dp