diff --git a/app/src/main/java/org/linphone/activities/main/chat/adapters/ChatMessagesListAdapter.kt b/app/src/main/java/org/linphone/activities/main/chat/adapters/ChatMessagesListAdapter.kt index 5c14bd0ba..3335f7a65 100644 --- a/app/src/main/java/org/linphone/activities/main/chat/adapters/ChatMessagesListAdapter.kt +++ b/app/src/main/java/org/linphone/activities/main/chat/adapters/ChatMessagesListAdapter.kt @@ -131,7 +131,7 @@ class ChatMessagesListAdapter( val chatMessageViewModel = ChatMessageViewModel(chatMessage, contentClickedListener) viewModel = chatMessageViewModel - binding.lifecycleOwner = viewLifecycleOwner + lifecycleOwner = viewLifecycleOwner // This is for item selection through ListTopBarFragment selectionListViewModel = selectionViewModel @@ -139,7 +139,7 @@ class ChatMessagesListAdapter( position = adapterPosition }) - binding.setClickListener { + setClickListener { if (selectionViewModel.isEditionEnabled.value == true) { selectionViewModel.onToggleSelect(adapterPosition) } diff --git a/app/src/main/java/org/linphone/activities/main/chat/adapters/ChatRoomCreationContactsAdapter.kt b/app/src/main/java/org/linphone/activities/main/chat/adapters/ChatRoomCreationContactsAdapter.kt index cb227f36c..1fc360fd2 100644 --- a/app/src/main/java/org/linphone/activities/main/chat/adapters/ChatRoomCreationContactsAdapter.kt +++ b/app/src/main/java/org/linphone/activities/main/chat/adapters/ChatRoomCreationContactsAdapter.kt @@ -77,7 +77,7 @@ class ChatRoomCreationContactsAdapter( val searchResultViewModel = ChatRoomCreationContactViewModel(searchResult) viewModel = searchResultViewModel - binding.lifecycleOwner = viewLifecycleOwner + lifecycleOwner = viewLifecycleOwner updateSecurity(searchResult, searchResultViewModel, securityEnabled) diff --git a/app/src/main/java/org/linphone/activities/main/chat/adapters/ChatRoomsListAdapter.kt b/app/src/main/java/org/linphone/activities/main/chat/adapters/ChatRoomsListAdapter.kt index f6885c1f3..dd5b03951 100644 --- a/app/src/main/java/org/linphone/activities/main/chat/adapters/ChatRoomsListAdapter.kt +++ b/app/src/main/java/org/linphone/activities/main/chat/adapters/ChatRoomsListAdapter.kt @@ -66,7 +66,7 @@ class ChatRoomsListAdapter( val chatRoomViewModel = ChatRoomViewModel(chatRoom) viewModel = chatRoomViewModel - binding.lifecycleOwner = viewLifecycleOwner + lifecycleOwner = viewLifecycleOwner // This is for item selection through ListTopBarFragment selectionListViewModel = selectionViewModel @@ -74,7 +74,7 @@ class ChatRoomsListAdapter( position = adapterPosition }) - binding.setClickListener { + setClickListener { if (selectionViewModel.isEditionEnabled.value == true) { selectionViewModel.onToggleSelect(adapterPosition) } else { @@ -83,6 +83,15 @@ class ChatRoomsListAdapter( } } + setLongClickListener { + if (selectionViewModel.isEditionEnabled.value == false) { + selectionViewModel.isEditionEnabled.value = true + // Selection will be handled by click listener + true + } + false + } + executePendingBindings() } } diff --git a/app/src/main/java/org/linphone/activities/main/chat/adapters/GroupInfoParticipantsAdapter.kt b/app/src/main/java/org/linphone/activities/main/chat/adapters/GroupInfoParticipantsAdapter.kt index ebad1ef2f..b5cb26615 100644 --- a/app/src/main/java/org/linphone/activities/main/chat/adapters/GroupInfoParticipantsAdapter.kt +++ b/app/src/main/java/org/linphone/activities/main/chat/adapters/GroupInfoParticipantsAdapter.kt @@ -69,7 +69,7 @@ class GroupInfoParticipantsAdapter( participantViewModel.showAdminControls.value = showAdmin viewModel = participantViewModel - binding.lifecycleOwner = viewLifecycleOwner + lifecycleOwner = viewLifecycleOwner setRemoveClickListener { participantRemovedEvent.value = Event(participant) diff --git a/app/src/main/java/org/linphone/activities/main/chat/adapters/ImdnAdapter.kt b/app/src/main/java/org/linphone/activities/main/chat/adapters/ImdnAdapter.kt index b07dc9c87..e5cf89bad 100644 --- a/app/src/main/java/org/linphone/activities/main/chat/adapters/ImdnAdapter.kt +++ b/app/src/main/java/org/linphone/activities/main/chat/adapters/ImdnAdapter.kt @@ -58,7 +58,7 @@ class ImdnAdapter( with(binding) { viewModel = ImdnParticipantViewModel(participantImdnState) - binding.lifecycleOwner = viewLifecycleOwner + lifecycleOwner = viewLifecycleOwner executePendingBindings() } diff --git a/app/src/main/java/org/linphone/activities/main/contact/adapters/ContactsListAdapter.kt b/app/src/main/java/org/linphone/activities/main/contact/adapters/ContactsListAdapter.kt index f0e59bd33..b13797b76 100644 --- a/app/src/main/java/org/linphone/activities/main/contact/adapters/ContactsListAdapter.kt +++ b/app/src/main/java/org/linphone/activities/main/contact/adapters/ContactsListAdapter.kt @@ -66,7 +66,7 @@ class ContactsListAdapter( val contactViewModel = ContactViewModel(contact) viewModel = contactViewModel - binding.lifecycleOwner = viewLifecycleOwner + lifecycleOwner = viewLifecycleOwner // This is for item selection through ListTopBarFragment selectionListViewModel = selectionViewModel @@ -74,7 +74,7 @@ class ContactsListAdapter( position = adapterPosition }) - binding.setClickListener { + setClickListener { if (selectionViewModel.isEditionEnabled.value == true) { selectionViewModel.onToggleSelect(adapterPosition) } else { @@ -82,6 +82,15 @@ class ContactsListAdapter( } } + setLongClickListener { + if (selectionViewModel.isEditionEnabled.value == false) { + selectionViewModel.isEditionEnabled.value = true + // Selection will be handled by click listener + true + } + false + } + executePendingBindings() } } diff --git a/app/src/main/java/org/linphone/activities/main/history/adapters/CallLogsListAdapter.kt b/app/src/main/java/org/linphone/activities/main/history/adapters/CallLogsListAdapter.kt index 17b1daeb3..a09483d2f 100644 --- a/app/src/main/java/org/linphone/activities/main/history/adapters/CallLogsListAdapter.kt +++ b/app/src/main/java/org/linphone/activities/main/history/adapters/CallLogsListAdapter.kt @@ -69,7 +69,7 @@ class CallLogsListAdapter( val callLogViewModel = CallLogViewModel(callLogGroup.lastCallLog) viewModel = callLogViewModel - binding.lifecycleOwner = viewLifecycleOwner + lifecycleOwner = viewLifecycleOwner // This is for item selection through ListTopBarFragment selectionListViewModel = selectionViewModel @@ -85,6 +85,15 @@ class CallLogsListAdapter( } } + setLongClickListener { + if (selectionViewModel.isEditionEnabled.value == false) { + selectionViewModel.isEditionEnabled.value = true + // Selection will be handled by click listener + true + } + false + } + // This listener is disabled when in edition mode setDetailsClickListener { selectedCallLogEvent.value = Event(callLogGroup) diff --git a/app/src/main/java/org/linphone/activities/main/recordings/adapters/RecordingsListAdapter.kt b/app/src/main/java/org/linphone/activities/main/recordings/adapters/RecordingsListAdapter.kt index 8583da526..ae2d7c74f 100644 --- a/app/src/main/java/org/linphone/activities/main/recordings/adapters/RecordingsListAdapter.kt +++ b/app/src/main/java/org/linphone/activities/main/recordings/adapters/RecordingsListAdapter.kt @@ -69,7 +69,7 @@ class RecordingsListAdapter( with(binding) { viewModel = recording - binding.lifecycleOwner = viewLifecycleOwner + lifecycleOwner = viewLifecycleOwner // This is for item selection through ListTopBarFragment position = adapterPosition diff --git a/app/src/main/res/layout/chat_room_list_cell.xml b/app/src/main/res/layout/chat_room_list_cell.xml index 65da43e0a..3b1e810ba 100644 --- a/app/src/main/res/layout/chat_room_list_cell.xml +++ b/app/src/main/res/layout/chat_room_list_cell.xml @@ -8,6 +8,9 @@ + @@ -20,10 +23,11 @@ + @@ -21,6 +24,7 @@ + @@ -27,6 +30,7 @@