Impl base app theme, change statusbar color

This commit is contained in:
2026-02-27 18:18:23 +03:00
parent 59c869d539
commit bc07ea421b
11 changed files with 230 additions and 53 deletions

View File

@@ -3,7 +3,12 @@ package ru.fincode.tsudesk
import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.compose.ui.graphics.Color
import androidx.core.view.WindowCompat
import dagger.hilt.android.AndroidEntryPoint
import ru.fincode.tsudesk.core.ui.components.ConfigureSystemBars
import ru.fincode.tsudesk.core.ui.theme.TSUDeskTheme
import ru.fincode.tsudesk.core.ui.theme.TSUDeskThemeExt
import ru.fincode.tsudesk.presentation.TSUDeskApp
@AndroidEntryPoint
@@ -11,9 +16,16 @@ class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
WindowCompat.setDecorFitsSystemWindows(window, false)
setContent {
TSUDeskApp()
TSUDeskTheme {
ConfigureSystemBars(
statusBarColor = Color.Transparent,
navigationBarColor = TSUDeskThemeExt.colors.brand,
darkIcons = false
)
TSUDeskApp()
}
}
}
}
}

View File

@@ -1,5 +1,6 @@
package ru.fincode.tsudesk.presentation.main
import androidx.compose.foundation.layout.WindowInsets
import androidx.compose.foundation.layout.padding
import androidx.compose.material3.Scaffold
import androidx.compose.runtime.Composable
@@ -9,11 +10,11 @@ import androidx.compose.ui.res.stringResource
import androidx.compose.ui.res.vectorResource
import androidx.navigation.NavHostController
import androidx.navigation.compose.currentBackStackEntryAsState
import ru.fincode.core.ui.components.BottomBarItem
import ru.fincode.core.ui.components.TsudeskBottomBar
import ru.fincode.tsudesk.R
import ru.fincode.tsudesk.core.navigation.TopLevelDestination
import ru.fincode.tsudesk.core.navigation.navigateToTopLevel
import ru.fincode.tsudesk.core.ui.components.BottomBarItem
import ru.fincode.tsudesk.core.ui.components.TsudeskBottomBar
@Composable
fun MainScaffold(
@@ -40,6 +41,10 @@ fun MainScaffold(
val selected = selectedTopLevel(backStackEntry)
Scaffold(
// ВАЖНО: при edge-to-edge отключаем автоматические systemBars insets у Scaffold,
// иначе получаем двойные отступы (Scaffold + windowInsetsPadding в Header'е)
contentWindowInsets = WindowInsets(0),
bottomBar = {
if (shouldShowBottomBar(backStackEntry)) {
val uiItems = items.map { item ->
@@ -63,6 +68,8 @@ fun MainScaffold(
}
}
) { innerPadding ->
// innerPadding учитывает bottomBar и системные элементы Scaffold (если будут),
// но НЕ добавляет statusBars (мы делаем это вручную в нужных местах, например в Header)
content(Modifier.padding(innerPadding))
}
}