Skip to content

Commit 000a30c

Browse files
refactor: Factorize use of getStartAndEndOfPlusEmail()
1 parent 1de0601 commit 000a30c

File tree

3 files changed

+11
-6
lines changed

3 files changed

+11
-6
lines changed

app/src/main/java/com/infomaniak/mail/data/cache/mailboxContent/MessageController.kt

+2-3
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ import com.infomaniak.mail.data.models.thread.Thread
2727
import com.infomaniak.mail.data.models.thread.Thread.ThreadFilter
2828
import com.infomaniak.mail.utils.AccountUtils
2929
import com.infomaniak.mail.utils.LocalStorageUtils.deleteDraftUploadDir
30+
import com.infomaniak.mail.utils.extensions.getStartAndEndOfPlusEmail
3031
import io.realm.kotlin.MutableRealm
3132
import io.realm.kotlin.Realm
3233
import io.realm.kotlin.TypedRealm
@@ -63,9 +64,7 @@ class MessageController @Inject constructor(private val mailboxContentRealm: Rea
6364
val isNotFromRealMe = "SUBQUERY(${Message::from.name}, \$recipient, " +
6465
"\$recipient.${Recipient::email.name} != '${AccountUtils.currentMailboxEmail}').@count > 0"
6566

66-
val splittedEmail = AccountUtils.currentMailboxEmail?.split("@")
67-
val start = splittedEmail?.first() + "+"
68-
val end = "@" + splittedEmail?.last()
67+
val (start, end) = AccountUtils.currentMailboxEmail.getStartAndEndOfPlusEmail()
6968
val isNotFromPlusMe = "SUBQUERY(${Message::from.name}, \$recipient," +
7069
" \$recipient.${Recipient::email.name} BEGINSWITH '${start}'" +
7170
" AND \$recipient.${Recipient::email.name} ENDSWITH '${end}'" +

app/src/main/java/com/infomaniak/mail/data/models/correspondent/Correspondent.kt

+2-3
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ import android.os.Parcelable
2222
import com.infomaniak.lib.core.utils.firstOrEmpty
2323
import com.infomaniak.mail.R
2424
import com.infomaniak.mail.utils.AccountUtils
25+
import com.infomaniak.mail.utils.extensions.getStartAndEndOfPlusEmail
2526
import io.sentry.Sentry
2627

2728
interface Correspondent : Parcelable {
@@ -36,9 +37,7 @@ interface Correspondent : Parcelable {
3637

3738
val isRealMe = userEmail == correspondentEmail
3839

39-
val splittedEmail = userEmail?.split("@")
40-
val start = splittedEmail?.first() + "+"
41-
val end = "@" + splittedEmail?.last()
40+
val (start, end) = userEmail.getStartAndEndOfPlusEmail()
4241
val isPlusMe = correspondentEmail.startsWith(start) && correspondentEmail.endsWith(end)
4342

4443
return isRealMe || isPlusMe

app/src/main/java/com/infomaniak/mail/utils/extensions/Extensions.kt

+7
Original file line numberDiff line numberDiff line change
@@ -143,6 +143,13 @@ fun String.removeLineBreaksFromHtml(): Document = jsoupParseWithLog(replace("\r"
143143

144144
fun String.htmlToText(): String = removeLineBreaksFromHtml().wholeText()
145145

146+
fun String?.getStartAndEndOfPlusEmail(): Pair<String, String> {
147+
val splittedEmail = this?.split("@")
148+
val fromStartToPlus = splittedEmail?.first() + "+"
149+
val fromArobaseToEnd = "@" + splittedEmail?.last()
150+
return fromStartToPlus to fromArobaseToEnd
151+
}
152+
146153
//region Date
147154
fun RealmInstant.toDate(): Date = Date(epochSeconds * 1_000L + nanosecondsOfSecond / 1_000L)
148155

0 commit comments

Comments
 (0)