mirror of
https://github.com/mihonapp/mihon.git
synced 2025-06-26 19:17:51 +02: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