@@ -22,9 +22,9 @@ import com.infomaniak.mail.MatomoMail.trackExternalEvent
22
22
import com.infomaniak.mail.R
23
23
import com.infomaniak.mail.databinding.FragmentNewMessageBinding
24
24
import com.infomaniak.mail.ui.alertDialogs.InformationAlertDialog
25
+ import com.infomaniak.mail.utils.ExternalUtils.ExternalData
25
26
import com.infomaniak.mail.utils.ExternalUtils.findExternalRecipientForNewMessage
26
27
import com.infomaniak.mail.utils.Utils
27
- import com.infomaniak.mail.utils.extensions.MergedContactDictionary
28
28
import dagger.hilt.android.scopes.FragmentScoped
29
29
import javax.inject.Inject
30
30
@@ -49,41 +49,30 @@ class NewMessageExternalsManager @Inject constructor() : NewMessageManager() {
49
49
50
50
fun observeExternals (arrivedFromExistingDraft : Boolean ) = with (newMessageViewModel) {
51
51
Utils .waitInitMediator(initResult, mergedContacts).observe(viewLifecycleOwner) { (_, mergedContacts) ->
52
- val externalMailFlagEnabled = currentMailbox.externalMailFlagEnabled
53
- val trustedDomains = currentMailbox.trustedDomains
54
- val shouldWarnForExternal = externalMailFlagEnabled && ! arrivedFromExistingDraft
55
- val emailDictionary = mergedContacts.second
56
- val aliases = currentMailbox.aliases
57
-
58
- updateFields(shouldWarnForExternal, emailDictionary, aliases, trustedDomains)
59
- updateBanner(shouldWarnForExternal, emailDictionary, aliases, trustedDomains)
52
+ val shouldWarnForExternal = currentMailbox.externalMailFlagEnabled && ! arrivedFromExistingDraft
53
+ val externalData = ExternalData (
54
+ emailDictionary = mergedContacts.second,
55
+ aliases = currentMailbox.aliases,
56
+ trustedDomains = currentMailbox.trustedDomains,
57
+ )
58
+
59
+ updateFields(shouldWarnForExternal, externalData)
60
+ updateBanner(shouldWarnForExternal, externalData)
60
61
}
61
62
}
62
63
63
- private fun updateFields (
64
- shouldWarnForExternal : Boolean ,
65
- emailDictionary : MergedContactDictionary ,
66
- aliases : List <String >,
67
- trustedDomains : List <String >,
68
- ) {
64
+ private fun updateFields (shouldWarnForExternal : Boolean , externalData : ExternalData ) {
69
65
with (binding) {
70
- toField.updateExternals(shouldWarnForExternal, emailDictionary, aliases, trustedDomains )
71
- ccField.updateExternals(shouldWarnForExternal, emailDictionary, aliases, trustedDomains )
72
- bccField.updateExternals(shouldWarnForExternal, emailDictionary, aliases, trustedDomains )
66
+ toField.updateExternals(shouldWarnForExternal, externalData )
67
+ ccField.updateExternals(shouldWarnForExternal, externalData )
68
+ bccField.updateExternals(shouldWarnForExternal, externalData )
73
69
}
74
70
}
75
71
76
- private fun updateBanner (
77
- shouldWarnForExternal : Boolean ,
78
- emailDictionary : MergedContactDictionary ,
79
- aliases : List <String >,
80
- trustedDomains : List <String >,
81
- ) {
72
+ private fun updateBanner (shouldWarnForExternal : Boolean , externalData : ExternalData ) {
82
73
with (newMessageViewModel) {
83
74
if (shouldWarnForExternal && ! isExternalBannerManuallyClosed) {
84
- val (externalEmail, externalQuantity) = draft.findExternalRecipientForNewMessage(
85
- aliases, emailDictionary, trustedDomains,
86
- )
75
+ val (externalEmail, externalQuantity) = draft.findExternalRecipientForNewMessage(externalData)
87
76
externalRecipientCount.value = externalEmail to externalQuantity
88
77
}
89
78
}
0 commit comments