From d766100c297bc094491de150f24c04719ffa8f4e Mon Sep 17 00:00:00 2001 From: Allan Wang Date: Thu, 18 Jan 2018 23:23:56 -0500 Subject: Enhancement/speed up (#650) * Revert back to m.facebook * Add initial speedup * Update theme * Fix link press for event status * Move web states to fb const * Fix images and email * Fix up flyweight for requests * Ensure frost request is synchronous * Prepare diff utils * Improve speed and fix blank overlay * Update comments * Add debugger and fix searchview * Theme discover pages. Resolves #654 * Fix duplicate reload * Fix image loading * Update changelog * Update tests * Rename test Update dependencies Update gitignore --- .../pitchedapps/frost/iitems/NotificationIItem.kt | 27 ++++++++++++++++++---- 1 file changed, 22 insertions(+), 5 deletions(-) (limited to 'app/src/main/kotlin/com/pitchedapps/frost/iitems/NotificationIItem.kt') 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 by lazy(::Diff) + } + + private class Diff : DiffCallback { + + 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(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) -- cgit v1.2.3