diff --git a/app/src/main/java/eu/kanade/presentation/browse/ExtensionFilterScreen.kt b/app/src/main/java/eu/kanade/presentation/browse/ExtensionFilterScreen.kt index 7b965a8024..400276a2bf 100644 --- a/app/src/main/java/eu/kanade/presentation/browse/ExtensionFilterScreen.kt +++ b/app/src/main/java/eu/kanade/presentation/browse/ExtensionFilterScreen.kt @@ -11,7 +11,7 @@ import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.res.stringResource import eu.kanade.presentation.components.AppBar import eu.kanade.presentation.components.EmptyScreen -import eu.kanade.presentation.components.LazyColumn +import eu.kanade.presentation.components.FastScrollLazyColumn import eu.kanade.presentation.components.LoadingScreen import eu.kanade.presentation.components.PreferenceRow import eu.kanade.presentation.components.Scaffold @@ -70,7 +70,7 @@ private fun SourceFilterContent( state: ExtensionFilterState, onClickLang: (String) -> Unit, ) { - LazyColumn( + FastScrollLazyColumn( contentPadding = contentPadding, ) { items( diff --git a/app/src/main/java/eu/kanade/presentation/browse/MigrateMangaScreen.kt b/app/src/main/java/eu/kanade/presentation/browse/MigrateMangaScreen.kt index 736a11f45b..f08c4b0eaf 100644 --- a/app/src/main/java/eu/kanade/presentation/browse/MigrateMangaScreen.kt +++ b/app/src/main/java/eu/kanade/presentation/browse/MigrateMangaScreen.kt @@ -10,9 +10,9 @@ import androidx.compose.ui.platform.LocalContext import eu.kanade.domain.manga.model.Manga import eu.kanade.presentation.components.AppBar import eu.kanade.presentation.components.EmptyScreen +import eu.kanade.presentation.components.FastScrollLazyColumn import eu.kanade.presentation.components.LoadingScreen import eu.kanade.presentation.components.Scaffold -import eu.kanade.presentation.components.ScrollbarLazyColumn import eu.kanade.presentation.manga.components.BaseMangaListItem import eu.kanade.tachiyomi.R import eu.kanade.tachiyomi.ui.browse.migration.manga.MigrateMangaPresenter @@ -72,7 +72,7 @@ private fun MigrateMangaContent( onClickItem: (Manga) -> Unit, onClickCover: (Manga) -> Unit, ) { - ScrollbarLazyColumn( + FastScrollLazyColumn( contentPadding = contentPadding, ) { items(state.items) { manga -> diff --git a/app/src/main/java/eu/kanade/presentation/browse/SourcesFilterScreen.kt b/app/src/main/java/eu/kanade/presentation/browse/SourcesFilterScreen.kt index 70da795afb..9ae0c52a26 100644 --- a/app/src/main/java/eu/kanade/presentation/browse/SourcesFilterScreen.kt +++ b/app/src/main/java/eu/kanade/presentation/browse/SourcesFilterScreen.kt @@ -14,10 +14,10 @@ import eu.kanade.domain.source.model.Source import eu.kanade.presentation.browse.components.BaseSourceItem import eu.kanade.presentation.components.AppBar import eu.kanade.presentation.components.EmptyScreen +import eu.kanade.presentation.components.FastScrollLazyColumn import eu.kanade.presentation.components.LoadingScreen import eu.kanade.presentation.components.PreferenceRow import eu.kanade.presentation.components.Scaffold -import eu.kanade.presentation.components.ScrollbarLazyColumn import eu.kanade.tachiyomi.R import eu.kanade.tachiyomi.ui.browse.source.FilterUiModel import eu.kanade.tachiyomi.ui.browse.source.SourcesFilterPresenter @@ -76,7 +76,7 @@ private fun SourcesFilterContent( onClickLang: (String) -> Unit, onClickSource: (Source) -> Unit, ) { - ScrollbarLazyColumn( + FastScrollLazyColumn( contentPadding = contentPadding, ) { items( @@ -95,14 +95,12 @@ private fun SourcesFilterContent( }, ) { model -> when (model) { - is FilterUiModel.Header -> { - SourcesFilterHeader( - modifier = Modifier.animateItemPlacement(), - language = model.language, - enabled = model.enabled, - onClickItem = onClickLang, - ) - } + is FilterUiModel.Header -> SourcesFilterHeader( + modifier = Modifier.animateItemPlacement(), + language = model.language, + enabled = model.enabled, + onClickItem = onClickLang, + ) is FilterUiModel.Item -> SourcesFilterItem( modifier = Modifier.animateItemPlacement(), source = model.source, diff --git a/app/src/main/java/eu/kanade/presentation/history/components/HistoryContent.kt b/app/src/main/java/eu/kanade/presentation/history/components/HistoryContent.kt index b1e40b18a8..aeb5fee85a 100644 --- a/app/src/main/java/eu/kanade/presentation/history/components/HistoryContent.kt +++ b/app/src/main/java/eu/kanade/presentation/history/components/HistoryContent.kt @@ -7,10 +7,9 @@ import androidx.compose.runtime.remember import androidx.compose.ui.Modifier import eu.kanade.domain.history.model.HistoryWithRelations import eu.kanade.domain.ui.UiPreferences +import eu.kanade.presentation.components.FastScrollLazyColumn import eu.kanade.presentation.components.RelativeDateHeader -import eu.kanade.presentation.components.ScrollbarLazyColumn import eu.kanade.presentation.history.HistoryUiModel -import eu.kanade.presentation.util.plus import uy.kohesive.injekt.Injekt import uy.kohesive.injekt.api.get import java.text.DateFormat @@ -27,7 +26,7 @@ fun HistoryContent( val relativeTime: Int = remember { preferences.relativeTime().get() } val dateFormat: DateFormat = remember { UiPreferences.dateFormat(preferences.dateFormat().get()) } - ScrollbarLazyColumn( + FastScrollLazyColumn( contentPadding = contentPadding, ) { items( diff --git a/app/src/main/java/eu/kanade/presentation/updates/UpdatesScreen.kt b/app/src/main/java/eu/kanade/presentation/updates/UpdatesScreen.kt index 1560ca44d6..d43aa7f2ca 100644 --- a/app/src/main/java/eu/kanade/presentation/updates/UpdatesScreen.kt +++ b/app/src/main/java/eu/kanade/presentation/updates/UpdatesScreen.kt @@ -2,11 +2,8 @@ package eu.kanade.presentation.updates import androidx.activity.compose.BackHandler import androidx.compose.foundation.layout.PaddingValues -import androidx.compose.foundation.layout.calculateEndPadding -import androidx.compose.foundation.layout.fillMaxHeight import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.lazy.rememberLazyListState import androidx.compose.material.icons.Icons import androidx.compose.material.icons.outlined.FlipToBack import androidx.compose.material.icons.outlined.Refresh @@ -23,17 +20,15 @@ import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier import androidx.compose.ui.platform.LocalContext -import androidx.compose.ui.platform.LocalLayoutDirection import androidx.compose.ui.res.stringResource import eu.kanade.presentation.components.AppBar import eu.kanade.presentation.components.ChapterDownloadAction import eu.kanade.presentation.components.EmptyScreen -import eu.kanade.presentation.components.LazyColumn +import eu.kanade.presentation.components.FastScrollLazyColumn import eu.kanade.presentation.components.LoadingScreen import eu.kanade.presentation.components.MangaBottomActionMenu import eu.kanade.presentation.components.Scaffold import eu.kanade.presentation.components.SwipeRefresh -import eu.kanade.presentation.components.VerticalFastScroller import eu.kanade.tachiyomi.R import eu.kanade.tachiyomi.data.download.model.Download import eu.kanade.tachiyomi.data.library.LibraryUpdateService @@ -124,7 +119,6 @@ private fun UpdateScreenContent( onClickCover: (UpdatesItem) -> Unit, ) { val context = LocalContext.current - val updatesListState = rememberLazyListState() val scope = rememberCoroutineScope() var isRefreshing by remember { mutableStateOf(false) } @@ -143,34 +137,26 @@ private fun UpdateScreenContent( enabled = presenter.selectionMode.not(), indicatorPadding = contentPadding, ) { - VerticalFastScroller( - listState = updatesListState, - topContentPadding = contentPadding.calculateTopPadding(), - endContentPadding = contentPadding.calculateEndPadding(LocalLayoutDirection.current), + FastScrollLazyColumn( + contentPadding = contentPadding, ) { - LazyColumn( - modifier = Modifier.fillMaxHeight(), - state = updatesListState, - contentPadding = contentPadding, - ) { - if (presenter.lastUpdated > 0L) { - updatesLastUpdatedItem(presenter.lastUpdated) - } - - updatesUiItems( - uiModels = presenter.uiModels, - selectionMode = presenter.selectionMode, - onUpdateSelected = presenter::toggleSelection, - onClickCover = onClickCover, - onClickUpdate = { - val intent = ReaderActivity.newIntent(context, it.update.mangaId, it.update.chapterId) - context.startActivity(intent) - }, - onDownloadChapter = presenter::downloadChapters, - relativeTime = presenter.relativeTime, - dateFormat = presenter.dateFormat, - ) + if (presenter.lastUpdated > 0L) { + updatesLastUpdatedItem(presenter.lastUpdated) } + + updatesUiItems( + uiModels = presenter.uiModels, + selectionMode = presenter.selectionMode, + onUpdateSelected = presenter::toggleSelection, + onClickCover = onClickCover, + onClickUpdate = { + val intent = ReaderActivity.newIntent(context, it.update.mangaId, it.update.chapterId) + context.startActivity(intent) + }, + onDownloadChapter = presenter::downloadChapters, + relativeTime = presenter.relativeTime, + dateFormat = presenter.dateFormat, + ) } }