icerockdev / moko-widgets

Multiplatform UI DSL with screen management in common code for mobile (android & ios) Kotlin Multiplatform development
https://moko.icerock.dev
Apache License 2.0
387 stars 32 forks source link

Add widgets-media extension library #168

Closed Alex009 closed 4 years ago

Alex009 commented 4 years ago

Just like #167 but with MediaPickerController

common:

expect fun Screen<*>.createMediaPickerController(permissionsController: PermissionsController): MediaPickerController

expect fun MediaPickerController.bind(screen: Screen<*>)

android:

actual fun Screen<*>.createMediaPickerController(permissionsController: PermissionsController): MediaPickerController {
    return MediaPickerController(permissionsController = permissionsController)
}

actual fun MediaPickerController.bind(screen: Screen<*>) { 
    bind(lifecycle = screen.lifecycle, fragmentManager = screen.childFragmentManager)
}

ios:

actual fun Screen<*>.createMediaPickerController(permissionsController: PermissionsController): MediaPickerController {
    return MediaPickerController(permissionsController = permissionsController, viewController = this.viewController)
}

actual fun MediaPickerController.bind(screen: Screen<*>) { 
    // nothing todo - bind only for android
}

https://github.com/icerockdev/moko-media

Alex009 commented 4 years ago

merged