From d139548f06fb618a38f227e5fb8141601502a0a0 Mon Sep 17 00:00:00 2001 From: AlbertoPellitteri Date: Sun, 5 Sep 2021 18:15:37 +0200 Subject: [PATCH 1/7] Now the conversation can be marked as read from the main message cab --- .../adapters/ConversationsAdapter.kt | 20 +++++++++++++++++++ app/src/main/res/menu/cab_conversations.xml | 4 ++++ 2 files changed, 24 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..475d4ee0 100644 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/adapters/ConversationsAdapter.kt +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/adapters/ConversationsAdapter.kt @@ -23,6 +23,7 @@ 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.markThreadMessagesRead import com.simplemobiletools.smsmessenger.helpers.refreshMessages import com.simplemobiletools.smsmessenger.models.Conversation import kotlinx.android.synthetic.main.item_conversation.view.* @@ -60,6 +61,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_read -> markAsRead() } } @@ -184,6 +186,24 @@ class ConversationsAdapter( } } + private fun markAsRead(){ + if (selectedKeys.isEmpty()) { + return + } + val conversationsMarkedAsRead = conversations.filter { selectedKeys.contains(it.hashCode()) } as ArrayList + + ensureBackgroundThread { + conversationsMarkedAsRead.forEach { + activity.markThreadMessagesRead(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..0f3acb38 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 1a5f055cd9edf6bc6bac0c3ec5646860e0f4fb31 Mon Sep 17 00:00:00 2001 From: AlbertoPellitteri Date: Sun, 5 Sep 2021 18:38:35 +0200 Subject: [PATCH 2/7] small performance improvement --- .../smsmessenger/adapters/ConversationsAdapter.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 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 475d4ee0..252f61da 100644 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/adapters/ConversationsAdapter.kt +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/adapters/ConversationsAdapter.kt @@ -5,6 +5,7 @@ import android.content.Intent import android.graphics.Typeface import android.net.Uri import android.text.TextUtils +import android.util.Log import android.util.TypedValue import android.view.Menu import android.view.View @@ -191,9 +192,8 @@ class ConversationsAdapter( return } val conversationsMarkedAsRead = conversations.filter { selectedKeys.contains(it.hashCode()) } as ArrayList - ensureBackgroundThread { - conversationsMarkedAsRead.forEach { + conversationsMarkedAsRead.filter{el -> !el.read}.forEach { activity.markThreadMessagesRead(it.threadId) } activity.runOnUiThread { From 8ce253b95703dea8652cfe9aca18663ab149b27c Mon Sep 17 00:00:00 2001 From: AlbertoPellitteri Date: Mon, 6 Sep 2021 22:51:37 +0200 Subject: [PATCH 3/7] Remove unused import --- .../smsmessenger/adapters/ConversationsAdapter.kt | 1 - 1 file changed, 1 deletion(-) 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 252f61da..600b6a7a 100644 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/adapters/ConversationsAdapter.kt +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/adapters/ConversationsAdapter.kt @@ -5,7 +5,6 @@ import android.content.Intent import android.graphics.Typeface import android.net.Uri import android.text.TextUtils -import android.util.Log import android.util.TypedValue import android.view.Menu import android.view.View From f9a71c0e0b03b48bffe4cb6e0aab2d02bef51513 Mon Sep 17 00:00:00 2001 From: Tibor Kaputa Date: Wed, 8 Sep 2021 15:18:03 +0200 Subject: [PATCH 4/7] keep Select All as the last cab item --- app/src/main/res/menu/cab_conversations.xml | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/app/src/main/res/menu/cab_conversations.xml b/app/src/main/res/menu/cab_conversations.xml index 0f3acb38..b1afe973 100644 --- a/app/src/main/res/menu/cab_conversations.xml +++ b/app/src/main/res/menu/cab_conversations.xml @@ -25,12 +25,16 @@ android:id="@+id/cab_copy_number" android:title="@string/copy_number_to_clipboard" app:showAsAction="never" /> - + + From e28b8ddae0dae9ba0b217ab4a1db971c5f6c61f5 Mon Sep 17 00:00:00 2001 From: Tibor Kaputa Date: Wed, 8 Sep 2021 15:18:24 +0200 Subject: [PATCH 5/7] Update ConversationsAdapter.kt --- .../adapters/ConversationsAdapter.kt | 21 ++++++++++++++++--- 1 file changed, 18 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 600b6a7a..c13136fe 100644 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/adapters/ConversationsAdapter.kt +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/adapters/ConversationsAdapter.kt @@ -24,6 +24,7 @@ import com.simplemobiletools.smsmessenger.R import com.simplemobiletools.smsmessenger.activities.SimpleActivity import com.simplemobiletools.smsmessenger.extensions.deleteConversation import com.simplemobiletools.smsmessenger.extensions.markThreadMessagesRead +import com.simplemobiletools.smsmessenger.extensions.markThreadMessagesUnread import com.simplemobiletools.smsmessenger.helpers.refreshMessages import com.simplemobiletools.smsmessenger.models.Conversation import kotlinx.android.synthetic.main.item_conversation.view.* @@ -61,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() R.id.cab_mark_as_read -> markAsRead() } } @@ -186,21 +188,34 @@ class ConversationsAdapter( } } - private fun markAsRead(){ + private fun markAsRead() { if (selectedKeys.isEmpty()) { return } - val conversationsMarkedAsRead = conversations.filter { selectedKeys.contains(it.hashCode()) } as ArrayList + + val conversationsMarkedAsRead = conversations.filter { selectedKeys.contains(it.hashCode()) } as ArrayList ensureBackgroundThread { - conversationsMarkedAsRead.filter{el -> !el.read}.forEach { + conversationsMarkedAsRead.filter { conversation -> !conversation.read }.forEach { activity.markThreadMessagesRead(it.threadId) } + activity.runOnUiThread { refreshMessages() finishActMode() } } + } + private fun markAsUnread() { + if (selectedKeys.isEmpty()) { + return + } + val conversationsMarkedAsUnread = conversations.filter { selectedKeys.contains(it.hashCode()) } as ArrayList + ensureBackgroundThread { + conversationsMarkedAsUnread.filter { conversation -> conversation.read }.forEach { + activity.markThreadMessagesUnread(it.threadId) + } + } } private fun addNumberToContact() { From 8ffc176d316d0f56e75bf4c9896ca221ecd17ba1 Mon Sep 17 00:00:00 2001 From: Tibor Kaputa Date: Wed, 8 Sep 2021 15:18:57 +0200 Subject: [PATCH 6/7] Update ConversationsAdapter.kt --- .../smsmessenger/adapters/ConversationsAdapter.kt | 1 + 1 file changed, 1 insertion(+) 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 c13136fe..7914adb3 100644 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/adapters/ConversationsAdapter.kt +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/adapters/ConversationsAdapter.kt @@ -210,6 +210,7 @@ class ConversationsAdapter( if (selectedKeys.isEmpty()) { return } + val conversationsMarkedAsUnread = conversations.filter { selectedKeys.contains(it.hashCode()) } as ArrayList ensureBackgroundThread { conversationsMarkedAsUnread.filter { conversation -> conversation.read }.forEach { From 14ea068f73d33c93814ab671c9d7234d822c6b4c Mon Sep 17 00:00:00 2001 From: Tibor Kaputa Date: Wed, 8 Sep 2021 15:20:31 +0200 Subject: [PATCH 7/7] Update ConversationsAdapter.kt --- .../smsmessenger/adapters/ConversationsAdapter.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 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 7914adb3..09e75004 100644 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/adapters/ConversationsAdapter.kt +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/adapters/ConversationsAdapter.kt @@ -61,9 +61,9 @@ class ConversationsAdapter( R.id.cab_dial_number -> dialNumber() R.id.cab_copy_number -> copyNumberToClipboard() R.id.cab_delete -> askConfirmDelete() - R.id.cab_select_all -> selectAll() - R.id.cab_mark_as_unread -> markAsUnread() R.id.cab_mark_as_read -> markAsRead() + R.id.cab_mark_as_unread -> markAsUnread() + R.id.cab_select_all -> selectAll() } }