Skip to content

Commit 1e04bdf

Browse files
committed
MessagesListFragment. Restored swiping functionality.| #1806
1 parent 98a6cfa commit 1e04bdf

File tree

2 files changed

+15
-5
lines changed

2 files changed

+15
-5
lines changed

FlowCrypt/src/main/java/com/flowcrypt/email/ui/activity/fragment/MessagesListFragment.kt

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -581,7 +581,7 @@ class MessagesListFragment : BaseFragment<FragmentMessagesListBinding>(),
581581
): Int {
582582
val position = viewHolder.bindingAdapterPosition
583583
return if (position != RecyclerView.NO_POSITION) {
584-
val msgEntity: MessageEntity? = null//adapter.getMsgEntity(position)
584+
val msgEntity: MessageEntity? = adapter.getMessageEntity(position)
585585
if (msgEntity?.msgState == MessageState.PENDING_ARCHIVING) {
586586
0
587587
} else
@@ -594,10 +594,10 @@ class MessagesListFragment : BaseFragment<FragmentMessagesListBinding>(),
594594
override fun onSwiped(viewHolder: RecyclerView.ViewHolder, direction: Int) {
595595
val position = viewHolder.bindingAdapterPosition
596596
if (position != RecyclerView.NO_POSITION) {
597-
val item = adapter.getItemId(position)
597+
val itemId = adapter.getMessageEntity(position)?.id ?: return
598598
currentFolder?.let {
599599
msgsViewModel.changeMsgsState(
600-
listOf(element = item),
600+
ids = listOf(itemId),
601601
localFolder = it,
602602
newMsgState = MessageState.PENDING_ARCHIVING,
603603
notifyMsgStatesListener = false
@@ -611,7 +611,12 @@ class MessagesListFragment : BaseFragment<FragmentMessagesListBinding>(),
611611
duration = Snackbar.LENGTH_LONG
612612
) {
613613
currentFolder?.let {
614-
msgsViewModel.changeMsgsState(listOf(item), it, MessageState.NONE, false)
614+
msgsViewModel.changeMsgsState(
615+
ids = listOf(itemId),
616+
localFolder = it,
617+
newMsgState = MessageState.NONE,
618+
notifyMsgStatesListener = false
619+
)
615620
//we should force archiving action because we can have other messages in the pending archiving states
616621
msgsViewModel.msgStatesLiveData.postValue(MessageState.PENDING_ARCHIVING)
617622
}
@@ -823,7 +828,7 @@ class MessagesListFragment : BaseFragment<FragmentMessagesListBinding>(),
823828

824829
private fun setupMsgsViewModel() {
825830
msgsViewModel.msgsCountLiveData.observe(viewLifecycleOwner) {
826-
if (it ?: 0 == 0) {
831+
if ((it ?: 0) == 0) {
827832
showEmptyView()
828833
} else {
829834
showContent()

FlowCrypt/src/main/java/com/flowcrypt/email/ui/adapter/MsgsPagedListAdapter.kt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import android.text.style.ForegroundColorSpan
1515
import android.view.LayoutInflater
1616
import android.view.View
1717
import android.view.ViewGroup
18+
import androidx.annotation.IntRange
1819
import androidx.core.content.ContextCompat
1920
import androidx.paging.PagingDataAdapter
2021
import androidx.recyclerview.selection.ItemDetailsLookup
@@ -60,6 +61,10 @@ class MsgsPagedListAdapter(
6061
)
6162
}
6263

64+
fun getMessageEntity(@IntRange(from = 0) position: Int): MessageEntity? {
65+
return getItem(position)
66+
}
67+
6368
/**
6469
* Prepare a [Pattern] which will be used for finding some information in the sender name.
6570
* This pattern is case insensitive.

0 commit comments

Comments
 (0)