fix: ext obsolete status (#327)
* fix: ext obsolete status it was flip-flop each time refreshed * reformat
This commit is contained in:
parent
dfc33f983f
commit
e372542faa
1 changed files with 9 additions and 15 deletions
|
|
@ -214,9 +214,6 @@ class ExtensionManager(
|
||||||
* @param availableExtensions The list of extensions given by the [api].
|
* @param availableExtensions The list of extensions given by the [api].
|
||||||
*/
|
*/
|
||||||
private fun updatedInstalledExtensionsStatuses(availableExtensions: List<Extension.Available>) {
|
private fun updatedInstalledExtensionsStatuses(availableExtensions: List<Extension.Available>) {
|
||||||
// KMK -->
|
|
||||||
val noExtAvailable = availableExtensions.isEmpty()
|
|
||||||
// KMK <--
|
|
||||||
val installedExtensionsMap = installedExtensionMapFlow.value.toMutableMap()
|
val installedExtensionsMap = installedExtensionMapFlow.value.toMutableMap()
|
||||||
var changed = false
|
var changed = false
|
||||||
for ((pkgName, extension) in installedExtensionsMap) {
|
for ((pkgName, extension) in installedExtensionsMap) {
|
||||||
|
|
@ -227,28 +224,25 @@ class ExtensionManager(
|
||||||
it.pkgName == pkgName
|
it.pkgName == pkgName
|
||||||
}
|
}
|
||||||
|
|
||||||
if (availableExt == null/* KMK --> && !extension.isObsolete // KMK <-- */) {
|
if (availableExt == null &&
|
||||||
// Clear hasUpdate & set isObsolete
|
(!extension.isObsolete || /* KMK --> */ extension.hasUpdate /* KMK <-- */)
|
||||||
val isObsolete = !noExtAvailable && !extension.isObsolete
|
) {
|
||||||
|
// Ext not found: Set isObsolete & clear hasUpdate
|
||||||
installedExtensionsMap[pkgName] = extension.copy(
|
installedExtensionsMap[pkgName] = extension.copy(
|
||||||
isObsolete = isObsolete,
|
isObsolete = true,
|
||||||
// KMK -->
|
// KMK -->
|
||||||
hasUpdate = false,
|
hasUpdate = false,
|
||||||
repoUrl = null,
|
|
||||||
repoName = extension.repoName,
|
|
||||||
// KMK <--
|
// KMK <--
|
||||||
)
|
)
|
||||||
// KMK -->
|
changed = true
|
||||||
// KMK: changed = true
|
|
||||||
changed = changed || isObsolete || noExtAvailable && (extension.isObsolete || extension.hasUpdate)
|
|
||||||
// KMK <--
|
|
||||||
// SY -->
|
// SY -->
|
||||||
} else if (extension.isBlacklisted() && !extension.isRedundant) {
|
} else if (extension.isBlacklisted() && !extension.isRedundant) {
|
||||||
installedExtensionsMap[pkgName] = extension.copy(isRedundant = true)
|
installedExtensionsMap[pkgName] = extension.copy(isRedundant = true)
|
||||||
changed = true
|
changed = true
|
||||||
// SY <--
|
// SY <--
|
||||||
} else /* KMK --> if (availableExt != null) // KMK <-- */ {
|
} else if (availableExt != null) {
|
||||||
// Update installed extensions with new information from repo
|
// 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)
|
val hasUpdate = extension.updateExists(availableExt)
|
||||||
installedExtensionsMap[pkgName] = extension.copy(
|
installedExtensionsMap[pkgName] = extension.copy(
|
||||||
hasUpdate = hasUpdate,
|
hasUpdate = hasUpdate,
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue