From 409b4125e7bc4b30e984bc5d7eb97c9a072c7a69 Mon Sep 17 00:00:00 2001 From: Thibault Deckers Date: Sun, 18 Apr 2021 15:09:02 +0900 Subject: [PATCH] android: handle share intent --- android/app/src/main/AndroidManifest.xml | 11 +++++++++++ .../main/kotlin/deckers/thibault/aves/MainActivity.kt | 5 +++-- .../aves/model/provider/ContentImageProvider.kt | 5 +++++ 3 files changed, 19 insertions(+), 2 deletions(-) diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml index bde50c227..1aa2beace 100644 --- a/android/app/src/main/AndroidManifest.xml +++ b/android/app/src/main/AndroidManifest.xml @@ -62,6 +62,14 @@ + + + + + + + + @@ -69,6 +77,7 @@ + @@ -88,6 +97,7 @@ + @@ -96,6 +106,7 @@ + diff --git a/android/app/src/main/kotlin/deckers/thibault/aves/MainActivity.kt b/android/app/src/main/kotlin/deckers/thibault/aves/MainActivity.kt index a29d60cf7..e73bf059b 100644 --- a/android/app/src/main/kotlin/deckers/thibault/aves/MainActivity.kt +++ b/android/app/src/main/kotlin/deckers/thibault/aves/MainActivity.kt @@ -4,6 +4,7 @@ import android.content.Intent import android.net.Uri import android.os.Build import android.os.Bundle +import android.os.Parcelable import android.util.Log import androidx.annotation.RequiresApi import androidx.core.content.pm.ShortcutInfoCompat @@ -111,8 +112,8 @@ class MainActivity : FlutterActivity() { ) } } - Intent.ACTION_VIEW, "com.android.camera.action.REVIEW" -> { - intent.data?.let { uri -> + Intent.ACTION_VIEW, Intent.ACTION_SEND, "com.android.camera.action.REVIEW" -> { + (intent.data ?: (intent.getParcelableExtra(Intent.EXTRA_STREAM) as? Uri))?.let { uri -> return hashMapOf( "action" to "view", "uri" to uri.toString(), diff --git a/android/app/src/main/kotlin/deckers/thibault/aves/model/provider/ContentImageProvider.kt b/android/app/src/main/kotlin/deckers/thibault/aves/model/provider/ContentImageProvider.kt index 9fc5a7f66..3aef05e2a 100644 --- a/android/app/src/main/kotlin/deckers/thibault/aves/model/provider/ContentImageProvider.kt +++ b/android/app/src/main/kotlin/deckers/thibault/aves/model/provider/ContentImageProvider.kt @@ -19,6 +19,7 @@ internal class ContentImageProvider : ImageProvider() { try { val cursor = context.contentResolver.query(uri, projection, null, null, null) if (cursor != null && cursor.moveToFirst()) { + cursor.getColumnIndex(PATH).let { if (it != -1) map["path"] = cursor.getString(it) } cursor.getColumnIndex(MediaStore.MediaColumns.SIZE).let { if (it != -1) map["sizeBytes"] = cursor.getLong(it) } cursor.getColumnIndex(MediaStore.MediaColumns.DISPLAY_NAME).let { if (it != -1) map["title"] = cursor.getString(it) } cursor.close() @@ -37,7 +38,11 @@ internal class ContentImageProvider : ImageProvider() { } companion object { + @Suppress("DEPRECATION") + const val PATH = MediaStore.MediaColumns.DATA + private val projection = arrayOf( + PATH, MediaStore.MediaColumns.SIZE, MediaStore.MediaColumns.DISPLAY_NAME )