From 95c02be871e5df8c4a9f0945a2cf7c38e7a4ffc4 Mon Sep 17 00:00:00 2001 From: Naveen Date: Sun, 12 Jun 2022 01:31:38 +0530 Subject: [PATCH 1/7] Minor code improvements --- .../activities/NewConversationActivity.kt | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/NewConversationActivity.kt b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/NewConversationActivity.kt index ec1e3162..17465aac 100644 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/NewConversationActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/NewConversationActivity.kt @@ -61,15 +61,14 @@ class NewConversationActivity : SimpleActivity() { } fetchContacts() - new_conversation_address.onTextChangeListener { - val searchString = it + new_conversation_address.onTextChangeListener { searchString -> val filteredContacts = ArrayList() - allContacts.forEach { - if (it.phoneNumbers.any { it.normalizedNumber.contains(searchString, true) } || - it.name.contains(searchString, true) || - it.name.contains(searchString.normalizeString(), true) || - it.name.normalizeString().contains(searchString, true)) { - filteredContacts.add(it) + allContacts.forEach { contact -> + if (contact.phoneNumbers.any { it.normalizedNumber.contains(searchString, true) } || + contact.name.contains(searchString, true) || + contact.name.contains(searchString.normalizeString(), true) || + contact.name.normalizeString().contains(searchString, true)) { + filteredContacts.add(contact) } } From d595ac8135c7ff6a0db7ea6574968045282a44c6 Mon Sep 17 00:00:00 2001 From: Naveen Date: Sun, 12 Jun 2022 02:11:14 +0530 Subject: [PATCH 2/7] Use vertical bar '|' as the address separator Sometimes, an address might contain a space character and that conflicts when space is also used as address separator --- .../smsmessenger/extensions/Context.kt | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/extensions/Context.kt b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/extensions/Context.kt index 420fb153..176d2cac 100644 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/extensions/Context.kt +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/extensions/Context.kt @@ -26,6 +26,7 @@ import android.text.TextUtils import androidx.core.app.NotificationCompat import androidx.core.app.RemoteInput import com.klinker.android.send_message.Settings +import com.klinker.android.send_message.Transaction import com.simplemobiletools.commons.extensions.* import com.simplemobiletools.commons.helpers.* import com.simplemobiletools.commons.models.PhoneNumber @@ -104,7 +105,7 @@ fun Context.getMessages(threadId: Long, getImageResolutions: Boolean, dateFrom: val thread = cursor.getLongValue(Sms.THREAD_ID) val subscriptionId = cursor.getIntValue(Sms.SUBSCRIPTION_ID) val status = cursor.getIntValue(Sms.STATUS) - val participants = senderNumber.split(" ").map { number -> + val participants = senderNumber.split(Transaction.ADDRESS_SEPARATOR).map { number -> val phoneNumber = PhoneNumber(number, 0, "", number) val participantPhoto = getNameAndPhotoFromPhoneNumber(number) SimpleContact(0, 0, participantPhoto.name, photoUri, arrayListOf(phoneNumber), ArrayList(), ArrayList()) @@ -813,7 +814,12 @@ fun Context.showMessageNotification(address: String, body: String, threadId: Lon notificationManager.notify(threadId.hashCode(), builder.build()) } -private fun Context.getMessagesStyle(notificationManager: NotificationManager, threadId: Long, sender: String, body: String): NotificationCompat.MessagingStyle { +private fun Context.getMessagesStyle( + notificationManager: NotificationManager, + threadId: Long, + sender: String, + body: String +): NotificationCompat.MessagingStyle { val oldMessages = getOldMessages(notificationManager, threadId) val messages = NotificationCompat.MessagingStyle(getString(R.string.me)) oldMessages.forEach { From 43e19c95c1114578c41cb877fd988d31475d7761 Mon Sep 17 00:00:00 2001 From: Naveen Date: Sun, 12 Jun 2022 11:55:09 +0530 Subject: [PATCH 3/7] Minor readability improvement --- .../smsmessenger/activities/ThreadActivity.kt | 21 +++++++++---------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/ThreadActivity.kt b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/ThreadActivity.kt index 2959d69d..fff98d21 100644 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/ThreadActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/ThreadActivity.kt @@ -432,8 +432,8 @@ class ThreadActivity : SimpleActivity() { thread_add_contacts.beGone() val numbers = HashSet() - participants.forEach { - it.phoneNumbers.forEach { + participants.forEach { contact -> + contact.phoneNumbers.forEach { numbers.add(it.normalizedNumber) } } @@ -465,8 +465,8 @@ class ThreadActivity : SimpleActivity() { } private fun setupAttachmentSizes() { - messages.filter { it.attachment != null }.forEach { - it.attachment!!.attachments.forEach { + messages.filter { it.attachment != null }.forEach { message -> + message.attachment!!.attachments.forEach { try { if (it.mimetype.startsWith("image/")) { val fileOptions = BitmapFactory.Options() @@ -527,8 +527,8 @@ class ThreadActivity : SimpleActivity() { } val numbers = ArrayList() - participants.forEach { - it.phoneNumbers.forEach { + participants.forEach { contact -> + contact.phoneNumbers.forEach { numbers.add(it.normalizedNumber) } } @@ -612,8 +612,7 @@ class ThreadActivity : SimpleActivity() { val properPrimaryColor = getProperPrimaryColor() val views = ArrayList() - participants.forEach { - val contact = it + participants.forEach { contact -> layoutInflater.inflate(R.layout.item_selected_contact, null).apply { val selectedContactBg = resources.getDrawable(R.drawable.item_selected_contact_background) (selectedContactBg as LayerDrawable).findDrawableByLayerId(R.id.selected_contact_bg).applyColorFilter(properPrimaryColor) @@ -843,8 +842,8 @@ class ThreadActivity : SimpleActivity() { msg = removeDiacriticsIfNeeded(msg) val numbers = ArrayList() - participants.forEach { - it.phoneNumbers.forEach { + participants.forEach { contact -> + contact.phoneNumbers.forEach { numbers.add(it.normalizedNumber) } } @@ -1047,7 +1046,7 @@ class ThreadActivity : SimpleActivity() { messages.filter { !it.isReceivedMessage() && it.id > lastMaxId }.forEach { latestMessage -> // subscriptionIds seem to be not filled out at sending with multiple SIM cards, so fill it manually - if (SubscriptionManager.from(this).activeSubscriptionInfoList?.size ?: 0 > 1) { + if ((SubscriptionManager.from(this).activeSubscriptionInfoList?.size ?: 0) > 1) { val SIMId = availableSIMCards.getOrNull(currentSIMCardIndex)?.subscriptionId if (SIMId != null) { updateMessageSubscriptionId(latestMessage.id, SIMId) From 76041a4354301e365eb7671c6ea1a20f44c3eea1 Mon Sep 17 00:00:00 2001 From: Tibor Kaputa Date: Thu, 16 Jun 2022 09:41:44 +0200 Subject: [PATCH 4/7] updating android-smsmms --- app/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/build.gradle b/app/build.gradle index ade8b43c..3dd8b538 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -65,7 +65,7 @@ dependencies { implementation 'com.github.SimpleMobileTools:Simple-Commons:faa6a972c2' implementation 'org.greenrobot:eventbus:3.3.1' implementation 'com.github.tibbi:IndicatorFastScroll:4524cd0b61' - implementation 'com.github.tibbi:android-smsmms:fe58a74d59' + implementation 'com.github.tibbi:android-smsmms:9162ca7456' implementation "me.leolin:ShortcutBadger:1.1.22" implementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.1.0' From aeafc7030ddbdb30a14eb57878cfff4fecc1f9c1 Mon Sep 17 00:00:00 2001 From: Naveen Date: Thu, 16 Jun 2022 19:23:59 +0530 Subject: [PATCH 5/7] Minor code improvements --- .../smsmessenger/receivers/DirectReplyReceiver.kt | 2 +- .../simplemobiletools/smsmessenger/receivers/SmsReceiver.kt | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/receivers/DirectReplyReceiver.kt b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/receivers/DirectReplyReceiver.kt index b02d72ef..8ff39ac9 100644 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/receivers/DirectReplyReceiver.kt +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/receivers/DirectReplyReceiver.kt @@ -27,7 +27,7 @@ class DirectReplyReceiver : BroadcastReceiver() { val settings = context.getSendMessageSettings() if (address != null) { val availableSIMs = SubscriptionManager.from(context).activeSubscriptionInfoList - if (availableSIMs?.size ?: 0 > 1) { + if ((availableSIMs?.size ?: 0) > 1) { val currentSIMCardIndex = context.config.getUseSIMIdAtNumber(address) val wantedId = availableSIMs.getOrNull(currentSIMCardIndex) if (wantedId != null) { diff --git a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/receivers/SmsReceiver.kt b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/receivers/SmsReceiver.kt index 3c58a135..7bdf38a6 100644 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/receivers/SmsReceiver.kt +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/receivers/SmsReceiver.kt @@ -21,6 +21,7 @@ import com.simplemobiletools.smsmessenger.R import com.simplemobiletools.smsmessenger.extensions.* import com.simplemobiletools.smsmessenger.helpers.refreshMessages import com.simplemobiletools.smsmessenger.models.Message +import kotlin.math.min class SmsReceiver : BroadcastReceiver() { override fun onReceive(context: Context, intent: Intent) { @@ -42,7 +43,7 @@ class SmsReceiver : BroadcastReceiver() { subject = it.pseudoSubject status = it.status body += it.messageBody - date = Math.min(it.timestampMillis, System.currentTimeMillis()) + date = min(it.timestampMillis, System.currentTimeMillis()) threadId = context.getThreadId(address) } From ec02864751fd9fffcad40e4259257908ab79b0bc Mon Sep 17 00:00:00 2001 From: Naveen Date: Thu, 16 Jun 2022 19:43:36 +0530 Subject: [PATCH 6/7] Use vertical bar '|' as the address separator https://github.com/tibbi/android-smsmms/pull/3 must be merged after this --- .../com/simplemobiletools/smsmessenger/extensions/Context.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/extensions/Context.kt b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/extensions/Context.kt index 176d2cac..cf6b2292 100644 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/extensions/Context.kt +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/extensions/Context.kt @@ -26,7 +26,7 @@ import android.text.TextUtils import androidx.core.app.NotificationCompat import androidx.core.app.RemoteInput import com.klinker.android.send_message.Settings -import com.klinker.android.send_message.Transaction +import com.klinker.android.send_message.Transaction.getAddressSeparator import com.simplemobiletools.commons.extensions.* import com.simplemobiletools.commons.helpers.* import com.simplemobiletools.commons.models.PhoneNumber @@ -105,7 +105,7 @@ fun Context.getMessages(threadId: Long, getImageResolutions: Boolean, dateFrom: val thread = cursor.getLongValue(Sms.THREAD_ID) val subscriptionId = cursor.getIntValue(Sms.SUBSCRIPTION_ID) val status = cursor.getIntValue(Sms.STATUS) - val participants = senderNumber.split(Transaction.ADDRESS_SEPARATOR).map { number -> + val participants = senderNumber.split(getAddressSeparator().toRegex()).map { number -> val phoneNumber = PhoneNumber(number, 0, "", number) val participantPhoto = getNameAndPhotoFromPhoneNumber(number) SimpleContact(0, 0, participantPhoto.name, photoUri, arrayListOf(phoneNumber), ArrayList(), ArrayList()) From 4fb99134faf00cbb4a38a969e0eb7276db3cfba9 Mon Sep 17 00:00:00 2001 From: Naveen Date: Thu, 16 Jun 2022 19:55:36 +0530 Subject: [PATCH 7/7] Update android-smsmms library --- app/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/build.gradle b/app/build.gradle index 3dd8b538..15bb20fa 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -65,7 +65,7 @@ dependencies { implementation 'com.github.SimpleMobileTools:Simple-Commons:faa6a972c2' implementation 'org.greenrobot:eventbus:3.3.1' implementation 'com.github.tibbi:IndicatorFastScroll:4524cd0b61' - implementation 'com.github.tibbi:android-smsmms:9162ca7456' + implementation 'com.github.tibbi:android-smsmms:a9ca153fbf' implementation "me.leolin:ShortcutBadger:1.1.22" implementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.1.0'