From 46bf139f019fbe6284dc0fa8823715ac877a96b5 Mon Sep 17 00:00:00 2001 From: Jobobby04 Date: Sun, 5 May 2024 13:17:29 -0400 Subject: [PATCH] Possibly fix extension obsolete bug --- .../kanade/tachiyomi/extension/ExtensionManager.kt | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/eu/kanade/tachiyomi/extension/ExtensionManager.kt b/app/src/main/java/eu/kanade/tachiyomi/extension/ExtensionManager.kt index f908b521a6b0..f118b1bd5e2a 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/extension/ExtensionManager.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/extension/ExtensionManager.kt @@ -54,10 +54,8 @@ class ExtensionManager( val scope = CoroutineScope(SupervisorJob()) - // SY --> private val _isInitialized = MutableStateFlow(false) val isInitialized: StateFlow = _isInitialized.asStateFlow() - // SY <-- /** * API where all the available extensions can be found. @@ -75,7 +73,10 @@ class ExtensionManager( val installedExtensionsFlow = _installedExtensionsMapFlow.mapExtensions(scope) private val _availableExtensionsMapFlow = MutableStateFlow(emptyMap()) - val availableExtensionsFlow = _availableExtensionsMapFlow.mapExtensions(scope) + // SY --> + val availableExtensionsFlow = _availableExtensionsMapFlow.map { it.filterNotBlacklisted().values.toList() } + .stateIn(scope, SharingStarted.Lazily, _availableExtensionsMapFlow.value.values.toList()) + // SY <-- private val _untrustedExtensionsMapFlow = MutableStateFlow(emptyMap()) val untrustedExtensionsFlow = _untrustedExtensionsMapFlow.mapExtensions(scope) @@ -136,9 +137,9 @@ class ExtensionManager( .associate { it.extension.pkgName to it.extension } // SY --> .filterNotBlacklisted() + // SY <-- _isInitialized.value = true - // SY <-- } // EXH --> @@ -220,9 +221,7 @@ class ExtensionManager( val installedExtensionsMap = _installedExtensionsMapFlow.value.toMutableMap() var changed = false for ((pkgName, extension) in installedExtensionsMap) { - // SY --> - val availableExt = availableExtensionsFlow.value.find { it.pkgName == pkgName } - // SY <-- + val availableExt = availableExtensions.find { it.pkgName == pkgName } if (availableExt == null && !extension.isObsolete) { installedExtensionsMap[pkgName] = extension.copy(isObsolete = true)