From e009398c0f5ffba84b2c2b9c1002251d50d05636 Mon Sep 17 00:00:00 2001 From: Andreas Date: Wed, 31 Aug 2022 22:47:07 +0200 Subject: [PATCH] Resolve review comments for BrowseSourceScreens (#7912) (cherry picked from commit 2f26982e346d65de82d0809d7262a17f737d9eb2) # Conflicts: # app/src/main/java/eu/kanade/presentation/browse/BrowseLatestScreen.kt # app/src/main/java/eu/kanade/presentation/browse/BrowseSourceScreen.kt # app/src/main/java/eu/kanade/presentation/browse/SourceSearchScreen.kt # app/src/main/java/eu/kanade/presentation/browse/components/BrowseLatestToolbar.kt # app/src/main/java/eu/kanade/presentation/browse/components/BrowseSourceToolbar.kt # app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/BrowseSourceController.kt # app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/latest/LatestUpdatesController.kt --- .../presentation/browse/BrowseLatestScreen.kt | 12 +--- .../browse/BrowseMangadexFollowsScreen.kt | 25 +------ .../browse/BrowseRecommendationsScreen.kt | 24 +------ .../presentation/browse/BrowseSourceScreen.kt | 28 ++++---- .../presentation/browse/SourceSearchScreen.kt | 10 +++ .../browse/components/BrowseLatestToolbar.kt | 6 +- .../components/BrowseSourceSimpleToolbar.kt | 2 +- .../browse/components/BrowseSourceToolbar.kt | 65 +++++-------------- .../kanade/presentation/components/AppBar.kt | 6 ++ .../source/browse/BrowseSourceController.kt | 9 +++ .../source/latest/LatestUpdatesController.kt | 9 +++ 11 files changed, 74 insertions(+), 122 deletions(-) diff --git a/app/src/main/java/eu/kanade/presentation/browse/BrowseLatestScreen.kt b/app/src/main/java/eu/kanade/presentation/browse/BrowseLatestScreen.kt index 041a14f39..4bdf65d9b 100644 --- a/app/src/main/java/eu/kanade/presentation/browse/BrowseLatestScreen.kt +++ b/app/src/main/java/eu/kanade/presentation/browse/BrowseLatestScreen.kt @@ -4,17 +4,14 @@ import androidx.compose.material3.SnackbarHostState import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue import androidx.compose.runtime.remember -import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.LocalUriHandler import androidx.paging.compose.collectAsLazyPagingItems import eu.kanade.domain.manga.model.Manga import eu.kanade.presentation.browse.components.BrowseLatestToolbar import eu.kanade.presentation.components.Scaffold import eu.kanade.tachiyomi.source.LocalSource -import eu.kanade.tachiyomi.source.online.HttpSource import eu.kanade.tachiyomi.ui.browse.source.browse.BrowseSourcePresenter import eu.kanade.tachiyomi.ui.more.MoreController -import eu.kanade.tachiyomi.ui.webview.WebViewActivity import exh.source.isEhBasedSource @Composable @@ -23,24 +20,19 @@ fun BrowseLatestScreen( navigateUp: () -> Unit, onMangaClick: (Manga) -> Unit, onMangaLongClick: (Manga) -> Unit, + onWebViewClick: () -> Unit, // SY --> onSettingsClick: () -> Unit, // SY <-- ) { val columns by presenter.getColumnsPreferenceForCurrentOrientation() - val context = LocalContext.current + val uriHandler = LocalUriHandler.current val onHelpClick = { uriHandler.openUri(LocalSource.HELP_URL) } - val onWebViewClick = f@{ - val source = presenter.source as? HttpSource ?: return@f - val intent = WebViewActivity.newIntent(context, source.baseUrl, source.id, source.name) - context.startActivity(intent) - } - Scaffold( topBar = { scrollBehavior -> BrowseLatestToolbar( diff --git a/app/src/main/java/eu/kanade/presentation/browse/BrowseMangadexFollowsScreen.kt b/app/src/main/java/eu/kanade/presentation/browse/BrowseMangadexFollowsScreen.kt index 7be60c2bb..6b3c85f71 100644 --- a/app/src/main/java/eu/kanade/presentation/browse/BrowseMangadexFollowsScreen.kt +++ b/app/src/main/java/eu/kanade/presentation/browse/BrowseMangadexFollowsScreen.kt @@ -5,20 +5,14 @@ import androidx.compose.material3.SnackbarHostState import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue import androidx.compose.runtime.remember -import androidx.compose.ui.platform.LocalContext -import androidx.compose.ui.platform.LocalUriHandler import androidx.compose.ui.res.stringResource import androidx.paging.compose.collectAsLazyPagingItems import eu.kanade.domain.manga.model.Manga import eu.kanade.presentation.browse.components.BrowseSourceSimpleToolbar import eu.kanade.presentation.components.Scaffold import eu.kanade.tachiyomi.R -import eu.kanade.tachiyomi.source.LocalSource -import eu.kanade.tachiyomi.source.online.HttpSource import eu.kanade.tachiyomi.ui.browse.source.browse.BrowseSourcePresenter import eu.kanade.tachiyomi.ui.library.setting.LibraryDisplayMode -import eu.kanade.tachiyomi.ui.more.MoreController -import eu.kanade.tachiyomi.ui.webview.WebViewActivity @Composable fun BrowseMangadexFollowsScreen( @@ -34,19 +28,6 @@ fun BrowseMangadexFollowsScreen( val snackbarHostState = remember { SnackbarHostState() } - val context = LocalContext.current - val uriHandler = LocalUriHandler.current - - val onHelpClick = { - uriHandler.openUri(LocalSource.HELP_URL) - } - - val onWebViewClick = f@{ - val source = presenter.source as? HttpSource ?: return@f - val intent = WebViewActivity.newIntent(context, source.baseUrl, source.id, source.name) - context.startActivity(intent) - } - Scaffold( topBar = { scrollBehavior -> BrowseSourceSimpleToolbar( @@ -77,9 +58,9 @@ fun BrowseMangadexFollowsScreen( displayMode = presenter.displayMode, snackbarHostState = snackbarHostState, contentPadding = paddingValues, - onWebViewClick = onWebViewClick, - onHelpClick = { uriHandler.openUri(MoreController.URL_HELP) }, - onLocalSourceHelpClick = onHelpClick, + onWebViewClick = null, + onHelpClick = null, + onLocalSourceHelpClick = null, onMangaClick = onMangaClick, onMangaLongClick = onMangaLongClick, ) diff --git a/app/src/main/java/eu/kanade/presentation/browse/BrowseRecommendationsScreen.kt b/app/src/main/java/eu/kanade/presentation/browse/BrowseRecommendationsScreen.kt index 8f86b38a3..721162cd5 100644 --- a/app/src/main/java/eu/kanade/presentation/browse/BrowseRecommendationsScreen.kt +++ b/app/src/main/java/eu/kanade/presentation/browse/BrowseRecommendationsScreen.kt @@ -4,17 +4,11 @@ import androidx.compose.material3.SnackbarHostState import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue import androidx.compose.runtime.remember -import androidx.compose.ui.platform.LocalContext -import androidx.compose.ui.platform.LocalUriHandler import androidx.paging.compose.collectAsLazyPagingItems import eu.kanade.domain.manga.model.Manga import eu.kanade.presentation.browse.components.BrowseSourceSimpleToolbar import eu.kanade.presentation.components.Scaffold -import eu.kanade.tachiyomi.source.LocalSource -import eu.kanade.tachiyomi.source.online.HttpSource import eu.kanade.tachiyomi.ui.browse.source.browse.BrowseSourcePresenter -import eu.kanade.tachiyomi.ui.more.MoreController -import eu.kanade.tachiyomi.ui.webview.WebViewActivity @Composable fun BrowseRecommendationsScreen( @@ -24,18 +18,6 @@ fun BrowseRecommendationsScreen( onMangaClick: (Manga) -> Unit, ) { val columns by presenter.getColumnsPreferenceForCurrentOrientation() - val context = LocalContext.current - val uriHandler = LocalUriHandler.current - - val onHelpClick = { - uriHandler.openUri(LocalSource.HELP_URL) - } - - val onWebViewClick = f@{ - val source = presenter.source as? HttpSource ?: return@f - val intent = WebViewActivity.newIntent(context, source.baseUrl, source.id, source.name) - context.startActivity(intent) - } Scaffold( topBar = { scrollBehavior -> @@ -64,9 +46,9 @@ fun BrowseRecommendationsScreen( displayMode = presenter.displayMode, snackbarHostState = remember { SnackbarHostState() }, contentPadding = paddingValues, - onWebViewClick = onWebViewClick, - onHelpClick = { uriHandler.openUri(MoreController.URL_HELP) }, - onLocalSourceHelpClick = onHelpClick, + onWebViewClick = null, + onHelpClick = null, + onLocalSourceHelpClick = null, onMangaClick = onMangaClick, onMangaLongClick = onMangaClick, ) diff --git a/app/src/main/java/eu/kanade/presentation/browse/BrowseSourceScreen.kt b/app/src/main/java/eu/kanade/presentation/browse/BrowseSourceScreen.kt index 365966096..254b0ad21 100644 --- a/app/src/main/java/eu/kanade/presentation/browse/BrowseSourceScreen.kt +++ b/app/src/main/java/eu/kanade/presentation/browse/BrowseSourceScreen.kt @@ -35,12 +35,10 @@ import eu.kanade.presentation.components.Scaffold import eu.kanade.tachiyomi.R import eu.kanade.tachiyomi.source.CatalogueSource import eu.kanade.tachiyomi.source.LocalSource -import eu.kanade.tachiyomi.source.online.HttpSource import eu.kanade.tachiyomi.ui.browse.source.browse.BrowseSourcePresenter import eu.kanade.tachiyomi.ui.browse.source.browse.NoResultsException import eu.kanade.tachiyomi.ui.library.setting.LibraryDisplayMode import eu.kanade.tachiyomi.ui.more.MoreController -import eu.kanade.tachiyomi.ui.webview.WebViewActivity import eu.kanade.tachiyomi.widget.EmptyView import exh.metadata.metadata.base.RaisedSearchMetadata import exh.source.isEhBasedSource @@ -53,6 +51,7 @@ fun BrowseSourceScreen( onFabClick: () -> Unit, onMangaClick: (Manga) -> Unit, onMangaLongClick: (Manga) -> Unit, + onWebViewClick: () -> Unit, // SY --> onSettingsClick: () -> Unit, // SY <-- @@ -63,19 +62,12 @@ fun BrowseSourceScreen( val snackbarHostState = remember { SnackbarHostState() } - val context = LocalContext.current val uriHandler = LocalUriHandler.current val onHelpClick = { uriHandler.openUri(LocalSource.HELP_URL) } - val onWebViewClick = f@{ - val source = presenter.source as? HttpSource ?: return@f - val intent = WebViewActivity.newIntent(context, source.baseUrl, source.id, source.name) - context.startActivity(intent) - } - Scaffold( topBar = { scrollBehavior -> BrowseSourceToolbar( @@ -155,9 +147,11 @@ fun BrowseSourceContent( displayMode: LibraryDisplayMode, snackbarHostState: SnackbarHostState, contentPadding: PaddingValues, - onWebViewClick: () -> Unit, - onHelpClick: () -> Unit, - onLocalSourceHelpClick: () -> Unit, + // SY --> + onWebViewClick: (() -> Unit)?, + onHelpClick: (() -> Unit)?, + onLocalSourceHelpClick: (() -> Unit)?, + // SY <-- onMangaClick: (Manga) -> Unit, onMangaLongClick: (Manga) -> Unit, ) { @@ -192,15 +186,17 @@ fun BrowseSourceContent( if (mangaList.itemCount <= 0 && errorState != null && errorState is LoadState.Error) { EmptyScreen( message = getErrorMessage(errorState), - actions = if (source is LocalSource) { + actions = if (source is LocalSource /* SY --> */ && onLocalSourceHelpClick != null /* SY <-- */) { listOf( EmptyView.Action(R.string.local_source_help_guide, R.drawable.ic_help_24dp) { onLocalSourceHelpClick() }, ) } else { - listOf( + listOfNotNull( EmptyView.Action(R.string.action_retry, R.drawable.ic_refresh_24dp) { mangaList.refresh() }, - EmptyView.Action(R.string.action_open_in_web_view, R.drawable.ic_public_24dp) { onWebViewClick() }, - EmptyView.Action(R.string.label_help, R.drawable.ic_help_24dp) { onHelpClick() }, + // SY --> + EmptyView.Action(R.string.action_open_in_web_view, R.drawable.ic_public_24dp) { onWebViewClick?.invoke() }.takeIf { onWebViewClick != null }, + EmptyView.Action(R.string.label_help, R.drawable.ic_help_24dp) { onHelpClick?.invoke() }.takeIf { onHelpClick != null }, + // SY <-- ) }, ) diff --git a/app/src/main/java/eu/kanade/presentation/browse/SourceSearchScreen.kt b/app/src/main/java/eu/kanade/presentation/browse/SourceSearchScreen.kt index 9834fb582..33016b564 100644 --- a/app/src/main/java/eu/kanade/presentation/browse/SourceSearchScreen.kt +++ b/app/src/main/java/eu/kanade/presentation/browse/SourceSearchScreen.kt @@ -1,8 +1,11 @@ package eu.kanade.presentation.browse import androidx.compose.runtime.Composable +import androidx.glance.LocalContext import eu.kanade.domain.manga.model.Manga +import eu.kanade.tachiyomi.source.online.HttpSource import eu.kanade.tachiyomi.ui.browse.source.browse.BrowseSourcePresenter +import eu.kanade.tachiyomi.ui.webview.WebViewActivity @Composable fun SourceSearchScreen( @@ -14,6 +17,8 @@ fun SourceSearchScreen( onSettingsClick: () -> Unit, // SY <-- ) { + val context = LocalContext.current + BrowseSourceScreen( presenter = presenter, navigateUp = navigateUp, @@ -21,6 +26,11 @@ fun SourceSearchScreen( onFabClick = onFabClick, onMangaClick = onClickManga, onMangaLongClick = onClickManga, + onWebViewClick = f@{ + val source = presenter.source as? HttpSource ?: return@f + val intent = WebViewActivity.newIntent(context, source.baseUrl, source.id, source.name) + context.startActivity(intent) + }, // SY --> onSettingsClick = onSettingsClick, // SY <-- diff --git a/app/src/main/java/eu/kanade/presentation/browse/components/BrowseLatestToolbar.kt b/app/src/main/java/eu/kanade/presentation/browse/components/BrowseLatestToolbar.kt index f603b51d0..ff72bcd3c 100644 --- a/app/src/main/java/eu/kanade/presentation/browse/components/BrowseLatestToolbar.kt +++ b/app/src/main/java/eu/kanade/presentation/browse/components/BrowseLatestToolbar.kt @@ -48,20 +48,20 @@ fun BrowseLatestToolbar( // SY --> actions = listOfNotNull( AppBar.Action( - title = "display_mode", + title = stringResource(id = R.string.action_display_mode), icon = Icons.Filled.ViewModule, onClick = { selectingDisplayMode = true }, ).takeIf { displayMode != null }, // SY <-- if (source is LocalSource) { AppBar.Action( - title = "help", + title = stringResource(id = R.string.label_help), icon = Icons.Outlined.Help, onClick = onHelpClick, ) } else { AppBar.Action( - title = stringResource(R.string.action_web_view), + title = stringResource(id = R.string.action_web_view), icon = Icons.Outlined.Public, onClick = onWebViewClick, ) diff --git a/app/src/main/java/eu/kanade/presentation/browse/components/BrowseSourceSimpleToolbar.kt b/app/src/main/java/eu/kanade/presentation/browse/components/BrowseSourceSimpleToolbar.kt index a47fe89c2..77c1c0c68 100644 --- a/app/src/main/java/eu/kanade/presentation/browse/components/BrowseSourceSimpleToolbar.kt +++ b/app/src/main/java/eu/kanade/presentation/browse/components/BrowseSourceSimpleToolbar.kt @@ -36,7 +36,7 @@ fun BrowseSourceSimpleToolbar( // SY --> actions = listOfNotNull( AppBar.Action( - title = "display_mode", + title = stringResource(id = R.string.action_display_mode), icon = Icons.Filled.ViewModule, onClick = { selectingDisplayMode = true }, ), diff --git a/app/src/main/java/eu/kanade/presentation/browse/components/BrowseSourceToolbar.kt b/app/src/main/java/eu/kanade/presentation/browse/components/BrowseSourceToolbar.kt index 3fde6769f..a83113599 100644 --- a/app/src/main/java/eu/kanade/presentation/browse/components/BrowseSourceToolbar.kt +++ b/app/src/main/java/eu/kanade/presentation/browse/components/BrowseSourceToolbar.kt @@ -1,45 +1,36 @@ package eu.kanade.presentation.browse.components -import androidx.compose.foundation.layout.fillMaxWidth -import androidx.compose.foundation.text.BasicTextField import androidx.compose.foundation.text.KeyboardActions import androidx.compose.foundation.text.KeyboardOptions import androidx.compose.material.icons.Icons import androidx.compose.material.icons.filled.ViewModule import androidx.compose.material.icons.outlined.Check -import androidx.compose.material.icons.outlined.Clear import androidx.compose.material.icons.outlined.Help import androidx.compose.material.icons.outlined.Public import androidx.compose.material.icons.outlined.Search import androidx.compose.material.icons.outlined.Settings import androidx.compose.material3.DropdownMenuItem import androidx.compose.material3.Icon -import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Text import androidx.compose.material3.TopAppBarScrollBehavior import androidx.compose.runtime.Composable -import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.runtime.setValue -import androidx.compose.ui.Modifier -import androidx.compose.ui.focus.FocusRequester -import androidx.compose.ui.focus.focusRequester -import androidx.compose.ui.graphics.SolidColor import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.input.ImeAction import eu.kanade.presentation.browse.BrowseSourceState import eu.kanade.presentation.components.AppBar import eu.kanade.presentation.components.AppBarActions import eu.kanade.presentation.components.DropdownMenu +import eu.kanade.presentation.components.SearchToolbar import eu.kanade.tachiyomi.R import eu.kanade.tachiyomi.source.CatalogueSource import eu.kanade.tachiyomi.source.ConfigurableSource import eu.kanade.tachiyomi.source.LocalSource import eu.kanade.tachiyomi.ui.library.setting.LibraryDisplayMode import exh.source.anyIs -import kotlinx.coroutines.delay @Composable fun BrowseSourceToolbar( @@ -107,26 +98,26 @@ fun BrowseSourceRegularToolbar( AppBarActions( actions = listOfNotNull( AppBar.Action( - title = "search", + title = stringResource(id = R.string.action_search), icon = Icons.Outlined.Search, onClick = onSearchClick, ), // SY --> AppBar.Action( - title = "display_mode", + title = stringResource(id = R.string.action_display_mode), icon = Icons.Filled.ViewModule, onClick = { selectingDisplayMode = true }, ).takeIf { displayMode != null }, // SY <-- if (source is LocalSource) { AppBar.Action( - title = "help", + title = stringResource(id = R.string.label_help), icon = Icons.Outlined.Help, onClick = onHelpClick, ) } else { AppBar.Action( - title = stringResource(R.string.action_web_view), + title = stringResource(id = R.string.action_web_view), icon = Icons.Outlined.Public, onClick = onWebViewClick, ) @@ -195,41 +186,17 @@ fun BrowseSourceSearchToolbar( onSearchClick: () -> Unit, scrollBehavior: TopAppBarScrollBehavior, ) { - val focusRequester = remember { FocusRequester() } - AppBar( - navigateUp = navigateUp, - titleContent = { - BasicTextField( - value = searchQuery, - onValueChange = onSearchQueryChanged, - modifier = Modifier - .fillMaxWidth() - .focusRequester(focusRequester), - keyboardOptions = KeyboardOptions(imeAction = ImeAction.Search), - keyboardActions = KeyboardActions( - onSearch = { - onSearchClick() - }, - ), - cursorBrush = SolidColor(MaterialTheme.colorScheme.onSurface), - ) - }, - actions = { - AppBarActions( - actions = listOf( - AppBar.Action( - title = "clear", - icon = Icons.Outlined.Clear, - onClick = onResetClick, - ), - ), - ) - }, + SearchToolbar( + searchQuery = searchQuery, + onChangeSearchQuery = onSearchQueryChanged, + keyboardOptions = KeyboardOptions(imeAction = ImeAction.Search), + keyboardActions = KeyboardActions( + onSearch = { + onSearchClick() + }, + ), + onClickCloseSearch = navigateUp, + onClickResetSearch = onResetClick, scrollBehavior = scrollBehavior, ) - LaunchedEffect(Unit) { - // TODO: https://issuetracker.google.com/issues/204502668 - delay(100) - focusRequester.requestFocus() - } } diff --git a/app/src/main/java/eu/kanade/presentation/components/AppBar.kt b/app/src/main/java/eu/kanade/presentation/components/AppBar.kt index 4bb4e62db..e3a28118d 100644 --- a/app/src/main/java/eu/kanade/presentation/components/AppBar.kt +++ b/app/src/main/java/eu/kanade/presentation/components/AppBar.kt @@ -7,6 +7,8 @@ import androidx.compose.foundation.layout.WindowInsets import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.statusBars import androidx.compose.foundation.text.BasicTextField +import androidx.compose.foundation.text.KeyboardActions +import androidx.compose.foundation.text.KeyboardOptions import androidx.compose.material.icons.Icons import androidx.compose.material.icons.filled.ArrowBack import androidx.compose.material.icons.filled.Close @@ -220,6 +222,8 @@ fun AppBarActions( fun SearchToolbar( searchQuery: String, onChangeSearchQuery: (String) -> Unit, + keyboardOptions: KeyboardOptions = KeyboardOptions.Default, + keyboardActions: KeyboardActions = KeyboardActions.Default, onClickCloseSearch: () -> Unit, onClickResetSearch: () -> Unit, incognitoMode: Boolean = false, @@ -236,6 +240,8 @@ fun SearchToolbar( .fillMaxWidth() .focusRequester(focusRequester), textStyle = MaterialTheme.typography.bodyMedium.copy(color = MaterialTheme.colorScheme.onBackground), + keyboardOptions = keyboardOptions, + keyboardActions = keyboardActions, singleLine = true, cursorBrush = SolidColor(MaterialTheme.colorScheme.onBackground), ) diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/BrowseSourceController.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/BrowseSourceController.kt index 017d6fa55..2d9783e90 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/BrowseSourceController.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/BrowseSourceController.kt @@ -4,6 +4,7 @@ import android.os.Bundle import androidx.compose.runtime.Composable import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.rememberCoroutineScope +import androidx.compose.ui.platform.LocalContext import com.google.android.material.dialog.MaterialAlertDialogBuilder import eu.kanade.domain.source.model.Source import eu.kanade.presentation.browse.BrowseSourceScreen @@ -14,6 +15,7 @@ import eu.kanade.tachiyomi.R import eu.kanade.tachiyomi.source.CatalogueSource import eu.kanade.tachiyomi.source.model.Filter import eu.kanade.tachiyomi.source.model.FilterList +import eu.kanade.tachiyomi.source.online.HttpSource import eu.kanade.tachiyomi.ui.base.controller.FullComposeController import eu.kanade.tachiyomi.ui.base.controller.pushController import eu.kanade.tachiyomi.ui.browse.extension.details.SourcePreferencesController @@ -21,6 +23,7 @@ import eu.kanade.tachiyomi.ui.browse.source.SourcesController import eu.kanade.tachiyomi.ui.browse.source.browse.BrowseSourcePresenter.Dialog import eu.kanade.tachiyomi.ui.category.CategoryController import eu.kanade.tachiyomi.ui.manga.MangaController +import eu.kanade.tachiyomi.ui.webview.WebViewActivity import eu.kanade.tachiyomi.util.lang.launchIO import eu.kanade.tachiyomi.util.lang.launchUI import eu.kanade.tachiyomi.util.system.toast @@ -102,6 +105,7 @@ open class BrowseSourceController(bundle: Bundle) : @Composable override fun ComposeContent() { val scope = rememberCoroutineScope() + val context = LocalContext.current BrowseSourceScreen( presenter = presenter, @@ -119,6 +123,11 @@ open class BrowseSourceController(bundle: Bundle) : } } }, + onWebViewClick = f@{ + val source = presenter.source as? HttpSource ?: return@f + val intent = WebViewActivity.newIntent(context, source.baseUrl, source.id, source.name) + context.startActivity(intent) + }, // SY --> onSettingsClick = { router.pushController(SourcePreferencesController(presenter.source!!.id)) diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/latest/LatestUpdatesController.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/latest/LatestUpdatesController.kt index a93f6ba46..e43e08a14 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/latest/LatestUpdatesController.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/latest/LatestUpdatesController.kt @@ -3,6 +3,7 @@ package eu.kanade.tachiyomi.ui.browse.source.latest import android.os.Bundle import androidx.compose.runtime.Composable import androidx.compose.runtime.rememberCoroutineScope +import androidx.compose.ui.platform.LocalContext import androidx.core.os.bundleOf import eu.kanade.domain.source.model.Source import eu.kanade.presentation.browse.BrowseLatestScreen @@ -10,12 +11,14 @@ import eu.kanade.presentation.browse.components.RemoveMangaDialog import eu.kanade.presentation.components.ChangeCategoryDialog import eu.kanade.presentation.components.DuplicateMangaDialog import eu.kanade.tachiyomi.source.CatalogueSource +import eu.kanade.tachiyomi.source.online.HttpSource import eu.kanade.tachiyomi.ui.base.controller.pushController import eu.kanade.tachiyomi.ui.browse.extension.details.SourcePreferencesController import eu.kanade.tachiyomi.ui.browse.source.browse.BrowseSourceController import eu.kanade.tachiyomi.ui.browse.source.browse.BrowseSourcePresenter import eu.kanade.tachiyomi.ui.category.CategoryController import eu.kanade.tachiyomi.ui.manga.MangaController +import eu.kanade.tachiyomi.ui.webview.WebViewActivity import eu.kanade.tachiyomi.util.lang.launchIO /** @@ -40,6 +43,7 @@ class LatestUpdatesController(bundle: Bundle) : BrowseSourceController(bundle) { @Composable override fun ComposeContent() { val scope = rememberCoroutineScope() + val context = LocalContext.current BrowseLatestScreen( presenter = presenter, @@ -55,6 +59,11 @@ class LatestUpdatesController(bundle: Bundle) : BrowseSourceController(bundle) { } } }, + onWebViewClick = f@{ + val source = presenter.source as? HttpSource ?: return@f + val intent = WebViewActivity.newIntent(context, source.baseUrl, source.id, source.name) + context.startActivity(intent) + }, // SY --> onSettingsClick = { router.pushController(SourcePreferencesController(presenter.source!!.id))