Track sheet fixes (#8673)
* Fix Track sheet not being disposed properly * Change insets handling
This commit is contained in:
@@ -8,11 +8,13 @@ import androidx.compose.foundation.layout.Arrangement
|
||||
import androidx.compose.foundation.layout.Box
|
||||
import androidx.compose.foundation.layout.Column
|
||||
import androidx.compose.foundation.layout.IntrinsicSize
|
||||
import androidx.compose.foundation.layout.PaddingValues
|
||||
import androidx.compose.foundation.layout.Row
|
||||
import androidx.compose.foundation.layout.WindowInsets
|
||||
import androidx.compose.foundation.layout.fillMaxWidth
|
||||
import androidx.compose.foundation.layout.height
|
||||
import androidx.compose.foundation.layout.padding
|
||||
import androidx.compose.foundation.layout.systemBars
|
||||
import androidx.compose.foundation.layout.windowInsetsPadding
|
||||
import androidx.compose.foundation.layout.wrapContentSize
|
||||
import androidx.compose.foundation.rememberScrollState
|
||||
import androidx.compose.foundation.shape.RoundedCornerShape
|
||||
@@ -54,7 +56,6 @@ private const val UnsetStatusTextAlpha = 0.5F
|
||||
fun TrackInfoDialogHome(
|
||||
trackItems: List<TrackItem>,
|
||||
dateFormat: DateFormat,
|
||||
contentPadding: PaddingValues = PaddingValues(),
|
||||
onStatusClick: (TrackItem) -> Unit,
|
||||
onChapterClick: (TrackItem) -> Unit,
|
||||
onScoreClick: (TrackItem) -> Unit,
|
||||
@@ -70,7 +71,7 @@ fun TrackInfoDialogHome(
|
||||
.fillMaxWidth()
|
||||
.verticalScroll(rememberScrollState())
|
||||
.padding(16.dp)
|
||||
.padding(contentPadding),
|
||||
.windowInsetsPadding(WindowInsets.systemBars),
|
||||
verticalArrangement = Arrangement.spacedBy(24.dp),
|
||||
) {
|
||||
trackItems.forEach { item ->
|
||||
|
||||
@@ -3,12 +3,14 @@ package eu.kanade.presentation.manga
|
||||
import androidx.compose.foundation.layout.Arrangement
|
||||
import androidx.compose.foundation.layout.Box
|
||||
import androidx.compose.foundation.layout.BoxScope
|
||||
import androidx.compose.foundation.layout.PaddingValues
|
||||
import androidx.compose.foundation.layout.Row
|
||||
import androidx.compose.foundation.layout.RowScope
|
||||
import androidx.compose.foundation.layout.Spacer
|
||||
import androidx.compose.foundation.layout.WindowInsets
|
||||
import androidx.compose.foundation.layout.fillMaxWidth
|
||||
import androidx.compose.foundation.layout.padding
|
||||
import androidx.compose.foundation.layout.systemBars
|
||||
import androidx.compose.foundation.layout.windowInsetsPadding
|
||||
import androidx.compose.foundation.lazy.rememberLazyListState
|
||||
import androidx.compose.foundation.selection.selectable
|
||||
import androidx.compose.foundation.shape.RoundedCornerShape
|
||||
@@ -41,7 +43,6 @@ import java.time.format.TextStyle
|
||||
|
||||
@Composable
|
||||
fun TrackStatusSelector(
|
||||
contentPadding: PaddingValues,
|
||||
selection: Int,
|
||||
onSelectionChange: (Int) -> Unit,
|
||||
selections: Map<Int, String>,
|
||||
@@ -49,7 +50,6 @@ fun TrackStatusSelector(
|
||||
onDismissRequest: () -> Unit,
|
||||
) {
|
||||
BaseSelector(
|
||||
contentPadding = contentPadding,
|
||||
title = stringResource(R.string.status),
|
||||
content = {
|
||||
val state = rememberLazyListState()
|
||||
@@ -91,7 +91,6 @@ fun TrackStatusSelector(
|
||||
|
||||
@Composable
|
||||
fun TrackChapterSelector(
|
||||
contentPadding: PaddingValues,
|
||||
selection: Int,
|
||||
onSelectionChange: (Int) -> Unit,
|
||||
range: Iterable<Int>,
|
||||
@@ -99,7 +98,6 @@ fun TrackChapterSelector(
|
||||
onDismissRequest: () -> Unit,
|
||||
) {
|
||||
BaseSelector(
|
||||
contentPadding = contentPadding,
|
||||
title = stringResource(R.string.chapters),
|
||||
content = {
|
||||
WheelTextPicker(
|
||||
@@ -119,7 +117,6 @@ fun TrackChapterSelector(
|
||||
|
||||
@Composable
|
||||
fun TrackScoreSelector(
|
||||
contentPadding: PaddingValues,
|
||||
selection: String,
|
||||
onSelectionChange: (String) -> Unit,
|
||||
selections: List<String>,
|
||||
@@ -127,7 +124,6 @@ fun TrackScoreSelector(
|
||||
onDismissRequest: () -> Unit,
|
||||
) {
|
||||
BaseSelector(
|
||||
contentPadding = contentPadding,
|
||||
title = stringResource(R.string.score),
|
||||
content = {
|
||||
WheelTextPicker(
|
||||
@@ -147,7 +143,6 @@ fun TrackScoreSelector(
|
||||
|
||||
@Composable
|
||||
fun TrackDateSelector(
|
||||
contentPadding: PaddingValues,
|
||||
title: String,
|
||||
selection: LocalDate,
|
||||
onSelectionChange: (LocalDate) -> Unit,
|
||||
@@ -156,7 +151,6 @@ fun TrackDateSelector(
|
||||
onDismissRequest: () -> Unit,
|
||||
) {
|
||||
BaseSelector(
|
||||
contentPadding = contentPadding,
|
||||
title = title,
|
||||
content = {
|
||||
Row(
|
||||
@@ -198,7 +192,6 @@ fun TrackDateSelector(
|
||||
|
||||
@Composable
|
||||
private fun BaseSelector(
|
||||
contentPadding: PaddingValues = PaddingValues(),
|
||||
title: String,
|
||||
content: @Composable BoxScope.() -> Unit,
|
||||
thirdButton: @Composable (RowScope.() -> Unit)? = null,
|
||||
@@ -206,7 +199,7 @@ private fun BaseSelector(
|
||||
onDismissRequest: () -> Unit,
|
||||
) {
|
||||
AlertDialogContent(
|
||||
modifier = Modifier.padding(contentPadding),
|
||||
modifier = Modifier.windowInsetsPadding(WindowInsets.systemBars),
|
||||
title = { Text(text = title) },
|
||||
text = {
|
||||
Box(
|
||||
|
||||
@@ -16,9 +16,11 @@ import androidx.compose.foundation.layout.Spacer
|
||||
import androidx.compose.foundation.layout.WindowInsets
|
||||
import androidx.compose.foundation.layout.fillMaxWidth
|
||||
import androidx.compose.foundation.layout.height
|
||||
import androidx.compose.foundation.layout.navigationBars
|
||||
import androidx.compose.foundation.layout.padding
|
||||
import androidx.compose.foundation.layout.paddingFromBaseline
|
||||
import androidx.compose.foundation.layout.width
|
||||
import androidx.compose.foundation.layout.windowInsetsPadding
|
||||
import androidx.compose.foundation.lazy.items
|
||||
import androidx.compose.foundation.selection.selectable
|
||||
import androidx.compose.foundation.shape.RoundedCornerShape
|
||||
@@ -34,7 +36,6 @@ import androidx.compose.material3.ButtonDefaults
|
||||
import androidx.compose.material3.Icon
|
||||
import androidx.compose.material3.IconButton
|
||||
import androidx.compose.material3.MaterialTheme
|
||||
import androidx.compose.material3.Scaffold
|
||||
import androidx.compose.material3.Text
|
||||
import androidx.compose.material3.TopAppBar
|
||||
import androidx.compose.runtime.Composable
|
||||
@@ -47,7 +48,6 @@ import androidx.compose.ui.focus.focusRequester
|
||||
import androidx.compose.ui.graphics.Color
|
||||
import androidx.compose.ui.graphics.SolidColor
|
||||
import androidx.compose.ui.platform.LocalFocusManager
|
||||
import androidx.compose.ui.platform.LocalLayoutDirection
|
||||
import androidx.compose.ui.res.stringResource
|
||||
import androidx.compose.ui.text.capitalize
|
||||
import androidx.compose.ui.text.input.ImeAction
|
||||
@@ -60,6 +60,7 @@ import eu.kanade.presentation.components.Divider
|
||||
import eu.kanade.presentation.components.EmptyScreen
|
||||
import eu.kanade.presentation.components.LoadingScreen
|
||||
import eu.kanade.presentation.components.MangaCover
|
||||
import eu.kanade.presentation.components.Scaffold
|
||||
import eu.kanade.presentation.components.ScrollbarLazyColumn
|
||||
import eu.kanade.presentation.util.plus
|
||||
import eu.kanade.presentation.util.runOnEnterKeyPressed
|
||||
@@ -69,7 +70,6 @@ import eu.kanade.tachiyomi.data.track.model.TrackSearch
|
||||
|
||||
@Composable
|
||||
fun TrackServiceSearch(
|
||||
contentPadding: PaddingValues = PaddingValues(),
|
||||
query: TextFieldValue,
|
||||
onQueryChange: (TextFieldValue) -> Unit,
|
||||
onDispatchQuery: () -> Unit,
|
||||
@@ -87,12 +87,6 @@ fun TrackServiceSearch(
|
||||
}
|
||||
|
||||
Scaffold(
|
||||
contentWindowInsets = WindowInsets(
|
||||
left = contentPadding.calculateLeftPadding(LocalLayoutDirection.current),
|
||||
top = contentPadding.calculateTopPadding(),
|
||||
right = contentPadding.calculateRightPadding(LocalLayoutDirection.current),
|
||||
bottom = contentPadding.calculateBottomPadding(),
|
||||
),
|
||||
topBar = {
|
||||
Column {
|
||||
TopAppBar(
|
||||
@@ -161,7 +155,7 @@ fun TrackServiceSearch(
|
||||
onClick = { onConfirmSelection() },
|
||||
modifier = Modifier
|
||||
.padding(12.dp)
|
||||
.padding(bottom = contentPadding.calculateBottomPadding())
|
||||
.windowInsetsPadding(WindowInsets.navigationBars)
|
||||
.fillMaxWidth(),
|
||||
elevation = ButtonDefaults.elevatedButtonElevation(),
|
||||
) {
|
||||
|
||||
Reference in New Issue
Block a user