aboutsummaryrefslogtreecommitdiff
path: root/app/src/main/kotlin/com/pitchedapps/frost/iitems
diff options
context:
space:
mode:
authorAllan Wang <me@allanwang.ca>2018-01-18 23:23:56 -0500
committerAllan Wang <me@allanwang.ca>2018-01-20 16:42:37 -0500
commitd766100c297bc094491de150f24c04719ffa8f4e (patch)
treeb69863dace2fcb45d5fd25c276ca450e07305c44 /app/src/main/kotlin/com/pitchedapps/frost/iitems
parent78b3cc41e4c9f8d141ad46ee75e476fa2d177f19 (diff)
downloadfrost-d766100c297bc094491de150f24c04719ffa8f4e.tar.gz
frost-d766100c297bc094491de150f24c04719ffa8f4e.tar.bz2
frost-d766100c297bc094491de150f24c04719ffa8f4e.zip
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
Diffstat (limited to 'app/src/main/kotlin/com/pitchedapps/frost/iitems')
-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)