Avoid showing ExtensionDetailsScreen for E-Hentai & ExHentai which is built-in & not actually installed extensions

This commit is contained in:
Cuong M. Tran 2024-01-19 13:44:17 +07:00
parent 48437205cd
commit 8b29b1dc68
No known key found for this signature in database
GPG key ID: 733AA7624B9315C2
2 changed files with 10 additions and 3 deletions

View file

@ -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<ExtensionManager>()
.installedExtensionsFlow
.value
.find { ext -> ext.sources.any { it.id == id } }!!
.find { ext -> ext.sources.any { it.id == id } }
}
// <-- AM (BROWSE)

View file

@ -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,