From fb86cd9bcb4bba64e1a32d053655dced65d6c176 Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Mon, 15 Jul 2024 12:11:08 +0200 Subject: [PATCH] Show check mark next to selected contacts when creating a group call/conversation --- .../ConversationContactOrSuggestionModel.kt | 2 ++ .../viewmodel/AddressSelectionViewModel.kt | 10 ++++++++++ ...neric_address_picker_contact_list_cell.xml | 19 +++++++++++++++++-- ..._address_picker_conversation_list_cell.xml | 19 +++++++++++++++++-- ...ic_address_picker_suggestion_list_cell.xml | 19 +++++++++++++++++-- 5 files changed, 63 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/org/linphone/ui/main/model/ConversationContactOrSuggestionModel.kt b/app/src/main/java/org/linphone/ui/main/model/ConversationContactOrSuggestionModel.kt index 419bff3d9..02b7f9443 100644 --- a/app/src/main/java/org/linphone/ui/main/model/ConversationContactOrSuggestionModel.kt +++ b/app/src/main/java/org/linphone/ui/main/model/ConversationContactOrSuggestionModel.kt @@ -50,6 +50,8 @@ class ConversationContactOrSuggestionModel @WorkerThread constructor( val avatarModel = MutableLiveData() + val selected = MutableLiveData() + @UiThread fun onClicked() { onClicked?.invoke(address) 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 0ba5aa32e..790a27db8 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 @@ -146,6 +146,11 @@ abstract class AddressSelectionViewModel @UiThread constructor() : DefaultAccoun list.add(model) list.addAll(actual) + val found = modelsList.value.orEmpty().find { + it.address.weakEqual(model.address) + } + found?.selected?.postValue(true) + selectionCount.postValue( AppUtils.getStringWithPlural( R.plurals.selection_count_label, @@ -173,6 +178,11 @@ abstract class AddressSelectionViewModel @UiThread constructor() : DefaultAccoun model.avatarModel?.destroy() list.remove(model) + val found = modelsList.value.orEmpty().find { + it.address.weakEqual(model.address) + } + found?.selected?.postValue(false) + selectionCount.postValue( AppUtils.getStringWithPlural( R.plurals.selection_count_label, diff --git a/app/src/main/res/layout/generic_address_picker_contact_list_cell.xml b/app/src/main/res/layout/generic_address_picker_contact_list_cell.xml index 33567f776..eb1127b58 100644 --- a/app/src/main/res/layout/generic_address_picker_contact_list_cell.xml +++ b/app/src/main/res/layout/generic_address_picker_contact_list_cell.xml @@ -67,15 +67,30 @@ + + + + + +