mirror of
https://github.com/SimpleMobileTools/Simple-SMS-Messenger.git
synced 2025-02-20 05:30:58 +01:00
Merge branch 'master' into add-simple-characters
This commit is contained in:
commit
80ffc85ace
@ -23,8 +23,10 @@ import com.simplemobiletools.commons.views.MyRecyclerView
|
|||||||
import com.simplemobiletools.smsmessenger.R
|
import com.simplemobiletools.smsmessenger.R
|
||||||
import com.simplemobiletools.smsmessenger.activities.SimpleActivity
|
import com.simplemobiletools.smsmessenger.activities.SimpleActivity
|
||||||
import com.simplemobiletools.smsmessenger.extensions.deleteConversation
|
import com.simplemobiletools.smsmessenger.extensions.deleteConversation
|
||||||
|
import com.simplemobiletools.smsmessenger.extensions.markThreadMessagesUnread
|
||||||
import com.simplemobiletools.smsmessenger.helpers.refreshMessages
|
import com.simplemobiletools.smsmessenger.helpers.refreshMessages
|
||||||
import com.simplemobiletools.smsmessenger.models.Conversation
|
import com.simplemobiletools.smsmessenger.models.Conversation
|
||||||
|
import com.simplemobiletools.smsmessenger.models.Events
|
||||||
import kotlinx.android.synthetic.main.item_conversation.view.*
|
import kotlinx.android.synthetic.main.item_conversation.view.*
|
||||||
|
|
||||||
class ConversationsAdapter(
|
class ConversationsAdapter(
|
||||||
@ -60,6 +62,7 @@ class ConversationsAdapter(
|
|||||||
R.id.cab_copy_number -> copyNumberToClipboard()
|
R.id.cab_copy_number -> copyNumberToClipboard()
|
||||||
R.id.cab_delete -> askConfirmDelete()
|
R.id.cab_delete -> askConfirmDelete()
|
||||||
R.id.cab_select_all -> selectAll()
|
R.id.cab_select_all -> selectAll()
|
||||||
|
R.id.cab_mark_as_unread -> markAsUnread()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -184,6 +187,23 @@ class ConversationsAdapter(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun markAsUnread() {
|
||||||
|
if (selectedKeys.isEmpty()) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
val conversationsMarkedAsUnread = conversations.filter { selectedKeys.contains(it.hashCode()) } as ArrayList<Conversation>
|
||||||
|
ensureBackgroundThread {
|
||||||
|
conversationsMarkedAsUnread.filter { conversation -> conversation.read }.forEach {
|
||||||
|
activity.markThreadMessagesUnread(it.threadId)
|
||||||
|
}
|
||||||
|
|
||||||
|
activity.runOnUiThread {
|
||||||
|
refreshMessages()
|
||||||
|
finishActMode()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private fun addNumberToContact() {
|
private fun addNumberToContact() {
|
||||||
val conversation = getSelectedItems().firstOrNull() ?: return
|
val conversation = getSelectedItems().firstOrNull() ?: return
|
||||||
Intent().apply {
|
Intent().apply {
|
||||||
|
@ -30,8 +30,10 @@ import com.simplemobiletools.commons.views.FastScroller
|
|||||||
import com.simplemobiletools.commons.views.MyRecyclerView
|
import com.simplemobiletools.commons.views.MyRecyclerView
|
||||||
import com.simplemobiletools.smsmessenger.R
|
import com.simplemobiletools.smsmessenger.R
|
||||||
import com.simplemobiletools.smsmessenger.activities.SimpleActivity
|
import com.simplemobiletools.smsmessenger.activities.SimpleActivity
|
||||||
|
import com.simplemobiletools.smsmessenger.activities.ThreadActivity
|
||||||
import com.simplemobiletools.smsmessenger.dialogs.SelectTextDialog
|
import com.simplemobiletools.smsmessenger.dialogs.SelectTextDialog
|
||||||
import com.simplemobiletools.smsmessenger.extensions.deleteMessage
|
import com.simplemobiletools.smsmessenger.extensions.deleteMessage
|
||||||
|
import com.simplemobiletools.smsmessenger.extensions.updateLastConversationMessage
|
||||||
import com.simplemobiletools.smsmessenger.helpers.*
|
import com.simplemobiletools.smsmessenger.helpers.*
|
||||||
import com.simplemobiletools.smsmessenger.models.*
|
import com.simplemobiletools.smsmessenger.models.*
|
||||||
import kotlinx.android.synthetic.main.item_attachment_image.view.*
|
import kotlinx.android.synthetic.main.item_attachment_image.view.*
|
||||||
@ -181,10 +183,12 @@ class ThreadAdapter(
|
|||||||
|
|
||||||
val messagesToRemove = getSelectedItems()
|
val messagesToRemove = getSelectedItems()
|
||||||
val positions = getSelectedItemPositions()
|
val positions = getSelectedItemPositions()
|
||||||
|
val threadId = (messagesToRemove[0] as Message).threadId
|
||||||
messagesToRemove.forEach {
|
messagesToRemove.forEach {
|
||||||
activity.deleteMessage((it as Message).id, it.isMMS)
|
activity.deleteMessage((it as Message).id, it.isMMS)
|
||||||
}
|
}
|
||||||
messages.removeAll(messagesToRemove)
|
messages.removeAll(messagesToRemove)
|
||||||
|
activity.updateLastConversationMessage(threadId)
|
||||||
|
|
||||||
activity.runOnUiThread {
|
activity.runOnUiThread {
|
||||||
if (messages.filter { it is Message }.isEmpty()) {
|
if (messages.filter { it is Message }.isEmpty()) {
|
||||||
|
@ -775,3 +775,15 @@ fun Context.removeDiacriticsIfNeeded(text: String): String {
|
|||||||
|
|
||||||
return msg
|
return msg
|
||||||
}
|
}
|
||||||
|
|
||||||
|
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) {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@ -25,6 +25,10 @@
|
|||||||
android:id="@+id/cab_copy_number"
|
android:id="@+id/cab_copy_number"
|
||||||
android:title="@string/copy_number_to_clipboard"
|
android:title="@string/copy_number_to_clipboard"
|
||||||
app:showAsAction="never" />
|
app:showAsAction="never" />
|
||||||
|
<item
|
||||||
|
android:id="@+id/cab_mark_as_unread"
|
||||||
|
android:title="@string/mark_as_unread"
|
||||||
|
app:showAsAction="never" />
|
||||||
<item
|
<item
|
||||||
android:id="@+id/cab_select_all"
|
android:id="@+id/cab_select_all"
|
||||||
android:title="@string/select_all"
|
android:title="@string/select_all"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user