diff --git a/app/src/main/java/eu/kanade/presentation/browse/ExtensionDetailsScreen.kt b/app/src/main/java/eu/kanade/presentation/browse/ExtensionDetailsScreen.kt index 2935964ba..4a40a75c8 100644 --- a/app/src/main/java/eu/kanade/presentation/browse/ExtensionDetailsScreen.kt +++ b/app/src/main/java/eu/kanade/presentation/browse/ExtensionDetailsScreen.kt @@ -16,6 +16,7 @@ import androidx.compose.foundation.layout.size import androidx.compose.foundation.lazy.items import androidx.compose.material.icons.Icons import androidx.compose.material.icons.automirrored.outlined.Launch +import androidx.compose.material.icons.outlined.Public import androidx.compose.material.icons.outlined.Settings import androidx.compose.material3.AlertDialog import androidx.compose.material3.Button @@ -68,6 +69,9 @@ fun ExtensionDetailsScreen( navigateUp: () -> Unit, state: ExtensionDetailsScreenModel.State, onClickSourcePreferences: (sourceId: Long) -> Unit, + // KMK --> + onOpenWebView: (() -> Unit)?, + // KMK <-- onClickEnableAll: () -> Unit, onClickDisableAll: () -> Unit, onClickClearCookies: () -> Unit, @@ -94,6 +98,15 @@ fun ExtensionDetailsScreen( AppBarActions( actions = persistentListOf().builder() .apply { + if (onOpenWebView != null) { + add( + AppBar.Action( + title = stringResource(MR.strings.action_open_in_web_view), + icon = Icons.Outlined.Public, + onClick = onOpenWebView, + ), + ) + } if (url != null) { add( AppBar.Action( diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/extension/details/ExtensionDetailsScreen.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/extension/details/ExtensionDetailsScreen.kt index 4a4a78cde..0ae6335bf 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/extension/details/ExtensionDetailsScreen.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/extension/details/ExtensionDetailsScreen.kt @@ -10,6 +10,8 @@ import cafe.adriel.voyager.navigator.LocalNavigator import cafe.adriel.voyager.navigator.currentOrThrow import eu.kanade.presentation.browse.ExtensionDetailsScreen import eu.kanade.presentation.util.Screen +import eu.kanade.tachiyomi.source.online.HttpSource +import eu.kanade.tachiyomi.ui.webview.WebViewScreen import kotlinx.coroutines.flow.collectLatest import tachiyomi.presentation.core.screens.LoadingScreen @@ -29,11 +31,29 @@ data class ExtensionDetailsScreen( } val navigator = LocalNavigator.currentOrThrow + // KMK --> + val source = state.extension?.sources?.getOrNull(0) + // KMK <-- ExtensionDetailsScreen( navigateUp = navigator::pop, state = state, onClickSourcePreferences = { navigator.push(SourcePreferencesScreen(it)) }, + // KMK --> + onOpenWebView = if (source != null && source is HttpSource) { + { + navigator.push( + WebViewScreen( + url = source.baseUrl, + initialTitle = source.name, + sourceId = source.id, + ), + ) + } + } else { + null + }, + // KMK <-- onClickEnableAll = { screenModel.toggleSources(true) }, onClickDisableAll = { screenModel.toggleSources(false) }, onClickClearCookies = screenModel::clearCookies,