diff --git a/app/src/main/java/com/nextcloud/talk/chat/ChatActivity.kt b/app/src/main/java/com/nextcloud/talk/chat/ChatActivity.kt
index 450f6a078..1d1856eb4 100644
--- a/app/src/main/java/com/nextcloud/talk/chat/ChatActivity.kt
+++ b/app/src/main/java/com/nextcloud/talk/chat/ChatActivity.kt
@@ -198,6 +198,7 @@ import com.nextcloud.talk.utils.FileUtils
import com.nextcloud.talk.utils.FileViewerUtils
import com.nextcloud.talk.utils.ImageEmojiEditText
import com.nextcloud.talk.utils.MagicCharPolicy
+import com.nextcloud.talk.utils.Mimetype
import com.nextcloud.talk.utils.NotificationUtils
import com.nextcloud.talk.utils.ParticipantPermissions
import com.nextcloud.talk.utils.VibrationUtils
@@ -312,6 +313,7 @@ class ChatActivity :
var voiceOnly: Boolean = true
var isFirstMessagesProcessing = true
private var emojiPopup: EmojiPopup? = null
+ private lateinit var path: String
var myFirstMessage: CharSequence? = null
var checkingLobbyStatus: Boolean = false
@@ -3908,6 +3910,23 @@ class ChatActivity :
intent.putExtras(bundle)
startActivity(intent)
}
+ fun share(message: ChatMessage) {
+ val fileName = message.selectedIndividualHashMap!![PreviewMessageViewHolder.KEY_NAME]!!
+ path = applicationContext.cacheDir.absolutePath + "/" + fileName
+ val shareUri = FileProvider.getUriForFile(
+ this,
+ BuildConfig.APPLICATION_ID,
+ File(path)
+ )
+
+ val shareIntent: Intent = Intent().apply {
+ action = Intent.ACTION_SEND
+ putExtra(Intent.EXTRA_STREAM, shareUri)
+ type = Mimetype.IMAGE_PREFIX_GENERIC
+ addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION)
+ }
+ startActivity(Intent.createChooser(shareIntent, resources.getText(R.string.send_to)))
+ }
fun openInFilesApp(message: ChatMessage) {
val keyID = message.selectedIndividualHashMap!![PreviewMessageViewHolder.KEY_ID]
diff --git a/app/src/main/java/com/nextcloud/talk/ui/dialog/MessageActionsDialog.kt b/app/src/main/java/com/nextcloud/talk/ui/dialog/MessageActionsDialog.kt
index 2ac437814..c77bb76c3 100644
--- a/app/src/main/java/com/nextcloud/talk/ui/dialog/MessageActionsDialog.kt
+++ b/app/src/main/java/com/nextcloud/talk/ui/dialog/MessageActionsDialog.kt
@@ -113,6 +113,7 @@ class MessageActionsDialog(
message.previousMessageId > NO_PREVIOUS_MESSAGE_ID &&
ChatMessage.MessageType.SYSTEM_MESSAGE != message.getCalculateMessageType()
)
+ initMenuShare(ChatMessage.MessageType.SINGLE_NC_ATTACHMENT_MESSAGE == message.getCalculateMessageType())
initMenuItemOpenNcApp(
ChatMessage.MessageType.SINGLE_NC_ATTACHMENT_MESSAGE == message.getCalculateMessageType()
)
@@ -318,6 +319,15 @@ class MessageActionsDialog(
dialogMessageActionsBinding.menuTranslateMessage.visibility = getVisibility(visible)
}
+ private fun initMenuShare(visible: Boolean) {
+ if (visible) {
+ dialogMessageActionsBinding.menuShare.setOnClickListener {
+ chatActivity.share(message)
+ dismiss()
+ }
+ }
+ dialogMessageActionsBinding.menuShare.visibility = getVisibility(visible)
+ }
private fun initMenuItemOpenNcApp(visible: Boolean) {
if (visible) {
diff --git a/app/src/main/res/layout/dialog_message_actions.xml b/app/src/main/res/layout/dialog_message_actions.xml
index 9610f8048..eaabb88bd 100644
--- a/app/src/main/res/layout/dialog_message_actions.xml
+++ b/app/src/main/res/layout/dialog_message_actions.xml
@@ -320,6 +320,39 @@
+
+
+
+
+
+
+
+