Show check mark next to selected contacts when creating a group call/conversation

This commit is contained in:
Sylvain Berfini 2024-07-15 12:11:08 +02:00
parent b9addcf683
commit fb86cd9bcb
5 changed files with 63 additions and 6 deletions

View file

@ -50,6 +50,8 @@ class ConversationContactOrSuggestionModel @WorkerThread constructor(
val avatarModel = MutableLiveData<ContactAvatarModel>()
val selected = MutableLiveData<Boolean>()
@UiThread
fun onClicked() {
onClicked?.invoke(address)

View file

@ -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,

View file

@ -67,15 +67,30 @@
<androidx.appcompat.widget.AppCompatTextView
style="@style/default_text_style"
android:id="@+id/name"
android:layout_width="wrap_content"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="10dp"
android:text="@{model.name, default=`John Doe`}"
android:textSize="14sp"
android:layout_marginStart="10dp"
android:maxLines="1"
android:ellipsize="end"
app:layout_constraintStart_toEndOf="@id/avatar"
app:layout_constraintEnd_toStartOf="@id/selected"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"/>
<ImageView
android:id="@+id/selected"
android:layout_width="@dimen/icon_size"
android:layout_height="@dimen/icon_size"
android:contentDescription="@null"
android:src="@drawable/check"
android:visibility="@{model.selected ? View.VISIBLE : View.GONE, default=gone}"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:tint="?attr/color_main1_500" />
<View
android:id="@+id/separator"
android:layout_width="0dp"

View file

@ -49,15 +49,30 @@
<androidx.appcompat.widget.AppCompatTextView
style="@style/default_text_style"
android:id="@+id/name"
android:layout_width="wrap_content"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="10dp"
android:text="@{model.name, default=`Friends group`}"
android:textSize="14sp"
android:layout_marginStart="10dp"
android:maxLines="1"
android:ellipsize="end"
app:layout_constraintStart_toEndOf="@id/avatar"
app:layout_constraintEnd_toStartOf="@id/selected"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"/>
<ImageView
android:id="@+id/selected"
android:layout_width="@dimen/icon_size"
android:layout_height="@dimen/icon_size"
android:contentDescription="@null"
android:src="@drawable/check"
android:visibility="@{model.selected ? View.VISIBLE : View.GONE, default=gone}"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:tint="?attr/color_main1_500" />
<View
android:id="@+id/separator"
android:layout_width="0dp"

View file

@ -37,15 +37,30 @@
<androidx.appcompat.widget.AppCompatTextView
style="@style/default_text_style"
android:id="@+id/name"
android:layout_width="wrap_content"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="10dp"
android:text="@{model.sipUri, default=`john.doe@sip.linphone.org`}"
android:textSize="14sp"
android:layout_marginStart="10dp"
android:maxLines="1"
android:ellipsize="end"
app:layout_constraintStart_toEndOf="@id/avatar"
app:layout_constraintEnd_toStartOf="@id/selected"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"/>
<ImageView
android:id="@+id/selected"
android:layout_width="@dimen/icon_size"
android:layout_height="@dimen/icon_size"
android:contentDescription="@null"
android:src="@drawable/check"
android:visibility="@{model.selected ? View.VISIBLE : View.GONE, default=gone}"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:tint="?attr/color_main1_500" />
<View
android:id="@+id/separator"
android:layout_width="0dp"