feat: sort subscriptions in groups (#443)

This commit is contained in:
ibo 2024-06-25 07:01:04 +02:00 committed by GitHub
parent 2180086573
commit ae95b61298
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
6 changed files with 184 additions and 25 deletions

View file

@ -9,31 +9,25 @@ import ani.dantotsu.loadImage
import ani.dantotsu.media.MediaDetailsActivity
import ani.dantotsu.notifications.subscription.SubscriptionHelper
import com.xwray.groupie.GroupieAdapter
import com.xwray.groupie.Item
import com.xwray.groupie.viewbinding.BindableItem
class SubscriptionItem(
val id: Int,
private val media: SubscriptionHelper.Companion.SubscribeMedia,
private val adapter: GroupieAdapter
private val adapter: GroupieAdapter,
private val onItemRemoved: (Int) -> Unit
) : BindableItem<ItemSubscriptionBinding>() {
private lateinit var binding: ItemSubscriptionBinding
override fun bind(p0: ItemSubscriptionBinding, p1: Int) {
val context = p0.root.context
binding = p0
val parserName = if (media.isAnime)
SubscriptionHelper.getAnimeParser(media.id).name
else
SubscriptionHelper.getMangaParser(media.id).name
val mediaName = media.name
val showName = "$mediaName ($parserName)"
binding.subscriptionName.text = showName
override fun bind(viewBinding: ItemSubscriptionBinding, position: Int) {
binding = viewBinding
val context = binding.root.context
binding.subscriptionName.text = media.name
binding.root.setOnClickListener {
ContextCompat.startActivity(
context,
Intent(context, MediaDetailsActivity::class.java).putExtra(
"mediaId", media.id
),
Intent(context, MediaDetailsActivity::class.java).putExtra("mediaId", media.id),
null
)
}
@ -41,14 +35,11 @@ class SubscriptionItem(
binding.deleteSubscription.setOnClickListener {
SubscriptionHelper.deleteSubscription(id, true)
adapter.remove(this)
onItemRemoved(id)
}
}
override fun getLayout(): Int {
return R.layout.item_subscription
}
override fun getLayout(): Int = R.layout.item_subscription
override fun initializeViewBinding(p0: View): ItemSubscriptionBinding {
return ItemSubscriptionBinding.bind(p0)
}
override fun initializeViewBinding(view: View): ItemSubscriptionBinding = ItemSubscriptionBinding.bind(view)
}