@@ -20,6 +20,7 @@ import android.content.ClipData
20
20
import android.content.ClipDescription
21
21
import android.os.Build
22
22
import android.view.View
23
+ import androidx.activity.compose.LocalActivity
23
24
import androidx.annotation.RequiresApi
24
25
import androidx.compose.foundation.ExperimentalFoundationApi
25
26
import androidx.compose.foundation.draganddrop.dragAndDropSource
@@ -31,6 +32,7 @@ import androidx.compose.ui.draganddrop.DragAndDropEvent
31
32
import androidx.compose.ui.draganddrop.DragAndDropTarget
32
33
import androidx.compose.ui.draganddrop.DragAndDropTransferData
33
34
import androidx.compose.ui.draganddrop.mimeTypes
35
+ import androidx.compose.ui.draganddrop.toAndroidDragEvent
34
36
35
37
@RequiresApi(Build .VERSION_CODES .N )
36
38
@OptIn(ExperimentalFoundationApi ::class )
@@ -71,6 +73,22 @@ private fun DragAndDropSnippet() {
71
73
}
72
74
// [END android_compose_drag_and_drop_4]
73
75
76
+ LocalActivity .current?.let { activity ->
77
+ // [START android_compose_drag_and_drop_7]
78
+ val externalAppCallback = remember {
79
+ object : DragAndDropTarget {
80
+ override fun onDrop (event : DragAndDropEvent ): Boolean {
81
+ val permission =
82
+ activity.requestDragAndDropPermissions(event.toAndroidDragEvent())
83
+ // Parse received data
84
+ permission?.release()
85
+ return true
86
+ }
87
+ }
88
+ }
89
+ // [END android_compose_drag_and_drop_7]
90
+ }
91
+
74
92
// [START android_compose_drag_and_drop_5]
75
93
Modifier .dragAndDropTarget(
76
94
shouldStartDragAndDrop = { event ->
0 commit comments