diff --git a/apps/android/app/src/main/AndroidManifest.xml b/apps/android/app/src/main/AndroidManifest.xml index 3c1d1da835..9c34cbf7a9 100644 --- a/apps/android/app/src/main/AndroidManifest.xml +++ b/apps/android/app/src/main/AndroidManifest.xml @@ -69,6 +69,11 @@ + + + + + (intent.getParcelableExtra(Intent.EXTRA_STREAM) as? Uri)?.let { - chatModel.sharedContent.value = SharedContent.Image(it) + chatModel.sharedContent.value = SharedContent.Images(listOf(it)) } // All other mime types else -> (intent.getParcelableExtra(Intent.EXTRA_STREAM) as? Uri)?.let { chatModel.sharedContent.value = SharedContent.File(it) } } } + Intent.ACTION_SEND_MULTIPLE -> { + // Close active chat and show a list of chats + chatModel.chatId.value = null + chatModel.clearOverlays.value = true + when { + intent.type?.startsWith("image/") == true -> (intent.getParcelableArrayListExtra(Intent.EXTRA_STREAM) as? List)?.let { + chatModel.sharedContent.value = SharedContent.Images(it) + } // All other mime types + else -> {} + } + } } } diff --git a/apps/android/app/src/main/java/chat/simplex/app/views/chat/ComposeView.kt b/apps/android/app/src/main/java/chat/simplex/app/views/chat/ComposeView.kt index 3d2ef17dec..f2a3781776 100644 --- a/apps/android/app/src/main/java/chat/simplex/app/views/chat/ComposeView.kt +++ b/apps/android/app/src/main/java/chat/simplex/app/views/chat/ComposeView.kt @@ -500,7 +500,7 @@ fun ComposeView( LaunchedEffect(chatModel.sharedContent.value) { when (val shared = chatModel.sharedContent.value) { is SharedContent.Text -> onMessageChange(shared.text) - is SharedContent.Image -> processPickedImage(listOf(shared.uri)) + is SharedContent.Images -> processPickedImage(shared.uris) is SharedContent.File -> processPickedFile(shared.uri) null -> {} } diff --git a/apps/android/app/src/main/java/chat/simplex/app/views/chatlist/ShareListView.kt b/apps/android/app/src/main/java/chat/simplex/app/views/chatlist/ShareListView.kt index e4df296c71..8c8b20fc1c 100644 --- a/apps/android/app/src/main/java/chat/simplex/app/views/chatlist/ShareListView.kt +++ b/apps/android/app/src/main/java/chat/simplex/app/views/chatlist/ShareListView.kt @@ -93,7 +93,7 @@ private fun ShareListToolbar(chatModel: ChatModel, stopped: Boolean, onSearchVal Text( when (chatModel.sharedContent.value) { is SharedContent.Text -> stringResource(R.string.share_message) - is SharedContent.Image -> stringResource(R.string.share_image) + is SharedContent.Images -> stringResource(R.string.share_image) is SharedContent.File -> stringResource(R.string.share_file) else -> stringResource(R.string.share_message) }, diff --git a/apps/android/app/src/main/java/chat/simplex/app/views/helpers/Enums.kt b/apps/android/app/src/main/java/chat/simplex/app/views/helpers/Enums.kt index 9d5c1ef616..38511ba3ed 100644 --- a/apps/android/app/src/main/java/chat/simplex/app/views/helpers/Enums.kt +++ b/apps/android/app/src/main/java/chat/simplex/app/views/helpers/Enums.kt @@ -7,7 +7,7 @@ import kotlinx.coroutines.flow.MutableStateFlow sealed class SharedContent { data class Text(val text: String): SharedContent() - data class Image(val uri: Uri): SharedContent() + data class Images(val uris: List): SharedContent() data class File(val uri: Uri): SharedContent() }