Skip to content

Commit dd3fb4f

Browse files
committed
[BOOK-192] fix: BottomNavigationUi Android 15 버전에서 statusBar 색상 조정할 수 없는 문제 해결
BottomNavigation -> BottomNavigationUi 네이밍 변경(통일성)
1 parent b430c06 commit dd3fb4f

File tree

4 files changed

+41
-15
lines changed

4 files changed

+41
-15
lines changed

feature/home/src/main/kotlin/com/ninecraft/booket/feature/home/HomeUi.kt

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import androidx.compose.foundation.layout.fillMaxWidth
1212
import androidx.compose.foundation.layout.height
1313
import androidx.compose.foundation.layout.padding
1414
import androidx.compose.foundation.layout.size
15+
import androidx.compose.foundation.layout.statusBarsPadding
1516
import androidx.compose.foundation.pager.HorizontalPager
1617
import androidx.compose.foundation.pager.rememberPagerState
1718
import androidx.compose.foundation.shape.CircleShape
@@ -41,8 +42,6 @@ internal fun HomeUi(
4142
state: HomeUiState,
4243
modifier: Modifier = Modifier,
4344
) {
44-
HandleHomeSideEffects(state = state)
45-
4645
// TODO: Android 15에서 statusBar 색상 적용 안되는 문제 있음. 해결 예정.
4746
val systemUiController = rememberSystemUiController()
4847

@@ -59,20 +58,23 @@ internal fun HomeUi(
5958
}
6059
}
6160

61+
HandleHomeSideEffects(state = state)
62+
6263
Column(
63-
modifier = modifier.fillMaxSize(),
64+
modifier = modifier
65+
.fillMaxSize()
66+
.background(HomeBg)
67+
.statusBarsPadding()
6468
) {
6569
HomeHeader(
6670
onSettingsClick = {
6771
state.eventSink(HomeUiEvent.OnSettingsClick)
6872
},
69-
modifier = modifier,
7073
)
7174
HomeBanner(
7275
onBookRegisterClick = {
7376
state.eventSink(HomeUiEvent.OnBookRegisterClick)
7477
},
75-
modifier = modifier,
7678
)
7779
HomeContent(
7880
state = state,

feature/library/build.gradle.kts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,5 +17,7 @@ ksp {
1717
dependencies {
1818
implementations(
1919
libs.logger,
20+
21+
libs.compose.system.ui.controller,
2022
)
2123
}

feature/library/src/main/kotlin/com/ninecraft/booket/feature/library/LibraryUi.kt

Lines changed: 28 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,12 @@ import androidx.compose.foundation.layout.Spacer
88
import androidx.compose.foundation.layout.fillMaxSize
99
import androidx.compose.foundation.layout.fillMaxWidth
1010
import androidx.compose.foundation.layout.height
11+
import androidx.compose.foundation.layout.statusBarsPadding
1112
import androidx.compose.foundation.lazy.items
1213
import androidx.compose.material3.CircularProgressIndicator
1314
import androidx.compose.material3.Text
1415
import androidx.compose.runtime.Composable
16+
import androidx.compose.runtime.DisposableEffect
1517
import androidx.compose.ui.Alignment
1618
import androidx.compose.ui.Modifier
1719
import androidx.compose.ui.res.stringResource
@@ -20,7 +22,9 @@ import com.ninecraft.booket.core.designsystem.DevicePreview
2022
import com.ninecraft.booket.core.designsystem.component.button.ReedButton
2123
import com.ninecraft.booket.core.designsystem.component.button.ReedButtonColorStyle
2224
import com.ninecraft.booket.core.designsystem.component.button.largeButtonStyle
25+
import com.ninecraft.booket.core.designsystem.theme.HomeBg
2326
import com.ninecraft.booket.core.designsystem.theme.ReedTheme
27+
import com.ninecraft.booket.core.designsystem.theme.White
2428
import com.ninecraft.booket.core.model.LibraryBookSummaryModel
2529
import com.ninecraft.booket.core.ui.component.InfinityLazyColumn
2630
import com.ninecraft.booket.core.ui.component.LoadStateFooter
@@ -31,21 +35,44 @@ import com.ninecraft.booket.feature.screens.LibraryScreen
3135
import com.slack.circuit.codegen.annotations.CircuitInject
3236
import dagger.hilt.android.components.ActivityRetainedComponent
3337
import kotlinx.collections.immutable.persistentListOf
38+
import tech.thdev.compose.exteions.system.ui.controller.rememberSystemUiController
3439

3540
@CircuitInject(LibraryScreen::class, ActivityRetainedComponent::class)
3641
@Composable
3742
internal fun LibraryUi(
3843
state: LibraryUiState,
3944
modifier: Modifier = Modifier,
4045
) {
46+
// TODO: Android 15에서 statusBar 색상 적용 안되는 문제 있음. 해결 예정.
47+
val systemUiController = rememberSystemUiController()
48+
49+
DisposableEffect(systemUiController) {
50+
systemUiController.setStatusBarColor(
51+
color = White,
52+
darkIcons = true,
53+
)
54+
onDispose {}
55+
}
56+
4157
HandleLibrarySideEffects(
4258
state = state,
4359
eventSink = state.eventSink,
4460
)
4561

4662
Column(
47-
modifier = modifier.fillMaxSize(),
63+
modifier = modifier
64+
.fillMaxSize()
65+
.statusBarsPadding(),
4866
) {
67+
LibraryHeader(
68+
onSearchClick = {
69+
state.eventSink(LibraryUiEvent.OnLibrarySearchClick)
70+
},
71+
onSettingClick = {
72+
state.eventSink(LibraryUiEvent.OnSettingsClick)
73+
},
74+
)
75+
4976
LibraryContent(
5077
state = state,
5178
modifier = modifier,
@@ -63,14 +90,6 @@ internal fun LibraryContent(
6390
horizontalAlignment = Alignment.CenterHorizontally,
6491
verticalArrangement = Arrangement.Center,
6592
) {
66-
LibraryHeader(
67-
onSearchClick = {
68-
state.eventSink(LibraryUiEvent.OnLibrarySearchClick)
69-
},
70-
onSettingClick = {
71-
state.eventSink(LibraryUiEvent.OnSettingsClick)
72-
},
73-
)
7493
FilterChipGroup(
7594
filterList = state.filterChips,
7695
selectedChipOption = state.currentFilter,

feature/main/src/main/kotlin/com/ninecraft/booket/feature/main/bottomnavigation/BottomNavigation.kt renamed to feature/main/src/main/kotlin/com/ninecraft/booket/feature/main/bottomnavigation/BottomNavigationUi.kt

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
package com.ninecraft.booket.feature.main.bottomnavigation
22

3+
import androidx.compose.foundation.layout.WindowInsets
34
import androidx.compose.foundation.layout.fillMaxSize
45
import androidx.compose.foundation.layout.padding
56
import androidx.compose.runtime.Composable
67
import androidx.compose.ui.Modifier
8+
import androidx.compose.ui.unit.dp
79
import com.ninecraft.booket.core.ui.ReedScaffold
810
import com.ninecraft.booket.feature.main.component.MainBottomBar
911
import com.ninecraft.booket.feature.main.component.MainTab
@@ -15,7 +17,7 @@ import kotlinx.collections.immutable.toImmutableList
1517

1618
@CircuitInject(BottomNavigationScreen::class, ActivityRetainedComponent::class)
1719
@Composable
18-
fun BottomNavigation(
20+
fun BottomNavigationUi(
1921
state: BottomNavigationUiState,
2022
modifier: Modifier = Modifier,
2123
) {
@@ -30,6 +32,7 @@ fun BottomNavigation(
3032
},
3133
)
3234
},
35+
contentWindowInsets = WindowInsets(top = 0.dp)
3336
) { innerPadding ->
3437
NavigableCircuitContent(
3538
navigator = state.navigator,

0 commit comments

Comments
 (0)