瀏覽代碼

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

Ivan Iskandar 2 年之前
父節點
當前提交
99270e370e

+ 24 - 11
app/src/main/java/eu/kanade/presentation/browse/BrowseSourceScreen.kt

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

+ 2 - 0
app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/BrowseSourceController.kt

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

+ 3 - 0
app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/BrowseSourcePresenter.kt

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