From 8b29b1dc681de2c18eb682386c1e6917f7441f4a Mon Sep 17 00:00:00 2001 From: "Cuong M. Tran" Date: Fri, 19 Jan 2024 13:44:17 +0700 Subject: [PATCH] Avoid showing ExtensionDetailsScreen for E-Hentai & ExHentai which is built-in & not actually installed extensions --- .../main/java/eu/kanade/domain/source/model/Source.kt | 4 ++-- .../java/eu/kanade/presentation/browse/SourcesScreen.kt | 9 ++++++++- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/eu/kanade/domain/source/model/Source.kt b/app/src/main/java/eu/kanade/domain/source/model/Source.kt index ec9c60c6a..c53ee5a55 100644 --- a/app/src/main/java/eu/kanade/domain/source/model/Source.kt +++ b/app/src/main/java/eu/kanade/domain/source/model/Source.kt @@ -18,11 +18,11 @@ val Source.icon: ImageBitmap? // AM (BROWSE) --> // Add an extra property to Source for it to get access to ExtensionManager -val Source.installedExtension: Extension.Installed +val Source.installedExtension: Extension.Installed? get() { return Injekt.get() .installedExtensionsFlow .value - .find { ext -> ext.sources.any { it.id == id } }!! + .find { ext -> ext.sources.any { it.id == id } } } // <-- AM (BROWSE) diff --git a/app/src/main/java/eu/kanade/presentation/browse/SourcesScreen.kt b/app/src/main/java/eu/kanade/presentation/browse/SourcesScreen.kt index b23b68121..5421bf837 100644 --- a/app/src/main/java/eu/kanade/presentation/browse/SourcesScreen.kt +++ b/app/src/main/java/eu/kanade/presentation/browse/SourcesScreen.kt @@ -64,6 +64,8 @@ import eu.kanade.tachiyomi.ui.browse.source.SourcesScreenModel import eu.kanade.tachiyomi.ui.browse.extension.details.ExtensionDetailsScreen import eu.kanade.tachiyomi.ui.browse.source.browse.BrowseSourceScreenModel.Listing import eu.kanade.tachiyomi.util.system.LocaleHelper +import exh.source.EH_SOURCE_ID +import exh.source.EXH_SOURCE_ID import kotlinx.collections.immutable.ImmutableList import tachiyomi.domain.source.model.Pin import tachiyomi.domain.source.model.Source @@ -426,8 +428,13 @@ private fun SourcePinButton( private fun SourceSettingsButton( source: Source, ) { + // Avoid E-Hentai & ExHentai which is built-in & not actually installed extensions + if (source.id == EH_SOURCE_ID || source.id == EXH_SOURCE_ID) return val navigator = LocalNavigator.currentOrThrow - IconButton(onClick = { navigator.push(ExtensionDetailsScreen(source.installedExtension.pkgName)) }) { + IconButton(onClick = { + if (source.installedExtension !== null) + navigator.push(ExtensionDetailsScreen(source.installedExtension!!.pkgName)) + }) { Icon( imageVector = Icons.Outlined.Settings, tint = MaterialTheme.colorScheme.primary,