Skip to content

Commit 169ac9d

Browse files
committed
updating the known SDK mimetypes and making use of them for the intent switches
1 parent 59ef8e1 commit 169ac9d

File tree

2 files changed

+19
-5
lines changed

2 files changed

+19
-5
lines changed

matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/util/MimeTypes.kt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,9 +33,15 @@ object MimeTypes {
3333

3434
const val Ogg = "audio/ogg"
3535

36+
const val PlainText = "text/plain"
37+
3638
fun String?.normalizeMimeType() = if (this == BadJpg) Jpeg else this
3739

3840
fun String?.isMimeTypeImage() = this?.startsWith("image/").orFalse()
3941
fun String?.isMimeTypeVideo() = this?.startsWith("video/").orFalse()
4042
fun String?.isMimeTypeAudio() = this?.startsWith("audio/").orFalse()
43+
fun String?.isMimeTypeApplication() = this?.startsWith("application/").orFalse()
44+
fun String?.isMimeTypeFile() = this?.startsWith("file/").orFalse()
45+
fun String?.isMimeTypeText() = this?.startsWith("text/").orFalse()
46+
fun String?.isMimeTypeAny() = this?.startsWith("*/").orFalse()
4147
}

vector/src/main/java/im/vector/app/features/attachments/ShareIntentHandler.kt

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,14 @@ package im.vector.app.features.attachments
1919
import android.content.Context
2020
import android.content.Intent
2121
import org.matrix.android.sdk.api.session.content.ContentAttachmentData
22+
import org.matrix.android.sdk.api.util.MimeTypes
23+
import org.matrix.android.sdk.api.util.MimeTypes.isMimeTypeAny
24+
import org.matrix.android.sdk.api.util.MimeTypes.isMimeTypeApplication
25+
import org.matrix.android.sdk.api.util.MimeTypes.isMimeTypeAudio
26+
import org.matrix.android.sdk.api.util.MimeTypes.isMimeTypeFile
27+
import org.matrix.android.sdk.api.util.MimeTypes.isMimeTypeImage
28+
import org.matrix.android.sdk.api.util.MimeTypes.isMimeTypeText
29+
import org.matrix.android.sdk.api.util.MimeTypes.isMimeTypeVideo
2230
import javax.inject.Inject
2331

2432
class ShareIntentHandler @Inject constructor(
@@ -34,11 +42,11 @@ class ShareIntentHandler @Inject constructor(
3442
fun handleIncomingShareIntent(intent: Intent, onFile: (List<ContentAttachmentData>) -> Unit, onPlainText: (String) -> Unit): Boolean {
3543
val type = intent.resolveType(context) ?: return false
3644
return when {
37-
type == "text/plain" -> handlePlainText(intent, onPlainText)
38-
type.startsWith("image") -> onFile(multiPickerIncomingFiles.image(intent)).let { true }
39-
type.startsWith("video") -> onFile(multiPickerIncomingFiles.video(intent)).let { true }
40-
type.startsWith("audio") -> onFile(multiPickerIncomingFiles.audio(intent)).let { true }
41-
type.startsWith("application") || type.startsWith("file") || type.startsWith("text") || type.startsWith("*") -> {
45+
type == MimeTypes.PlainText -> handlePlainText(intent, onPlainText)
46+
type.isMimeTypeImage() -> onFile(multiPickerIncomingFiles.image(intent)).let { true }
47+
type.isMimeTypeVideo() -> onFile(multiPickerIncomingFiles.video(intent)).let { true }
48+
type.isMimeTypeAudio() -> onFile(multiPickerIncomingFiles.audio(intent)).let { true }
49+
type.isMimeTypeApplication() || type.isMimeTypeFile() || type.isMimeTypeText() || type.isMimeTypeAny() -> {
4250
onFile(multiPickerIncomingFiles.file(intent)).let { true }
4351
}
4452
else -> false

0 commit comments

Comments
 (0)