diff --git a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/adapters/ThreadAdapter.kt b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/adapters/ThreadAdapter.kt index a8b5b7ca..8277c8c7 100644 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/adapters/ThreadAdapter.kt +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/adapters/ThreadAdapter.kt @@ -29,6 +29,7 @@ import com.simplemobiletools.commons.helpers.SimpleContactsHelper import com.simplemobiletools.commons.helpers.ensureBackgroundThread import com.simplemobiletools.commons.views.MyRecyclerView import com.simplemobiletools.smsmessenger.R +import com.simplemobiletools.smsmessenger.activities.NewConversationActivity import com.simplemobiletools.smsmessenger.activities.SimpleActivity import com.simplemobiletools.smsmessenger.activities.ThreadActivity import com.simplemobiletools.smsmessenger.dialogs.SelectTextDialog @@ -68,6 +69,7 @@ class ThreadAdapter( 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_forward_message).isVisible = isOneItemSelected && hasText findItem(R.id.cab_select_text).isVisible = isOneItemSelected && hasText } } @@ -81,6 +83,7 @@ class ThreadAdapter( R.id.cab_copy_to_clipboard -> copyToClipboard() R.id.cab_save_as -> saveAs() R.id.cab_share -> shareText() + R.id.cab_forward_message -> forwardMessage() R.id.cab_select_text -> selectText() R.id.cab_delete -> askConfirmDelete() R.id.cab_select_all -> selectAll() @@ -209,6 +212,15 @@ class ThreadAdapter( } } + private fun forwardMessage() { + val message = getSelectedItems().firstOrNull() as? Message ?: return + Intent(activity, NewConversationActivity::class.java).apply { + action = Intent.ACTION_SEND + putExtra(Intent.EXTRA_TEXT, message.body) + activity.startActivity(this) + } + } + private fun getSelectedItems() = messages.filter { selectedKeys.contains((it as? Message)?.hashCode() ?: 0) } as ArrayList private fun isThreadDateTime(position: Int) = messages.getOrNull(position) is ThreadDateTime diff --git a/app/src/main/res/menu/cab_thread.xml b/app/src/main/res/menu/cab_thread.xml index 3711e82d..6dfeed73 100644 --- a/app/src/main/res/menu/cab_thread.xml +++ b/app/src/main/res/menu/cab_thread.xml @@ -21,6 +21,10 @@ android:icon="@drawable/ic_save_vector" android:title="@string/save_as" app:showAsAction="ifRoom" /> +