Skip to content

Commit bd50647

Browse files
committed
fix: Fix block sender functionality
1 parent bdb347c commit bd50647

3 files changed

Lines changed: 31 additions & 4 deletions

File tree

app/src/main/java/com/infomaniak/mail/ui/main/thread/actions/JunkMessagesViewModel.kt

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,12 @@ class JunkMessagesViewModel @Inject constructor(
5757
getJunkMessagesAndUsersToBlock(value)
5858
}
5959

60+
var messages: List<Message> = emptyList()
61+
set(value) {
62+
field = value
63+
getUserToBlockFromMessage(messages)
64+
}
65+
6066
private val currentMailboxFlow = mailboxController.getMailboxAsync(
6167
AccountUtils.currentUserId,
6268
AccountUtils.currentMailboxId,
@@ -75,4 +81,10 @@ class JunkMessagesViewModel @Inject constructor(
7581
junkMessages.postValue(messages)
7682
potentialBlockedUsers.postValue(potentialMessagesToBlock)
7783
}
84+
85+
private fun getUserToBlockFromMessage(messages: List<Message>) = viewModelScope.launch(defaultDispatcher) {
86+
val potentialMessagesToBlock = MessageUtils.getJunkMessagesAndMessagesToBlockUser(messages)
87+
junkMessages.postValue(messages)
88+
potentialBlockedUsers.postValue(potentialMessagesToBlock)
89+
}
7890
}

app/src/main/java/com/infomaniak/mail/ui/main/thread/actions/MessageActionsBottomSheetDialog.kt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -89,8 +89,9 @@ class MessageActionsBottomSheetDialog : MailActionsBottomSheetDialog() {
8989
return@launch
9090
}
9191

92-
// Initialization of threadsUids to populate junkMessages and potentialUsersToBlock
93-
junkMessagesViewModel.threadsUids = listOf(threadUid)
92+
// Initialization of message to populate junkMessages and potentialUsersToBlock
93+
junkMessagesViewModel.messages = listOf(message)
94+
9495
val folderRole = folderRoleUtils.getActionFolderRole(message)
9596
isFromSpam = folderRole == FolderRole.SPAM
9697

app/src/main/java/com/infomaniak/mail/utils/MessageUtils.kt

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,20 @@ object MessageUtils {
4747

4848
return JunkMessagesData(junkMessages = lastMessagesOfThreads, messagesFromUsersToBlock = messagesFromUsersToBlock)
4949
}
50-
}
5150

52-
data class JunkMessagesData(val junkMessages: List<Message>, val messagesFromUsersToBlock: Map<Recipient, Message>)
51+
fun getJunkMessagesAndMessagesToBlockUser(
52+
messages: List<Message>,
53+
): MutableMap<Recipient, Message> {
54+
val messagesFromUsersToBlock: MutableMap<Recipient, Message> = mutableMapOf()
55+
56+
messages.forEach { message ->
57+
message.from.firstOrNull()?.let { user ->
58+
if (!user.isMe() && user !in messagesFromUsersToBlock) messagesFromUsersToBlock[user] = message
59+
}
60+
}
61+
62+
return messagesFromUsersToBlock
63+
}
64+
65+
data class JunkMessagesData(val junkMessages: List<Message>, val messagesFromUsersToBlock: Map<Recipient, Message>)
66+
}

0 commit comments

Comments
 (0)