Advertisement
Guest User

Untitled

a guest
Oct 15th, 2019
119
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.68 KB | None | 0 0
  1. import androidx.recyclerview.widget.DiffUtil
  2. import kotlin.reflect.KProperty1
  3.  
  4. @Suppress("NOTHING_TO_INLINE")
  5. inline fun <T : Any> byProperty(kProperty: KProperty1<T, String>): (T, T) -> Boolean =
  6. { old, new -> kProperty.get(old) == kProperty.get(new) }
  7.  
  8. @Suppress("FunctionName")
  9. inline fun <T : Any> DiffItemCallback(
  10. crossinline areItemsTheSame: (T, T) -> Boolean,
  11. crossinline areContentsTheSame: (T, T) -> Boolean = { old, new -> old == new }
  12. ) = object : DiffUtil.ItemCallback<T>() {
  13. override fun areItemsTheSame(oldItem: T, newItem: T) = areItemsTheSame(oldItem, newItem)
  14. override fun areContentsTheSame(oldItem: T, newItem: T) = areContentsTheSame(oldItem, newItem)
  15. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement