From c051d28c95044209079e3f8a9295daa4482e2a73 Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Tue, 29 Aug 2023 18:06:49 +0200 Subject: [PATCH] Improvements --- .../linphone/ui/main/calls/adapter/CallsListAdapter.kt | 9 ++------- .../linphone/ui/main/calls/fragment/CallsListFragment.kt | 2 +- .../org/linphone/ui/main/calls/model/CallLogModel.kt | 4 +++- .../ui/main/contacts/adapter/ContactsListAdapter.kt | 4 +++- .../ui/main/contacts/model/ContactAvatarModel.kt | 2 +- 5 files changed, 10 insertions(+), 11 deletions(-) diff --git a/app/src/main/java/org/linphone/ui/main/calls/adapter/CallsListAdapter.kt b/app/src/main/java/org/linphone/ui/main/calls/adapter/CallsListAdapter.kt index 609d26fc6..2a122f70d 100644 --- a/app/src/main/java/org/linphone/ui/main/calls/adapter/CallsListAdapter.kt +++ b/app/src/main/java/org/linphone/ui/main/calls/adapter/CallsListAdapter.kt @@ -50,11 +50,6 @@ class CallsListAdapter( selectedAdapterPosition = -1 } - fun deleteSelection() { - notifyItemRemoved(selectedAdapterPosition) - selectedAdapterPosition = -1 - } - inner class ViewHolder( val binding: CallListCellBinding ) : RecyclerView.ViewHolder(binding.root) { @@ -89,11 +84,11 @@ class CallsListAdapter( private class CallLogDiffCallback : DiffUtil.ItemCallback() { override fun areItemsTheSame(oldItem: CallLogModel, newItem: CallLogModel): Boolean { - return oldItem.id == newItem.id + return oldItem.id == newItem.id && oldItem.timestamp == newItem.timestamp } override fun areContentsTheSame(oldItem: CallLogModel, newItem: CallLogModel): Boolean { - return oldItem.avatarModel.id == newItem.avatarModel.id + return oldItem.avatarModel.id == newItem.avatarModel.id && oldItem.iconResId.value == newItem.iconResId.value } } } diff --git a/app/src/main/java/org/linphone/ui/main/calls/fragment/CallsListFragment.kt b/app/src/main/java/org/linphone/ui/main/calls/fragment/CallsListFragment.kt index 7adff50bc..f89e00c47 100644 --- a/app/src/main/java/org/linphone/ui/main/calls/fragment/CallsListFragment.kt +++ b/app/src/main/java/org/linphone/ui/main/calls/fragment/CallsListFragment.kt @@ -131,7 +131,7 @@ class CallsListFragment : GenericFragment() { { // onDeleteCallLog Log.i("$TAG Deleting call log with ref key or call ID [${model.id}]") model.delete() - adapter.deleteSelection() + listViewModel.applyFilter() } ) modalBottomSheet.show(parentFragmentManager, CallsListMenuDialogFragment.TAG) diff --git a/app/src/main/java/org/linphone/ui/main/calls/model/CallLogModel.kt b/app/src/main/java/org/linphone/ui/main/calls/model/CallLogModel.kt index 63eb45596..2f978553f 100644 --- a/app/src/main/java/org/linphone/ui/main/calls/model/CallLogModel.kt +++ b/app/src/main/java/org/linphone/ui/main/calls/model/CallLogModel.kt @@ -14,6 +14,8 @@ import org.linphone.utils.TimestampUtils class CallLogModel @WorkerThread constructor(private val callLog: CallLog) { val id = callLog.callId ?: callLog.refKey + val timestamp = callLog.startDate + val address = if (callLog.dir == Dir.Outgoing) callLog.toAddress else callLog.fromAddress val displayedAddress = address.asStringUriOnly() @@ -34,7 +36,7 @@ class CallLogModel @WorkerThread constructor(private val callLog: CallLog) { init { isOutgoing.postValue(callLog.dir == Dir.Outgoing) - val timestamp = callLog.startDate + val timestamp = timestamp val displayedDate = if (TimestampUtils.isToday(timestamp)) { TimestampUtils.timeToString(timestamp) } else if (TimestampUtils.isYesterday(timestamp)) { diff --git a/app/src/main/java/org/linphone/ui/main/contacts/adapter/ContactsListAdapter.kt b/app/src/main/java/org/linphone/ui/main/contacts/adapter/ContactsListAdapter.kt index c49975e48..ec0215fec 100644 --- a/app/src/main/java/org/linphone/ui/main/contacts/adapter/ContactsListAdapter.kt +++ b/app/src/main/java/org/linphone/ui/main/contacts/adapter/ContactsListAdapter.kt @@ -10,6 +10,7 @@ import androidx.recyclerview.widget.DiffUtil import androidx.recyclerview.widget.ListAdapter import androidx.recyclerview.widget.RecyclerView import org.linphone.R +import org.linphone.core.ConsolidatedPresence import org.linphone.databinding.ContactFavouriteListCellBinding import org.linphone.databinding.ContactListCellBinding import org.linphone.ui.main.contacts.model.ContactAvatarModel @@ -128,7 +129,8 @@ class ContactsListAdapter( override fun areContentsTheSame(oldItem: ContactAvatarModel, newItem: ContactAvatarModel): Boolean { return oldItem.firstContactStartingByThatLetter.value == newItem.firstContactStartingByThatLetter.value && - oldItem.presenceStatus.value == newItem.presenceStatus.value + oldItem.presenceStatus.value == newItem.presenceStatus.value && + (newItem.presenceStatus.value == ConsolidatedPresence.Busy || newItem.presenceStatus.value == ConsolidatedPresence.Online) } } } diff --git a/app/src/main/java/org/linphone/ui/main/contacts/model/ContactAvatarModel.kt b/app/src/main/java/org/linphone/ui/main/contacts/model/ContactAvatarModel.kt index 083656ee6..511bc0c87 100644 --- a/app/src/main/java/org/linphone/ui/main/contacts/model/ContactAvatarModel.kt +++ b/app/src/main/java/org/linphone/ui/main/contacts/model/ContactAvatarModel.kt @@ -57,7 +57,7 @@ class ContactAvatarModel @WorkerThread constructor(val friend: Friend) { @WorkerThread override fun onPresenceReceived(fr: Friend) { Log.d( - "$TAG Presence received for friend [${fr.name}]: [${friend.consolidatedPresence}]" + "$TAG Presence received for friend [${fr.name}]: [${fr.consolidatedPresence}]" ) presenceStatus.postValue(fr.consolidatedPresence) }