mirror of
https://github.com/nextcloud/talk-android
synced 2025-06-19 19:49:33 +01:00
Merge pull request #3554 from nextcloud/feature/share_message_text_to_other_apps
Share message text to other apps
This commit is contained in:
commit
fc00f1dcad
@ -347,6 +347,7 @@ class ChatActivity :
|
|||||||
private var isVoicePreviewPlaying: Boolean = false
|
private var isVoicePreviewPlaying: Boolean = false
|
||||||
|
|
||||||
private var recorder: MediaRecorder? = null
|
private var recorder: MediaRecorder? = null
|
||||||
|
|
||||||
private enum class MediaRecorderState {
|
private enum class MediaRecorderState {
|
||||||
INITIAL,
|
INITIAL,
|
||||||
INITIALIZED,
|
INITIALIZED,
|
||||||
@ -356,6 +357,7 @@ class ChatActivity :
|
|||||||
RELEASED,
|
RELEASED,
|
||||||
ERROR
|
ERROR
|
||||||
}
|
}
|
||||||
|
|
||||||
private var mediaRecorderState: MediaRecorderState = MediaRecorderState.INITIAL
|
private var mediaRecorderState: MediaRecorderState = MediaRecorderState.INITIAL
|
||||||
|
|
||||||
private var voicePreviewMediaPlayer: MediaPlayer? = null
|
private var voicePreviewMediaPlayer: MediaPlayer? = null
|
||||||
@ -4518,6 +4520,16 @@ class ChatActivity :
|
|||||||
Log.d(TAG, " |-----------------------------------------------")
|
Log.d(TAG, " |-----------------------------------------------")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun shareMessageText(message: String) {
|
||||||
|
val sendIntent: Intent = Intent().apply {
|
||||||
|
action = Intent.ACTION_SEND
|
||||||
|
putExtra(Intent.EXTRA_TEXT, message)
|
||||||
|
type = "text/plain"
|
||||||
|
}
|
||||||
|
val shareIntent = Intent.createChooser(sendIntent, getString(R.string.share))
|
||||||
|
startActivity(shareIntent)
|
||||||
|
}
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
private val TAG = ChatActivity::class.simpleName
|
private val TAG = ChatActivity::class.simpleName
|
||||||
private const val CONTENT_TYPE_CALL_STARTED: Byte = 1
|
private const val CONTENT_TYPE_CALL_STARTED: Byte = 1
|
||||||
|
@ -79,6 +79,12 @@ class MessageActionsDialog(
|
|||||||
|
|
||||||
private lateinit var popup: EmojiPopup
|
private lateinit var popup: EmojiPopup
|
||||||
|
|
||||||
|
private val messageHasFileAttachment =
|
||||||
|
ChatMessage.MessageType.SINGLE_NC_ATTACHMENT_MESSAGE == message.getCalculateMessageType()
|
||||||
|
|
||||||
|
private val messageHasRegularText = ChatMessage.MessageType.REGULAR_TEXT_MESSAGE == message
|
||||||
|
.getCalculateMessageType() && !message.isDeleted
|
||||||
|
|
||||||
override fun onCreate(savedInstanceState: Bundle?) {
|
override fun onCreate(savedInstanceState: Bundle?) {
|
||||||
super.onCreate(savedInstanceState)
|
super.onCreate(savedInstanceState)
|
||||||
NextcloudTalkApplication.sharedApplication?.componentApplication?.inject(this)
|
NextcloudTalkApplication.sharedApplication?.componentApplication?.inject(this)
|
||||||
@ -112,7 +118,7 @@ class MessageActionsDialog(
|
|||||||
message.previousMessageId > NO_PREVIOUS_MESSAGE_ID &&
|
message.previousMessageId > NO_PREVIOUS_MESSAGE_ID &&
|
||||||
ChatMessage.MessageType.SYSTEM_MESSAGE != message.getCalculateMessageType()
|
ChatMessage.MessageType.SYSTEM_MESSAGE != message.getCalculateMessageType()
|
||||||
)
|
)
|
||||||
initMenuShare(ChatMessage.MessageType.SINGLE_NC_ATTACHMENT_MESSAGE == message.getCalculateMessageType())
|
initMenuShare(messageHasFileAttachment || messageHasRegularText)
|
||||||
initMenuItemOpenNcApp(
|
initMenuItemOpenNcApp(
|
||||||
ChatMessage.MessageType.SINGLE_NC_ATTACHMENT_MESSAGE == message.getCalculateMessageType()
|
ChatMessage.MessageType.SINGLE_NC_ATTACHMENT_MESSAGE == message.getCalculateMessageType()
|
||||||
)
|
)
|
||||||
@ -330,13 +336,20 @@ class MessageActionsDialog(
|
|||||||
|
|
||||||
dialogMessageActionsBinding.menuTranslateMessage.visibility = getVisibility(visible)
|
dialogMessageActionsBinding.menuTranslateMessage.visibility = getVisibility(visible)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun initMenuShare(visible: Boolean) {
|
private fun initMenuShare(visible: Boolean) {
|
||||||
if (visible) {
|
if (messageHasFileAttachment) {
|
||||||
dialogMessageActionsBinding.menuShare.setOnClickListener {
|
dialogMessageActionsBinding.menuShare.setOnClickListener {
|
||||||
chatActivity.checkIfSharable(message)
|
chatActivity.checkIfSharable(message)
|
||||||
dismiss()
|
dismiss()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (messageHasRegularText) {
|
||||||
|
dialogMessageActionsBinding.menuShare.setOnClickListener {
|
||||||
|
message.message?.let { messageText -> chatActivity.shareMessageText(messageText) }
|
||||||
|
dismiss()
|
||||||
|
}
|
||||||
|
}
|
||||||
dialogMessageActionsBinding.menuShare.visibility = getVisibility(visible)
|
dialogMessageActionsBinding.menuShare.visibility = getVisibility(visible)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user