Set default alt-text to media label when pasting images (#3800)

GBoard and other IME's support pasting images, which are converted to attachments.

Sometimes these have labels that describe the image. If present, set it as the default alt-text.

Fixes #3799
This commit is contained in:
Nik Clayton 2023-07-07 18:50:19 +02:00 committed by GitHub
parent c29a7dfe03
commit 480d412e4c
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -943,7 +943,10 @@ class ComposeActivity :
val split = contentInfo.partition { item: ClipData.Item -> item.uri != null } val split = contentInfo.partition { item: ClipData.Item -> item.uri != null }
split.first?.let { content -> split.first?.let { content ->
for (i in 0 until content.clip.itemCount) { for (i in 0 until content.clip.itemCount) {
pickMedia(content.clip.getItemAt(i).uri) pickMedia(
content.clip.getItemAt(i).uri,
contentInfo.clip.description.label as String?
)
} }
} }
return split.second return split.second
@ -1064,9 +1067,9 @@ class ComposeActivity :
viewModel.removeMediaFromQueue(item) viewModel.removeMediaFromQueue(item)
} }
private fun pickMedia(uri: Uri) { private fun pickMedia(uri: Uri, description: String? = null) {
lifecycleScope.launch { lifecycleScope.launch {
viewModel.pickMedia(uri).onFailure { throwable -> viewModel.pickMedia(uri, description).onFailure { throwable ->
val errorString = when (throwable) { val errorString = when (throwable) {
is FileSizeException -> { is FileSizeException -> {
val decimalFormat = DecimalFormat("0.##") val decimalFormat = DecimalFormat("0.##")