diff --git a/app/src/main/java/eu/kanade/presentation/browse/BrowseTabWrapper.kt b/app/src/main/java/eu/kanade/presentation/browse/BrowseTabWrapper.kt index 1fd59b22e..4b1cd343e 100644 --- a/app/src/main/java/eu/kanade/presentation/browse/BrowseTabWrapper.kt +++ b/app/src/main/java/eu/kanade/presentation/browse/BrowseTabWrapper.kt @@ -4,7 +4,6 @@ import androidx.compose.material3.SnackbarHost import androidx.compose.material3.SnackbarHostState import androidx.compose.runtime.Composable import androidx.compose.runtime.remember -import cafe.adriel.voyager.navigator.LocalNavigator import eu.kanade.presentation.components.AppBar import eu.kanade.presentation.components.AppBarActions import eu.kanade.presentation.components.TabContent @@ -12,9 +11,8 @@ import tachiyomi.presentation.core.components.material.Scaffold import tachiyomi.presentation.core.i18n.stringResource @Composable -fun BrowseTabWrapper(tab: TabContent) { +fun BrowseTabWrapper(tab: TabContent, onBackPressed: (() -> Unit)? = null) { val snackbarHostState = remember { SnackbarHostState() } - val navigator = LocalNavigator.current Scaffold( topBar = { scrollBehavior -> AppBar( @@ -22,8 +20,8 @@ fun BrowseTabWrapper(tab: TabContent) { actions = { AppBarActions(tab.actions) }, + navigateUp = onBackPressed, scrollBehavior = scrollBehavior, - navigateUp = { navigator?.pop() }, ) }, snackbarHost = { SnackbarHost(hostState = snackbarHostState) }, diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/sources/MigrationSourcesScreen.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/sources/MigrationSourcesScreen.kt index 9a5d18e64..e3bfe4c27 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/sources/MigrationSourcesScreen.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/sources/MigrationSourcesScreen.kt @@ -1,12 +1,15 @@ package eu.kanade.tachiyomi.ui.browse.migration.sources import androidx.compose.runtime.Composable +import cafe.adriel.voyager.navigator.LocalNavigator +import cafe.adriel.voyager.navigator.currentOrThrow import eu.kanade.presentation.browse.BrowseTabWrapper import eu.kanade.presentation.util.Screen class MigrationSourcesScreen : Screen() { @Composable override fun Content() { - BrowseTabWrapper(migrateSourceTab()) + val navigator = LocalNavigator.currentOrThrow + BrowseTabWrapper(migrateSourceTab(), onBackPressed = navigator::pop) } } diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/SourcesScreen.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/SourcesScreen.kt index 583e99d42..be5eb30d6 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/SourcesScreen.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/SourcesScreen.kt @@ -1,6 +1,8 @@ package eu.kanade.tachiyomi.ui.browse.source import androidx.compose.runtime.Composable +import cafe.adriel.voyager.navigator.LocalNavigator +import cafe.adriel.voyager.navigator.currentOrThrow import eu.kanade.presentation.browse.BrowseTabWrapper import eu.kanade.presentation.util.Screen import eu.kanade.tachiyomi.ui.manga.MangaScreen @@ -16,7 +18,8 @@ import java.io.Serializable class SourcesScreen(private val smartSearchConfig: SmartSearchConfig?) : Screen() { @Composable override fun Content() { - BrowseTabWrapper(sourcesTab(smartSearchConfig)) + val navigator = LocalNavigator.currentOrThrow + BrowseTabWrapper(sourcesTab(smartSearchConfig), onBackPressed = navigator::pop) } /** diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/SourcesTab.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/SourcesTab.kt index fdc7855a6..e498a51c9 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/SourcesTab.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/SourcesTab.kt @@ -49,39 +49,34 @@ fun Screen.sourcesTab( true -> MR.strings.label_sources false -> SYMR.strings.find_in_another_source }, - actions = if (smartSearchConfig == null) { - persistentListOf( - AppBar.Action( - title = stringResource(MR.strings.action_global_search), - icon = Icons.Outlined.TravelExplore, - onClick = { navigator.push(GlobalSearchScreen()) }, - ), - // KMK --> - AppBar.Action( - title = stringResource(KMR.strings.action_toggle_nsfw_only), - icon = Icons.Outlined._18UpRating, - iconTint = if (state.nsfwOnly) MaterialTheme.colorScheme.error else LocalContentColor.current, - onClick = { screenModel.toggleNsfwOnly() }, - ), - // KMK <-- - AppBar.Action( - title = stringResource(MR.strings.action_filter), - icon = Icons.Outlined.FilterList, - onClick = { navigator.push(SourcesFilterScreen()) }, - ), - ) - } else { - // Merge: find in another source - persistentListOf( - // KMK --> - AppBar.Action( - title = stringResource(KMR.strings.action_toggle_nsfw_only), - icon = Icons.Outlined._18UpRating, - iconTint = if (state.nsfwOnly) MaterialTheme.colorScheme.error else LocalContentColor.current, - onClick = { screenModel.toggleNsfwOnly() }, - ), - // KMK <-- - ) + actions = persistentListOf( + AppBar.Action( + title = stringResource(MR.strings.action_global_search), + icon = Icons.Outlined.TravelExplore, + onClick = { navigator.push(GlobalSearchScreen(smartSearchConfig?.origTitle ?: "")) }, + ), + // KMK --> + AppBar.Action( + title = stringResource(KMR.strings.action_toggle_nsfw_only), + icon = Icons.Outlined._18UpRating, + iconTint = if (state.nsfwOnly) MaterialTheme.colorScheme.error else LocalContentColor.current, + onClick = { screenModel.toggleNsfwOnly() }, + ), + // KMK <-- + ).let { + when (smartSearchConfig) { + null -> { + it.add( + AppBar.Action( + title = stringResource(MR.strings.action_filter), + icon = Icons.Outlined.FilterList, + onClick = { navigator.push(SourcesFilterScreen()) }, + ), + ) + } + // Merge: find in another source + else -> it + } }, // SY <-- content = { contentPadding, snackbarHostState ->