diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml
index 66f2eb5..b428dbe 100644
--- a/android/app/src/main/AndroidManifest.xml
+++ b/android/app/src/main/AndroidManifest.xml
@@ -38,6 +38,22 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
> = emptyList()
+
override fun configureFlutterEngine(flutterEngine: FlutterEngine) {
super.configureFlutterEngine(flutterEngine)
- MethodChannel(flutterEngine.dartExecutor.binaryMessenger, "jj_mkvmaker/android").setMethodCallHandler { call, result ->
+ pendingOpen = openedFiles(intent)
+ val ch = MethodChannel(flutterEngine.dartExecutor.binaryMessenger, "jj_mkvmaker/android")
+ channel = ch
+ ch.setMethodCallHandler { call, result ->
when (call.method) {
+ "takeOpenedFiles" -> {
+ result.success(pendingOpen)
+ pendingOpen = emptyList()
+ }
"hasAllFilesAccess" -> result.success(hasAllFilesAccess())
"requestAllFilesAccess" -> {
requestAllFilesAccess()
@@ -83,6 +95,96 @@ class MainActivity : FlutterActivity() {
)
}
+ /// 앱이 켜져 있을 때 다른 앱에서 동영상을 열면 (launchMode singleTop)
+ override fun onNewIntent(intent: Intent) {
+ super.onNewIntent(intent)
+ val files = openedFiles(intent)
+ if (files.isNotEmpty()) channel?.invokeMethod("openFiles", files)
+ }
+
+ /// 연결 프로그램 (VIEW) · 공유 (SEND) 로 받은 동영상: [{path (실제 경로, 모르면 null), uri, name}]
+ private fun openedFiles(intent: Intent?): List