add system bars padding modifier

This commit is contained in:
Satindar Dhillon 2022-09-01 17:29:41 -07:00
parent 7cba83d13e
commit 6fa0ecb10a
3 changed files with 31 additions and 7 deletions

View file

@ -5,6 +5,8 @@ import android.view.View
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.activity.viewModels
import androidx.compose.foundation.layout.systemBarsPadding
import androidx.compose.ui.Modifier
import app.omnivore.omnivore.ui.theme.OmnivoreTheme
import androidx.core.view.ViewCompat
import androidx.core.view.WindowCompat
@ -24,7 +26,12 @@ class MainActivity : ComponentActivity() {
setContent {
OmnivoreTheme {
RootView(loginViewModel, homeViewModel)
RootView(
loginViewModel,
homeViewModel,
modifier = Modifier
.systemBarsPadding()
)
}
}

View file

@ -25,7 +25,8 @@ import kotlinx.coroutines.flow.distinctUntilChanged
@Composable
fun HomeView(
homeViewModel: HomeViewModel,
navController: NavHostController
navController: NavHostController,
modifier: Modifier
) {
Scaffold(
topBar = {
@ -41,7 +42,8 @@ fun HomeView(
}
}
)
}
},
modifier = modifier
) { paddingValues ->
HomeViewContent(
homeViewModel,

View file

@ -4,6 +4,7 @@ import SettingsView
import androidx.compose.runtime.Composable
import androidx.compose.runtime.getValue
import androidx.compose.runtime.livedata.observeAsState
import androidx.compose.ui.Modifier
import androidx.navigation.compose.NavHost
import androidx.navigation.compose.composable
import androidx.navigation.compose.rememberNavController
@ -15,28 +16,42 @@ import app.omnivore.omnivore.ui.home.HomeViewModel
import app.omnivore.omnivore.ui.reader.ArticleWebView
@Composable
fun RootView(loginViewModel: LoginViewModel, homeViewModel: HomeViewModel) {
fun RootView(
loginViewModel: LoginViewModel,
homeViewModel: HomeViewModel,
modifier: Modifier
) {
val hasAuthToken: Boolean by loginViewModel.hasAuthTokenLiveData.observeAsState(false)
if (hasAuthToken) {
PrimaryNavigator(loginViewModel = loginViewModel, homeViewModel = homeViewModel)
PrimaryNavigator(
loginViewModel = loginViewModel,
homeViewModel = homeViewModel,
modifier = modifier
)
} else {
WelcomeScreen(viewModel = loginViewModel)
}
}
@Composable
fun PrimaryNavigator(loginViewModel: LoginViewModel, homeViewModel: HomeViewModel){
fun PrimaryNavigator(
loginViewModel: LoginViewModel,
homeViewModel: HomeViewModel,
modifier: Modifier
) {
val navController = rememberNavController()
NavHost(navController = navController, startDestination = Routes.Home.route) {
composable(Routes.Home.route) {
HomeView(
homeViewModel = homeViewModel,
navController = navController
navController = navController,
modifier = modifier
)
}
// TODO: add modifiers
composable("WebReader/{slug}") {
ArticleWebView(
it.arguments?.getString("slug") ?: "",