From bfeda11db59863e681a03a0691032e430aaaf276 Mon Sep 17 00:00:00 2001 From: Alexey Nesterov Date: Mon, 20 May 2024 13:01:37 +0700 Subject: [PATCH] #34 code style --- .../moko/media/picker/CameraPickerDelegate.kt | 39 +++++++++---------- .../moko/media/picker/FilePickerDelegate.kt | 5 ++- .../media/picker/GalleryPickerDelegate.kt | 33 +++++++--------- .../media/picker/MediaPickerControllerImpl.kt | 18 +++++---- .../moko/media/picker/MediaPickerDelegate.kt | 5 ++- .../moko/media/picker/PickerDelegate.kt | 18 ++++++--- 6 files changed, 63 insertions(+), 55 deletions(-) diff --git a/media/src/androidMain/kotlin/dev/icerock/moko/media/picker/CameraPickerDelegate.kt b/media/src/androidMain/kotlin/dev/icerock/moko/media/picker/CameraPickerDelegate.kt index 3bf92b2..e7847e8 100644 --- a/media/src/androidMain/kotlin/dev/icerock/moko/media/picker/CameraPickerDelegate.kt +++ b/media/src/androidMain/kotlin/dev/icerock/moko/media/picker/CameraPickerDelegate.kt @@ -38,43 +38,42 @@ internal class CameraPickerDelegate : ) } - fun pick( - maxWidth: Int, - maxHeight: Int, + override fun createCallback( callback: (Result) -> Unit, - outputUri: Uri, - ) { - super.pick(callback) - - this.callback = CameraPickerCallbackData( + mediaOptions: MediaOptions? + ): CameraPickerCallbackData { + val cameraPickerMediaOptions = mediaOptions as? CameraPickerMediaOptions + val outputUri = cameraPickerMediaOptions?.outputUri ?: Uri.EMPTY + val maxWidth = cameraPickerMediaOptions?.maxWidth ?: 0 + val maxHeight = cameraPickerMediaOptions?.maxHeight ?: 0 + return CameraPickerCallbackData( callback, outputUri, maxWidth, maxHeight, ) + } + override fun launchActivityResult(mediaOptions: MediaOptions?) { + val cameraPickerMediaOptions = mediaOptions as? CameraPickerMediaOptions + val outputUri = cameraPickerMediaOptions?.outputUri ?: Uri.EMPTY pickerLauncherHolder.value?.launch( outputUri ) } - override fun createCallback( - callback: (Result) -> Unit, - ): CameraPickerCallbackData = CameraPickerCallbackData( - callback, - Uri.EMPTY, - 0, - 0, - ) - - override fun launchActivityResult() = Unit - class CameraPickerCallbackData( override val callback: (Result) -> Unit, val outputUri: Uri, val maxWidth: Int, val maxHeight: Int, - ) : CallbackData() + ) : CallbackData + + class CameraPickerMediaOptions( + val outputUri: Uri, + val maxWidth: Int, + val maxHeight: Int, + ) : MediaOptions companion object { private const val PICK_CAMERA_IMAGE_KEY = "PickCameraImageKey" diff --git a/media/src/androidMain/kotlin/dev/icerock/moko/media/picker/FilePickerDelegate.kt b/media/src/androidMain/kotlin/dev/icerock/moko/media/picker/FilePickerDelegate.kt index e18e236..af55189 100644 --- a/media/src/androidMain/kotlin/dev/icerock/moko/media/picker/FilePickerDelegate.kt +++ b/media/src/androidMain/kotlin/dev/icerock/moko/media/picker/FilePickerDelegate.kt @@ -62,9 +62,10 @@ internal class FilePickerDelegate : override fun createCallback( callback: (Result) -> Unit, + mediaOptions: MediaOptions? ): FilePickerCallbackData = FilePickerCallbackData(callback) - override fun launchActivityResult() { + override fun launchActivityResult(mediaOptions: MediaOptions?) { pickerLauncherHolder.value?.launch( arrayOf( "*/*", @@ -74,7 +75,7 @@ internal class FilePickerDelegate : class FilePickerCallbackData( override val callback: (Result) -> Unit - ) : CallbackData() + ) : CallbackData companion object { private const val PICK_FILE_KEY = "PickFileKey" diff --git a/media/src/androidMain/kotlin/dev/icerock/moko/media/picker/GalleryPickerDelegate.kt b/media/src/androidMain/kotlin/dev/icerock/moko/media/picker/GalleryPickerDelegate.kt index 3cc8823..f03de13 100644 --- a/media/src/androidMain/kotlin/dev/icerock/moko/media/picker/GalleryPickerDelegate.kt +++ b/media/src/androidMain/kotlin/dev/icerock/moko/media/picker/GalleryPickerDelegate.kt @@ -38,39 +38,36 @@ internal class GalleryPickerDelegate : ) } - fun pick( - maxWidth: Int, - maxHeight: Int, + override fun createCallback( callback: (Result) -> Unit, - ) { - super.pick(callback) - - this.callback = GalleryPickerCallbackData( + mediaOptions: MediaOptions? + ): GalleryPickerCallbackData { + val galleryPickerMediaOptions = mediaOptions as? GalleryPickerMediaOptions + val maxWidth = galleryPickerMediaOptions?.maxWidth ?: 0 + val maxHeight = galleryPickerMediaOptions?.maxHeight ?: 0 + return GalleryPickerCallbackData( callback, maxWidth, maxHeight, ) + } + override fun launchActivityResult(mediaOptions: MediaOptions?) { pickerLauncherHolder.value?.launch( PickVisualMediaRequest(ActivityResultContracts.PickVisualMedia.ImageOnly) ) } - override fun createCallback( - callback: (Result) -> Unit, - ): GalleryPickerCallbackData = GalleryPickerCallbackData( - callback, - 0, - 0, - ) - - override fun launchActivityResult() = Unit - class GalleryPickerCallbackData( override val callback: (Result) -> Unit, val maxWidth: Int, val maxHeight: Int, - ) : CallbackData() + ) : CallbackData + + class GalleryPickerMediaOptions( + val maxWidth: Int, + val maxHeight: Int, + ) : MediaOptions companion object { private const val PICK_GALLERY_IMAGE_KEY = "PickGalleryImageKey" diff --git a/media/src/androidMain/kotlin/dev/icerock/moko/media/picker/MediaPickerControllerImpl.kt b/media/src/androidMain/kotlin/dev/icerock/moko/media/picker/MediaPickerControllerImpl.kt index a12da53..2ce81ca 100755 --- a/media/src/androidMain/kotlin/dev/icerock/moko/media/picker/MediaPickerControllerImpl.kt +++ b/media/src/androidMain/kotlin/dev/icerock/moko/media/picker/MediaPickerControllerImpl.kt @@ -80,16 +80,20 @@ internal class MediaPickerControllerImpl( val action: (Result) -> Unit = { continuation.resumeWith(it) } when (source) { MediaSource.GALLERY -> galleryPickerDelegate.pick( - maxWidth, - maxHeight, - action, + callback = action, + mediaOptions = GalleryPickerDelegate.GalleryPickerMediaOptions( + maxWidth = maxWidth, + maxHeight = maxHeight, + ) ) MediaSource.CAMERA -> cameraPickerDelegate.pick( - maxWidth, - maxHeight, - action, - outputUri, + callback = action, + mediaOptions = CameraPickerDelegate.CameraPickerMediaOptions( + outputUri = outputUri, + maxWidth = maxWidth, + maxHeight = maxHeight, + ) ) } } diff --git a/media/src/androidMain/kotlin/dev/icerock/moko/media/picker/MediaPickerDelegate.kt b/media/src/androidMain/kotlin/dev/icerock/moko/media/picker/MediaPickerDelegate.kt index 01bdae8..708f10b 100644 --- a/media/src/androidMain/kotlin/dev/icerock/moko/media/picker/MediaPickerDelegate.kt +++ b/media/src/androidMain/kotlin/dev/icerock/moko/media/picker/MediaPickerDelegate.kt @@ -40,9 +40,10 @@ internal class MediaPickerDelegate : override fun createCallback( callback: (Result) -> Unit, + mediaOptions: MediaOptions? ): MediaPickerCallbackData = MediaPickerCallbackData(callback) - override fun launchActivityResult() { + override fun launchActivityResult(mediaOptions: MediaOptions?) { pickerLauncherHolder.value?.launch( PickVisualMediaRequest(ActivityResultContracts.PickVisualMedia.ImageAndVideo) ) @@ -50,7 +51,7 @@ internal class MediaPickerDelegate : class MediaPickerCallbackData( override val callback: (Result) -> Unit, - ) : CallbackData() + ) : CallbackData companion object { private const val PICK_MEDIA_KEY = "PickMediaKey" diff --git a/media/src/androidMain/kotlin/dev/icerock/moko/media/picker/PickerDelegate.kt b/media/src/androidMain/kotlin/dev/icerock/moko/media/picker/PickerDelegate.kt index b4c8bdf..06afe7b 100644 --- a/media/src/androidMain/kotlin/dev/icerock/moko/media/picker/PickerDelegate.kt +++ b/media/src/androidMain/kotlin/dev/icerock/moko/media/picker/PickerDelegate.kt @@ -52,22 +52,28 @@ internal abstract class PickerDelegate, I, D> fun pick( callback: (Result) -> Unit, + mediaOptions: MediaOptions? = null, ) { this.callback?.let { it.callback.invoke(Result.failure(IllegalStateException("Callback should be null"))) this.callback = null } - this.callback = createCallback(callback) + this.callback = createCallback(callback, mediaOptions) - launchActivityResult() + launchActivityResult(mediaOptions) } - abstract fun createCallback(callback: (Result) -> Unit): C + abstract fun createCallback( + callback: (Result) -> Unit, + mediaOptions: MediaOptions?, + ): C - abstract fun launchActivityResult() + abstract fun launchActivityResult(mediaOptions: MediaOptions?) - abstract class CallbackData { - abstract val callback: (Result) -> Unit + interface CallbackData { + val callback: (Result) -> Unit } + + interface MediaOptions }