allow selecting parts of a message instead of copying the whole

This commit is contained in:
tibbi 2020-11-04 10:39:51 +01:00
parent acd0055477
commit 87e1be8e1b
5 changed files with 49 additions and 1 deletions

View file

@ -29,6 +29,7 @@ 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.dialogs.SelectTextDialog
import com.simplemobiletools.smsmessenger.extensions.deleteMessage
import com.simplemobiletools.smsmessenger.helpers.*
import com.simplemobiletools.smsmessenger.models.*
@ -58,6 +59,7 @@ class ThreadAdapter(activity: SimpleActivity, var messages: ArrayList<ThreadItem
menu.apply {
findItem(R.id.cab_copy_to_clipboard).isVisible = isOneItemSelected
findItem(R.id.cab_share).isVisible = isOneItemSelected
findItem(R.id.cab_select_text).isVisible = isOneItemSelected
}
}
@ -69,6 +71,7 @@ class ThreadAdapter(activity: SimpleActivity, var messages: ArrayList<ThreadItem
when (id) {
R.id.cab_copy_to_clipboard -> copyToClipboard()
R.id.cab_share -> shareText()
R.id.cab_select_text -> selectText()
R.id.cab_delete -> askConfirmDelete()
}
}
@ -131,6 +134,13 @@ class ThreadAdapter(activity: SimpleActivity, var messages: ArrayList<ThreadItem
activity.shareTextIntent(firstItem.body)
}
private fun selectText() {
val firstItem = getSelectedItems().first() as? Message ?: return
if (firstItem.body.trim().isNotEmpty()) {
SelectTextDialog(activity, firstItem.body)
}
}
private fun askConfirmDelete() {
val itemsCnt = selectedKeys.size
val items = resources.getQuantityString(R.plurals.delete_messages, itemsCnt, itemsCnt)