File tree Expand file tree Collapse file tree 3 files changed +18
-4
lines changed
feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/ocr Expand file tree Collapse file tree 3 files changed +18
-4
lines changed Original file line number Diff line number Diff line change @@ -97,7 +97,17 @@ class OcrPresenter @AssistedInject constructor(
9797 isPermissionDialogVisible = false
9898 }
9999
100- is OcrUiEvent .OnCaptureButtonClick -> {
100+ is OcrUiEvent .OnCaptureStart -> {
101+ isLoading = true
102+ }
103+
104+ is OcrUiEvent .OnCaptureFailed -> {
105+ isLoading = false
106+ sideEffect = OcrSideEffect .ShowToast (" 이미지 캡처에 실패했어요" )
107+ Logger .e(" ImageCaptureException: ${event.exception.message} " )
108+ }
109+
110+ is OcrUiEvent .OnImageCaptured -> {
101111 isTextDetectionFailed = false
102112
103113 recognizeText(event.imageUri)
Original file line number Diff line number Diff line change @@ -252,6 +252,8 @@ private fun CameraPreview(
252252 Button (
253253 enabled = ! state.isLoading,
254254 onClick = {
255+ state.eventSink(OcrUiEvent .OnCaptureStart )
256+
255257 val executor = ContextCompat .getMainExecutor(context)
256258 val photoFile = File .createTempFile(" ocr_" , " .jpg" , context.cacheDir)
257259 val output = ImageCapture .OutputFileOptions .Builder (photoFile).build()
@@ -261,11 +263,11 @@ private fun CameraPreview(
261263 executor,
262264 object : ImageCapture .OnImageSavedCallback {
263265 override fun onImageSaved (outputFileResults : ImageCapture .OutputFileResults ) {
264- state.eventSink(OcrUiEvent .OnCaptureButtonClick (photoFile.toUri()))
266+ state.eventSink(OcrUiEvent .OnImageCaptured (photoFile.toUri()))
265267 }
266268
267269 override fun onError (exception : ImageCaptureException ) {
268- Logger .e( " ImageCaptureException: ${exception.message} " )
270+ state.eventSink( OcrUiEvent . OnCaptureFailed (exception) )
269271 }
270272 },
271273 )
Original file line number Diff line number Diff line change @@ -32,7 +32,9 @@ sealed interface OcrUiEvent : CircuitUiEvent {
3232 data object OnCloseClick : OcrUiEvent
3333 data object OnShowPermissionDialog : OcrUiEvent
3434 data object OnHidePermissionDialog : OcrUiEvent
35- data class OnCaptureButtonClick (val imageUri : Uri ) : OcrUiEvent
35+ data object OnCaptureStart : OcrUiEvent
36+ data class OnCaptureFailed (val exception : Exception ) : OcrUiEvent
37+ data class OnImageCaptured (val imageUri : Uri ) : OcrUiEvent
3638 data object OnReCaptureButtonClick : OcrUiEvent
3739 data object OnSelectionConfirmed : OcrUiEvent
3840 data object OnRecaptureDialogConfirmed : OcrUiEvent
You can’t perform that action at this time.
0 commit comments