Added saving MMS (#106)

This commit is contained in:
Agnieszka C 2021-11-20 13:39:52 +01:00
parent 95fbe59ac8
commit f2a25b46dd
3 changed files with 51 additions and 3 deletions

View file

@ -30,6 +30,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.activities.ThreadActivity
import com.simplemobiletools.smsmessenger.dialogs.SelectTextDialog
import com.simplemobiletools.smsmessenger.extensions.deleteMessage
import com.simplemobiletools.smsmessenger.extensions.updateLastConversationMessage
@ -62,10 +63,13 @@ class ThreadAdapter(
override fun prepareActionMode(menu: Menu) {
val isOneItemSelected = isOneItemSelected()
val selectedItem = getSelectedItems().firstOrNull() as? Message
val hasText = selectedItem?.body != null && selectedItem.body != ""
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
findItem(R.id.cab_copy_to_clipboard).isVisible = isOneItemSelected && hasText
findItem(R.id.cab_save_as).isVisible = isOneItemSelected && selectedItem?.attachment?.attachments?.size == 1
findItem(R.id.cab_share).isVisible = isOneItemSelected && hasText
findItem(R.id.cab_select_text).isVisible = isOneItemSelected && hasText
}
}
@ -76,6 +80,7 @@ class ThreadAdapter(
when (id) {
R.id.cab_copy_to_clipboard -> copyToClipboard()
R.id.cab_save_as -> saveAs()
R.id.cab_share -> shareText()
R.id.cab_select_text -> selectText()
R.id.cab_delete -> askConfirmDelete()
@ -142,6 +147,12 @@ class ThreadAdapter(
activity.copyToClipboard(firstItem.body)
}
private fun saveAs() {
val firstItem = getSelectedItems().firstOrNull() as? Message ?: return
val attachment = firstItem.attachment?.attachments?.first() ?: return
(activity as ThreadActivity).saveMMS(attachment.mimetype, attachment.uriString)
}
private fun shareText() {
val firstItem = getSelectedItems().firstOrNull() as? Message ?: return
activity.shareTextIntent(firstItem.body)