mirror of
				https://github.com/mihonapp/mihon.git
				synced 2025-10-31 06:17:57 +01:00 
			
		
		
		
	Separate group for extensions with updates
This commit is contained in:
		| @@ -11,6 +11,11 @@ class ExtensionGroupHolder(view: View, adapter: FlexibleAdapter<*>) : | ||||
|  | ||||
|     @SuppressLint("SetTextI18n") | ||||
|     fun bind(item: ExtensionGroupItem) { | ||||
|         title.text = item.name | ||||
|         var text = item.name | ||||
|         if (item.showSize) { | ||||
|             text += " (${item.size})" | ||||
|         } | ||||
|  | ||||
|         title.text = text | ||||
|     } | ||||
| } | ||||
|   | ||||
| @@ -13,7 +13,7 @@ import eu.kanade.tachiyomi.R | ||||
|  * @param name The header name. | ||||
|  * @param size The number of items in the group. | ||||
|  */ | ||||
| data class ExtensionGroupItem(val name: String, val size: Int) : AbstractHeaderItem<ExtensionGroupHolder>() { | ||||
| data class ExtensionGroupItem(val name: String, val size: Int, val showSize: Boolean = false) : AbstractHeaderItem<ExtensionGroupHolder>() { | ||||
|  | ||||
|     /** | ||||
|      * Returns the layout resource of this item. | ||||
|   | ||||
| @@ -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 -> | ||||
|   | ||||
		Reference in New Issue
	
	Block a user