aboutsummaryrefslogtreecommitdiff
path: root/app/src/main/kotlin/com/pitchedapps/frost/iitems/NotificationIItem.kt
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main/kotlin/com/pitchedapps/frost/iitems/NotificationIItem.kt')
-rw-r--r--app/src/main/kotlin/com/pitchedapps/frost/iitems/NotificationIItem.kt27
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)