From 76b41b693b0547f916163291805b506f28e78601 Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Wed, 8 Nov 2023 02:43:03 +0100 Subject: [PATCH] Move as much as possible code from onBindViewHolder to onCreateViewHolder --- .../notifications/NotificationsManager.kt | 2 +- .../ui/call/adapter/CallsListAdapter.kt | 30 ++++---- .../ConferenceParticipantsListAdapter.kt | 11 +-- .../adapter/ChatMessageBottomSheetAdapter.kt | 4 +- .../chat/adapter/ConversationEventAdapter.kt | 77 ++++++++++--------- .../ConversationParticipantsAdapter.kt | 4 +- .../chat/adapter/ConversationsListAdapter.kt | 30 ++++---- .../contacts/adapter/ContactsListAdapter.kt | 64 +++++++-------- .../adapter/ContactHistoryListAdapter.kt | 4 +- .../ContactsAndSuggestionsListAdapter.kt | 20 ++--- .../history/adapter/HistoryListAdapter.kt | 38 ++++----- .../meetings/adapter/MeetingsListAdapter.kt | 26 +++---- app/src/main/res/drawable/chat_dots.xml | 9 --- app/src/main/res/drawable/chat_text.xml | 9 --- ...ird_party_sip_account_warning_fragment.xml | 2 +- 15 files changed, 152 insertions(+), 178 deletions(-) delete mode 100644 app/src/main/res/drawable/chat_dots.xml delete mode 100644 app/src/main/res/drawable/chat_text.xml diff --git a/app/src/main/java/org/linphone/notifications/NotificationsManager.kt b/app/src/main/java/org/linphone/notifications/NotificationsManager.kt index 086263acb..89c8d0002 100644 --- a/app/src/main/java/org/linphone/notifications/NotificationsManager.kt +++ b/app/src/main/java/org/linphone/notifications/NotificationsManager.kt @@ -826,7 +826,7 @@ class NotificationsManager @MainThread constructor(private val context: Context) context, context.getString(R.string.notification_channel_chat_id) ) - .setSmallIcon(R.drawable.chat_text) + .setSmallIcon(R.drawable.chat_teardrop_text) .setAutoCancel(true) .setLargeIcon(largeIcon) .setColor(AppUtils.getColor(R.color.orange_main_500)) diff --git a/app/src/main/java/org/linphone/ui/call/adapter/CallsListAdapter.kt b/app/src/main/java/org/linphone/ui/call/adapter/CallsListAdapter.kt index 71917372d..8f8088ff4 100644 --- a/app/src/main/java/org/linphone/ui/call/adapter/CallsListAdapter.kt +++ b/app/src/main/java/org/linphone/ui/call/adapter/CallsListAdapter.kt @@ -52,7 +52,22 @@ class CallsListAdapter(private val viewLifecycleOwner: LifecycleOwner) : parent, false ) - return ViewHolder(binding) + val viewHolder = ViewHolder(binding) + binding.apply { + lifecycleOwner = viewLifecycleOwner + + setOnClickListener { + callClickedEvent.value = Event(model!!) + } + + setOnLongClickListener { + selectedAdapterPosition = viewHolder.bindingAdapterPosition + root.isSelected = true + callLongClickedEvent.value = Event(model!!) + true + } + } + return viewHolder } override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) { @@ -72,21 +87,8 @@ class CallsListAdapter(private val viewLifecycleOwner: LifecycleOwner) : with(binding) { model = callModel - lifecycleOwner = viewLifecycleOwner - binding.root.isSelected = bindingAdapterPosition == selectedAdapterPosition - binding.setOnClickListener { - callClickedEvent.value = Event(callModel) - } - - binding.setOnLongClickListener { - selectedAdapterPosition = bindingAdapterPosition - binding.root.isSelected = true - callLongClickedEvent.value = Event(callModel) - true - } - executePendingBindings() } } diff --git a/app/src/main/java/org/linphone/ui/call/adapter/ConferenceParticipantsListAdapter.kt b/app/src/main/java/org/linphone/ui/call/adapter/ConferenceParticipantsListAdapter.kt index da330cd0c..4f8223e7b 100644 --- a/app/src/main/java/org/linphone/ui/call/adapter/ConferenceParticipantsListAdapter.kt +++ b/app/src/main/java/org/linphone/ui/call/adapter/ConferenceParticipantsListAdapter.kt @@ -33,7 +33,6 @@ import org.linphone.ui.call.model.ConferenceParticipantModel class ConferenceParticipantsListAdapter(private val viewLifecycleOwner: LifecycleOwner) : ListAdapter(ParticipantDiffCallback()) { - var selectedAdapterPosition = -1 override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder { val binding: CallConferenceParticipantListCellBinding = DataBindingUtil.inflate( @@ -42,6 +41,7 @@ class ConferenceParticipantsListAdapter(private val viewLifecycleOwner: Lifecycl parent, false ) + binding.lifecycleOwner = viewLifecycleOwner return ViewHolder(binding) } @@ -49,11 +49,6 @@ class ConferenceParticipantsListAdapter(private val viewLifecycleOwner: Lifecycl (holder as ViewHolder).bind(getItem(position)) } - fun resetSelection() { - notifyItemChanged(selectedAdapterPosition) - selectedAdapterPosition = -1 - } - inner class ViewHolder( val binding: CallConferenceParticipantListCellBinding ) : RecyclerView.ViewHolder(binding.root) { @@ -62,10 +57,6 @@ class ConferenceParticipantsListAdapter(private val viewLifecycleOwner: Lifecycl with(binding) { model = participantModel - lifecycleOwner = viewLifecycleOwner - - binding.root.isSelected = bindingAdapterPosition == selectedAdapterPosition - executePendingBindings() } } diff --git a/app/src/main/java/org/linphone/ui/main/chat/adapter/ChatMessageBottomSheetAdapter.kt b/app/src/main/java/org/linphone/ui/main/chat/adapter/ChatMessageBottomSheetAdapter.kt index b7cd3b4ce..2db37c29e 100644 --- a/app/src/main/java/org/linphone/ui/main/chat/adapter/ChatMessageBottomSheetAdapter.kt +++ b/app/src/main/java/org/linphone/ui/main/chat/adapter/ChatMessageBottomSheetAdapter.kt @@ -25,6 +25,7 @@ class ChatMessageBottomSheetAdapter( parent, false ) + binding.lifecycleOwner = viewLifecycleOwner return ViewHolder(binding) } @@ -39,9 +40,6 @@ class ChatMessageBottomSheetAdapter( fun bind(bottomSheetModel: ChatMessageBottomSheetParticipantModel) { with(binding) { model = bottomSheetModel - - lifecycleOwner = viewLifecycleOwner - executePendingBindings() } } diff --git a/app/src/main/java/org/linphone/ui/main/chat/adapter/ConversationEventAdapter.kt b/app/src/main/java/org/linphone/ui/main/chat/adapter/ConversationEventAdapter.kt index b1d2722bc..2a954070d 100644 --- a/app/src/main/java/org/linphone/ui/main/chat/adapter/ConversationEventAdapter.kt +++ b/app/src/main/java/org/linphone/ui/main/chat/adapter/ConversationEventAdapter.kt @@ -84,7 +84,25 @@ class ConversationEventAdapter : ListAdapter { @@ -84,6 +85,12 @@ class ContactsAndSuggestionsListAdapter( parent, false ) + binding.apply { + lifecycleOwner = viewLifecycleOwner + setOnClickListener { + contactClickedEvent.value = Event(model!!) + } + } SuggestionViewHolder(binding) } } @@ -103,13 +110,9 @@ class ContactsAndSuggestionsListAdapter( fun bind(contactOrSuggestionModel: ContactOrSuggestionModel) { with(binding) { model = contactOrSuggestionModel.avatarModel.value - - lifecycleOwner = viewLifecycleOwner - - binding.setOnClickListener { + setOnClickListener { contactClickedEvent.value = Event(contactOrSuggestionModel) } - executePendingBindings() } } @@ -122,13 +125,6 @@ class ContactsAndSuggestionsListAdapter( fun bind(contactOrSuggestionModel: ContactOrSuggestionModel) { with(binding) { model = contactOrSuggestionModel - - lifecycleOwner = viewLifecycleOwner - - binding.setOnClickListener { - contactClickedEvent.value = Event(contactOrSuggestionModel) - } - executePendingBindings() } } diff --git a/app/src/main/java/org/linphone/ui/main/history/adapter/HistoryListAdapter.kt b/app/src/main/java/org/linphone/ui/main/history/adapter/HistoryListAdapter.kt index cc12f3778..be00b895d 100644 --- a/app/src/main/java/org/linphone/ui/main/history/adapter/HistoryListAdapter.kt +++ b/app/src/main/java/org/linphone/ui/main/history/adapter/HistoryListAdapter.kt @@ -38,7 +38,26 @@ class HistoryListAdapter( parent, false ) - return ViewHolder(binding) + val viewHolder = ViewHolder(binding) + binding.apply { + lifecycleOwner = viewLifecycleOwner + + setOnClickListener { + callLogClickedEvent.value = Event(model!!) + } + + setOnLongClickListener { + selectedAdapterPosition = viewHolder.bindingAdapterPosition + root.isSelected = true + callLogLongClickedEvent.value = Event(model!!) + true + } + + setOnCallClickListener { + callLogCallBackClickedEvent.value = Event(model!!) + } + } + return viewHolder } override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) { @@ -58,25 +77,8 @@ class HistoryListAdapter( with(binding) { model = callLogModel - lifecycleOwner = viewLifecycleOwner - binding.root.isSelected = bindingAdapterPosition == selectedAdapterPosition - binding.setOnClickListener { - callLogClickedEvent.value = Event(callLogModel) - } - - binding.setOnLongClickListener { - selectedAdapterPosition = bindingAdapterPosition - binding.root.isSelected = true - callLogLongClickedEvent.value = Event(callLogModel) - true - } - - binding.setOnCallClickListener { - callLogCallBackClickedEvent.value = Event(callLogModel) - } - executePendingBindings() } } diff --git a/app/src/main/java/org/linphone/ui/main/meetings/adapter/MeetingsListAdapter.kt b/app/src/main/java/org/linphone/ui/main/meetings/adapter/MeetingsListAdapter.kt index 4999501af..3bc712d99 100644 --- a/app/src/main/java/org/linphone/ui/main/meetings/adapter/MeetingsListAdapter.kt +++ b/app/src/main/java/org/linphone/ui/main/meetings/adapter/MeetingsListAdapter.kt @@ -51,6 +51,19 @@ class MeetingsListAdapter( parent, false ) + binding.apply { + lifecycleOwner = viewLifecycleOwner + + setOnClickListener { + meetingClickedEvent.value = Event(model!!) + } + + setOnLongClickListener { + root.isSelected = true + meetingLongClickedEvent.value = Event(model!!) + true + } + } return ViewHolder(binding) } @@ -65,19 +78,6 @@ class MeetingsListAdapter( fun bind(meetingModel: MeetingModel) { with(binding) { model = meetingModel - - lifecycleOwner = viewLifecycleOwner - - binding.setOnClickListener { - meetingClickedEvent.value = Event(meetingModel) - } - - binding.setOnLongClickListener { - binding.root.isSelected = true - meetingLongClickedEvent.value = Event(meetingModel) - true - } - executePendingBindings() } } diff --git a/app/src/main/res/drawable/chat_dots.xml b/app/src/main/res/drawable/chat_dots.xml deleted file mode 100644 index ce65ab792..000000000 --- a/app/src/main/res/drawable/chat_dots.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - diff --git a/app/src/main/res/drawable/chat_text.xml b/app/src/main/res/drawable/chat_text.xml deleted file mode 100644 index a2adf78df..000000000 --- a/app/src/main/res/drawable/chat_text.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - diff --git a/app/src/main/res/layout/assistant_third_party_sip_account_warning_fragment.xml b/app/src/main/res/layout/assistant_third_party_sip_account_warning_fragment.xml index ed7f1177e..7f1825e5c 100644 --- a/app/src/main/res/layout/assistant_third_party_sip_account_warning_fragment.xml +++ b/app/src/main/res/layout/assistant_third_party_sip_account_warning_fragment.xml @@ -61,7 +61,7 @@ android:layout_marginEnd="30dp" android:background="@drawable/circle_light_blue_button_background" android:padding="16dp" - android:src="@drawable/chat_text" + android:src="@drawable/chat_teardrop_text" app:tint="@color/gray_main2_500" app:layout_constraintHorizontal_chainStyle="packed" app:layout_constraintStart_toStartOf="parent"