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

This commit is contained in:
Ivan Iskandar 2022-09-04 22:14:37 +07:00 committed by GitHub
parent c7d09d098a
commit 99270e370e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 29 additions and 11 deletions

View File

@ -2,6 +2,7 @@ package eu.kanade.presentation.browse
import androidx.compose.animation.AnimatedVisibility import androidx.compose.animation.AnimatedVisibility
import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.PaddingValues import androidx.compose.foundation.layout.PaddingValues
import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.navigationBarsPadding import androidx.compose.foundation.layout.navigationBarsPadding
@ -39,8 +40,10 @@ import eu.kanade.presentation.browse.components.BrowseSourceComfortableGrid
import eu.kanade.presentation.browse.components.BrowseSourceCompactGrid import eu.kanade.presentation.browse.components.BrowseSourceCompactGrid
import eu.kanade.presentation.browse.components.BrowseSourceList import eu.kanade.presentation.browse.components.BrowseSourceList
import eu.kanade.presentation.browse.components.BrowseSourceToolbar import eu.kanade.presentation.browse.components.BrowseSourceToolbar
import eu.kanade.presentation.components.DownloadedOnlyModeBanner
import eu.kanade.presentation.components.EmptyScreen import eu.kanade.presentation.components.EmptyScreen
import eu.kanade.presentation.components.ExtendedFloatingActionButton import eu.kanade.presentation.components.ExtendedFloatingActionButton
import eu.kanade.presentation.components.IncognitoModeBanner
import eu.kanade.presentation.components.LoadingScreen import eu.kanade.presentation.components.LoadingScreen
import eu.kanade.presentation.components.Scaffold import eu.kanade.presentation.components.Scaffold
import eu.kanade.tachiyomi.R import eu.kanade.tachiyomi.R
@ -58,6 +61,8 @@ fun BrowseSourceScreen(
onMangaClick: (Manga) -> Unit, onMangaClick: (Manga) -> Unit,
onMangaLongClick: (Manga) -> Unit, onMangaLongClick: (Manga) -> Unit,
onWebViewClick: () -> Unit, onWebViewClick: () -> Unit,
incognitoMode: Boolean,
downloadedOnlyMode: Boolean,
) { ) {
val columns by presenter.getColumnsPreferenceForCurrentOrientation() val columns by presenter.getColumnsPreferenceForCurrentOrientation()
@ -73,17 +78,25 @@ fun BrowseSourceScreen(
Scaffold( Scaffold(
topBar = { scrollBehavior -> topBar = { scrollBehavior ->
BrowseSourceToolbar( Column {
state = presenter, BrowseSourceToolbar(
source = presenter.source!!, state = presenter,
displayMode = presenter.displayMode, source = presenter.source!!,
onDisplayModeChange = { presenter.displayMode = it }, displayMode = presenter.displayMode,
navigateUp = navigateUp, onDisplayModeChange = { presenter.displayMode = it },
onWebViewClick = onWebViewClick, navigateUp = navigateUp,
onHelpClick = onHelpClick, onWebViewClick = onWebViewClick,
onSearch = { presenter.search() }, onHelpClick = onHelpClick,
scrollBehavior = scrollBehavior, onSearch = { presenter.search() },
) scrollBehavior = scrollBehavior,
)
if (downloadedOnlyMode) {
DownloadedOnlyModeBanner()
}
if (incognitoMode) {
IncognitoModeBanner()
}
}
}, },
floatingActionButton = { floatingActionButton = {
BrowseSourceFloatingActionButton( BrowseSourceFloatingActionButton(

View File

@ -70,6 +70,8 @@ open class BrowseSourceController(bundle: Bundle) :
val intent = WebViewActivity.newIntent(context, source.baseUrl, source.id, source.name) val intent = WebViewActivity.newIntent(context, source.baseUrl, source.id, source.name)
context.startActivity(intent) context.startActivity(intent)
}, },
incognitoMode = presenter.isIncognitoMode,
downloadedOnlyMode = presenter.isDownloadOnly,
) )
val onDismissRequest = { presenter.dialog = null } val onDismissRequest = { presenter.dialog = null }

View File

@ -103,6 +103,9 @@ open class BrowseSourcePresenter(
var displayMode by preferences.sourceDisplayMode().asState() var displayMode by preferences.sourceDisplayMode().asState()
val isDownloadOnly: Boolean by preferences.downloadedOnly().asState()
val isIncognitoMode: Boolean by preferences.incognitoMode().asState()
@Composable @Composable
fun getColumnsPreferenceForCurrentOrientation(): State<GridCells> { fun getColumnsPreferenceForCurrentOrientation(): State<GridCells> {
val isLandscape = LocalConfiguration.current.orientation == Configuration.ORIENTATION_LANDSCAPE val isLandscape = LocalConfiguration.current.orientation == Configuration.ORIENTATION_LANDSCAPE