Fix missing downloaded only/incognito banners in Browse Source (#7936)

(cherry picked from commit 99270e370e1aba37c3ab5d8954363dd335ca0353)

# Conflicts:
#	app/src/main/java/eu/kanade/presentation/browse/BrowseSourceScreen.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/BrowseSourceController.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/BrowseSourcePresenter.kt
This commit is contained in:
Ivan Iskandar 2022-09-04 22:14:37 +07:00 committed by Jobobby04
parent 1ffba5b989
commit 25ad9c7fab
3 changed files with 36 additions and 14 deletions

View File

@ -2,6 +2,7 @@ package eu.kanade.presentation.browse
import androidx.compose.foundation.horizontalScroll
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.PaddingValues
import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.navigationBarsPadding
@ -41,8 +42,10 @@ import eu.kanade.presentation.browse.components.BrowseSourceCompactGrid
import eu.kanade.presentation.browse.components.BrowseSourceEHentaiList
import eu.kanade.presentation.browse.components.BrowseSourceList
import eu.kanade.presentation.browse.components.BrowseSourceToolbar
import eu.kanade.presentation.components.DownloadedOnlyModeBanner
import eu.kanade.presentation.components.EmptyScreen
import eu.kanade.presentation.components.ExtendedFloatingActionButton
import eu.kanade.presentation.components.IncognitoModeBanner
import eu.kanade.presentation.components.LoadingScreen
import eu.kanade.presentation.components.Scaffold
import eu.kanade.tachiyomi.R
@ -65,6 +68,8 @@ fun BrowseSourceScreen(
// SY -->
onSettingsClick: () -> Unit,
// SY <--
incognitoMode: Boolean,
downloadedOnlyMode: Boolean,
) {
val columns by presenter.getColumnsPreferenceForCurrentOrientation()
@ -80,20 +85,28 @@ fun BrowseSourceScreen(
Scaffold(
topBar = { scrollBehavior ->
BrowseSourceToolbar(
state = presenter,
source = presenter.source!!,
displayMode = presenter.displayMode.takeUnless { presenter.source!!.isEhBasedSource() && presenter.ehentaiBrowseDisplayMode },
onDisplayModeChange = { presenter.displayMode = it },
navigateUp = navigateUp,
onWebViewClick = onWebViewClick,
onHelpClick = onHelpClick,
onSearch = { presenter.search() },
// SY -->
onSettingsClick = onSettingsClick,
// SY <--
scrollBehavior = scrollBehavior,
)
Column {
BrowseSourceToolbar(
state = presenter,
source = presenter.source!!,
displayMode = presenter.displayMode.takeUnless { presenter.source!!.isEhBasedSource() && presenter.ehentaiBrowseDisplayMode },
onDisplayModeChange = { presenter.displayMode = it },
navigateUp = navigateUp,
onWebViewClick = onWebViewClick,
onHelpClick = onHelpClick,
onSearch = { presenter.search() },
// SY -->
onSettingsClick = onSettingsClick,
// SY <--
scrollBehavior = scrollBehavior,
)
if (downloadedOnlyMode) {
DownloadedOnlyModeBanner()
}
if (incognitoMode) {
IncognitoModeBanner()
}
}
},
floatingActionButton = {
BrowseSourceFloatingActionButton(

View File

@ -143,6 +143,8 @@ open class BrowseSourceController(bundle: Bundle) :
router.pushController(SourcePreferencesController(presenter.source!!.id))
},
// SY <--
incognitoMode = presenter.isIncognitoMode,
downloadedOnlyMode = presenter.isDownloadOnly,
)
val onDismissRequest = { presenter.dialog = null }

View File

@ -135,7 +135,12 @@ open class BrowseSourcePresenter(
var displayMode by preferences.sourceDisplayMode().asState()
val isDownloadOnly: Boolean by preferences.downloadedOnly().asState()
val isIncognitoMode: Boolean by preferences.incognitoMode().asState()
// SY -->
val ehentaiBrowseDisplayMode by preferences.enhancedEHentaiView().asState()
// SY <--
@Composable
fun getColumnsPreferenceForCurrentOrientation(): State<GridCells> {
@ -184,6 +189,7 @@ open class BrowseSourcePresenter(
}
}
// SY -->
@Composable
open fun getRaisedSearchMetadata(manga: DomainManga, initialMetadata: RaisedSearchMetadata?): State<RaisedSearchMetadata?> {
return produceState(initialValue = initialMetadata, manga.id) {
@ -195,6 +201,7 @@ open class BrowseSourcePresenter(
}
}
}
// SY <--
fun setFilter(filters: FilterList) {
state.filters = filters