From 799d9443bdc2ac958559c651c47f6900a158fa8a Mon Sep 17 00:00:00 2001
From: Stanislav Dmitrenko <7953703+avently@users.noreply.github.com>
Date: Thu, 13 Oct 2022 20:39:24 +0300
Subject: [PATCH] android: Multiple images sharing (#1206)
---
apps/android/app/src/main/AndroidManifest.xml | 5 +++++
.../src/main/java/chat/simplex/app/MainActivity.kt | 13 ++++++++++++-
.../java/chat/simplex/app/views/chat/ComposeView.kt | 2 +-
.../simplex/app/views/chatlist/ShareListView.kt | 2 +-
.../java/chat/simplex/app/views/helpers/Enums.kt | 2 +-
5 files changed, 20 insertions(+), 4 deletions(-)
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()
}