mirror of
				https://github.com/mihonapp/mihon.git
				synced 2025-11-04 08:08:55 +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