mirror of
https://github.com/nextcloud/talk-android
synced 2025-06-20 03:59:35 +01:00
Fixed media/photo share functionality if not downloaded before
This commit is contained in:
parent
7de538be95
commit
1690ad9216
@ -188,7 +188,7 @@ import com.nextcloud.talk.ui.dialog.ShowReactionsDialog
|
|||||||
import com.nextcloud.talk.ui.recyclerview.MessageSwipeActions
|
import com.nextcloud.talk.ui.recyclerview.MessageSwipeActions
|
||||||
import com.nextcloud.talk.ui.recyclerview.MessageSwipeCallback
|
import com.nextcloud.talk.ui.recyclerview.MessageSwipeCallback
|
||||||
import com.nextcloud.talk.utils.ApiUtils
|
import com.nextcloud.talk.utils.ApiUtils
|
||||||
import com.nextcloud.talk.utils.AudioUtils
|
import com.nextcloud.talk.utils.AudioUtils.audioFileToFloatArray
|
||||||
import com.nextcloud.talk.utils.ContactUtils
|
import com.nextcloud.talk.utils.ContactUtils
|
||||||
import com.nextcloud.talk.utils.ConversationUtils
|
import com.nextcloud.talk.utils.ConversationUtils
|
||||||
import com.nextcloud.talk.utils.DateConstants
|
import com.nextcloud.talk.utils.DateConstants
|
||||||
@ -897,16 +897,33 @@ class ChatActivity :
|
|||||||
message.isDownloadingVoiceMessage = true
|
message.isDownloadingVoiceMessage = true
|
||||||
adapter?.update(message)
|
adapter?.update(message)
|
||||||
CoroutineScope(Dispatchers.Default).launch {
|
CoroutineScope(Dispatchers.Default).launch {
|
||||||
val r = AudioUtils.audioFileToFloatArray(file)
|
try {
|
||||||
message.voiceMessageFloatArray = r
|
val r = audioFileToFloatArray(file)
|
||||||
withContext(Dispatchers.Main) {
|
message.voiceMessageFloatArray = r
|
||||||
startPlayback(message)
|
withContext(Dispatchers.Main) {
|
||||||
|
startPlayback(message)
|
||||||
|
}
|
||||||
|
} catch (e: Exception) {
|
||||||
|
e.printStackTrace()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
startPlayback(message)
|
startPlayback(message)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
private fun setUpshare(message: ChatMessage) {
|
||||||
|
val filename = message.selectedIndividualHashMap!!["name"]
|
||||||
|
val file = File(context.cacheDir, filename!!)
|
||||||
|
if (file.exists()) {
|
||||||
|
CoroutineScope(Dispatchers.Default).launch {
|
||||||
|
withContext(Dispatchers.Main) {
|
||||||
|
share(message)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
share(message)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private fun initMessageHolders(): MessageHolders {
|
private fun initMessageHolders(): MessageHolders {
|
||||||
val messageHolders = MessageHolders()
|
val messageHolders = MessageHolders()
|
||||||
@ -1946,6 +1963,10 @@ class ChatActivity :
|
|||||||
if (workInfo.state == WorkInfo.State.SUCCEEDED) {
|
if (workInfo.state == WorkInfo.State.SUCCEEDED) {
|
||||||
setUpWaveform(message)
|
setUpWaveform(message)
|
||||||
// startPlayback(message)
|
// startPlayback(message)
|
||||||
|
setUpshare(message)
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
Log.e(TAG, "Error")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -3931,6 +3952,16 @@ class ChatActivity :
|
|||||||
}
|
}
|
||||||
startActivity(Intent.createChooser(shareIntent, resources.getText(R.string.send_to)))
|
startActivity(Intent.createChooser(shareIntent, resources.getText(R.string.send_to)))
|
||||||
}
|
}
|
||||||
|
fun checkifsharable(message: ChatMessage) {
|
||||||
|
val filename = message.selectedIndividualHashMap!!["name"]
|
||||||
|
path = applicationContext.cacheDir.absolutePath + "/" + filename
|
||||||
|
val file = File(context.cacheDir, filename!!)
|
||||||
|
if (file.exists()) {
|
||||||
|
share(message)
|
||||||
|
}else{
|
||||||
|
downloadFileToCache(message)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
fun openInFilesApp(message: ChatMessage) {
|
fun openInFilesApp(message: ChatMessage) {
|
||||||
val keyID = message.selectedIndividualHashMap!![PreviewMessageViewHolder.KEY_ID]
|
val keyID = message.selectedIndividualHashMap!![PreviewMessageViewHolder.KEY_ID]
|
||||||
|
@ -322,7 +322,7 @@ class MessageActionsDialog(
|
|||||||
private fun initMenuShare(visible: Boolean) {
|
private fun initMenuShare(visible: Boolean) {
|
||||||
if (visible) {
|
if (visible) {
|
||||||
dialogMessageActionsBinding.menuShare.setOnClickListener {
|
dialogMessageActionsBinding.menuShare.setOnClickListener {
|
||||||
chatActivity.share(message)
|
chatActivity.checkifsharable(message)
|
||||||
dismiss()
|
dismiss()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user