diff options
Diffstat (limited to 'app/src/main/kotlin/com/pitchedapps/frost/iitems')
-rw-r--r-- | app/src/main/kotlin/com/pitchedapps/frost/iitems/NotificationIItem.kt | 27 |
1 files changed, 22 insertions, 5 deletions
diff --git a/app/src/main/kotlin/com/pitchedapps/frost/iitems/NotificationIItem.kt b/app/src/main/kotlin/com/pitchedapps/frost/iitems/NotificationIItem.kt index 8bc2c1fe..d1f9eaf4 100644 --- a/app/src/main/kotlin/com/pitchedapps/frost/iitems/NotificationIItem.kt +++ b/app/src/main/kotlin/com/pitchedapps/frost/iitems/NotificationIItem.kt @@ -12,6 +12,7 @@ import ca.allanwang.kau.utils.visible import ca.allanwang.kau.utils.withAlpha import com.mikepenz.fastadapter.FastAdapter import com.mikepenz.fastadapter.adapters.ItemAdapter +import com.mikepenz.fastadapter.commons.utils.DiffCallback import com.pitchedapps.frost.R import com.pitchedapps.frost.glide.FrostGlide import com.pitchedapps.frost.glide.GlideApp @@ -40,15 +41,31 @@ class NotificationIItem(val notification: FrostNotif, val cookie: String) : KauI true } } + + //todo see if necessary + val DIFF: DiffCallback<NotificationIItem> by lazy(::Diff) + } + + private class Diff : DiffCallback<NotificationIItem> { + + override fun areItemsTheSame(oldItem: NotificationIItem, newItem: NotificationIItem) = + oldItem.notification.id == newItem.notification.id + + override fun areContentsTheSame(oldItem: NotificationIItem, newItem: NotificationIItem) = + oldItem.notification == newItem.notification + + override fun getChangePayload(oldItem: NotificationIItem, oldItemPosition: Int, newItem: NotificationIItem, newItemPosition: Int): Any? { + return newItem + } } class ViewHolder(itemView: View) : FastAdapter.ViewHolder<NotificationIItem>(itemView) { - val frame: ViewGroup by bindView(R.id.item_frame) - val avatar: ImageView by bindView(R.id.item_avatar) - val content: TextView by bindView(R.id.item_content) - val date: TextView by bindView(R.id.item_date) - val thumbnail: ImageView by bindView(R.id.item_thumbnail) + private val frame: ViewGroup by bindView(R.id.item_frame) + private val avatar: ImageView by bindView(R.id.item_avatar) + private val content: TextView by bindView(R.id.item_content) + private val date: TextView by bindView(R.id.item_date) + private val thumbnail: ImageView by bindView(R.id.item_thumbnail) private val glide get() = GlideApp.with(itemView) |