mirror of
https://github.com/msfjarvis/compose-lobsters
synced 2025-08-14 19:57:04 +05:30
android: properly handle insets and padding
This commit is contained in:
parent
6bbd236203
commit
1683c5c027
4 changed files with 34 additions and 24 deletions
|
@ -12,9 +12,11 @@ dependencies {
|
||||||
kapt(libs.dagger.hilt.compiler)
|
kapt(libs.dagger.hilt.compiler)
|
||||||
implementation(projects.api)
|
implementation(projects.api)
|
||||||
implementation(projects.common)
|
implementation(projects.common)
|
||||||
|
implementation(libs.accompanist.insets)
|
||||||
implementation(libs.accompanist.sysuicontroller)
|
implementation(libs.accompanist.sysuicontroller)
|
||||||
implementation(libs.androidx.activity.compose)
|
implementation(libs.androidx.activity.compose)
|
||||||
implementation(libs.androidx.appcompat)
|
implementation(libs.androidx.appcompat)
|
||||||
|
implementation(libs.androidx.coreKtx)
|
||||||
implementation(libs.androidx.paging.compose)
|
implementation(libs.androidx.paging.compose)
|
||||||
implementation(libs.dagger.hilt.android)
|
implementation(libs.dagger.hilt.android)
|
||||||
implementation(libs.retrofit.moshiConverter)
|
implementation(libs.retrofit.moshiConverter)
|
||||||
|
|
|
@ -3,6 +3,7 @@ package dev.msfjarvis.claw.android
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import androidx.activity.ComponentActivity
|
import androidx.activity.ComponentActivity
|
||||||
import androidx.activity.compose.setContent
|
import androidx.activity.compose.setContent
|
||||||
|
import androidx.core.view.WindowCompat
|
||||||
import androidx.paging.Pager
|
import androidx.paging.Pager
|
||||||
import androidx.paging.PagingConfig
|
import androidx.paging.PagingConfig
|
||||||
import dagger.hilt.android.AndroidEntryPoint
|
import dagger.hilt.android.AndroidEntryPoint
|
||||||
|
@ -20,6 +21,7 @@ class MainActivity : ComponentActivity() {
|
||||||
|
|
||||||
override fun onCreate(savedInstanceState: Bundle?) {
|
override fun onCreate(savedInstanceState: Bundle?) {
|
||||||
super.onCreate(savedInstanceState)
|
super.onCreate(savedInstanceState)
|
||||||
|
WindowCompat.setDecorFitsSystemWindows(window, false)
|
||||||
val pager = Pager(PagingConfig(20)) { LobstersPagingSource(api::getHottestPosts) }
|
val pager = Pager(PagingConfig(20)) { LobstersPagingSource(api::getHottestPosts) }
|
||||||
setContent {
|
setContent {
|
||||||
LobstersApp(
|
LobstersApp(
|
||||||
|
|
|
@ -18,6 +18,8 @@ import androidx.compose.ui.unit.dp
|
||||||
import androidx.paging.LoadState
|
import androidx.paging.LoadState
|
||||||
import androidx.paging.Pager
|
import androidx.paging.Pager
|
||||||
import androidx.paging.compose.collectAsLazyPagingItems
|
import androidx.paging.compose.collectAsLazyPagingItems
|
||||||
|
import com.google.accompanist.insets.ProvideWindowInsets
|
||||||
|
import com.google.accompanist.insets.statusBarsPadding
|
||||||
import com.google.accompanist.systemuicontroller.rememberSystemUiController
|
import com.google.accompanist.systemuicontroller.rememberSystemUiController
|
||||||
import dev.msfjarvis.claw.api.model.LobstersPost
|
import dev.msfjarvis.claw.api.model.LobstersPost
|
||||||
import dev.msfjarvis.claw.common.theme.LobstersTheme
|
import dev.msfjarvis.claw.common.theme.LobstersTheme
|
||||||
|
@ -31,6 +33,7 @@ fun LobstersApp(
|
||||||
val systemUiController = rememberSystemUiController()
|
val systemUiController = rememberSystemUiController()
|
||||||
val scaffoldState = rememberScaffoldState()
|
val scaffoldState = rememberScaffoldState()
|
||||||
LobstersTheme(darkTheme = isSystemInDarkTheme()) {
|
LobstersTheme(darkTheme = isSystemInDarkTheme()) {
|
||||||
|
ProvideWindowInsets {
|
||||||
val useDarkIcons = MaterialTheme.colors.isLight
|
val useDarkIcons = MaterialTheme.colors.isLight
|
||||||
val systemBarsColor = MaterialTheme.colors.primarySurface
|
val systemBarsColor = MaterialTheme.colors.primarySurface
|
||||||
|
|
||||||
|
@ -40,14 +43,14 @@ fun LobstersApp(
|
||||||
val items = pager.flow.collectAsLazyPagingItems()
|
val items = pager.flow.collectAsLazyPagingItems()
|
||||||
Scaffold(
|
Scaffold(
|
||||||
scaffoldState = scaffoldState,
|
scaffoldState = scaffoldState,
|
||||||
topBar = { ClawAppBar() },
|
topBar = { ClawAppBar(modifier = Modifier.statusBarsPadding()) },
|
||||||
modifier = Modifier,
|
modifier = Modifier,
|
||||||
) { padding ->
|
) {
|
||||||
if (items.loadState.refresh != LoadState.Loading) {
|
if (items.loadState.refresh != LoadState.Loading) {
|
||||||
NetworkPosts(
|
NetworkPosts(
|
||||||
items = items,
|
items = items,
|
||||||
urlLauncher = urlLauncher,
|
urlLauncher = urlLauncher,
|
||||||
modifier = Modifier.padding(padding),
|
modifier = Modifier.padding(top = 16.dp),
|
||||||
)
|
)
|
||||||
} else {
|
} else {
|
||||||
Box(
|
Box(
|
||||||
|
@ -61,4 +64,5 @@ fun LobstersApp(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,11 +12,13 @@ kotlin-coroutines-android = { module = "org.jetbrains.kotlinx:kotlinx-coroutines
|
||||||
kotlin-coroutines-core = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-core", version.ref = "coroutines" }
|
kotlin-coroutines-core = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-core", version.ref = "coroutines" }
|
||||||
kotlin-coroutines-jvm = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm", version.ref = "coroutines" }
|
kotlin-coroutines-jvm = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm", version.ref = "coroutines" }
|
||||||
|
|
||||||
|
accompanist-insets = { module = "com.google.accompanist:accompanist-insets", version.ref = "accompanist" }
|
||||||
accompanist-sysuicontroller = { module = "com.google.accompanist:accompanist-systemuicontroller", version.ref = "accompanist" }
|
accompanist-sysuicontroller = { module = "com.google.accompanist:accompanist-systemuicontroller", version.ref = "accompanist" }
|
||||||
|
|
||||||
androidx-activity-compose = "androidx.activity:activity-compose:1.4.0-alpha02"
|
androidx-activity-compose = "androidx.activity:activity-compose:1.4.0-alpha02"
|
||||||
androidx-appcompat = "androidx.appcompat:appcompat:1.4.0-alpha03"
|
androidx-appcompat = "androidx.appcompat:appcompat:1.4.0-alpha03"
|
||||||
androidx-browser = "androidx.browser:browser:1.4.0-alpha01"
|
androidx-browser = "androidx.browser:browser:1.4.0-alpha01"
|
||||||
|
androidx-coreKtx = "androidx.core:core-ktx:1.7.0-beta01"
|
||||||
androidx-paging-compose = "androidx.paging:paging-compose:1.0.0-alpha12"
|
androidx-paging-compose = "androidx.paging:paging-compose:1.0.0-alpha12"
|
||||||
|
|
||||||
coil-compose = "io.coil-kt:coil-compose:1.3.2"
|
coil-compose = "io.coil-kt:coil-compose:1.3.2"
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue