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 eb13d1d8..5199c936 100644 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/ThreadActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/ThreadActivity.kt @@ -199,6 +199,7 @@ class ThreadActivity : SimpleActivity() { R.id.block_number -> blockNumber() R.id.delete -> askConfirmDelete() R.id.manage_people -> managePeople() + R.id.mark_as_unread -> markAsUnread() else -> return super.onOptionsItemSelected(item) } return true @@ -392,6 +393,16 @@ class ThreadActivity : SimpleActivity() { showSelectedContacts() } + private fun markAsUnread() { + ensureBackgroundThread { + conversationsDB.markUnread(threadId.toLong()) + markThreadMessagesUnread(threadId) + runOnUiThread { + finish() + } + } + } + @SuppressLint("MissingPermission") private fun getThreadItems(): ArrayList { messages.sortBy { it.date } 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 d534d4c4..6631484e 100644 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/extensions/Context.kt +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/extensions/Context.kt @@ -511,6 +511,18 @@ fun Context.markThreadMessagesRead(threadId: Int) { } } +fun Context.markThreadMessagesUnread(threadId: Int) { + arrayOf(Mms.CONTENT_URI, Sms.CONTENT_URI).forEach { uri -> + val contentValues = ContentValues().apply { + put(Sms.READ, 0) + put(Sms.SEEN, 0) + } + val selection = "${Sms.THREAD_ID} = ?" + val selectionArgs = arrayOf(threadId.toString()) + contentResolver.update(uri, contentValues, selection, selectionArgs) + } +} + @SuppressLint("NewApi") fun Context.getThreadId(address: String): Long { return if (isMarshmallowPlus()) { diff --git a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/interfaces/ConversationsDao.kt b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/interfaces/ConversationsDao.kt index 422245ce..72d69763 100644 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/interfaces/ConversationsDao.kt +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/interfaces/ConversationsDao.kt @@ -17,6 +17,9 @@ interface ConversationsDao { @Query("UPDATE conversations SET read = 1 WHERE thread_id = :threadId") fun markRead(threadId: Long) + @Query("UPDATE conversations SET read = 0 WHERE thread_id = :threadId") + fun markUnread(threadId: Long) + @Query("DELETE FROM conversations WHERE id = :id") fun delete(id: Long) diff --git a/app/src/main/res/menu/menu_thread.xml b/app/src/main/res/menu/menu_thread.xml index 4787cb75..2a1ecf93 100644 --- a/app/src/main/res/menu/menu_thread.xml +++ b/app/src/main/res/menu/menu_thread.xml @@ -16,4 +16,8 @@ android:icon="@drawable/ic_block_vector" android:title="@string/block_number" app:showAsAction="never" /> +