Make top app bar lift behavior more consistent

(cherry picked from commit 504844a892)

# Conflicts:
#	app/src/main/java/eu/kanade/presentation/browse/BrowseLatestScreen.kt
#	app/src/main/java/eu/kanade/presentation/browse/BrowseSourceScreen.kt
#	app/src/main/java/eu/kanade/presentation/browse/components/BrowseLatestToolbar.kt
#	app/src/main/java/eu/kanade/presentation/browse/components/BrowseSourceToolbar.kt
This commit is contained in:
arkon
2022-08-31 16:31:08 -04:00
committed by Jobobby04
parent 57b336b2b8
commit 241517a13a
33 changed files with 97 additions and 135 deletions
@@ -20,7 +20,6 @@ import androidx.compose.foundation.layout.navigationBars
import androidx.compose.foundation.layout.only
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.windowInsetsBottomHeight
import androidx.compose.foundation.layout.windowInsetsPadding
import androidx.compose.foundation.lazy.items
import androidx.compose.foundation.rememberScrollState
import androidx.compose.foundation.text.selection.SelectionContainer
@@ -29,8 +28,6 @@ import androidx.compose.material3.AlertDialog
import androidx.compose.material3.CircularProgressIndicator
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Text
import androidx.compose.material3.TopAppBarDefaults
import androidx.compose.material3.rememberTopAppBarState
import androidx.compose.runtime.Composable
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
@@ -41,7 +38,6 @@ import androidx.compose.runtime.setValue
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.input.nestedscroll.nestedScroll
import androidx.compose.ui.input.pointer.pointerInput
import androidx.compose.ui.text.AnnotatedString
import androidx.compose.ui.text.SpanStyle
@@ -72,8 +68,6 @@ class SettingsDebugController : BasicFullComposeController() {
@Composable
override fun ComposeContent() {
val scrollBehavior = TopAppBarDefaults.pinnedScrollBehavior(rememberTopAppBarState())
val insets = WindowInsets.navigationBars.only(WindowInsetsSides.Horizontal)
val functions by produceState<List<Pair<KFunction<*>, String>>?>(initialValue = null) {
value = withContext(Dispatchers.Default) {
DebugFunctions::class.declaredFunctions.filter {
@@ -91,10 +85,7 @@ class SettingsDebugController : BasicFullComposeController() {
}
}
Scaffold(
modifier = Modifier
.windowInsetsPadding(insets)
.nestedScroll(scrollBehavior.nestedScrollConnection),
topBar = {
topBar = { scrollBehavior ->
AppBar(
title = "DEBUG MENU",
scrollBehavior = scrollBehavior,
@@ -6,7 +6,6 @@ import androidx.compose.foundation.layout.BoxWithConstraints
import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.statusBarsPadding
import androidx.compose.foundation.lazy.rememberLazyListState
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.UTurnRight
@@ -16,6 +15,7 @@ import androidx.compose.material3.IconButton
import androidx.compose.material3.Slider
import androidx.compose.material3.Text
import androidx.compose.material3.TextButton
import androidx.compose.material3.TopAppBarScrollBehavior
import androidx.compose.runtime.Composable
import androidx.compose.runtime.derivedStateOf
import androidx.compose.runtime.getValue
@@ -53,15 +53,14 @@ fun PagePreviewScreen(
navigateUp: () -> Unit,
) {
Scaffold(
modifier = Modifier
.statusBarsPadding(),
topBar = {
topBar = { scrollBehavior ->
PagePreviewTopAppBar(
navigateUp = navigateUp,
title = stringResource(R.string.page_previews),
onOpenPageDialog = onOpenPageDialog,
showOpenPageDialog = state is PagePreviewState.Success &&
(state.pageCount != null && state.pageCount > 1 /* TODO support unknown pageCount || state.hasNextPage*/),
scrollBehavior = scrollBehavior,
)
},
) { paddingValues ->
@@ -171,6 +170,7 @@ fun PagePreviewTopAppBar(
title: String,
onOpenPageDialog: () -> Unit,
showOpenPageDialog: Boolean,
scrollBehavior: TopAppBarScrollBehavior,
) {
AppBar(
title = title,
@@ -185,5 +185,6 @@ fun PagePreviewTopAppBar(
}
},
navigateUp = navigateUp,
scrollBehavior = scrollBehavior,
)
}
@@ -56,10 +56,11 @@ class InterceptActivity : BaseActivity() {
@Composable
private fun InterceptActivityContent(status: InterceptResult) {
Scaffold(
topBar = {
topBar = { scrollBehavior ->
AppBar(
title = stringResource(R.string.app_name),
navigateUp = ::onBackPressed,
scrollBehavior = scrollBehavior,
)
},
) {