Add WebView button to SourceFeedScreen
This commit is contained in:
parent
329417c431
commit
01007bf870
2 changed files with 32 additions and 0 deletions
|
|
@ -3,6 +3,10 @@ package eu.kanade.presentation.browse
|
|||
import androidx.compose.animation.Crossfade
|
||||
import androidx.compose.foundation.layout.PaddingValues
|
||||
import androidx.compose.foundation.lazy.items
|
||||
import androidx.compose.material.icons.Icons
|
||||
import androidx.compose.material.icons.outlined.Public
|
||||
import androidx.compose.material3.Icon
|
||||
import androidx.compose.material3.IconButton
|
||||
import androidx.compose.material3.TopAppBarScrollBehavior
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.ReadOnlyComposable
|
||||
|
|
@ -34,6 +38,7 @@ import tachiyomi.presentation.core.components.material.topSmallPaddingValues
|
|||
import tachiyomi.presentation.core.i18n.stringResource
|
||||
import tachiyomi.presentation.core.screens.LoadingScreen
|
||||
import tachiyomi.presentation.core.util.plus
|
||||
import tachiyomi.source.local.LocalSource
|
||||
|
||||
sealed class SourceFeedUI {
|
||||
abstract val id: Long
|
||||
|
|
@ -105,6 +110,7 @@ fun SourceFeedScreen(
|
|||
onSearchQueryChange: (String?) -> Unit,
|
||||
getMangaState: @Composable (Manga) -> State<Manga>,
|
||||
// KMK -->
|
||||
onWebViewClick: () -> Unit,
|
||||
sourceId: Long,
|
||||
onLongClickManga: (Manga) -> Unit,
|
||||
bulkFavoriteScreenModel: BulkFavoriteScreenModel,
|
||||
|
|
@ -140,6 +146,7 @@ fun SourceFeedScreen(
|
|||
scrollBehavior = scrollBehavior,
|
||||
onClickSearch = onClickSearch,
|
||||
// KMK -->
|
||||
onWebViewClick = onWebViewClick,
|
||||
sourceId = sourceId,
|
||||
toggleSelectionMode = bulkFavoriteScreenModel::toggleSelectionMode,
|
||||
// KMK <--
|
||||
|
|
@ -272,6 +279,7 @@ fun SourceFeedToolbar(
|
|||
scrollBehavior: TopAppBarScrollBehavior,
|
||||
onClickSearch: (String) -> Unit,
|
||||
// KMK -->
|
||||
onWebViewClick: () -> Unit,
|
||||
sourceId: Long,
|
||||
toggleSelectionMode: () -> Unit,
|
||||
// KMK <--
|
||||
|
|
@ -292,6 +300,18 @@ fun SourceFeedToolbar(
|
|||
)
|
||||
)
|
||||
persistentListOf(
|
||||
if (sourceId != LocalSource.ID) {
|
||||
IconButton(
|
||||
onClick = onWebViewClick
|
||||
) {
|
||||
Icon(
|
||||
imageVector = Icons.Outlined.Public,
|
||||
contentDescription = stringResource(MR.strings.action_web_view),
|
||||
)
|
||||
}
|
||||
} else {
|
||||
null
|
||||
},
|
||||
SourceSettingsButton(sourceId),
|
||||
)
|
||||
},
|
||||
|
|
|
|||
|
|
@ -15,6 +15,7 @@ import eu.kanade.presentation.browse.components.SourceFeedAddDialog
|
|||
import eu.kanade.presentation.browse.components.SourceFeedDeleteDialog
|
||||
import eu.kanade.presentation.util.Screen
|
||||
import eu.kanade.tachiyomi.source.Source
|
||||
import eu.kanade.tachiyomi.source.online.HttpSource
|
||||
import eu.kanade.tachiyomi.ui.browse.AddDuplicateMangaDialog
|
||||
import eu.kanade.tachiyomi.ui.browse.AllowDuplicateDialog
|
||||
import eu.kanade.tachiyomi.ui.browse.BulkFavoriteScreenModel
|
||||
|
|
@ -24,6 +25,7 @@ import eu.kanade.tachiyomi.ui.browse.RemoveMangaDialog
|
|||
import eu.kanade.tachiyomi.ui.browse.source.browse.BrowseSourceScreen
|
||||
import eu.kanade.tachiyomi.ui.browse.source.browse.SourceFilterDialog
|
||||
import eu.kanade.tachiyomi.ui.manga.MangaScreen
|
||||
import eu.kanade.tachiyomi.ui.webview.WebViewScreen
|
||||
import eu.kanade.tachiyomi.util.system.toast
|
||||
import exh.md.follows.MangaDexFollowsScreen
|
||||
import exh.ui.ifSourcesLoaded
|
||||
|
|
@ -78,6 +80,16 @@ class SourceFeedScreen(val sourceId: Long) : Screen() {
|
|||
onSearchQueryChange = screenModel::search,
|
||||
getMangaState = { screenModel.getManga(initialManga = it) },
|
||||
// KMK -->
|
||||
onWebViewClick = {
|
||||
val source = screenModel.source as? HttpSource ?: return@SourceFeedScreen
|
||||
navigator.push(
|
||||
WebViewScreen(
|
||||
url = source.baseUrl,
|
||||
initialTitle = source.name,
|
||||
sourceId = source.id,
|
||||
),
|
||||
)
|
||||
},
|
||||
sourceId = screenModel.source.id,
|
||||
onLongClickManga = { manga ->
|
||||
if (!bulkFavoriteState.selectionMode) {
|
||||
|
|
|
|||
Loading…
Reference in a new issue