mirror of
https://github.com/mihonapp/mihon.git
synced 2025-11-17 06:27:29 +01:00
Indicate obsolete extensions (#2494)
* Indicate obsolete extensions * Make obsolete indicators red * Move obsolete extensions up the list * Add base button theme for holder * Use red button color state instead of explicit text color
This commit is contained in:
@@ -69,6 +69,10 @@ class ExtensionDetailsController(bundle: Bundle? = null) :
|
||||
presenter.uninstallExtension()
|
||||
}
|
||||
|
||||
if (extension.isObsolete) {
|
||||
extension_obsolete.visibility = View.VISIBLE
|
||||
}
|
||||
|
||||
val themedContext by lazy { getPreferenceThemeContext() }
|
||||
val manager = PreferenceManager(themedContext)
|
||||
manager.preferenceDataStore = EmptyPreferenceDataStore()
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
package eu.kanade.tachiyomi.ui.extension
|
||||
|
||||
import android.view.View
|
||||
import androidx.core.content.ContextCompat
|
||||
import androidx.vectordrawable.graphics.drawable.VectorDrawableCompat
|
||||
import eu.kanade.tachiyomi.R
|
||||
import eu.kanade.tachiyomi.data.glide.GlideApp
|
||||
import eu.kanade.tachiyomi.extension.model.Extension
|
||||
@@ -52,11 +54,15 @@ class ExtensionHolder(view: View, override val adapter: ExtensionAdapter) :
|
||||
bindButton(item)
|
||||
}
|
||||
|
||||
@Suppress("ResourceType")
|
||||
fun bindButton(item: ExtensionItem) = with(ext_button) {
|
||||
isEnabled = true
|
||||
isClickable = true
|
||||
isActivated = false
|
||||
|
||||
background = VectorDrawableCompat.create(resources!!, R.drawable.button_bg_transparent, null)
|
||||
setTextColor(ContextCompat.getColorStateList(context, R.drawable.button_bg_transparent))
|
||||
|
||||
val extension = item.extension
|
||||
|
||||
val installStep = item.installStep
|
||||
@@ -73,11 +79,21 @@ class ExtensionHolder(view: View, override val adapter: ExtensionAdapter) :
|
||||
isClickable = false
|
||||
}
|
||||
} else if (extension is Extension.Installed) {
|
||||
if (extension.hasUpdate) {
|
||||
isActivated = true
|
||||
setText(R.string.ext_update)
|
||||
} else {
|
||||
setText(R.string.ext_details)
|
||||
when {
|
||||
extension.hasUpdate -> {
|
||||
isActivated = true
|
||||
setText(R.string.ext_update)
|
||||
}
|
||||
extension.isObsolete -> {
|
||||
// Red outline
|
||||
background = VectorDrawableCompat.create(resources, R.drawable.button_bg_error, null)
|
||||
setTextColor(ContextCompat.getColorStateList(context, R.drawable.button_bg_error))
|
||||
|
||||
setText(R.string.ext_obsolete)
|
||||
}
|
||||
else -> {
|
||||
setText(R.string.ext_details)
|
||||
}
|
||||
}
|
||||
} else if (extension is Extension.Untrusted) {
|
||||
setText(R.string.ext_trust)
|
||||
|
||||
@@ -62,7 +62,7 @@ open class ExtensionPresenter(
|
||||
|
||||
val items = mutableListOf<ExtensionItem>()
|
||||
|
||||
val installedSorted = installed.sortedWith(compareBy({ !it.hasUpdate }, { it.pkgName }))
|
||||
val installedSorted = installed.sortedWith(compareBy({ !it.hasUpdate }, { !it.isObsolete }, { it.pkgName }))
|
||||
val untrustedSorted = untrusted.sortedBy { it.pkgName }
|
||||
val availableSorted = available
|
||||
// Filter out already installed extensions and disabled languages
|
||||
|
||||
Reference in New Issue
Block a user