refactor: Use modifier instead of contentPadding for ScrollbarLazyColumn to support stickerHeader
This commit is contained in:
parent
b491ad4c5f
commit
1d5f906a06
4 changed files with 124 additions and 106 deletions
|
|
@ -1,7 +1,6 @@
|
|||
package eu.kanade.presentation.browse
|
||||
|
||||
import androidx.compose.foundation.background
|
||||
import androidx.compose.foundation.layout.Column
|
||||
import androidx.compose.foundation.layout.PaddingValues
|
||||
import androidx.compose.foundation.layout.padding
|
||||
import androidx.compose.foundation.lazy.items
|
||||
|
|
@ -11,7 +10,6 @@ import androidx.compose.runtime.Composable
|
|||
import androidx.compose.runtime.remember
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.platform.LocalContext
|
||||
import androidx.compose.ui.unit.Dp
|
||||
import eu.kanade.presentation.browse.components.BaseSourceItem
|
||||
import eu.kanade.presentation.components.AppBar
|
||||
import eu.kanade.presentation.more.settings.widget.SwitchPreferenceWidget
|
||||
|
|
@ -53,22 +51,15 @@ fun SourcesFilterScreen(
|
|||
)
|
||||
return@Scaffold
|
||||
}
|
||||
// KMK -->
|
||||
// Wrap around so we can use sticky header
|
||||
Column(
|
||||
modifier = Modifier.padding(contentPadding)
|
||||
) {
|
||||
// KMK <--
|
||||
SourcesFilterContent(
|
||||
contentPadding = PaddingValues(Dp.Hairline),
|
||||
state = state,
|
||||
onClickLanguage = onClickLanguage,
|
||||
onClickSource = onClickSource,
|
||||
// SY -->
|
||||
onClickSources = onClickSources,
|
||||
// SY <--
|
||||
)
|
||||
}
|
||||
SourcesFilterContent(
|
||||
contentPadding = contentPadding,
|
||||
state = state,
|
||||
onClickLanguage = onClickLanguage,
|
||||
onClickSource = onClickSource,
|
||||
// SY -->
|
||||
onClickSources = onClickSources,
|
||||
// SY <--
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -83,7 +74,10 @@ private fun SourcesFilterContent(
|
|||
// SY <--
|
||||
) {
|
||||
FastScrollLazyColumn(
|
||||
contentPadding = contentPadding,
|
||||
// KMK -->
|
||||
// Using modifier instead of contentPdding so we can use stickyHeader
|
||||
modifier = Modifier.padding(contentPadding),
|
||||
// KMK <--
|
||||
) {
|
||||
state.items.forEach { (language, sources) ->
|
||||
val enabled = language in state.enabledLanguages
|
||||
|
|
|
|||
|
|
@ -107,6 +107,7 @@ fun SourcesScreen(
|
|||
)
|
||||
// KMK -->
|
||||
else -> Column(
|
||||
// Wrap around so we can use stickyHeader
|
||||
modifier = Modifier.padding(contentPadding),
|
||||
) {
|
||||
AnimatedFloatingSearchBox(
|
||||
|
|
|
|||
|
|
@ -5,7 +5,6 @@ import androidx.compose.foundation.layout.Column
|
|||
import androidx.compose.foundation.layout.WindowInsets
|
||||
import androidx.compose.foundation.layout.WindowInsetsSides
|
||||
import androidx.compose.foundation.layout.only
|
||||
import androidx.compose.foundation.layout.padding
|
||||
import androidx.compose.foundation.layout.systemBars
|
||||
import androidx.compose.foundation.layout.windowInsetsPadding
|
||||
import androidx.compose.material.icons.Icons
|
||||
|
|
@ -14,12 +13,9 @@ import androidx.compose.material.icons.automirrored.outlined.Label
|
|||
import androidx.compose.material.icons.automirrored.outlined.PlaylistAdd
|
||||
import androidx.compose.material.icons.outlined.CloudOff
|
||||
import androidx.compose.material.icons.outlined.GetApp
|
||||
import androidx.compose.material.icons.outlined.HelpOutline
|
||||
import androidx.compose.material.icons.outlined.History
|
||||
import androidx.compose.material.icons.outlined.Info
|
||||
import androidx.compose.material.icons.outlined.Label
|
||||
import androidx.compose.material.icons.outlined.NewReleases
|
||||
import androidx.compose.material.icons.outlined.PlaylistAdd
|
||||
import androidx.compose.material.icons.outlined.QueryStats
|
||||
import androidx.compose.material.icons.outlined.Settings
|
||||
import androidx.compose.material.icons.outlined.Storage
|
||||
|
|
@ -87,7 +83,8 @@ fun MoreScreen(
|
|||
},
|
||||
) { contentPadding ->
|
||||
ScrollbarLazyColumn(
|
||||
modifier = Modifier.padding(contentPadding),
|
||||
// KMK: use contentPadding as preferable padding for ScrollbarLazyColumn when not using stickyHeader
|
||||
contentPadding = contentPadding,
|
||||
) {
|
||||
item {
|
||||
LogoHeader()
|
||||
|
|
|
|||
|
|
@ -2,7 +2,6 @@ package eu.kanade.tachiyomi.ui.manga
|
|||
|
||||
import androidx.annotation.ColorInt
|
||||
import androidx.compose.foundation.isSystemInDarkTheme
|
||||
import androidx.compose.foundation.layout.Column
|
||||
import androidx.compose.foundation.layout.Row
|
||||
import androidx.compose.foundation.layout.fillMaxWidth
|
||||
import androidx.compose.foundation.layout.padding
|
||||
|
|
@ -19,6 +18,7 @@ import com.materialkolor.DynamicMaterialTheme
|
|||
import eu.kanade.domain.ui.UiPreferences
|
||||
import eu.kanade.presentation.components.AppBar
|
||||
import eu.kanade.presentation.util.Screen
|
||||
import tachiyomi.presentation.core.components.ScrollbarLazyColumn
|
||||
import tachiyomi.presentation.core.components.material.Button
|
||||
import tachiyomi.presentation.core.components.material.ButtonDefaults
|
||||
import tachiyomi.presentation.core.components.material.Scaffold
|
||||
|
|
@ -68,89 +68,115 @@ class PaletteScreen(
|
|||
)
|
||||
},
|
||||
) { contentPadding ->
|
||||
Column(
|
||||
ScrollbarLazyColumn(
|
||||
// Using modifier instead of contentPdding so we can use stickyHeader
|
||||
modifier = Modifier.padding(contentPadding),
|
||||
) {
|
||||
ButtonsColor(
|
||||
"seedColor & onPrimary",
|
||||
seedColor,
|
||||
"seedColor & contentColor",
|
||||
seedColor,
|
||||
MaterialTheme.colorScheme.onPrimary,
|
||||
)
|
||||
|
||||
ButtonsColor(
|
||||
"primary",
|
||||
MaterialTheme.colorScheme.primary,
|
||||
"primaryContainer",
|
||||
MaterialTheme.colorScheme.primaryContainer
|
||||
)
|
||||
ButtonsColor(
|
||||
"secondary",
|
||||
MaterialTheme.colorScheme.secondary,
|
||||
"secondaryContainer",
|
||||
MaterialTheme.colorScheme.secondaryContainer
|
||||
)
|
||||
ButtonsColor(
|
||||
"tertiary",
|
||||
MaterialTheme.colorScheme.tertiary,
|
||||
"tertiaryContainer",
|
||||
MaterialTheme.colorScheme.tertiaryContainer
|
||||
)
|
||||
ButtonsColor(
|
||||
"surface",
|
||||
MaterialTheme.colorScheme.surface,
|
||||
"surfaceVariant",
|
||||
MaterialTheme.colorScheme.surfaceVariant
|
||||
)
|
||||
ButtonsColor(
|
||||
"inverseSurface",
|
||||
MaterialTheme.colorScheme.inverseSurface,
|
||||
"surfaceTint",
|
||||
MaterialTheme.colorScheme.surfaceTint
|
||||
)
|
||||
ButtonsColor(
|
||||
"inversePrimary",
|
||||
MaterialTheme.colorScheme.inversePrimary,
|
||||
"background",
|
||||
MaterialTheme.colorScheme.background
|
||||
)
|
||||
ButtonsColor(
|
||||
"error",
|
||||
MaterialTheme.colorScheme.error,
|
||||
"errorContainer",
|
||||
MaterialTheme.colorScheme.errorContainer
|
||||
)
|
||||
ButtonsColor(
|
||||
"outline",
|
||||
MaterialTheme.colorScheme.outline,
|
||||
"outlineVariant",
|
||||
MaterialTheme.colorScheme.outlineVariant
|
||||
)
|
||||
ButtonsColor(
|
||||
"scrim",
|
||||
MaterialTheme.colorScheme.scrim,
|
||||
"surfaceBright",
|
||||
MaterialTheme.colorScheme.surfaceBright
|
||||
)
|
||||
ButtonsColor(
|
||||
"surfaceDim",
|
||||
MaterialTheme.colorScheme.surfaceDim,
|
||||
"surfaceContainer",
|
||||
MaterialTheme.colorScheme.surfaceContainer
|
||||
)
|
||||
ButtonsColor(
|
||||
"surfaceContainerHigh",
|
||||
MaterialTheme.colorScheme.surfaceContainerHigh,
|
||||
"surfaceContainerHighest",
|
||||
MaterialTheme.colorScheme.surfaceContainerHighest
|
||||
)
|
||||
ButtonsColor(
|
||||
"surfaceContainerLow",
|
||||
MaterialTheme.colorScheme.surfaceContainerLow,
|
||||
"surfaceContainerLowest",
|
||||
MaterialTheme.colorScheme.surfaceContainerLowest
|
||||
)
|
||||
item {
|
||||
ButtonsColor(
|
||||
"seedColor & onPrimary",
|
||||
seedColor,
|
||||
"seedColor & contentColor",
|
||||
seedColor,
|
||||
MaterialTheme.colorScheme.onPrimary,
|
||||
)
|
||||
}
|
||||
item {
|
||||
ButtonsColor(
|
||||
"primary",
|
||||
MaterialTheme.colorScheme.primary,
|
||||
"primaryContainer",
|
||||
MaterialTheme.colorScheme.primaryContainer
|
||||
)
|
||||
}
|
||||
item {
|
||||
ButtonsColor(
|
||||
"secondary",
|
||||
MaterialTheme.colorScheme.secondary,
|
||||
"secondaryContainer",
|
||||
MaterialTheme.colorScheme.secondaryContainer
|
||||
)
|
||||
}
|
||||
item {
|
||||
ButtonsColor(
|
||||
"tertiary",
|
||||
MaterialTheme.colorScheme.tertiary,
|
||||
"tertiaryContainer",
|
||||
MaterialTheme.colorScheme.tertiaryContainer
|
||||
)
|
||||
}
|
||||
item {
|
||||
ButtonsColor(
|
||||
"surface",
|
||||
MaterialTheme.colorScheme.surface,
|
||||
"surfaceVariant",
|
||||
MaterialTheme.colorScheme.surfaceVariant
|
||||
)
|
||||
}
|
||||
item {
|
||||
ButtonsColor(
|
||||
"inverseSurface",
|
||||
MaterialTheme.colorScheme.inverseSurface,
|
||||
"surfaceTint",
|
||||
MaterialTheme.colorScheme.surfaceTint
|
||||
)
|
||||
}
|
||||
item {
|
||||
ButtonsColor(
|
||||
"inversePrimary",
|
||||
MaterialTheme.colorScheme.inversePrimary,
|
||||
"background",
|
||||
MaterialTheme.colorScheme.background
|
||||
)
|
||||
}
|
||||
item {
|
||||
ButtonsColor(
|
||||
"error",
|
||||
MaterialTheme.colorScheme.error,
|
||||
"errorContainer",
|
||||
MaterialTheme.colorScheme.errorContainer
|
||||
)
|
||||
}
|
||||
item {
|
||||
ButtonsColor(
|
||||
"outline",
|
||||
MaterialTheme.colorScheme.outline,
|
||||
"outlineVariant",
|
||||
MaterialTheme.colorScheme.outlineVariant
|
||||
)
|
||||
}
|
||||
item {
|
||||
ButtonsColor(
|
||||
"scrim",
|
||||
MaterialTheme.colorScheme.scrim,
|
||||
"surfaceBright",
|
||||
MaterialTheme.colorScheme.surfaceBright
|
||||
)
|
||||
}
|
||||
item {
|
||||
ButtonsColor(
|
||||
"surfaceDim",
|
||||
MaterialTheme.colorScheme.surfaceDim,
|
||||
"surfaceContainer",
|
||||
MaterialTheme.colorScheme.surfaceContainer
|
||||
)
|
||||
}
|
||||
item {
|
||||
ButtonsColor(
|
||||
"surfaceContainerHigh",
|
||||
MaterialTheme.colorScheme.surfaceContainerHigh,
|
||||
"surfaceContainerHighest",
|
||||
MaterialTheme.colorScheme.surfaceContainerHighest
|
||||
)
|
||||
}
|
||||
item {
|
||||
ButtonsColor(
|
||||
"surfaceContainerLow",
|
||||
MaterialTheme.colorScheme.surfaceContainerLow,
|
||||
"surfaceContainerLowest",
|
||||
MaterialTheme.colorScheme.surfaceContainerLowest
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue