diff --git a/apps/call-blocker/src/main/kotlin/ru/shadowsparky/callblocker/presentation/ui/MainActivity.kt b/apps/call-blocker/src/main/kotlin/ru/shadowsparky/callblocker/presentation/ui/MainActivity.kt index f6e1f8d..a3100a8 100644 --- a/apps/call-blocker/src/main/kotlin/ru/shadowsparky/callblocker/presentation/ui/MainActivity.kt +++ b/apps/call-blocker/src/main/kotlin/ru/shadowsparky/callblocker/presentation/ui/MainActivity.kt @@ -15,7 +15,7 @@ import androidx.compose.ui.res.stringResource import ru.shadowsparky.callblocker.R import ru.shadowsparky.callblocker.domain.RejectPolicyManager import ru.shadowsparky.koin -import ru.shadowsparky.ui.BaseScreen +import ru.shadowsparky.ui.AppScaffold class MainActivity : ComponentActivity() { private val rejectPolicyManager by koin.inject() @@ -26,7 +26,7 @@ class MainActivity : ComponentActivity() { enableEdgeToEdge() val permissionRequest = newPermissionRequest() setContent { - BaseScreen( + AppScaffold( appBar = { TopAppBar(title = { Text(stringResource(R.string.app_name)) }) } diff --git a/apps/vbox/client/shared/src/commonMain/kotlin/ru/shadowsparky/vbox/shared/presentation/BaseScreen.kt b/apps/vbox/client/shared/src/commonMain/kotlin/ru/shadowsparky/vbox/shared/presentation/BaseScreen.kt index 50d09c5..d65271e 100644 --- a/apps/vbox/client/shared/src/commonMain/kotlin/ru/shadowsparky/vbox/shared/presentation/BaseScreen.kt +++ b/apps/vbox/client/shared/src/commonMain/kotlin/ru/shadowsparky/vbox/shared/presentation/BaseScreen.kt @@ -110,7 +110,7 @@ fun BaseScreen( content: @Composable (padding: PaddingValues) -> Unit, appBar: @Composable () -> Unit ) { - ru.shadowsparky.ui.BaseScreen( + ru.shadowsparky.ui.AppScaffold( modifier, scrollBehavior, snackbarState, diff --git a/apps/vbox/client/shared/src/commonMain/kotlin/ru/shadowsparky/vbox/shared/presentation/MainScreen.kt b/apps/vbox/client/shared/src/commonMain/kotlin/ru/shadowsparky/vbox/shared/presentation/MainScreen.kt index 5211853..407aa7c 100644 --- a/apps/vbox/client/shared/src/commonMain/kotlin/ru/shadowsparky/vbox/shared/presentation/MainScreen.kt +++ b/apps/vbox/client/shared/src/commonMain/kotlin/ru/shadowsparky/vbox/shared/presentation/MainScreen.kt @@ -9,7 +9,7 @@ import androidx.compose.material3.TopAppBarScrollBehavior import androidx.compose.runtime.Composable import androidx.compose.runtime.CompositionLocalProvider import androidx.compose.ui.Modifier -import ru.shadowsparky.ui.BaseScreen +import ru.shadowsparky.ui.AppScaffold import ru.shadowsparky.ui.LocalBlurState import ru.shadowsparky.ui.applyBlurEffect import ru.shadowsparky.ui.rememberBlurState @@ -41,7 +41,7 @@ fun BaseMainScreen( ) { val blurState = rememberBlurState() CompositionLocalProvider(LocalBlurState provides blurState) { - BaseScreen( + AppScaffold( appBar = { appBar() }, currentRoute = route, onSelectNavigation = { onNavigate(it) }, diff --git a/apps/vbox/client/shared/src/commonMain/kotlin/ru/shadowsparky/vbox/shared/presentation/offline/OfflineVideoScreen.kt b/apps/vbox/client/shared/src/commonMain/kotlin/ru/shadowsparky/vbox/shared/presentation/offline/OfflineVideoScreen.kt index b8230dc..90b8421 100644 --- a/apps/vbox/client/shared/src/commonMain/kotlin/ru/shadowsparky/vbox/shared/presentation/offline/OfflineVideoScreen.kt +++ b/apps/vbox/client/shared/src/commonMain/kotlin/ru/shadowsparky/vbox/shared/presentation/offline/OfflineVideoScreen.kt @@ -41,7 +41,7 @@ import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp import org.jetbrains.compose.resources.painterResource import org.jetbrains.compose.resources.stringResource -import ru.shadowsparky.ui.BaseScreen +import ru.shadowsparky.ui.AppScaffold import ru.shadowsparky.ui.components.ExpressiveLazyColumn import ru.shadowsparky.ui.components.Loading import ru.shadowsparky.vbox.shared.domain.EpisodeOfflineVideo @@ -54,7 +54,7 @@ import ru.shadowsparky.vbox.shared.presentation.SimpleAppBar @Composable fun OfflineVideoScreen(component: OfflineVideoComponent) { val info by component.info.collectAsState(null) - BaseScreen( + AppScaffold( appBar = { SimpleAppBar( title = stringResource(Res.string.offline_video), diff --git a/apps/vbox/client/shared/src/commonMain/kotlin/ru/shadowsparky/vbox/shared/presentation/player/PlayerScreen.kt b/apps/vbox/client/shared/src/commonMain/kotlin/ru/shadowsparky/vbox/shared/presentation/player/PlayerScreen.kt index e94217b..6721b2c 100644 --- a/apps/vbox/client/shared/src/commonMain/kotlin/ru/shadowsparky/vbox/shared/presentation/player/PlayerScreen.kt +++ b/apps/vbox/client/shared/src/commonMain/kotlin/ru/shadowsparky/vbox/shared/presentation/player/PlayerScreen.kt @@ -27,7 +27,7 @@ import androidx.compose.ui.draw.alpha import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp import org.jetbrains.compose.resources.stringResource -import ru.shadowsparky.ui.BaseScreen +import ru.shadowsparky.ui.AppScaffold import ru.shadowsparky.ui.components.Loading import ru.shadowsparky.vbox.shared.presentation.list.ErrorAndRetry import ru.shadowsparky.videoplayer.PlayerEvent @@ -41,7 +41,7 @@ fun PlayerScreen(component: PlayerComponent) { LaunchedEffect(event) { if (event is PlayerComponentState.Ended) component.onBack() } - BaseScreen(appBar = {}) { + AppScaffold(appBar = {}) { when (val e = event) { is PlayerComponentState.Event -> { when (val state = e.state) { diff --git a/apps/vbox/client/shared/src/commonMain/kotlin/ru/shadowsparky/vbox/shared/presentation/settings/tag/TagScreen.kt b/apps/vbox/client/shared/src/commonMain/kotlin/ru/shadowsparky/vbox/shared/presentation/settings/tag/TagScreen.kt index f266870..d3911cc 100644 --- a/apps/vbox/client/shared/src/commonMain/kotlin/ru/shadowsparky/vbox/shared/presentation/settings/tag/TagScreen.kt +++ b/apps/vbox/client/shared/src/commonMain/kotlin/ru/shadowsparky/vbox/shared/presentation/settings/tag/TagScreen.kt @@ -38,7 +38,7 @@ import androidx.compose.ui.platform.LocalSoftwareKeyboardController import androidx.compose.ui.unit.dp import androidx.lifecycle.compose.collectAsStateWithLifecycle import org.jetbrains.compose.resources.stringResource -import ru.shadowsparky.ui.BaseScreen +import ru.shadowsparky.ui.AppScaffold import ru.shadowsparky.ui.components.ExpressiveLazyColumn import ru.shadowsparky.ui.components.TextPreference import ru.shadowsparky.vbox.shared.domain.tag.TagInfo @@ -50,7 +50,7 @@ fun TagScreen(component: TagComponent) { val userTags by component.userTags.collectAsStateWithLifecycle(emptyList()) var isAddSheetVisible by rememberSaveable { mutableStateOf(false) } var activeTag by remember { mutableStateOf(null) } - BaseScreen( + AppScaffold( appBar = { SimpleAppBar( stringResource(Res.string.user_tags), diff --git a/libs/ui/src/commonMain/kotlin/ru/shadowsparky/ui/BaseScreen.kt b/libs/ui/src/commonMain/kotlin/ru/shadowsparky/ui/BaseScreen.kt index bbe0f84..80ab28f 100644 --- a/libs/ui/src/commonMain/kotlin/ru/shadowsparky/ui/BaseScreen.kt +++ b/libs/ui/src/commonMain/kotlin/ru/shadowsparky/ui/BaseScreen.kt @@ -35,8 +35,6 @@ import ru.shadowsparky.ui.nav.Route import ru.shadowsparky.ui.theme.ComponentDefaults import ru.shadowsparky.ui.theme.getColorScheme -const val USE_EXPERIMENTAL_RAIL = true - @Immutable data class NavigationEntry( val route: T, @@ -46,7 +44,7 @@ data class NavigationEntry( @OptIn(ExperimentalMaterial3Api::class) @Composable -fun BaseScreen( +fun AppScaffold( modifier: Modifier = Modifier, scrollBehavior: TopAppBarScrollBehavior? = TopAppBarDefaults.pinnedScrollBehavior(), snackbarState: SnackbarHostState? = null, @@ -54,7 +52,7 @@ fun BaseScreen( appBar: @Composable (scroll: TopAppBarScrollBehavior?) -> Unit, content: @Composable (padding: PaddingValues) -> Unit, ) { - BaseScreen( + AppScaffold( modifier, scrollBehavior, snackbarState, @@ -66,7 +64,7 @@ fun BaseScreen( @OptIn(ExperimentalMaterial3Api::class, ExperimentalMaterial3ExpressiveApi::class) @Composable -fun BaseScreen( +fun AppScaffold( modifier: Modifier = Modifier, scrollBehavior: TopAppBarScrollBehavior? = TopAppBarDefaults.pinnedScrollBehavior(), snackbarState: SnackbarHostState? = null, @@ -81,14 +79,14 @@ fun BaseScreen( MaterialExpressiveTheme(colorScheme = colorScheme) { Scaffold( bottomBar = { - if (windowType.isCompact || !USE_EXPERIMENTAL_RAIL) { + if (windowType.isCompact) { BottomBar(navigationEntries, currentRoute, onSelectNavigation) } }, topBar = { appBar(scrollBehavior) }, content = { - if (windowType.isExpanded && navigationEntries?.isNotEmpty() == true && USE_EXPERIMENTAL_RAIL) { + if (windowType.isExpanded && navigationEntries?.isNotEmpty() == true) { ExpandedContent( it, navigationEntries,