fix: ext obsolete status (#327)

* fix: ext obsolete status

it was flip-flop each time refreshed

* reformat
This commit is contained in:
Cuong-Tran 2024-09-01 02:37:57 +07:00 committed by GitHub
parent dfc33f983f
commit e372542faa
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -214,9 +214,6 @@ class ExtensionManager(
* @param availableExtensions The list of extensions given by the [api].
*/
private fun updatedInstalledExtensionsStatuses(availableExtensions: List<Extension.Available>) {
// KMK -->
val noExtAvailable = availableExtensions.isEmpty()
// KMK <--
val installedExtensionsMap = installedExtensionMapFlow.value.toMutableMap()
var changed = false
for ((pkgName, extension) in installedExtensionsMap) {
@ -227,28 +224,25 @@ class ExtensionManager(
it.pkgName == pkgName
}
if (availableExt == null/* KMK --> && !extension.isObsolete // KMK <-- */) {
// Clear hasUpdate & set isObsolete
val isObsolete = !noExtAvailable && !extension.isObsolete
if (availableExt == null &&
(!extension.isObsolete || /* KMK --> */ extension.hasUpdate /* KMK <-- */)
) {
// Ext not found: Set isObsolete & clear hasUpdate
installedExtensionsMap[pkgName] = extension.copy(
isObsolete = isObsolete,
isObsolete = true,
// KMK -->
hasUpdate = false,
repoUrl = null,
repoName = extension.repoName,
// KMK <--
)
// KMK -->
// KMK: changed = true
changed = changed || isObsolete || noExtAvailable && (extension.isObsolete || extension.hasUpdate)
// KMK <--
changed = true
// SY -->
} else if (extension.isBlacklisted() && !extension.isRedundant) {
installedExtensionsMap[pkgName] = extension.copy(isRedundant = true)
changed = true
// SY <--
} else /* KMK --> if (availableExt != null) // KMK <-- */ {
// Update installed extensions with new information from repo
} else if (availableExt != null) {
// Ext found: Update installed extensions with new information from repo
// Also clear isObsolete and set new repo Name if needed
val hasUpdate = extension.updateExists(availableExt)
installedExtensionsMap[pkgName] = extension.copy(
hasUpdate = hasUpdate,