Fix issues when updating extensions

This commit is contained in:
AntsyLich 2024-01-22 02:27:45 +06:00
parent 39407407f2
commit cb06898430
No known key found for this signature in database
3 changed files with 12 additions and 3 deletions

View file

@ -203,7 +203,13 @@ private fun ExtensionContent(
items(
items = items,
contentType = { "item" },
key = { "extension-${it.hashCode()}" },
key = { item ->
when (item.extension) {
is Extension.Untrusted -> "extension-untrusted-${item.hashCode()}"
is Extension.Installed -> "extension-installed-${item.hashCode()}"
is Extension.Available -> "extension-available-${item.hashCode()}"
}
},
) { item ->
ExtensionItem(
modifier = Modifier.animateItemPlacement(),

View file

@ -338,6 +338,10 @@ class ExtensionManager(
}
override fun onExtensionUntrusted(extension: Extension.Untrusted) {
val installedExtension = _installedExtensionsFlow.value
.find { it.pkgName == extension.pkgName }
?: return
_installedExtensionsFlow.value -= installedExtension
_untrustedExtensionsFlow.value += extension
}

View file

@ -70,8 +70,7 @@ internal class ExtensionInstallReceiver(private val listener: Listener) :
launchNow {
when (val result = getExtensionFromIntent(context, intent)) {
is LoadResult.Success -> listener.onExtensionUpdated(result.extension)
// Not needed as a package can't be upgraded if the signature is different
// is LoadResult.Untrusted -> {}
is LoadResult.Untrusted -> listener.onExtensionUntrusted(result.extension)
else -> {}
}
}