rename BaseScreen to AppScaffold

This commit is contained in:
2026-06-29 16:45:54 +03:00
parent 5946ffae6e
commit 6cde7b4587
7 changed files with 16 additions and 18 deletions
@@ -15,7 +15,7 @@ import androidx.compose.ui.res.stringResource
import ru.shadowsparky.callblocker.R import ru.shadowsparky.callblocker.R
import ru.shadowsparky.callblocker.domain.RejectPolicyManager import ru.shadowsparky.callblocker.domain.RejectPolicyManager
import ru.shadowsparky.koin import ru.shadowsparky.koin
import ru.shadowsparky.ui.BaseScreen import ru.shadowsparky.ui.AppScaffold
class MainActivity : ComponentActivity() { class MainActivity : ComponentActivity() {
private val rejectPolicyManager by koin.inject<RejectPolicyManager>() private val rejectPolicyManager by koin.inject<RejectPolicyManager>()
@@ -26,7 +26,7 @@ class MainActivity : ComponentActivity() {
enableEdgeToEdge() enableEdgeToEdge()
val permissionRequest = newPermissionRequest() val permissionRequest = newPermissionRequest()
setContent { setContent {
BaseScreen( AppScaffold(
appBar = { appBar = {
TopAppBar(title = { Text(stringResource(R.string.app_name)) }) TopAppBar(title = { Text(stringResource(R.string.app_name)) })
} }
@@ -110,7 +110,7 @@ fun BaseScreen(
content: @Composable (padding: PaddingValues) -> Unit, content: @Composable (padding: PaddingValues) -> Unit,
appBar: @Composable () -> Unit appBar: @Composable () -> Unit
) { ) {
ru.shadowsparky.ui.BaseScreen( ru.shadowsparky.ui.AppScaffold(
modifier, modifier,
scrollBehavior, scrollBehavior,
snackbarState, snackbarState,
@@ -9,7 +9,7 @@ import androidx.compose.material3.TopAppBarScrollBehavior
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.runtime.CompositionLocalProvider import androidx.compose.runtime.CompositionLocalProvider
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import ru.shadowsparky.ui.BaseScreen import ru.shadowsparky.ui.AppScaffold
import ru.shadowsparky.ui.LocalBlurState import ru.shadowsparky.ui.LocalBlurState
import ru.shadowsparky.ui.applyBlurEffect import ru.shadowsparky.ui.applyBlurEffect
import ru.shadowsparky.ui.rememberBlurState import ru.shadowsparky.ui.rememberBlurState
@@ -41,7 +41,7 @@ fun BaseMainScreen(
) { ) {
val blurState = rememberBlurState() val blurState = rememberBlurState()
CompositionLocalProvider(LocalBlurState provides blurState) { CompositionLocalProvider(LocalBlurState provides blurState) {
BaseScreen( AppScaffold(
appBar = { appBar() }, appBar = { appBar() },
currentRoute = route, currentRoute = route,
onSelectNavigation = { onNavigate(it) }, onSelectNavigation = { onNavigate(it) },
@@ -41,7 +41,7 @@ import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import org.jetbrains.compose.resources.painterResource import org.jetbrains.compose.resources.painterResource
import org.jetbrains.compose.resources.stringResource 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.ExpressiveLazyColumn
import ru.shadowsparky.ui.components.Loading import ru.shadowsparky.ui.components.Loading
import ru.shadowsparky.vbox.shared.domain.EpisodeOfflineVideo import ru.shadowsparky.vbox.shared.domain.EpisodeOfflineVideo
@@ -54,7 +54,7 @@ import ru.shadowsparky.vbox.shared.presentation.SimpleAppBar
@Composable @Composable
fun OfflineVideoScreen(component: OfflineVideoComponent) { fun OfflineVideoScreen(component: OfflineVideoComponent) {
val info by component.info.collectAsState(null) val info by component.info.collectAsState(null)
BaseScreen( AppScaffold(
appBar = { appBar = {
SimpleAppBar( SimpleAppBar(
title = stringResource(Res.string.offline_video), title = stringResource(Res.string.offline_video),
@@ -27,7 +27,7 @@ import androidx.compose.ui.draw.alpha
import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.text.style.TextOverflow
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import org.jetbrains.compose.resources.stringResource 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.ui.components.Loading
import ru.shadowsparky.vbox.shared.presentation.list.ErrorAndRetry import ru.shadowsparky.vbox.shared.presentation.list.ErrorAndRetry
import ru.shadowsparky.videoplayer.PlayerEvent import ru.shadowsparky.videoplayer.PlayerEvent
@@ -41,7 +41,7 @@ fun PlayerScreen(component: PlayerComponent) {
LaunchedEffect(event) { LaunchedEffect(event) {
if (event is PlayerComponentState.Ended) component.onBack() if (event is PlayerComponentState.Ended) component.onBack()
} }
BaseScreen(appBar = {}) { AppScaffold(appBar = {}) {
when (val e = event) { when (val e = event) {
is PlayerComponentState.Event -> { is PlayerComponentState.Event -> {
when (val state = e.state) { when (val state = e.state) {
@@ -38,7 +38,7 @@ import androidx.compose.ui.platform.LocalSoftwareKeyboardController
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import androidx.lifecycle.compose.collectAsStateWithLifecycle import androidx.lifecycle.compose.collectAsStateWithLifecycle
import org.jetbrains.compose.resources.stringResource 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.ExpressiveLazyColumn
import ru.shadowsparky.ui.components.TextPreference import ru.shadowsparky.ui.components.TextPreference
import ru.shadowsparky.vbox.shared.domain.tag.TagInfo import ru.shadowsparky.vbox.shared.domain.tag.TagInfo
@@ -50,7 +50,7 @@ fun TagScreen(component: TagComponent) {
val userTags by component.userTags.collectAsStateWithLifecycle(emptyList()) val userTags by component.userTags.collectAsStateWithLifecycle(emptyList())
var isAddSheetVisible by rememberSaveable { mutableStateOf(false) } var isAddSheetVisible by rememberSaveable { mutableStateOf(false) }
var activeTag by remember { mutableStateOf<TagInfo?>(null) } var activeTag by remember { mutableStateOf<TagInfo?>(null) }
BaseScreen( AppScaffold(
appBar = { appBar = {
SimpleAppBar( SimpleAppBar(
stringResource(Res.string.user_tags), stringResource(Res.string.user_tags),
@@ -35,8 +35,6 @@ import ru.shadowsparky.ui.nav.Route
import ru.shadowsparky.ui.theme.ComponentDefaults import ru.shadowsparky.ui.theme.ComponentDefaults
import ru.shadowsparky.ui.theme.getColorScheme import ru.shadowsparky.ui.theme.getColorScheme
const val USE_EXPERIMENTAL_RAIL = true
@Immutable @Immutable
data class NavigationEntry<out T : Route>( data class NavigationEntry<out T : Route>(
val route: T, val route: T,
@@ -46,7 +44,7 @@ data class NavigationEntry<out T : Route>(
@OptIn(ExperimentalMaterial3Api::class) @OptIn(ExperimentalMaterial3Api::class)
@Composable @Composable
fun BaseScreen( fun AppScaffold(
modifier: Modifier = Modifier, modifier: Modifier = Modifier,
scrollBehavior: TopAppBarScrollBehavior? = TopAppBarDefaults.pinnedScrollBehavior(), scrollBehavior: TopAppBarScrollBehavior? = TopAppBarDefaults.pinnedScrollBehavior(),
snackbarState: SnackbarHostState? = null, snackbarState: SnackbarHostState? = null,
@@ -54,7 +52,7 @@ fun BaseScreen(
appBar: @Composable (scroll: TopAppBarScrollBehavior?) -> Unit, appBar: @Composable (scroll: TopAppBarScrollBehavior?) -> Unit,
content: @Composable (padding: PaddingValues) -> Unit, content: @Composable (padding: PaddingValues) -> Unit,
) { ) {
BaseScreen<Route>( AppScaffold<Route>(
modifier, modifier,
scrollBehavior, scrollBehavior,
snackbarState, snackbarState,
@@ -66,7 +64,7 @@ fun BaseScreen(
@OptIn(ExperimentalMaterial3Api::class, ExperimentalMaterial3ExpressiveApi::class) @OptIn(ExperimentalMaterial3Api::class, ExperimentalMaterial3ExpressiveApi::class)
@Composable @Composable
fun <T : Route> BaseScreen( fun <T : Route> AppScaffold(
modifier: Modifier = Modifier, modifier: Modifier = Modifier,
scrollBehavior: TopAppBarScrollBehavior? = TopAppBarDefaults.pinnedScrollBehavior(), scrollBehavior: TopAppBarScrollBehavior? = TopAppBarDefaults.pinnedScrollBehavior(),
snackbarState: SnackbarHostState? = null, snackbarState: SnackbarHostState? = null,
@@ -81,14 +79,14 @@ fun <T : Route> BaseScreen(
MaterialExpressiveTheme(colorScheme = colorScheme) { MaterialExpressiveTheme(colorScheme = colorScheme) {
Scaffold( Scaffold(
bottomBar = { bottomBar = {
if (windowType.isCompact || !USE_EXPERIMENTAL_RAIL) { if (windowType.isCompact) {
BottomBar(navigationEntries, currentRoute, onSelectNavigation) BottomBar(navigationEntries, currentRoute, onSelectNavigation)
} }
}, },
topBar = { topBar = {
appBar(scrollBehavior) appBar(scrollBehavior)
}, content = { }, content = {
if (windowType.isExpanded && navigationEntries?.isNotEmpty() == true && USE_EXPERIMENTAL_RAIL) { if (windowType.isExpanded && navigationEntries?.isNotEmpty() == true) {
ExpandedContent( ExpandedContent(
it, it,
navigationEntries, navigationEntries,