@@ -73,11 +73,7 @@ class MultipleImagePickerImp(reactContext: ReactApplicationContext?) :
7373 setStyle() // set style for UI
7474 handleSelectedAssets(config)
7575
76- val chooseMode = when (config.mediaType) {
77- MediaType .VIDEO -> SelectMimeType .ofVideo()
78- MediaType .IMAGE -> SelectMimeType .ofImage()
79- else -> SelectMimeType .ofAll()
80- }
76+ val chooseMode = getChooseMode(config.mediaType)
8177
8278 val maxSelect = config.maxSelect?.toInt() ? : 20
8379 val maxVideo = config.maxVideo?.toInt() ? : 20
@@ -312,6 +308,45 @@ class MultipleImagePickerImp(reactContext: ReactApplicationContext?) :
312308 return OnCustomLoadingListener { context -> LoadingDialog (context) }
313309 }
314310
311+ @ReactMethod
312+ fun openCamera (
313+ config : NitroCameraConfig ,
314+ resolved : (result: CameraResult ) -> Unit ,
315+ rejected : (reject: Double ) -> Unit
316+ ) {
317+ val chooseMode = getChooseMode(config.mediaType)
318+ val cameraConfig = PickerCameraConfig (
319+ cameraDevice = config.cameraDevice,
320+ videoMaximumDuration = config.videoMaximumDuration
321+ )
322+
323+ PictureSelector
324+ .create(currentActivity)
325+ .openCamera(chooseMode)
326+ // .setLanguage(getLanguage(config.language))
327+ .isQuickCapture(true )
328+ .setCameraInterceptListener(CameraEngine (appContext, cameraConfig))
329+ .forResult(object : OnResultCallbackListener <LocalMedia ?> {
330+ override fun onResult (result : java.util.ArrayList <LocalMedia ?>? ) {
331+ println (" camera: $result " )
332+ }
333+
334+ override fun onCancel () {
335+ TODO (" Not yet implemented" )
336+ }
337+
338+ })
339+
340+ }
341+
342+ private fun getChooseMode (mediaType : MediaType ): Int {
343+ return when (mediaType) {
344+ MediaType .VIDEO -> SelectMimeType .ofVideo()
345+ MediaType .IMAGE -> SelectMimeType .ofImage()
346+ else -> SelectMimeType .ofAll()
347+ }
348+ }
349+
315350
316351 private fun getLanguage (language : Language ): Int {
317352 return when (language) {
0 commit comments