Minor cleanup/fixes

- Add FAB collapsing in clear database screen (fixes #7935)
- Don't allow multiline category names to be entered
- Consolidate Downloaded Only / Incognito Mode banner components
- Fix see-through migrate screen sticky header
This commit is contained in:
arkon
2022-09-18 16:08:50 -04:00
parent b668364afb
commit 83871fc013
17 changed files with 68 additions and 71 deletions

View File

@@ -1,5 +1,6 @@
package eu.kanade.presentation.more.settings.database
import androidx.compose.foundation.lazy.rememberLazyListState
import androidx.compose.runtime.Composable
import androidx.compose.ui.platform.LocalContext
import eu.kanade.presentation.components.Scaffold
@@ -7,7 +8,6 @@ import eu.kanade.presentation.more.settings.database.components.ClearDatabaseCon
import eu.kanade.presentation.more.settings.database.components.ClearDatabaseDeleteDialog
import eu.kanade.presentation.more.settings.database.components.ClearDatabaseFloatingActionButton
import eu.kanade.presentation.more.settings.database.components.ClearDatabaseToolbar
import eu.kanade.presentation.util.plus
import eu.kanade.tachiyomi.R
import eu.kanade.tachiyomi.ui.setting.database.ClearDatabasePresenter
import eu.kanade.tachiyomi.util.system.toast
@@ -18,6 +18,7 @@ fun ClearDatabaseScreen(
navigateUp: () -> Unit,
) {
val context = LocalContext.current
val lazyListState = rememberLazyListState()
Scaffold(
topBar = { scrollBehavior ->
ClearDatabaseToolbar(
@@ -31,6 +32,7 @@ fun ClearDatabaseScreen(
floatingActionButton = {
ClearDatabaseFloatingActionButton(
isVisible = presenter.selection.isNotEmpty(),
lazyListState = lazyListState,
onClickDelete = {
presenter.dialog = ClearDatabasePresenter.Dialog.Delete(presenter.selection)
},
@@ -40,6 +42,7 @@ fun ClearDatabaseScreen(
ClearDatabaseContent(
state = presenter,
contentPadding = paddingValues,
lazyListState = lazyListState,
onClickSelection = { source ->
presenter.toggleSelection(source)
},

View File

@@ -5,6 +5,7 @@ import androidx.compose.foundation.layout.PaddingValues
import androidx.compose.foundation.layout.WindowInsets
import androidx.compose.foundation.layout.asPaddingValues
import androidx.compose.foundation.layout.navigationBars
import androidx.compose.foundation.lazy.LazyListState
import androidx.compose.foundation.lazy.items
import androidx.compose.runtime.Composable
import androidx.compose.ui.res.stringResource
@@ -19,12 +20,14 @@ import eu.kanade.tachiyomi.R
fun ClearDatabaseContent(
state: ClearDatabaseState,
contentPadding: PaddingValues,
lazyListState: LazyListState,
onClickSelection: (Source) -> Unit,
) {
Crossfade(targetState = state.isEmpty.not()) { _state ->
when (_state) {
true -> FastScrollLazyColumn(
contentPadding = contentPadding + WindowInsets.navigationBars.asPaddingValues(),
state = lazyListState,
) {
items(state.items) { sourceWithCount ->
ClearDatabaseItem(

View File

@@ -4,6 +4,7 @@ import androidx.compose.animation.AnimatedVisibility
import androidx.compose.animation.fadeIn
import androidx.compose.animation.fadeOut
import androidx.compose.foundation.layout.navigationBarsPadding
import androidx.compose.foundation.lazy.LazyListState
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.outlined.Delete
import androidx.compose.material3.Icon
@@ -12,11 +13,14 @@ import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.res.stringResource
import eu.kanade.presentation.components.ExtendedFloatingActionButton
import eu.kanade.presentation.util.isScrolledToEnd
import eu.kanade.presentation.util.isScrollingUp
import eu.kanade.tachiyomi.R
@Composable
fun ClearDatabaseFloatingActionButton(
isVisible: Boolean,
lazyListState: LazyListState,
onClickDelete: () -> Unit,
) {
AnimatedVisibility(
@@ -33,6 +37,7 @@ fun ClearDatabaseFloatingActionButton(
Icon(Icons.Outlined.Delete, contentDescription = "")
},
onClick = onClickDelete,
expanded = lazyListState.isScrollingUp() || lazyListState.isScrolledToEnd(),
)
}
}