From 0392d6b4f8fea5e5238b6d93f146cce03c5b8374 Mon Sep 17 00:00:00 2001 From: Doominika Date: Thu, 14 Aug 2025 11:32:05 +0200 Subject: [PATCH] feat: add callback to PickerController to handle picker completion --- .../familyvault/services/ImagePickerService.kt | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/composeApp/src/iosMain/kotlin/com/github/familyvault/services/ImagePickerService.kt b/composeApp/src/iosMain/kotlin/com/github/familyvault/services/ImagePickerService.kt index 82111547..fb990500 100644 --- a/composeApp/src/iosMain/kotlin/com/github/familyvault/services/ImagePickerService.kt +++ b/composeApp/src/iosMain/kotlin/com/github/familyvault/services/ImagePickerService.kt @@ -37,7 +37,11 @@ class ImagePickerService : IImagePickerService { private var continuation: Continuation>? = null private val selectedImages = mutableStateListOf() - private val pickerController = PickerController(selectedImages) + private val pickerController = PickerController(selectedImages) { + continuation?.resume(getSelectedImageAsByteArrays()) + continuation = null + cont = null + } private val config = PHPickerConfiguration().apply { selectionLimit = 0 filter = PHPickerFilter.imagesFilter @@ -145,7 +149,8 @@ class ImagePickerService : IImagePickerService { @OptIn(BetaInteropApi::class) class PickerController( - val selectedUris: MutableList + val selectedUris: MutableList, + val onFinish: () -> Unit ) : NSObject(), PHPickerViewControllerDelegateProtocol { @@ -160,7 +165,10 @@ class PickerController( } selectedUris.clear() selectedUris.addAll(itemsToAdd) - picker.dismissViewControllerAnimated(true,null) + + picker.dismissViewControllerAnimated(true) { + onFinish() + } } }