mirror of
				https://github.com/mihonapp/mihon.git
				synced 2025-10-31 14:27:57 +01:00 
			
		
		
		
	| @@ -2,6 +2,7 @@ package eu.kanade.tachiyomi.ui.browse.extension | ||||
|  | ||||
| import android.annotation.SuppressLint | ||||
| import android.view.View | ||||
| import androidx.core.view.isVisible | ||||
| import eu.davidea.flexibleadapter.FlexibleAdapter | ||||
| import eu.davidea.viewholders.FlexibleViewHolder | ||||
| import eu.kanade.tachiyomi.databinding.SectionHeaderItemBinding | ||||
| @@ -17,7 +18,10 @@ class ExtensionGroupHolder(view: View, adapter: FlexibleAdapter<*>) : | ||||
|         if (item.showSize) { | ||||
|             text += " (${item.size})" | ||||
|         } | ||||
|  | ||||
|         binding.title.text = text | ||||
|  | ||||
|         binding.actionButton.isVisible = item.actionLabel != null && item.actionOnClick != null | ||||
|         binding.actionButton.text = item.actionLabel | ||||
|         binding.actionButton.setOnClickListener(if (item.actionLabel != null) item.actionOnClick else null) | ||||
|     } | ||||
| } | ||||
|   | ||||
| @@ -13,7 +13,14 @@ 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, val showSize: Boolean = false) : AbstractHeaderItem<ExtensionGroupHolder>() { | ||||
| data class ExtensionGroupItem( | ||||
|     val name: String, | ||||
|     val size: Int, | ||||
|     val showSize: Boolean = false | ||||
| ) : AbstractHeaderItem<ExtensionGroupHolder>() { | ||||
|  | ||||
|     var actionLabel: String? = null | ||||
|     var actionOnClick: (View.OnClickListener)? = null | ||||
|  | ||||
|     /** | ||||
|      * Returns the layout resource of this item. | ||||
|   | ||||
| @@ -2,7 +2,9 @@ package eu.kanade.tachiyomi.ui.browse.extension | ||||
|  | ||||
| import android.app.Application | ||||
| import android.os.Bundle | ||||
| import android.view.View | ||||
| import eu.kanade.tachiyomi.R | ||||
| import eu.kanade.tachiyomi.data.preference.PreferenceValues | ||||
| import eu.kanade.tachiyomi.data.preference.PreferencesHelper | ||||
| import eu.kanade.tachiyomi.extension.ExtensionManager | ||||
| import eu.kanade.tachiyomi.extension.model.Extension | ||||
| @@ -76,6 +78,14 @@ open class ExtensionPresenter( | ||||
|  | ||||
|         if (updatesSorted.isNotEmpty()) { | ||||
|             val header = ExtensionGroupItem(context.getString(R.string.ext_updates_pending), updatesSorted.size, true) | ||||
|             if (preferences.extensionInstaller().get() != PreferenceValues.ExtensionInstaller.LEGACY) { | ||||
|                 header.actionLabel = context.getString(R.string.ext_update_all) | ||||
|                 header.actionOnClick = View.OnClickListener { _ -> | ||||
|                     extensions | ||||
|                         .filter { it.extension is Extension.Installed && it.extension.hasUpdate } | ||||
|                         .forEach { updateExtension(it.extension as Extension.Installed) } | ||||
|                 } | ||||
|             } | ||||
|             items += updatesSorted.map { extension -> | ||||
|                 ExtensionItem(extension, header, currentDownloads[extension.pkgName] ?: InstallStep.Idle) | ||||
|             } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user