Skip to content

Commit a41af3c

Browse files
authored
Fixed NPE in EmailAndNameWorker.| #3040 (#3044)
1 parent 7fb161f commit a41af3c

2 files changed

Lines changed: 6 additions & 8 deletions

File tree

FlowCrypt/src/main/java/com/flowcrypt/email/jetpack/workmanager/EmailAndNameWorker.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ class EmailAndNameWorker(context: Context, params: WorkerParameters) : BaseWorke
4141

4242
for (i in emails.indices) {
4343
val email = emails[i].lowercase()
44-
val name = names[i]
44+
val name = names[i].takeIf { it.isNotEmpty() }
4545
val recipientEntity = recipientDao.getRecipientByEmailSuspend(email)
4646
if (recipientEntity != null) {
4747
if (recipientEntity.name.isNullOrEmpty()) {
@@ -60,7 +60,7 @@ class EmailAndNameWorker(context: Context, params: WorkerParameters) : BaseWorke
6060
const val EXTRA_KEY_NAMES = BuildConfig.APPLICATION_ID + ".EXTRA_KEY_NAMES"
6161
const val GROUP_UNIQUE_TAG = BuildConfig.APPLICATION_ID + ".UPDATE_EMAIL_AND_NAME"
6262

63-
fun enqueue(context: Context, emailAndNamePairs: List<Pair<String, String?>>) {
63+
fun enqueue(context: Context, emailAndNamePairs: List<Pair<String, String>>) {
6464
var i = 0
6565
val stepValue = 50
6666
while (i < emailAndNamePairs.size) {

FlowCrypt/src/main/java/com/flowcrypt/email/util/GeneralUtil.kt

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -597,7 +597,7 @@ class GeneralUtil {
597597
val isSentFolder = imapFolder?.attributes?.contains("\\Sent") != false
598598

599599
if (isSentFolder) {
600-
val emailAndNamePairs = mutableListOf<Pair<String, String?>>()
600+
val emailAndNamePairs = mutableListOf<Pair<String, String>>()
601601
for (message in messages) {
602602
emailAndNamePairs.addAll(getEmailAndNamePairs(message))
603603
}
@@ -615,9 +615,7 @@ class GeneralUtil {
615615
* This information will be retrieved from "to" and "cc" headers.
616616
*
617617
* @param msg The input [jakarta.mail.Message].
618-
* @return <tt>[List]</tt> of [Pair] objects, which contains information
619-
* about
620-
* emails and names.
618+
* @return <tt>[List]</tt> of [Pair] objects, which contains information about emails and names.
621619
* @throws MessagingException when retrieve information about recipients.
622620
*/
623621
private fun getEmailAndNamePairs(msg: Message): List<Pair<String, String>> {
@@ -627,15 +625,15 @@ class GeneralUtil {
627625
if (addressesTo != null) {
628626
for (address in addressesTo) {
629627
val internetAddress = address as InternetAddress
630-
pairs.add(Pair(internetAddress.address, internetAddress.personal))
628+
pairs.add(Pair(internetAddress.address, internetAddress.personal ?: ""))
631629
}
632630
}
633631

634632
val addressesCC = msg.getRecipients(Message.RecipientType.CC)
635633
if (addressesCC != null) {
636634
for (address in addressesCC) {
637635
val internetAddress = address as InternetAddress
638-
pairs.add(Pair(internetAddress.address, internetAddress.personal))
636+
pairs.add(Pair(internetAddress.address, internetAddress.personal ?: ""))
639637
}
640638
}
641639

0 commit comments

Comments
 (0)