mirror of
https://github.com/topjohnwu/Magisk.git
synced 2026-01-13 05:17:37 -08:00
Added support section content
This commit is contained in:
@@ -0,0 +1,74 @@
|
||||
package com.topjohnwu.magisk.model.entity.recycler
|
||||
|
||||
import com.skoumal.teanity.databinding.ComparableRvItem
|
||||
import com.topjohnwu.magisk.Const
|
||||
import com.topjohnwu.magisk.R
|
||||
|
||||
sealed class HomeItem : ComparableRvItem<HomeItem>() {
|
||||
|
||||
abstract val icon: Int
|
||||
abstract val title: Int
|
||||
abstract val link: String
|
||||
|
||||
override val layoutRes = R.layout.item_developer
|
||||
|
||||
override fun contentSameAs(other: HomeItem) = itemSameAs(other)
|
||||
override fun itemSameAs(other: HomeItem) = this == other
|
||||
|
||||
override fun equals(other: Any?): Boolean {
|
||||
if (other !is HomeItem) return false
|
||||
return icon == other.icon && title == other.title && link == other.link
|
||||
}
|
||||
|
||||
// region Children
|
||||
sealed class PayPal : HomeItem() {
|
||||
override val icon = R.drawable.ic_paypal
|
||||
override val title = R.string.home_item_paypal
|
||||
override val link = "https://paypal.me/%s"
|
||||
|
||||
// region Children
|
||||
object App : PayPal() {
|
||||
override val link = super.link.format("diareuse")
|
||||
}
|
||||
|
||||
object Mainline : PayPal() {
|
||||
override val link = super.link.format("topjohnwu")
|
||||
}
|
||||
// endregion
|
||||
}
|
||||
|
||||
object Patreon : HomeItem() {
|
||||
override val icon = R.drawable.ic_patreon
|
||||
override val title = R.string.home_item_patreon
|
||||
override val link = Const.Url.PATREON_URL
|
||||
}
|
||||
|
||||
sealed class Twitter : HomeItem() {
|
||||
override val icon = R.drawable.ic_twitter
|
||||
override val title = R.string.home_item_twitter
|
||||
override val link = "https://twitter.com/%s"
|
||||
|
||||
// region Children
|
||||
object App : Twitter() {
|
||||
override val link = super.link.format("diareuse")
|
||||
}
|
||||
|
||||
object Mainline : Twitter() {
|
||||
override val link = super.link.format("topjohnwu")
|
||||
}
|
||||
// endregion
|
||||
}
|
||||
|
||||
object Github : HomeItem() {
|
||||
override val icon = R.drawable.ic_github
|
||||
override val title = R.string.home_item_source
|
||||
override val link = Const.Url.SOURCE_CODE_URL
|
||||
}
|
||||
|
||||
object Xda : HomeItem() {
|
||||
override val icon = R.drawable.ic_xda
|
||||
override val title = R.string.home_item_xda
|
||||
override val link = Const.Url.XDA_THREAD
|
||||
}
|
||||
// endregion
|
||||
}
|
||||
@@ -1,5 +1,6 @@
|
||||
package com.topjohnwu.magisk.redesign.home
|
||||
|
||||
import com.skoumal.teanity.databinding.ComparableRvItem
|
||||
import com.skoumal.teanity.extensions.subscribeK
|
||||
import com.skoumal.teanity.util.KObservableField
|
||||
import com.topjohnwu.magisk.BuildConfig
|
||||
@@ -10,9 +11,13 @@ import com.topjohnwu.magisk.extensions.res
|
||||
import com.topjohnwu.magisk.model.entity.MagiskJson
|
||||
import com.topjohnwu.magisk.model.entity.ManagerJson
|
||||
import com.topjohnwu.magisk.model.entity.UpdateInfo
|
||||
import com.topjohnwu.magisk.model.entity.recycler.HomeItem
|
||||
import com.topjohnwu.magisk.model.observer.Observer
|
||||
import com.topjohnwu.magisk.redesign.compat.CompatViewModel
|
||||
import com.topjohnwu.magisk.ui.home.MagiskState
|
||||
import me.tatarka.bindingcollectionadapter2.BR
|
||||
import me.tatarka.bindingcollectionadapter2.ItemBinding
|
||||
import me.tatarka.bindingcollectionadapter2.OnItemBind
|
||||
|
||||
class HomeViewModel(
|
||||
private val repoMagisk: MagiskRepository
|
||||
@@ -37,6 +42,16 @@ class HomeViewModel(
|
||||
}
|
||||
}
|
||||
|
||||
val itemsMainline =
|
||||
listOf(HomeItem.PayPal.Mainline, HomeItem.Patreon, HomeItem.Twitter.Mainline)
|
||||
val itemsApp =
|
||||
listOf(HomeItem.PayPal.App, HomeItem.Twitter.App)
|
||||
val itemsProject =
|
||||
listOf(HomeItem.Github, HomeItem.Xda)
|
||||
val itemBinding = itemBindingOf<HomeItem> {
|
||||
it.bindExtra(BR.viewModel, this)
|
||||
}
|
||||
|
||||
override fun refresh() = repoMagisk.fetchUpdate()
|
||||
.subscribeK { updateBy(it) }
|
||||
|
||||
@@ -55,6 +70,7 @@ class HomeViewModel(
|
||||
}
|
||||
|
||||
fun onDeletePressed() {}
|
||||
fun onLinkPressed(link: String) {}
|
||||
|
||||
}
|
||||
|
||||
@@ -66,4 +82,11 @@ val MagiskJson.isObsolete
|
||||
val ManagerJson.isUpdateChannelCorrect
|
||||
get() = versionCode > 0
|
||||
val ManagerJson.isObsolete
|
||||
get() = BuildConfig.VERSION_CODE < versionCode
|
||||
get() = BuildConfig.VERSION_CODE < versionCode
|
||||
|
||||
inline fun <T : ComparableRvItem<T>> itemBindingOf(
|
||||
crossinline body: (ItemBinding<*>) -> Unit = {}
|
||||
) = OnItemBind<T> { itemBinding, _, item ->
|
||||
item.bind(itemBinding)
|
||||
body(itemBinding)
|
||||
}
|
||||
Reference in New Issue
Block a user