|
@@ -62,7 +62,8 @@ open class ExtensionPresenter(
|
|
|
|
|
|
val items = mutableListOf<ExtensionItem>()
|
|
|
|
|
|
- val installedSorted = installed.sortedWith(compareBy({ !it.hasUpdate }, { !it.isObsolete }, { it.pkgName }))
|
|
|
+ val updatesSorted = installed.filter { it.hasUpdate }.sortedBy { it.pkgName }
|
|
|
+ val installedSorted = installed.filter { !it.hasUpdate }.sortedWith(compareBy({ !it.isObsolete }, { it.pkgName }))
|
|
|
val untrustedSorted = untrusted.sortedBy { it.pkgName }
|
|
|
val availableSorted = available
|
|
|
// Filter out already installed extensions and disabled languages
|
|
@@ -71,6 +72,12 @@ open class ExtensionPresenter(
|
|
|
&& (avail.lang in activeLangs || avail.lang == "all")}
|
|
|
.sortedBy { it.pkgName }
|
|
|
|
|
|
+ if (updatesSorted.isNotEmpty()) {
|
|
|
+ val header = ExtensionGroupItem(context.getString(R.string.ext_updates_pending), updatesSorted.size, true)
|
|
|
+ items += updatesSorted.map { extension ->
|
|
|
+ ExtensionItem(extension, header, currentDownloads[extension.pkgName])
|
|
|
+ }
|
|
|
+ }
|
|
|
if (installedSorted.isNotEmpty() || untrustedSorted.isNotEmpty()) {
|
|
|
val header = ExtensionGroupItem(context.getString(R.string.ext_installed), installedSorted.size + untrustedSorted.size)
|
|
|
items += installedSorted.map { extension ->
|