From e5bd51ed24ebf09bea6d03beee089d5c8b3b0c71 Mon Sep 17 00:00:00 2001 From: tibbi Date: Mon, 15 Mar 2021 22:31:36 +0100 Subject: [PATCH 01/34] improve search at new conversation, ignore accents --- .../smsmessenger/activities/NewConversationActivity.kt | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) 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 88549ae2..8560a881 100644 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/NewConversationActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/NewConversationActivity.kt @@ -64,7 +64,10 @@ class NewConversationActivity : SimpleActivity() { val searchString = it val filteredContacts = ArrayList() allContacts.forEach { - if (it.phoneNumbers.any { it.contains(searchString, true) } || it.name.contains(searchString, true)) { + if (it.phoneNumbers.any { it.contains(searchString, true) } || + it.name.contains(searchString, true) || + it.name.contains(searchString.normalizeString(), true) || + it.name.normalizeString().contains(searchString, true)) { filteredContacts.add(it) } } From c73f1f2dfeab58bccdc8e779793cd9f8195d5eb0 Mon Sep 17 00:00:00 2001 From: tibbi Date: Mon, 15 Mar 2021 22:48:18 +0100 Subject: [PATCH 02/34] updating commons and gradle --- app/build.gradle | 2 +- build.gradle | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index e52f8787..6ea8e9b7 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -56,7 +56,7 @@ android { } dependencies { - implementation 'com.simplemobiletools:commons:5.33.32' + implementation 'com.simplemobiletools:commons:5.34.21' implementation 'org.greenrobot:eventbus:3.2.0' implementation 'com.klinkerapps:android-smsmms:5.2.6' implementation 'com.github.tibbi:IndicatorFastScroll:c3de1d040a' diff --git a/build.gradle b/build.gradle index 29189fd5..de0e594e 100644 --- a/build.gradle +++ b/build.gradle @@ -1,7 +1,7 @@ // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { - ext.kotlin_version = '1.4.30' + ext.kotlin_version = '1.4.31' repositories { google() jcenter() From 6c9d25d16f70fe7059121fe9efda1d85298894ec Mon Sep 17 00:00:00 2001 From: tibbi Date: Mon, 15 Mar 2021 23:10:59 +0100 Subject: [PATCH 03/34] properly handle sending reply messages through the top notification --- .../receivers/DirectReplyReceiver.kt | 17 ++++++++--------- .../receivers/SmsStatusSentReceiver.kt | 1 + .../services/HeadlessSmsSendService.kt | 11 +++++++++++ 3 files changed, 20 insertions(+), 9 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 d4148c86..02fca156 100644 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/receivers/DirectReplyReceiver.kt +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/receivers/DirectReplyReceiver.kt @@ -3,17 +3,14 @@ package com.simplemobiletools.smsmessenger.receivers import android.content.BroadcastReceiver import android.content.Context import android.content.Intent -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.notificationManager import com.simplemobiletools.commons.extensions.showErrorToast import com.simplemobiletools.commons.helpers.ensureBackgroundThread -import com.simplemobiletools.smsmessenger.R import com.simplemobiletools.smsmessenger.extensions.conversationsDB import com.simplemobiletools.smsmessenger.extensions.markThreadMessagesRead -import com.simplemobiletools.smsmessenger.helpers.NOTIFICATION_CHANNEL import com.simplemobiletools.smsmessenger.helpers.REPLY import com.simplemobiletools.smsmessenger.helpers.THREAD_ID import com.simplemobiletools.smsmessenger.helpers.THREAD_NUMBER @@ -26,22 +23,24 @@ class DirectReplyReceiver : BroadcastReceiver() { val settings = Settings() settings.useSystemSending = true + settings.deliveryReports = true val transaction = Transaction(context, settings) val message = com.klinker.android.send_message.Message(msg, address) try { + val smsSentIntent = Intent(context, SmsStatusSentReceiver::class.java) + val deliveredIntent = Intent(context, SmsStatusDeliveredReceiver::class.java) + + transaction.setExplicitBroadcastForSentSms(smsSentIntent) + transaction.setExplicitBroadcastForDeliveredSms(deliveredIntent) + transaction.sendNewMessage(message, threadId) } catch (e: Exception) { context.showErrorToast(e) } - val repliedNotification = NotificationCompat.Builder(context, NOTIFICATION_CHANNEL) - .setSmallIcon(R.drawable.ic_messenger) - .setContentText(msg) - .build() - - context.notificationManager.notify(threadId.hashCode(), repliedNotification) + context.notificationManager.cancel(threadId.hashCode()) ensureBackgroundThread { context.markThreadMessagesRead(threadId) diff --git a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/receivers/SmsStatusSentReceiver.kt b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/receivers/SmsStatusSentReceiver.kt index 0418c743..c618d354 100644 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/receivers/SmsStatusSentReceiver.kt +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/receivers/SmsStatusSentReceiver.kt @@ -41,6 +41,7 @@ class SmsStatusSentReceiver : SentReceiver() { } else { Telephony.Sms.MESSAGE_TYPE_OUTBOX } + context.updateMessageType(messageId, type) context.messagesDB.updateType(messageId, type) refreshMessages() diff --git a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/services/HeadlessSmsSendService.kt b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/services/HeadlessSmsSendService.kt index eaeba8fb..de6df798 100644 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/services/HeadlessSmsSendService.kt +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/services/HeadlessSmsSendService.kt @@ -6,6 +6,8 @@ import android.net.Uri import com.klinker.android.send_message.Settings import com.klinker.android.send_message.Transaction import com.simplemobiletools.smsmessenger.extensions.getThreadId +import com.simplemobiletools.smsmessenger.receivers.SmsStatusDeliveredReceiver +import com.simplemobiletools.smsmessenger.receivers.SmsStatusSentReceiver class HeadlessSmsSendService : Service() { override fun onBind(intent: Intent?) = null @@ -20,8 +22,17 @@ class HeadlessSmsSendService : Service() { val text = intent.getStringExtra(Intent.EXTRA_TEXT) val settings = Settings() settings.useSystemSending = true + settings.deliveryReports = true + val transaction = Transaction(this, settings) val message = com.klinker.android.send_message.Message(text, number) + + val smsSentIntent = Intent(this, SmsStatusSentReceiver::class.java) + val deliveredIntent = Intent(this, SmsStatusDeliveredReceiver::class.java) + + transaction.setExplicitBroadcastForSentSms(smsSentIntent) + transaction.setExplicitBroadcastForDeliveredSms(deliveredIntent) + transaction.sendNewMessage(message, getThreadId(number)) } catch (ignored: Exception) { } From 0e07117b3a52f7b75304a5e26c2e68c059c0a395 Mon Sep 17 00:00:00 2001 From: tibbi Date: Mon, 15 Mar 2021 23:30:56 +0100 Subject: [PATCH 04/34] adding some crashfixes --- app/build.gradle | 2 +- .../smsmessenger/activities/ThreadActivity.kt | 11 ++++++++--- .../smsmessenger/extensions/Context.kt | 8 ++++++-- 3 files changed, 15 insertions(+), 6 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 6ea8e9b7..ac5c71e2 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -56,7 +56,7 @@ android { } dependencies { - implementation 'com.simplemobiletools:commons:5.34.21' + implementation 'com.simplemobiletools:commons:5.34.22' implementation 'org.greenrobot:eventbus:3.2.0' implementation 'com.klinkerapps:android-smsmms:5.2.6' implementation 'com.github.tibbi:IndicatorFastScroll:c3de1d040a' 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 2c46ac2f..71ae7f8f 100644 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/ThreadActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/ThreadActivity.kt @@ -156,7 +156,12 @@ class ThreadActivity : SimpleActivity() { private fun setupCachedMessages(callback: () -> Unit) { ensureBackgroundThread { - messages = messagesDB.getThreadMessages(threadId).toMutableList() as ArrayList + messages = try { + messagesDB.getThreadMessages(threadId).toMutableList() as ArrayList + } catch (e: Exception) { + ArrayList() + } + setupParticipants() setupAdapter() @@ -176,9 +181,9 @@ class ThreadActivity : SimpleActivity() { private fun setupThread() { val privateCursor = getMyContactsCursor()?.loadInBackground() ensureBackgroundThread { - val cachedMessagesCode = messages.hashCode() + val cachedMessagesCode = messages.clone().hashCode() messages = getMessages(threadId) - if (messages.hashCode() == cachedMessagesCode && participants.isNotEmpty()) { + if (participants.isNotEmpty() && messages.hashCode() == cachedMessagesCode) { return@ensureBackgroundThread } 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 e7dfd13c..0bbf05cf 100644 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/extensions/Context.kt +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/extensions/Context.kt @@ -507,8 +507,12 @@ fun Context.insertNewSMS(address: String, subject: String, body: String, date: L put(Sms.SUBSCRIPTION_ID, subscriptionId) } - val newUri = contentResolver.insert(uri, contentValues) - return newUri?.lastPathSegment?.toLong() ?: 0L + return try { + val newUri = contentResolver.insert(uri, contentValues) + newUri?.lastPathSegment?.toLong() ?: 0L + } catch (e: Exception) { + 0L + } } fun Context.deleteConversation(threadId: Long) { From ab50b0b74aff221c95bdaa80d91730860306284c Mon Sep 17 00:00:00 2001 From: tibbi Date: Mon, 15 Mar 2021 23:43:42 +0100 Subject: [PATCH 05/34] adding some animations --- .../smsmessenger/activities/MainActivity.kt | 1 + .../activities/NewConversationActivity.kt | 37 +++++++++++-------- .../smsmessenger/adapters/ContactsAdapter.kt | 23 +++++++++--- app/src/main/res/layout/activity_main.xml | 1 + .../res/layout/activity_new_conversation.xml | 1 + 5 files changed, 42 insertions(+), 21 deletions(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/MainActivity.kt b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/MainActivity.kt index 6196adb6..ce923bb6 100644 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/MainActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/MainActivity.kt @@ -247,6 +247,7 @@ class MainActivity : SimpleActivity() { conversations_list.adapter = this } + conversations_list.scheduleLayoutAnimation() conversations_fastscroller.setViews(conversations_list) { val listItem = (conversations_list.adapter as? ConversationsAdapter)?.conversations?.getOrNull(it) conversations_fastscroller.updateBubbleText(listItem?.title ?: "") 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 8560a881..26445408 100644 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/NewConversationActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/NewConversationActivity.kt @@ -138,24 +138,31 @@ class NewConversationActivity : SimpleActivity() { no_contacts_placeholder.text = getString(placeholderText) } - ContactsAdapter(this, contacts, contacts_list, null) { - hideKeyboard() - val contact = it as SimpleContact - val phoneNumbers = contact.phoneNumbers - if (phoneNumbers.size > 1) { - val items = ArrayList() - phoneNumbers.forEachIndexed { index, phoneNumber -> - items.add(RadioItem(index, phoneNumber, phoneNumber)) - } + val currAdapter = contacts_list.adapter + if (currAdapter == null) { + ContactsAdapter(this, contacts, contacts_list, null) { + hideKeyboard() + val contact = it as SimpleContact + val phoneNumbers = contact.phoneNumbers + if (phoneNumbers.size > 1) { + val items = ArrayList() + phoneNumbers.forEachIndexed { index, phoneNumber -> + items.add(RadioItem(index, phoneNumber, phoneNumber)) + } - RadioGroupDialog(this, items) { - launchThreadActivity(it as String, contact.name) + RadioGroupDialog(this, items) { + launchThreadActivity(it as String, contact.name) + } + } else { + launchThreadActivity(phoneNumbers.first(), contact.name) } - } else { - launchThreadActivity(phoneNumbers.first(), contact.name) + }.apply { + contacts_list.adapter = this } - }.apply { - contacts_list.adapter = this + + contacts_list.scheduleLayoutAnimation() + } else { + (currAdapter as ContactsAdapter).updateContacts(contacts) } setupLetterFastscroller(contacts) diff --git a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/adapters/ContactsAdapter.kt b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/adapters/ContactsAdapter.kt index b6d41b29..1f48eb53 100644 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/adapters/ContactsAdapter.kt +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/adapters/ContactsAdapter.kt @@ -17,8 +17,10 @@ import com.simplemobiletools.smsmessenger.R import com.simplemobiletools.smsmessenger.activities.SimpleActivity import java.util.* -class ContactsAdapter(activity: SimpleActivity, var contacts: ArrayList, recyclerView: MyRecyclerView, fastScroller: FastScroller?, - itemClick: (Any) -> Unit) : MyRecyclerViewAdapter(activity, recyclerView, fastScroller, itemClick) { +class ContactsAdapter( + activity: SimpleActivity, var contacts: ArrayList, recyclerView: MyRecyclerView, fastScroller: FastScroller?, + itemClick: (Any) -> Unit +) : MyRecyclerViewAdapter(activity, recyclerView, fastScroller, itemClick) { private var fontSize = activity.getTextSize() override fun getActionMenuId() = 0 @@ -51,10 +53,12 @@ class ContactsAdapter(activity: SimpleActivity, var contacts: ArrayList(R.id.item_contact_image)) + fun updateContacts(newContacts: ArrayList) { + val oldHashCode = contacts.hashCode() + val newHashCode = newContacts.hashCode() + if (newHashCode != oldHashCode) { + contacts = newContacts + notifyDataSetChanged() } } @@ -75,4 +79,11 @@ class ContactsAdapter(activity: SimpleActivity, var contacts: ArrayList(R.id.item_contact_image)) + } + } } diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index aaa99efc..911f9b31 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -43,6 +43,7 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:clipToPadding="false" + android:layoutAnimation="@anim/layout_animation" android:overScrollMode="ifContentScrolls" android:scrollbars="none" app:layoutManager="com.simplemobiletools.commons.views.MyLinearLayoutManager" /> diff --git a/app/src/main/res/layout/activity_new_conversation.xml b/app/src/main/res/layout/activity_new_conversation.xml index aaf95c05..7279f684 100644 --- a/app/src/main/res/layout/activity_new_conversation.xml +++ b/app/src/main/res/layout/activity_new_conversation.xml @@ -101,6 +101,7 @@ android:layout_height="match_parent" android:layout_below="@+id/suggestions_scrollview" android:clipToPadding="false" + android:layoutAnimation="@anim/layout_animation" android:overScrollMode="ifContentScrolls" android:scrollbars="none" app:layoutManager="com.simplemobiletools.commons.views.MyLinearLayoutManager" /> From d47e2c9366225983f54a00bdda92b88e1aab95bb Mon Sep 17 00:00:00 2001 From: tibbi Date: Mon, 15 Mar 2021 23:47:00 +0100 Subject: [PATCH 06/34] update version to 5.9.1 --- app/build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index ac5c71e2..c88526fb 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -16,8 +16,8 @@ android { applicationId "com.simplemobiletools.smsmessenger" minSdkVersion 22 targetSdkVersion 30 - versionCode 29 - versionName "5.9.0" + versionCode 30 + versionName "5.9.1" setProperty("archivesBaseName", "sms-messenger") } From 379b032f10efb1a470788b756cb9cc307f642e22 Mon Sep 17 00:00:00 2001 From: tibbi Date: Mon, 15 Mar 2021 23:47:06 +0100 Subject: [PATCH 07/34] updating changelog --- CHANGELOG.md | 7 +++++++ fastlane/metadata/android/en-US/changelogs/30.txt | 3 +++ 2 files changed, 10 insertions(+) create mode 100644 fastlane/metadata/android/en-US/changelogs/30.txt diff --git a/CHANGELOG.md b/CHANGELOG.md index dd463d04..ac05236f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,13 @@ Changelog ========== +Version 5.9.1 *(2021-03-15)* +---------------------------- + + * Improved search + * Properly handle sending messages from notification Reply action + * Some design, stability and translation improvements + Version 5.9.0 *(2021-02-16)* ---------------------------- diff --git a/fastlane/metadata/android/en-US/changelogs/30.txt b/fastlane/metadata/android/en-US/changelogs/30.txt new file mode 100644 index 00000000..f1b57458 --- /dev/null +++ b/fastlane/metadata/android/en-US/changelogs/30.txt @@ -0,0 +1,3 @@ + * Improved search + * Properly handle sending messages from notification Reply action + * Some design, stability and translation improvements From 2d7a0068364b1a96d431a8f100d70a8d625dc3c7 Mon Sep 17 00:00:00 2001 From: tibbi Date: Mon, 22 Mar 2021 13:13:12 +0100 Subject: [PATCH 08/34] updating commons and gradle --- app/build.gradle | 2 +- build.gradle | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index c88526fb..3896faa9 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -56,7 +56,7 @@ android { } dependencies { - implementation 'com.simplemobiletools:commons:5.34.22' + implementation 'com.simplemobiletools:commons:5.34.24' implementation 'org.greenrobot:eventbus:3.2.0' implementation 'com.klinkerapps:android-smsmms:5.2.6' implementation 'com.github.tibbi:IndicatorFastScroll:c3de1d040a' diff --git a/build.gradle b/build.gradle index de0e594e..163bfc30 100644 --- a/build.gradle +++ b/build.gradle @@ -8,7 +8,7 @@ buildscript { } dependencies { - classpath 'com.android.tools.build:gradle:4.1.2' + classpath 'com.android.tools.build:gradle:4.1.3' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" // NOTE: Do not place your application dependencies here; they belong From db077704f076018e21d608c502ffba07dccf7a7f Mon Sep 17 00:00:00 2001 From: tibbi Date: Mon, 22 Mar 2021 13:13:34 +0100 Subject: [PATCH 09/34] do not show the error caught at fetching the contact name and photo --- .../com/simplemobiletools/smsmessenger/extensions/Context.kt | 1 - 1 file changed, 1 deletion(-) 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 0bbf05cf..4262edb5 100644 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/extensions/Context.kt +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/extensions/Context.kt @@ -488,7 +488,6 @@ fun Context.getNameAndPhotoFromPhoneNumber(number: String): NamePhoto { } } } catch (e: Exception) { - showErrorToast(e) } return NamePhoto(number, null) From 75aac13e1edb49bf56badaa3e06e02a7c2bb5737 Mon Sep 17 00:00:00 2001 From: tibbi Date: Mon, 22 Mar 2021 16:03:34 +0100 Subject: [PATCH 10/34] adding a null check at DirectReplyReceiver --- .../smsmessenger/receivers/DirectReplyReceiver.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 02fca156..8a4ee30c 100644 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/receivers/DirectReplyReceiver.kt +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/receivers/DirectReplyReceiver.kt @@ -19,7 +19,7 @@ class DirectReplyReceiver : BroadcastReceiver() { override fun onReceive(context: Context, intent: Intent) { val address = intent.getStringExtra(THREAD_NUMBER) val threadId = intent.getLongExtra(THREAD_ID, 0L) - val msg = RemoteInput.getResultsFromIntent(intent).getCharSequence(REPLY).toString() + val msg = RemoteInput.getResultsFromIntent(intent).getCharSequence(REPLY)?.toString() ?: return val settings = Settings() settings.useSystemSending = true From 1a73ebceb231fa22554b394b96188475d3afc532 Mon Sep 17 00:00:00 2001 From: tibbi Date: Mon, 22 Mar 2021 16:12:54 +0100 Subject: [PATCH 11/34] update version to 5.9.2 --- app/build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 3896faa9..27dca381 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -16,8 +16,8 @@ android { applicationId "com.simplemobiletools.smsmessenger" minSdkVersion 22 targetSdkVersion 30 - versionCode 30 - versionName "5.9.1" + versionCode 31 + versionName "5.9.2" setProperty("archivesBaseName", "sms-messenger") } From ee7f150c7650cff4cac3baec9b20b4a18af738f6 Mon Sep 17 00:00:00 2001 From: tibbi Date: Mon, 22 Mar 2021 16:13:01 +0100 Subject: [PATCH 12/34] updating changelog --- CHANGELOG.md | 6 ++++++ fastlane/metadata/android/en-US/changelogs/31.txt | 2 ++ 2 files changed, 8 insertions(+) create mode 100644 fastlane/metadata/android/en-US/changelogs/31.txt diff --git a/CHANGELOG.md b/CHANGELOG.md index ac05236f..252dd6b7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,12 @@ Changelog ========== +Version 5.9.2 *(2021-03-22)* +---------------------------- + + * Fixed an error message wrongly popping up in some cases + * Some stabiliy and translation improvements + Version 5.9.1 *(2021-03-15)* ---------------------------- diff --git a/fastlane/metadata/android/en-US/changelogs/31.txt b/fastlane/metadata/android/en-US/changelogs/31.txt new file mode 100644 index 00000000..01022908 --- /dev/null +++ b/fastlane/metadata/android/en-US/changelogs/31.txt @@ -0,0 +1,2 @@ + * Fixed an error message wrongly popping up in some cases + * Some stabiliy and translation improvements From f1daa4eab13b077c80192f38ce37c0a889d44615 Mon Sep 17 00:00:00 2001 From: tibbi Date: Wed, 14 Apr 2021 21:04:13 +0200 Subject: [PATCH 13/34] adding a czech strings file --- app/src/main/res/values-cs/strings.xml | 82 ++++++++++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 app/src/main/res/values-cs/strings.xml diff --git a/app/src/main/res/values-cs/strings.xml b/app/src/main/res/values-cs/strings.xml new file mode 100644 index 00000000..5cf58c57 --- /dev/null +++ b/app/src/main/res/values-cs/strings.xml @@ -0,0 +1,82 @@ + + Simple SMS Messenger + SMS Messenger + Type a message… + Message not sent + Not sent. Touch to retry. + Your message to \'%s\' has not been sent + Add Person + Attachment + No stored conversations have been found + Start a conversation + Reply + Show a character counter at writing messages + Loading messages… + Sender doesn\'t support replies + Draft + Sending… + Export messages + Import messages + + + New conversation + Add Contact or Number… + Suggestions + + + Received SMS + New message + Mark as Read + Mark as Unread + + + Are you sure you want to delete all messages of this conversation? + + + + %d conversation + %d conversations + + + + + %d message + %d messages + + + + Why does the app require access to the internet? + Sadly it is needed for sending MMS attachments. Not being able to send MMS would be a really huge disadvantage compared to other apps, so we decided to go this way. + However, as usually, there are no ads, tracking or analytics whatsoever, the internet is used only for sending MMS. + + + + Simple SMS Messenger - Manage messages easily + + An easy and quick way of managing SMS and MMS messages without ads. + + A great way to stay in touch with your relatives, by sending both SMS and MMS messages. The app properly handles group messaging too, just like blocking numbers from Android 7+. + + It offers many date formats to choose from, to make you feel comfortable at using it. You can toggle between 12 and 24 hours time format too. + + It has a really tiny app size compared to the competition, making it really fast to download. + + It comes with material design and dark theme by default, provides great user experience for easy usage. The lack of internet access gives you more privacy, security and stability than other apps. + + Contains no ads or unnecessary permissions. It is fully opensource, provides customizable colors. + + Check out the full suite of Simple Tools here: + https://www.simplemobiletools.com + + Facebook: + https://www.facebook.com/simplemobiletools + + Reddit: + https://www.reddit.com/r/SimpleMobileTools + + + + From 2e3604ab545c0255643826fce63875f81e972cd5 Mon Sep 17 00:00:00 2001 From: tibbi Date: Wed, 14 Apr 2021 23:15:34 +0200 Subject: [PATCH 14/34] updating commons and kotlin --- app/build.gradle | 2 +- app/src/main/AndroidManifest.xml | 5 +++++ .../smsmessenger/activities/MainActivity.kt | 2 +- .../smsmessenger/activities/NewConversationActivity.kt | 2 +- .../smsmessenger/activities/ThreadActivity.kt | 2 +- .../com/simplemobiletools/smsmessenger/extensions/Context.kt | 2 +- .../smsmessenger/receivers/SmsStatusSentReceiver.kt | 2 +- build.gradle | 2 +- 8 files changed, 12 insertions(+), 7 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 27dca381..04183428 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -56,7 +56,7 @@ android { } dependencies { - implementation 'com.simplemobiletools:commons:5.34.24' + implementation 'com.github.SimpleMobileTools:Simple-Commons:9e7ab2f67d' implementation 'org.greenrobot:eventbus:3.2.0' implementation 'com.klinkerapps:android-smsmms:5.2.6' implementation 'com.github.tibbi:IndicatorFastScroll:c3de1d040a' diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 0dabfa90..5c3e1f03 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -18,6 +18,11 @@ android:name="android.permission.USE_FINGERPRINT" tools:node="remove" /> + + + + + ) { - val privateCursor = getMyContactsCursor()?.loadInBackground() + val privateCursor = getMyContactsCursor(false, true)?.loadInBackground() ensureBackgroundThread { val privateContacts = MyContactsContentProvider.getSimpleContacts(this, privateCursor) val conversations = getConversations(privateContacts = privateContacts) 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 26445408..c1bde6cf 100644 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/NewConversationActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/NewConversationActivity.kt @@ -169,7 +169,7 @@ class NewConversationActivity : SimpleActivity() { } private fun fillSuggestedContacts(callback: () -> Unit) { - val privateCursor = getMyContactsCursor()?.loadInBackground() + val privateCursor = getMyContactsCursor(false, true)?.loadInBackground() ensureBackgroundThread { privateContacts = MyContactsContentProvider.getSimpleContacts(this, privateCursor) val suggestions = getSuggestedContacts(privateContacts) 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 71ae7f8f..462c2a14 100644 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/ThreadActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/ThreadActivity.kt @@ -179,7 +179,7 @@ class ThreadActivity : SimpleActivity() { } private fun setupThread() { - val privateCursor = getMyContactsCursor()?.loadInBackground() + val privateCursor = getMyContactsCursor(false, true)?.loadInBackground() ensureBackgroundThread { val cachedMessagesCode = messages.clone().hashCode() messages = getMessages(threadId) 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 4262edb5..84d35a10 100644 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/extensions/Context.kt +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/extensions/Context.kt @@ -636,7 +636,7 @@ fun Context.getThreadId(addresses: Set): Long { } fun Context.showReceivedMessageNotification(address: String, body: String, threadId: Long, bitmap: Bitmap?) { - val privateCursor = getMyContactsCursor()?.loadInBackground() + val privateCursor = getMyContactsCursor(false, true)?.loadInBackground() ensureBackgroundThread { val senderName = getNameFromAddress(address, privateCursor) diff --git a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/receivers/SmsStatusSentReceiver.kt b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/receivers/SmsStatusSentReceiver.kt index c618d354..f128ac9e 100644 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/receivers/SmsStatusSentReceiver.kt +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/receivers/SmsStatusSentReceiver.kt @@ -51,7 +51,7 @@ class SmsStatusSentReceiver : SentReceiver() { private fun showSendingFailedNotification(context: Context, messageId: Long) { Handler(Looper.getMainLooper()).post { - val privateCursor = context.getMyContactsCursor()?.loadInBackground() + val privateCursor = context.getMyContactsCursor(false, true)?.loadInBackground() ensureBackgroundThread { val address = context.getMessageRecipientAddress(messageId) val threadId = context.getThreadId(address) diff --git a/build.gradle b/build.gradle index 163bfc30..bc2453a2 100644 --- a/build.gradle +++ b/build.gradle @@ -1,7 +1,7 @@ // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { - ext.kotlin_version = '1.4.31' + ext.kotlin_version = '1.4.32' repositories { google() jcenter() From 57be93bf679258123e973067e88266cdce895ba9 Mon Sep 17 00:00:00 2001 From: tibbi Date: Wed, 14 Apr 2021 23:27:28 +0200 Subject: [PATCH 15/34] fix a glitch at not properly fetching private contact names --- .../smsmessenger/activities/ThreadActivity.kt | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) 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 462c2a14..f350e545 100644 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/ThreadActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/ThreadActivity.kt @@ -183,7 +183,12 @@ class ThreadActivity : SimpleActivity() { ensureBackgroundThread { val cachedMessagesCode = messages.clone().hashCode() messages = getMessages(threadId) - if (participants.isNotEmpty() && messages.hashCode() == cachedMessagesCode) { + + val hasParticipantWithoutName = participants.any { + it.phoneNumbers.contains(it.name) + } + + if (participants.isNotEmpty() && messages.hashCode() == cachedMessagesCode && !hasParticipantWithoutName) { return@ensureBackgroundThread } From 2db6ffb8352a24ded2a0e2c59e8a156ebab1bfd5 Mon Sep 17 00:00:00 2001 From: tibbi Date: Wed, 14 Apr 2021 23:40:52 +0200 Subject: [PATCH 16/34] use the new way of launching activity intents --- .../smsmessenger/activities/ThreadActivity.kt | 2 +- .../adapters/ConversationsAdapter.kt | 20 +++++++++---------- .../smsmessenger/adapters/ThreadAdapter.kt | 7 +++++-- 3 files changed, 16 insertions(+), 13 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 f350e545..c8a686e6 100644 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/ThreadActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/ThreadActivity.kt @@ -543,7 +543,7 @@ class ThreadActivity : SimpleActivity() { var hadUnreadItems = false val cnt = messages.size for (i in 0 until cnt) { - val message = messages[i] + val message = messages.getOrNull(i) ?: continue // do not show the date/time above every message, only if the difference between the 2 messages is at least MIN_DATE_TIME_DIFF_SECS if (message.date - prevDateTime > MIN_DATE_TIME_DIFF_SECS) { val simCardID = subscriptionIdToSimId[message.subscriptionId] ?: "?" diff --git a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/adapters/ConversationsAdapter.kt b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/adapters/ConversationsAdapter.kt index ed8f66ae..07f8b70b 100644 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/adapters/ConversationsAdapter.kt +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/adapters/ConversationsAdapter.kt @@ -1,5 +1,6 @@ package com.simplemobiletools.smsmessenger.adapters +import android.content.ActivityNotFoundException import android.content.Intent import android.graphics.Typeface import android.net.Uri @@ -26,8 +27,10 @@ import com.simplemobiletools.smsmessenger.helpers.refreshMessages import com.simplemobiletools.smsmessenger.models.Conversation import kotlinx.android.synthetic.main.item_conversation.view.* -class ConversationsAdapter(activity: SimpleActivity, var conversations: ArrayList, recyclerView: MyRecyclerView, fastScroller: FastScroller, - itemClick: (Any) -> Unit) : MyRecyclerViewAdapter(activity, recyclerView, fastScroller, itemClick) { +class ConversationsAdapter( + activity: SimpleActivity, var conversations: ArrayList, recyclerView: MyRecyclerView, fastScroller: FastScroller, + itemClick: (Any) -> Unit +) : MyRecyclerViewAdapter(activity, recyclerView, fastScroller, itemClick) { private var fontSize = activity.getTextSize() init { @@ -120,11 +123,13 @@ class ConversationsAdapter(activity: SimpleActivity, var conversations: ArrayLis Intent(Intent.ACTION_DIAL).apply { data = Uri.fromParts("tel", conversation.phoneNumber, null) - if (resolveActivity(activity.packageManager) != null) { + try { activity.startActivity(this) finishActMode() - } else { + } catch (e: ActivityNotFoundException) { activity.toast(R.string.no_app_found) + } catch (e: Exception) { + activity.showErrorToast(e) } } } @@ -185,12 +190,7 @@ class ConversationsAdapter(activity: SimpleActivity, var conversations: ArrayLis action = Intent.ACTION_INSERT_OR_EDIT type = "vnd.android.cursor.item/contact" putExtra(KEY_PHONE, conversation.phoneNumber) - - if (resolveActivity(activity.packageManager) != null) { - activity.startActivity(this) - } else { - activity.toast(R.string.no_app_found) - } + activity.launchActivityIntent(this) } } diff --git a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/adapters/ThreadAdapter.kt b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/adapters/ThreadAdapter.kt index 5590a1d0..18f513e2 100644 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/adapters/ThreadAdapter.kt +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/adapters/ThreadAdapter.kt @@ -1,6 +1,7 @@ package com.simplemobiletools.smsmessenger.adapters import android.annotation.SuppressLint +import android.content.ActivityNotFoundException import android.content.Intent import android.graphics.drawable.Drawable import android.net.Uri @@ -315,15 +316,17 @@ class ThreadAdapter( setDataAndType(uri, mimetype) addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION) - if (resolveActivity(activity.packageManager) != null) { + try { activity.startActivity(this) - } else { + } catch (e: ActivityNotFoundException) { val newMimetype = filename.getMimeType() if (newMimetype.isNotEmpty() && mimetype != newMimetype) { launchViewIntent(uri, newMimetype, filename) } else { activity.toast(R.string.no_app_found) } + } catch (e: Exception) { + activity.showErrorToast(e) } } } From 66d8ee136a33886a030b74208e5bd986ae5e86a3 Mon Sep 17 00:00:00 2001 From: Filda6 <82540347+Filda6@users.noreply.github.com> Date: Thu, 15 Apr 2021 10:59:39 +0200 Subject: [PATCH 17/34] Update strings.xml new translate to Czech --- app/src/main/res/values-cs/strings.xml | 69 +++++++++++++------------- 1 file changed, 34 insertions(+), 35 deletions(-) diff --git a/app/src/main/res/values-cs/strings.xml b/app/src/main/res/values-cs/strings.xml index 5cf58c57..9a78ded0 100644 --- a/app/src/main/res/values-cs/strings.xml +++ b/app/src/main/res/values-cs/strings.xml @@ -1,36 +1,36 @@ Simple SMS Messenger SMS Messenger - Type a message… - Message not sent - Not sent. Touch to retry. - Your message to \'%s\' has not been sent - Add Person - Attachment - No stored conversations have been found - Start a conversation - Reply - Show a character counter at writing messages - Loading messages… - Sender doesn\'t support replies - Draft - Sending… - Export messages - Import messages + Napište zprávu… + Zpráva nebyla odeslána + Nebylo odesláno. Klepnutím to zkuste znovu. + Vaše zpráva pro \'%s\' nebyla odeslána + Přidat osobu + Příloha + Nebyly nalezeny žádné uložené konverzace + Zahajte konverzaci + Odpověď + Zobrazit počítadlo znaků při psaní zpráv + Načítání zpráv… + Odesílatel nepodporuje odpovědi + Návrh + Odesílá se… + Export zpráv + Import zpráv - New conversation - Add Contact or Number… - Suggestions + Nová konverzace + Přidejte kontakt nebo číslo… + Návrhy - Received SMS - New message - Mark as Read - Mark as Unread + Přijaté SMS + Nová zpráva + Označit jako přečtené + Označit jako nepřečtené - Are you sure you want to delete all messages of this conversation? + Opravdu chcete smazat všechny zprávy z této konverzace? @@ -45,26 +45,25 @@ - Why does the app require access to the internet? - Sadly it is needed for sending MMS attachments. Not being able to send MMS would be a really huge disadvantage compared to other apps, so we decided to go this way. - However, as usually, there are no ads, tracking or analytics whatsoever, the internet is used only for sending MMS. + Proč aplikace vyžaduje přístup k internetu? + Je smutné, že je to nutné pro odesílání příloh MMS. Nebýt schopen posílat MMS by byla opravdu obrovská nevýhoda ve srovnání s jinými aplikacemi, proto jsme se rozhodli jít touto cestou. + Jako obvykle však neexistují žádné reklamy, sledování ani analytika, internet se používá pouze k odesílání MMS. - Simple SMS Messenger - Manage messages easily + Simple SMS Messenger - Snadná správa zpráv - An easy and quick way of managing SMS and MMS messages without ads. + Snadný a rychlý způsob správy SMS a MMS zpráv bez reklam. - A great way to stay in touch with your relatives, by sending both SMS and MMS messages. The app properly handles group messaging too, just like blocking numbers from Android 7+. + Skvělý způsob, jak zůstat v kontaktu se svými příbuznými, a to zasíláním zpráv SMS i MMS. Aplikace správně zpracovává i skupinové zprávy, stejně jako blokování čísel z Androidu 7+. - It offers many date formats to choose from, to make you feel comfortable at using it. You can toggle between 12 and 24 hours time format too. + Nabízí mnoho formátů data, ze kterých si můžete vybrat, abyste se při jejich používání cítili pohodlně. Můžete také přepínat mezi 12 a 24 hodinovým formátem času. - It has a really tiny app size compared to the competition, making it really fast to download. + Ve srovnání s konkurencí má opravdu malou velikost aplikace, takže je stahování opravdu rychlé. - It comes with material design and dark theme by default, provides great user experience for easy usage. The lack of internet access gives you more privacy, security and stability than other apps. - - Contains no ads or unnecessary permissions. It is fully opensource, provides customizable colors. + Ve výchozím nastavení je dodáván s materiálovým designem a tmavým motivem a poskytuje skvělé uživatelské prostředí pro snadné použití. Nedostatek přístupu k internetu vám poskytuje více soukromí, zabezpečení a stability než jiné aplikace. + Neobsahuje žádné reklamy ani zbytečná oprávnění. Je plně opensource a poskytuje přizpůsobitelné barvy. Check out the full suite of Simple Tools here: https://www.simplemobiletools.com From e8a53d06c1030e2dcfc56579967554418e01484a Mon Sep 17 00:00:00 2001 From: tibbi Date: Thu, 15 Apr 2021 11:58:11 +0200 Subject: [PATCH 18/34] make sure the conversation are properly refreshed when open --- .../smsmessenger/receivers/SmsReceiver.kt | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) 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 cc2efb88..e31ac96d 100644 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/receivers/SmsReceiver.kt +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/receivers/SmsReceiver.kt @@ -44,13 +44,14 @@ class SmsReceiver : BroadcastReceiver() { context.updateUnreadCountBadge(context.conversationsDB.getUnreadConversations()) val participant = SimpleContact(0, 0, address, "", arrayListOf(address), ArrayList(), ArrayList()) - val message = Message(newMessageId, body, type, arrayListOf(participant), (date / 1000).toInt(), false, threadId, - false, null, address, "", subscriptionId) + val participants = arrayListOf(participant) + val messageDate = (date / 1000).toInt() + val message = Message(newMessageId, body, type, participants, messageDate, false, threadId, false, null, address, "", subscriptionId) context.messagesDB.insertOrUpdate(message) + refreshMessages() } context.showReceivedMessageNotification(address, body, threadId, null) - refreshMessages() } } } From 2ec4fd12960ef762f60030d26a42112666faaef5 Mon Sep 17 00:00:00 2001 From: tibbi Date: Thu, 15 Apr 2021 12:11:26 +0200 Subject: [PATCH 19/34] update version to 5.9.3 --- app/build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 04183428..d585de1b 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -16,8 +16,8 @@ android { applicationId "com.simplemobiletools.smsmessenger" minSdkVersion 22 targetSdkVersion 30 - versionCode 31 - versionName "5.9.2" + versionCode 32 + versionName "5.9.3" setProperty("archivesBaseName", "sms-messenger") } From b0c021f61323ce365570245beafbf719ce392e7f Mon Sep 17 00:00:00 2001 From: tibbi Date: Thu, 15 Apr 2021 12:11:32 +0200 Subject: [PATCH 20/34] updating changelog --- CHANGELOG.md | 6 ++++++ fastlane/metadata/android/en-US/changelogs/32.txt | 2 ++ 2 files changed, 8 insertions(+) create mode 100644 fastlane/metadata/android/en-US/changelogs/32.txt diff --git a/CHANGELOG.md b/CHANGELOG.md index 252dd6b7..9ef7316d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,12 @@ Changelog ========== +Version 5.9.3 *(2021-04-15)* +---------------------------- + + * Fixed a glitch with current conversation not being updated correctly at incoming messages + * Couple other stability, translation and bugfixes + Version 5.9.2 *(2021-03-22)* ---------------------------- diff --git a/fastlane/metadata/android/en-US/changelogs/32.txt b/fastlane/metadata/android/en-US/changelogs/32.txt new file mode 100644 index 00000000..45073c2a --- /dev/null +++ b/fastlane/metadata/android/en-US/changelogs/32.txt @@ -0,0 +1,2 @@ + * Fixed a glitch with current conversation not being updated correctly at incoming messages + * Couple other stability, translation and bugfixes From ddc6eb6969e0ea66ecfc93b3e0a0cd77c0326591 Mon Sep 17 00:00:00 2001 From: tibbi Date: Thu, 15 Apr 2021 12:15:20 +0200 Subject: [PATCH 21/34] updating changelog --- app/build.gradle | 2 +- fastlane/metadata/android/en-US/changelogs/{32.txt => 33.txt} | 0 2 files changed, 1 insertion(+), 1 deletion(-) rename fastlane/metadata/android/en-US/changelogs/{32.txt => 33.txt} (100%) diff --git a/app/build.gradle b/app/build.gradle index d585de1b..74c2235c 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -16,7 +16,7 @@ android { applicationId "com.simplemobiletools.smsmessenger" minSdkVersion 22 targetSdkVersion 30 - versionCode 32 + versionCode 33 versionName "5.9.3" setProperty("archivesBaseName", "sms-messenger") } diff --git a/fastlane/metadata/android/en-US/changelogs/32.txt b/fastlane/metadata/android/en-US/changelogs/33.txt similarity index 100% rename from fastlane/metadata/android/en-US/changelogs/32.txt rename to fastlane/metadata/android/en-US/changelogs/33.txt From 1417a96d7ed608d3fe818a5a5aa4d704ca45654a Mon Sep 17 00:00:00 2001 From: Guillaume Date: Sun, 2 May 2021 08:21:20 +0200 Subject: [PATCH 22/34] Dutch --- app/src/main/res/values-nl/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml index 0e2a4ccd..1b8c9dca 100644 --- a/app/src/main/res/values-nl/strings.xml +++ b/app/src/main/res/values-nl/strings.xml @@ -34,7 +34,7 @@ - %d gesperk + %d gesprek %d gesprekken From 3b1ee82835e9d84bae993a462174e9032658365c Mon Sep 17 00:00:00 2001 From: tibbi Date: Sun, 23 May 2021 16:49:54 +0200 Subject: [PATCH 23/34] updating commons, room, gradle --- app/build.gradle | 8 ++++---- build.gradle | 2 +- gradle/wrapper/gradle-wrapper.properties | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 74c2235c..d4e0b810 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -56,14 +56,14 @@ android { } dependencies { - implementation 'com.github.SimpleMobileTools:Simple-Commons:9e7ab2f67d' + implementation 'com.github.SimpleMobileTools:Simple-Commons:ee14aec731' implementation 'org.greenrobot:eventbus:3.2.0' implementation 'com.klinkerapps:android-smsmms:5.2.6' implementation 'com.github.tibbi:IndicatorFastScroll:c3de1d040a' implementation "me.leolin:ShortcutBadger:1.1.22" implementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.1.0' - kapt "androidx.room:room-compiler:2.2.6" - implementation "androidx.room:room-runtime:2.2.6" - annotationProcessor "androidx.room:room-compiler:2.2.6" + kapt "androidx.room:room-compiler:2.3.0" + implementation "androidx.room:room-runtime:2.3.0" + annotationProcessor "androidx.room:room-compiler:2.3.0" } diff --git a/build.gradle b/build.gradle index bc2453a2..268f17cb 100644 --- a/build.gradle +++ b/build.gradle @@ -8,7 +8,7 @@ buildscript { } dependencies { - classpath 'com.android.tools.build:gradle:4.1.3' + classpath 'com.android.tools.build:gradle:4.2.1' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" // NOTE: Do not place your application dependencies here; they belong diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index a99abc9d..0521dba2 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.5-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-6.7.1-bin.zip From de54a88b2d36c9f4b60e616a243d14ad31691008 Mon Sep 17 00:00:00 2001 From: tibbi Date: Sun, 23 May 2021 17:01:59 +0200 Subject: [PATCH 24/34] catching some exceptions --- .../smsmessenger/activities/ThreadActivity.kt | 7 +++++-- .../smsmessenger/receivers/SmsReceiver.kt | 7 +++++-- 2 files changed, 10 insertions(+), 4 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 c8a686e6..5e601968 100644 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/ThreadActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/ThreadActivity.kt @@ -188,8 +188,11 @@ class ThreadActivity : SimpleActivity() { it.phoneNumbers.contains(it.name) } - if (participants.isNotEmpty() && messages.hashCode() == cachedMessagesCode && !hasParticipantWithoutName) { - return@ensureBackgroundThread + try { + if (participants.isNotEmpty() && messages.hashCode() == cachedMessagesCode && !hasParticipantWithoutName) { + return@ensureBackgroundThread + } + } catch (ignored: Exception) { } setupParticipants() 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 e31ac96d..f431cac9 100644 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/receivers/SmsReceiver.kt +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/receivers/SmsReceiver.kt @@ -40,9 +40,12 @@ class SmsReceiver : BroadcastReceiver() { val newMessageId = context.insertNewSMS(address, subject, body, date, read, threadId, type, subscriptionId) val conversation = context.getConversations(threadId).firstOrNull() ?: return@ensureBackgroundThread - context.conversationsDB.insertOrUpdate(conversation) - context.updateUnreadCountBadge(context.conversationsDB.getUnreadConversations()) + try { + context.conversationsDB.insertOrUpdate(conversation) + } catch (ignored: Exception) { + } + context.updateUnreadCountBadge(context.conversationsDB.getUnreadConversations()) val participant = SimpleContact(0, 0, address, "", arrayListOf(address), ArrayList(), ArrayList()) val participants = arrayListOf(participant) val messageDate = (date / 1000).toInt() From 9c0ef0fbe9cc7dff5b440aa3455134dbed2b2ee6 Mon Sep 17 00:00:00 2001 From: tibbi Date: Sun, 23 May 2021 17:37:35 +0200 Subject: [PATCH 25/34] adding some null checks at autocomplete textview adapter --- .../adapters/AutoCompleteTextViewAdapter.kt | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/adapters/AutoCompleteTextViewAdapter.kt b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/adapters/AutoCompleteTextViewAdapter.kt index 1f9c20de..13199da6 100644 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/adapters/AutoCompleteTextViewAdapter.kt +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/adapters/AutoCompleteTextViewAdapter.kt @@ -20,14 +20,14 @@ class AutoCompleteTextViewAdapter(val activity: SimpleActivity, val contacts: Ar var resultList = ArrayList() override fun getView(position: Int, convertView: View?, parent: ViewGroup): View { - val contact = resultList[position] + val contact = resultList.getOrNull(position) var listItem = convertView - if (listItem == null || listItem.tag != contact.name.isNotEmpty()) { + if (listItem == null || listItem.tag != contact?.name?.isNotEmpty()) { listItem = LayoutInflater.from(activity).inflate(R.layout.item_contact_with_number, parent, false) } listItem!!.apply { - tag = contact.name.isNotEmpty() + tag = contact?.name?.isNotEmpty() // clickable and focusable properties seem to break Autocomplete clicking, so remove them findViewById(R.id.item_contact_frame).apply { isClickable = false @@ -35,14 +35,16 @@ class AutoCompleteTextViewAdapter(val activity: SimpleActivity, val contacts: Ar } val backgroundColor = activity.config.backgroundColor - findViewById(R.id.item_contact_name).text = contact.name - findViewById(R.id.item_contact_number).text = contact.phoneNumbers.first() findViewById(R.id.item_contact_holder).setBackgroundColor(backgroundColor.darkenColor()) findViewById(R.id.item_contact_name).setTextColor(backgroundColor.getContrastColor()) findViewById(R.id.item_contact_number).setTextColor(backgroundColor.getContrastColor()) - SimpleContactsHelper(context).loadContactImage(contact.photoUri, findViewById(R.id.item_contact_image), contact.name) + if (contact != null) { + findViewById(R.id.item_contact_name).text = contact.name + findViewById(R.id.item_contact_number).text = contact.phoneNumbers.first() + SimpleContactsHelper(context).loadContactImage(contact.photoUri, findViewById(R.id.item_contact_image), contact.name) + } } return listItem From b02b54b0551ab5a37b6cd55976df5f2b7154650a Mon Sep 17 00:00:00 2001 From: tibbi Date: Sun, 23 May 2021 17:53:18 +0200 Subject: [PATCH 26/34] tweak the way adapters are updated --- .../smsmessenger/adapters/ConversationsAdapter.kt | 5 +++-- .../simplemobiletools/smsmessenger/adapters/ThreadAdapter.kt | 5 +++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/adapters/ConversationsAdapter.kt b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/adapters/ConversationsAdapter.kt index 07f8b70b..c895ea85 100644 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/adapters/ConversationsAdapter.kt +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/adapters/ConversationsAdapter.kt @@ -209,10 +209,11 @@ class ConversationsAdapter( } fun updateConversations(newConversations: ArrayList) { + val latestConversations = newConversations.clone() as ArrayList val oldHashCode = conversations.hashCode() - val newHashCode = newConversations.hashCode() + val newHashCode = latestConversations.hashCode() if (newHashCode != oldHashCode) { - conversations = newConversations + conversations = latestConversations notifyDataSetChanged() } } diff --git a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/adapters/ThreadAdapter.kt b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/adapters/ThreadAdapter.kt index 18f513e2..1aead4e9 100644 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/adapters/ThreadAdapter.kt +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/adapters/ThreadAdapter.kt @@ -201,10 +201,11 @@ class ThreadAdapter( private fun isThreadDateTime(position: Int) = messages.getOrNull(position) is ThreadDateTime fun updateMessages(newMessages: ArrayList) { + val latestMessages = newMessages.clone() as ArrayList val oldHashCode = messages.hashCode() - val newHashCode = newMessages.hashCode() + val newHashCode = latestMessages.hashCode() if (newHashCode != oldHashCode) { - messages = newMessages + messages = latestMessages notifyDataSetChanged() recyclerView.scrollToPosition(messages.size - 1) } From 259a0d8cc52db5fe1447da16d3a7889df63810e4 Mon Sep 17 00:00:00 2001 From: tibbi Date: Sun, 23 May 2021 17:58:18 +0200 Subject: [PATCH 27/34] updating commons --- app/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/build.gradle b/app/build.gradle index d4e0b810..93a14df7 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -56,7 +56,7 @@ android { } dependencies { - implementation 'com.github.SimpleMobileTools:Simple-Commons:ee14aec731' + implementation 'com.github.SimpleMobileTools:Simple-Commons:cd538a2ba5' implementation 'org.greenrobot:eventbus:3.2.0' implementation 'com.klinkerapps:android-smsmms:5.2.6' implementation 'com.github.tibbi:IndicatorFastScroll:c3de1d040a' From b2084d8d031ced6484aada88b6bfabbda7e8b2e4 Mon Sep 17 00:00:00 2001 From: tibbi Date: Sun, 23 May 2021 18:01:17 +0200 Subject: [PATCH 28/34] show more items at the top menu --- app/src/main/res/menu/cab_conversations.xml | 14 +++++++------- app/src/main/res/menu/cab_thread.xml | 14 +++++++------- app/src/main/res/menu/menu_thread.xml | 1 - 3 files changed, 14 insertions(+), 15 deletions(-) diff --git a/app/src/main/res/menu/cab_conversations.xml b/app/src/main/res/menu/cab_conversations.xml index 19f7a611..2be314f3 100644 --- a/app/src/main/res/menu/cab_conversations.xml +++ b/app/src/main/res/menu/cab_conversations.xml @@ -5,21 +5,21 @@ android:id="@+id/cab_delete" android:icon="@drawable/ic_delete_vector" android:title="@string/delete" - app:showAsAction="ifRoom" /> + app:showAsAction="always" /> - + app:showAsAction="always" /> + + app:showAsAction="always" /> + app:showAsAction="always" /> + - Date: Sun, 23 May 2021 19:01:48 +0200 Subject: [PATCH 29/34] update version to 5.9.4 --- app/build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 93a14df7..ef116988 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -16,8 +16,8 @@ android { applicationId "com.simplemobiletools.smsmessenger" minSdkVersion 22 targetSdkVersion 30 - versionCode 33 - versionName "5.9.3" + versionCode 34 + versionName "5.9.4" setProperty("archivesBaseName", "sms-messenger") } From cae34cb621d73f939709ef9304daf13662daf473 Mon Sep 17 00:00:00 2001 From: tibbi Date: Sun, 23 May 2021 19:01:55 +0200 Subject: [PATCH 30/34] updating changelog --- CHANGELOG.md | 5 +++++ fastlane/metadata/android/en-US/changelogs/34.txt | 1 + 2 files changed, 6 insertions(+) create mode 100644 fastlane/metadata/android/en-US/changelogs/34.txt diff --git a/CHANGELOG.md b/CHANGELOG.md index 9ef7316d..0f7b11cc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,11 @@ Changelog ========== +Version 5.9.4 *(2021-05-23)* +---------------------------- + + * Adding some UX, stability and translation improvements + Version 5.9.3 *(2021-04-15)* ---------------------------- diff --git a/fastlane/metadata/android/en-US/changelogs/34.txt b/fastlane/metadata/android/en-US/changelogs/34.txt new file mode 100644 index 00000000..1d774fe2 --- /dev/null +++ b/fastlane/metadata/android/en-US/changelogs/34.txt @@ -0,0 +1 @@ + * Adding some UX, stability and translation improvements From e7e6bb985f621c3bde0a228383f76a80fc281f30 Mon Sep 17 00:00:00 2001 From: Agnieszka C <85929121+Aga-C@users.noreply.github.com> Date: Sun, 20 Jun 2021 12:22:47 +0200 Subject: [PATCH 31/34] Added Polish translation --- app/src/main/res/values-pl/strings.xml | 84 ++++++++++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 app/src/main/res/values-pl/strings.xml diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml new file mode 100644 index 00000000..bff2fe01 --- /dev/null +++ b/app/src/main/res/values-pl/strings.xml @@ -0,0 +1,84 @@ + + Simple SMS Messenger + SMS Messenger + Napisz wiadomość… + Wiadomość nie została wysłana + Nie wysłano. Naciśnij, aby spróbować ponownie. + Twoja wiadomość do \'%s\' nie została wysłana + Dodaj odbiorcę + Załącznik + Nie znaleziono żadnych zapisanych konwersacji + Rozpocznij konwersację + Odpowiedz + Pokazuj licznik znaków podczas pisania wiadomości + Ładowanie wiadomości… + Nadawca nie obsługuje odpowiedzi + Szkic + Wysyłanie… + Eksportuj wiadomości + Importuj wiadomości + + + Nowa konwersacja + Dodaj kontakt lub numer… + Propozycje + + + Otrzymywanie SMS + Nowa wiadomość + Zaznacz jako przeczytane + Zaznacz jako nieprzeczytane + + + Czy jesteś pewny/a, że chcesz usunąć wszystkie wiadomości z tej konwersacji? + + + + %d konwersację + %d konwersacje + %d konwersacji + + + + + %d wiadomość + %d wiadomości + %d wiadomości + + + + Dlaczego aplikacja wymaga dostępu do Internetu? + Niestety jest to konieczne do wysyłania załączników MMS. Brak możliwości wysyłania MMS-ów byłby naprawdę ogromną wadą w porównaniu z innymi aplikacjami, więc zdecydowaliśmy się pójść tą drogą. + Jednak, jak zwykle, nie ma żadnych reklam, śledzenia ani analityki, Internet służy tylko do wysyłania MMS-ów. + + + + Simple SMS Messenger - Łatwo zarządzaj SMS-ami + + Łatwy i szybki sposób zarządzania wiadomościami SMS i MMS bez reklam. + + Świetny sposób na utrzymywanie kontaktu z bliskimi poprzez wysyłanie zarówno wiadomości SMS, jak i MMS. Aplikacja poprawnie obsługuje również wiadomości grupowe, podobnie jak blokowanie numerów z Androida 7+. + + Oferuje wiele formatów daty do wyboru, abyś czuł(a) się komfortowo podczas korzystania z niego. Możesz także przełączać się między 12- i 24-godzinnym formatem czasu. + + Zajmuje naprawdę mało miejsca w porównaniu do konkurencji, dzięki czemu można go szybko pobrać. + + Domyślnie jest wyposażony w Material Design i ciemny motyw, zapewniając doskonałe doświadczenie użytkownika dla łatwego użytkowania. Brak dostępu do Internetu zapewnia większą prywatność, bezpieczeństwo i stabilność niż inne aplikacje. + + Nie zawiera reklam ani niepotrzebnych uprawnień. Jest w pełni otwartoźródłowy, zapewnia konfigurowalną kolorystykę. + + Sprawdź pełen zestaw od Simple Tools tutaj: + https://www.simplemobiletools.com + + Facebook: + https://www.facebook.com/simplemobiletools + + Reddit: + https://www.reddit.com/r/SimpleMobileTools + + + + From 8725de0b4ce42b522f89be8016878e4e0f216abc Mon Sep 17 00:00:00 2001 From: Agnieszka C <85929121+Aga-C@users.noreply.github.com> Date: Sun, 20 Jun 2021 12:53:02 +0200 Subject: [PATCH 32/34] Polish translation fix --- app/src/main/res/values-pl/strings.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml index bff2fe01..98be4908 100644 --- a/app/src/main/res/values-pl/strings.xml +++ b/app/src/main/res/values-pl/strings.xml @@ -26,8 +26,8 @@ Otrzymywanie SMS Nowa wiadomość - Zaznacz jako przeczytane - Zaznacz jako nieprzeczytane + Oznacz jako przeczytane + Oznacz jako nieprzeczytane Czy jesteś pewny/a, że chcesz usunąć wszystkie wiadomości z tej konwersacji? From 4da01d0961c2deb7dcbb70c3df19428c9a04bcd7 Mon Sep 17 00:00:00 2001 From: Agnieszka C <85929121+Aga-C@users.noreply.github.com> Date: Mon, 21 Jun 2021 15:18:54 +0200 Subject: [PATCH 33/34] Translated app name to Polish --- app/src/main/res/values-pl/strings.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml index 98be4908..08f4a634 100644 --- a/app/src/main/res/values-pl/strings.xml +++ b/app/src/main/res/values-pl/strings.xml @@ -1,6 +1,6 @@ - Simple SMS Messenger - SMS Messenger + Proste wiadomości SMS + Wiadomości SMS Napisz wiadomość… Wiadomość nie została wysłana Nie wysłano. Naciśnij, aby spróbować ponownie. @@ -53,7 +53,7 @@ - Simple SMS Messenger - Łatwo zarządzaj SMS-ami + Proste wiadomości SMS - Łatwo zarządzaj SMS-ami Łatwy i szybki sposób zarządzania wiadomościami SMS i MMS bez reklam. From 4bb6238417bd18f5a44cf24d56938d40ecacc042 Mon Sep 17 00:00:00 2001 From: tibbi Date: Mon, 19 Jul 2021 11:58:47 +0200 Subject: [PATCH 34/34] updating kotlin, commons, gradle --- app/build.gradle | 2 +- build.gradle | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index ef116988..6036afd9 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -56,7 +56,7 @@ android { } dependencies { - implementation 'com.github.SimpleMobileTools:Simple-Commons:cd538a2ba5' + implementation 'com.github.SimpleMobileTools:Simple-Commons:25daba7267' implementation 'org.greenrobot:eventbus:3.2.0' implementation 'com.klinkerapps:android-smsmms:5.2.6' implementation 'com.github.tibbi:IndicatorFastScroll:c3de1d040a' diff --git a/build.gradle b/build.gradle index 268f17cb..22e54ea7 100644 --- a/build.gradle +++ b/build.gradle @@ -1,14 +1,14 @@ // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { - ext.kotlin_version = '1.4.32' + ext.kotlin_version = '1.5.21' repositories { google() jcenter() } dependencies { - classpath 'com.android.tools.build:gradle:4.2.1' + classpath 'com.android.tools.build:gradle:4.2.2' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" // NOTE: Do not place your application dependencies here; they belong