Skip to content

Commit 4c30ce7

Browse files
committed
Update, navigation3 theme update by NavEntryDecorator
1 parent ea73699 commit 4c30ce7

File tree

1 file changed

+19
-20
lines changed
  • features/ui-main-container/src/main/java/com/pluu/webtoon/main/container/ui

1 file changed

+19
-20
lines changed

features/ui-main-container/src/main/java/com/pluu/webtoon/main/container/ui/AppNavigation.kt

Lines changed: 19 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import androidx.compose.ui.platform.LocalContext
1313
import androidx.core.net.toUri
1414
import androidx.lifecycle.viewmodel.navigation3.rememberViewModelStoreNavEntryDecorator
1515
import androidx.navigation3.runtime.EntryProviderScope
16+
import androidx.navigation3.runtime.NavEntryDecorator
1617
import androidx.navigation3.runtime.entryProvider
1718
import androidx.navigation3.runtime.rememberSaveableStateHolderNavEntryDecorator
1819
import androidx.navigation3.ui.NavDisplay
@@ -26,6 +27,7 @@ import com.pluu.webtoon.ui.model.PalletColor
2627
import com.pluu.webtoon.weekly.model.UI_NAV_ITEM
2728
import com.pluu.webtoon.weekly.ui.weekly.WeeklyUi
2829
import kotlinx.serialization.Serializable
30+
import timber.log.Timber
2931

3032
@Serializable
3133
sealed interface Screen {
@@ -67,7 +69,8 @@ internal fun AppNavigation(
6769
onBack = { backStack.removeLastOrNull() },
6870
entryDecorators = listOf(
6971
rememberSaveableStateHolderNavEntryDecorator(),
70-
rememberViewModelStoreNavEntryDecorator()
72+
rememberViewModelStoreNavEntryDecorator(),
73+
themeNavEntryDecorator(updateTheme)
7174
),
7275
modifier = modifier,
7376
entryProvider = entryProvider {
@@ -115,26 +118,22 @@ internal fun AppNavigation(
115118
)
116119
}
117120
)
121+
}
122+
123+
@Composable
124+
internal fun themeNavEntryDecorator(
125+
updateTheme: (Boolean) -> Unit
126+
) = NavEntryDecorator<Any> { entry ->
127+
Timber.tag("Logger").d("[Destination] $entry")
128+
updateTheme(
129+
when (entry.contentKey) {
130+
Screen.Setting::class.java.simpleName,
131+
Screen.License::class.java.simpleName -> false
118132

119-
// TODO: 테마 업데이트 대응
120-
// DisposableEffect(navController) {
121-
// val listener = NavController.OnDestinationChangedListener { _, destination, _ ->
122-
// Timber.tag("Logger").d("[Destination] ${destination.route}")
123-
// updateTheme(
124-
// when (destination.route) {
125-
// Screen.Setting::class.java.canonicalName,
126-
// Screen.License::class.java.canonicalName -> false
127-
//
128-
// else -> true
129-
// }
130-
// )
131-
// }
132-
// navController.addOnDestinationChangedListener(listener)
133-
//
134-
// onDispose {
135-
// navController.removeOnDestinationChangedListener(listener)
136-
// }
137-
// }
133+
else -> true
134+
}
135+
)
136+
entry.Content()
138137
}
139138

140139
@Composable

0 commit comments

Comments
 (0)