Skip to content

Commit 53a4508

Browse files
committed
[BOOK-491] refactor: Presenter 내에 하드코딩된 문자열 제거
1 parent 237de4a commit 53a4508

4 files changed

Lines changed: 8 additions & 4 deletions

File tree

feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/ocr/HandleOcrSideEffects.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ internal fun HandleOcrSideEffects(
1414
RememberedEffect(state.sideEffect) {
1515
when (state.sideEffect) {
1616
is OcrSideEffect.ShowToast -> {
17-
Toast.makeText(context, state.sideEffect.message, Toast.LENGTH_SHORT).show()
17+
Toast.makeText(context, state.sideEffect.message.asString(context), Toast.LENGTH_SHORT).show()
1818
}
1919

2020
null -> {}

feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/ocr/OcrPresenter.kt

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,10 @@ import androidx.compose.runtime.rememberCoroutineScope
99
import androidx.compose.runtime.setValue
1010
import androidx.core.net.toUri
1111
import com.ninecraft.booket.core.common.analytics.AnalyticsHelper
12+
import com.ninecraft.booket.core.common.utils.UiText
1213
import com.ninecraft.booket.core.common.utils.handleException
1314
import com.ninecraft.booket.core.ocr.recognizer.CloudOcrRecognizer
15+
import com.ninecraft.booket.feature.record.R
1416
import com.ninecraft.booket.feature.record.ocr.OcrSideEffect.ShowToast
1517
import com.ninecraft.booket.feature.screens.OcrScreen
1618
import com.ninecraft.booket.feature.screens.OcrScreen.OcrResult
@@ -124,7 +126,7 @@ class OcrPresenter(
124126

125127
val handleErrorMessage = { message: String ->
126128
Logger.e("Cloud Vision API Error: ${exception.message}")
127-
sideEffect = OcrSideEffect.ShowToast(message)
129+
sideEffect = ShowToast(UiText.DirectString(message))
128130
}
129131

130132
handleException(
@@ -159,7 +161,7 @@ class OcrPresenter(
159161

160162
is OcrUiEvent.OnCaptureFailed -> {
161163
isLoading = false
162-
sideEffect = ShowToast("이미지 캡처에 실패했어요")
164+
sideEffect = ShowToast(UiText.StringResource(R.string.ocr_capture_failed))
163165
Logger.e("ImageCaptureException: ${event.exception.message}")
164166
}
165167

feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/ocr/OcrUiState.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package com.ninecraft.booket.feature.record.ocr
22

33
import android.net.Uri
44
import androidx.compose.runtime.Immutable
5+
import com.ninecraft.booket.core.common.utils.UiText
56
import com.slack.circuit.runtime.CircuitUiEvent
67
import com.slack.circuit.runtime.CircuitUiState
78
import kotlinx.collections.immutable.ImmutableList
@@ -28,7 +29,7 @@ data class OcrUiState(
2829
@Immutable
2930
sealed interface OcrSideEffect {
3031
data class ShowToast(
31-
val message: String,
32+
val message: UiText,
3233
private val key: String = UUID.randomUUID().toString(),
3334
) : OcrSideEffect
3435
}

feature/record/src/main/res/values/strings.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,4 +56,5 @@
5656
<string name="ocr_recognition_failed_dialog_direct_input">직접 입력하기</string>
5757
<string name="ocr_recognition_failed_dialog_camera">다시 촬영하기</string>
5858
<string name="ocr_recognition_failed_dialog_image">이미지 선택하기</string>
59+
<string name="ocr_capture_failed">이미지 캡처에 실패했어요</string>
5960
</resources>

0 commit comments

Comments
 (0)