From 44c540b96187d02435b4ad2eccfbace1e2116a27 Mon Sep 17 00:00:00 2001 From: Agnieszka C <85929121+Aga-C@users.noreply.github.com> Date: Sat, 4 Sep 2021 22:14:22 +0200 Subject: [PATCH 1/5] Fixed updating last message after deleting (#167) --- .../smsmessenger/adapters/ThreadAdapter.kt | 4 ++++ .../smsmessenger/extensions/Context.kt | 12 ++++++++++++ 2 files changed, 16 insertions(+) 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 97c1b874..135c6eb2 100644 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/adapters/ThreadAdapter.kt +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/adapters/ThreadAdapter.kt @@ -30,8 +30,10 @@ import com.simplemobiletools.commons.views.FastScroller import com.simplemobiletools.commons.views.MyRecyclerView import com.simplemobiletools.smsmessenger.R import com.simplemobiletools.smsmessenger.activities.SimpleActivity +import com.simplemobiletools.smsmessenger.activities.ThreadActivity import com.simplemobiletools.smsmessenger.dialogs.SelectTextDialog import com.simplemobiletools.smsmessenger.extensions.deleteMessage +import com.simplemobiletools.smsmessenger.extensions.updateLastConversationMessage import com.simplemobiletools.smsmessenger.helpers.* import com.simplemobiletools.smsmessenger.models.* import kotlinx.android.synthetic.main.item_attachment_image.view.* @@ -181,10 +183,12 @@ class ThreadAdapter( val messagesToRemove = getSelectedItems() val positions = getSelectedItemPositions() + val threadId = (messagesToRemove[0] as Message).threadId messagesToRemove.forEach { activity.deleteMessage((it as Message).id, it.isMMS) } messages.removeAll(messagesToRemove) + activity.updateLastConversationMessage(threadId) activity.runOnUiThread { if (messages.filter { it is Message }.isEmpty()) { 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 cb55e7c8..36fda74c 100644 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/extensions/Context.kt +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/extensions/Context.kt @@ -764,3 +764,15 @@ fun Context.getLockScreenVisibilityText(type: Int) = getString( else -> R.string.nothing } ) + +fun Context.updateLastConversationMessage(threadId: Long) { + val uri = Threads.CONTENT_URI + val selection = "${Threads._ID} = ?" + val selectionArgs = arrayOf(threadId.toString()) + try { + contentResolver.delete(uri, selection, selectionArgs) + val newConversation = getConversations(threadId)[0] + conversationsDB.insertOrUpdate(newConversation) + } catch (e: Exception) { + } +} From 5bde636dfb80747645cab405c14283afafd78acd Mon Sep 17 00:00:00 2001 From: AlbertoPellitteri Date: Sun, 5 Sep 2021 17:12:30 +0200 Subject: [PATCH 2/5] Now is possible to mark as unread the conversation from outside the conversation itself, selecting also more than one chat --- .../adapters/ConversationsAdapter.kt | 18 ++++++++++++++++++ app/src/main/res/menu/cab_conversations.xml | 4 ++++ 2 files changed, 22 insertions(+) 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 c895ea85..213edf29 100644 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/adapters/ConversationsAdapter.kt +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/adapters/ConversationsAdapter.kt @@ -23,8 +23,10 @@ import com.simplemobiletools.commons.views.MyRecyclerView import com.simplemobiletools.smsmessenger.R import com.simplemobiletools.smsmessenger.activities.SimpleActivity import com.simplemobiletools.smsmessenger.extensions.deleteConversation +import com.simplemobiletools.smsmessenger.extensions.markThreadMessagesUnread import com.simplemobiletools.smsmessenger.helpers.refreshMessages import com.simplemobiletools.smsmessenger.models.Conversation +import com.simplemobiletools.smsmessenger.models.Events import kotlinx.android.synthetic.main.item_conversation.view.* class ConversationsAdapter( @@ -60,6 +62,7 @@ class ConversationsAdapter( R.id.cab_copy_number -> copyNumberToClipboard() R.id.cab_delete -> askConfirmDelete() R.id.cab_select_all -> selectAll() + R.id.cab_mark_as_unread -> markAsUnread() } } @@ -184,6 +187,21 @@ class ConversationsAdapter( } } + private fun markAsUnread(){ + if (selectedKeys.isEmpty()) { + return + } + val conversationsMarkedAsUnread = conversations.filter { selectedKeys.contains(it.hashCode()) } as ArrayList + conversationsMarkedAsUnread.forEach { + activity.markThreadMessagesUnread(it.threadId) + } + activity.runOnUiThread { + refreshMessages() + finishActMode() + } + + } + private fun addNumberToContact() { val conversation = getSelectedItems().firstOrNull() ?: return Intent().apply { diff --git a/app/src/main/res/menu/cab_conversations.xml b/app/src/main/res/menu/cab_conversations.xml index 2be314f3..8201323a 100644 --- a/app/src/main/res/menu/cab_conversations.xml +++ b/app/src/main/res/menu/cab_conversations.xml @@ -29,4 +29,8 @@ android:id="@+id/cab_select_all" android:title="@string/select_all" app:showAsAction="never" /> + From d0d252a1e0a9400bf7136b58a58d120c2e1afa0d Mon Sep 17 00:00:00 2001 From: AlbertoPellitteri Date: Sun, 5 Sep 2021 18:42:41 +0200 Subject: [PATCH 3/5] Small performance improvement --- .../smsmessenger/adapters/ConversationsAdapter.kt | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 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 213edf29..3c928102 100644 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/adapters/ConversationsAdapter.kt +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/adapters/ConversationsAdapter.kt @@ -192,12 +192,14 @@ class ConversationsAdapter( return } val conversationsMarkedAsUnread = conversations.filter { selectedKeys.contains(it.hashCode()) } as ArrayList - conversationsMarkedAsUnread.forEach { - activity.markThreadMessagesUnread(it.threadId) - } - activity.runOnUiThread { - refreshMessages() - finishActMode() + ensureBackgroundThread { + conversationsMarkedAsUnread.filter { el -> el.read }.forEach { + activity.markThreadMessagesUnread(it.threadId) + } + activity.runOnUiThread { + refreshMessages() + finishActMode() + } } } From 162d09e466796e38b77a799db5de473da5adc0b9 Mon Sep 17 00:00:00 2001 From: Tibor Kaputa Date: Wed, 8 Sep 2021 15:04:07 +0200 Subject: [PATCH 4/5] Update ConversationsAdapter.kt --- .../smsmessenger/adapters/ConversationsAdapter.kt | 6 +++--- 1 file changed, 3 insertions(+), 3 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 3c928102..dd1d60e2 100644 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/adapters/ConversationsAdapter.kt +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/adapters/ConversationsAdapter.kt @@ -187,21 +187,21 @@ class ConversationsAdapter( } } - private fun markAsUnread(){ + private fun markAsUnread() { if (selectedKeys.isEmpty()) { return } val conversationsMarkedAsUnread = conversations.filter { selectedKeys.contains(it.hashCode()) } as ArrayList ensureBackgroundThread { - conversationsMarkedAsUnread.filter { el -> el.read }.forEach { + conversationsMarkedAsUnread.filter { conversation -> conversation.read }.forEach { activity.markThreadMessagesUnread(it.threadId) } + activity.runOnUiThread { refreshMessages() finishActMode() } } - } private fun addNumberToContact() { From 3c81f9bc7d732c66109120b487b72b1ce82464e6 Mon Sep 17 00:00:00 2001 From: Tibor Kaputa Date: Wed, 8 Sep 2021 15:05:17 +0200 Subject: [PATCH 5/5] move Select All item at the bottom for consistency with other apps --- app/src/main/res/menu/cab_conversations.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/app/src/main/res/menu/cab_conversations.xml b/app/src/main/res/menu/cab_conversations.xml index 8201323a..a596dbb3 100644 --- a/app/src/main/res/menu/cab_conversations.xml +++ b/app/src/main/res/menu/cab_conversations.xml @@ -25,12 +25,12 @@ android:id="@+id/cab_copy_number" android:title="@string/copy_number_to_clipboard" app:showAsAction="never" /> - +