Skip to content

Commit b8e586e

Browse files
committed
[BOOK-192] fix: OcrUi Android 15 버전에서 systemBar 색상 조정할 수 없는 문제 해결
1 parent dd3fb4f commit b8e586e

File tree

1 file changed

+36
-23
lines changed
  • feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/ocr

1 file changed

+36
-23
lines changed

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

Lines changed: 36 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -19,18 +19,23 @@ import androidx.compose.foundation.layout.Column
1919
import androidx.compose.foundation.layout.PaddingValues
2020
import androidx.compose.foundation.layout.Row
2121
import androidx.compose.foundation.layout.Spacer
22+
import androidx.compose.foundation.layout.WindowInsets
2223
import androidx.compose.foundation.layout.aspectRatio
2324
import androidx.compose.foundation.layout.fillMaxSize
2425
import androidx.compose.foundation.layout.fillMaxWidth
2526
import androidx.compose.foundation.layout.height
2627
import androidx.compose.foundation.layout.padding
2728
import androidx.compose.foundation.layout.size
29+
import androidx.compose.foundation.layout.statusBarsPadding
30+
import androidx.compose.foundation.layout.systemBars
31+
import androidx.compose.foundation.layout.systemBarsPadding
2832
import androidx.compose.foundation.layout.width
2933
import androidx.compose.foundation.lazy.LazyColumn
3034
import androidx.compose.foundation.shape.CircleShape
3135
import androidx.compose.material3.Button
3236
import androidx.compose.material3.ButtonDefaults
3337
import androidx.compose.material3.Icon
38+
import androidx.compose.material3.Scaffold
3439
import androidx.compose.material3.Text
3540
import androidx.compose.runtime.Composable
3641
import androidx.compose.runtime.DisposableEffect
@@ -73,10 +78,16 @@ internal fun Ocr(
7378
state: OcrUiState,
7479
modifier: Modifier = Modifier,
7580
) {
76-
ReedFullScreen {
77-
when (state.currentUi) {
78-
OcrUi.CAMERA -> CameraPreview(state = state, modifier = modifier)
79-
OcrUi.RESULT -> TextScanResult(state = state, modifier = modifier)
81+
Scaffold(contentWindowInsets = WindowInsets(0.dp)) { innerPadding ->
82+
Box(
83+
modifier = modifier
84+
.fillMaxSize()
85+
.padding(innerPadding)
86+
) {
87+
when (state.currentUi) {
88+
OcrUi.CAMERA -> CameraPreview(state = state, modifier = modifier)
89+
OcrUi.RESULT -> TextScanResult(state = state, modifier = modifier)
90+
}
8091
}
8192
}
8293
}
@@ -120,6 +131,20 @@ private fun CameraPreview(
120131
val systemUiController = rememberSystemUiController()
121132
val isDarkTheme = isSystemInDarkTheme()
122133

134+
DisposableEffect(systemUiController) {
135+
systemUiController.setSystemBarsColor(
136+
color = Neutral950,
137+
isNavigationBarContrastEnforced = false,
138+
)
139+
onDispose {
140+
systemUiController.setSystemBarsColor(
141+
color = White,
142+
darkIcons = !isDarkTheme,
143+
isNavigationBarContrastEnforced = false,
144+
)
145+
}
146+
}
147+
123148
LaunchedEffect(Unit) {
124149
val granted = ContextCompat.checkSelfPermission(context, permission) == PackageManager.PERMISSION_GRANTED
125150
if (granted) {
@@ -141,27 +166,14 @@ private fun CameraPreview(
141166
}
142167
}
143168

144-
DisposableEffect(systemUiController) {
145-
systemUiController.setSystemBarsColor(
146-
color = Neutral950,
147-
isNavigationBarContrastEnforced = false,
148-
)
149-
onDispose {
150-
systemUiController.setSystemBarsColor(
151-
color = White,
152-
darkIcons = !isDarkTheme,
153-
isNavigationBarContrastEnforced = false,
154-
)
155-
}
156-
}
157-
158169
Box(
159-
modifier = modifier.fillMaxSize(),
170+
modifier = modifier
171+
.fillMaxSize()
172+
.background(Neutral950)
173+
.statusBarsPadding(),
160174
) {
161175
Column(
162-
modifier = Modifier
163-
.fillMaxSize()
164-
.background(Neutral950),
176+
modifier = Modifier.fillMaxSize(),
165177
horizontalAlignment = Alignment.CenterHorizontally,
166178
) {
167179
ReedCloseTopAppBar(
@@ -265,7 +277,8 @@ private fun TextScanResult(
265277
Column(
266278
modifier = modifier
267279
.fillMaxSize()
268-
.background(White),
280+
.background(White)
281+
.systemBarsPadding(),
269282
) {
270283
ReedCloseTopAppBar(
271284
title = stringResource(R.string.ocr_sentence_selection),

0 commit comments

Comments
 (0)