@@ -3,9 +3,8 @@ package net.squanchy.search.view
33import android.app.Activity
44import android.support.annotation.IntDef
55import android.support.v7.app.AppCompatActivity
6- import android.support.v7.recyclerview.extensions.ListAdapter
7- import android.support.v7.util.DiffUtil
86import android.support.v7.widget.GridLayoutManager
7+ import android.support.v7.widget.RecyclerView
98import android.view.LayoutInflater
109import android.view.ViewGroup
1110import net.squanchy.R
@@ -21,7 +20,7 @@ import net.squanchy.search.view.SearchItemViewHolder.HeaderViewHolder
2120import net.squanchy.search.view.SearchItemViewHolder.SearchEventViewHolder
2221import net.squanchy.search.view.SearchItemViewHolder.SpeakerViewHolder
2322
24- internal class SearchAdapter (activity : AppCompatActivity ) : ListAdapter<SearchListElement, SearchItemViewHolder>(DiffCallback ) {
23+ internal class SearchAdapter (activity : AppCompatActivity ) : RecyclerView.Adapter< SearchItemViewHolder>() {
2524
2625 private val imageLoader: ImageLoader
2726 private val activity: Activity
@@ -51,10 +50,10 @@ internal class SearchAdapter(activity: AppCompatActivity) : ListAdapter<SearchLi
5150 override fun getItemId (position : Int ): Long {
5251 val item = searchResult.elements[position]
5352 return when (item) {
54- is SearchListElement .EventHeader -> ITEM_ID_EVENTS_HEADER
55- is SearchListElement .SpeakerHeader -> ITEM_ID_SPEAKERS_HEADER
5653 is EventElement -> item.event.numericId
5754 is SpeakerElement -> item.speaker.numericId
55+ is SearchListElement .EventHeader -> ITEM_ID_EVENTS_HEADER
56+ is SearchListElement .SpeakerHeader -> ITEM_ID_SPEAKERS_HEADER
5857 is SearchListElement .AlgoliaLogo -> ITEM_ID_ALGOLIA_LOGO
5958 }
6059 }
@@ -89,16 +88,17 @@ internal class SearchAdapter(activity: AppCompatActivity) : ListAdapter<SearchLi
8988 }
9089 }
9190
91+ override fun getItemCount (): Int = searchResult.elements.size
92+
9293 fun createSpanSizeLookup (columnsCount : Int ): GridLayoutManager .SpanSizeLookup {
9394 return GridSpanSizeLookup (searchResult.elements, columnsCount)
9495 }
9596
96- override fun getItemCount (): Int = searchResult.elements.size
97-
9897 fun updateWith (searchResult : SearchResult .Success , listener : SearchRecyclerView .OnSearchResultClickListener ) {
9998 this .searchResult = searchResult
10099 this .listener = listener
101- submitList(searchResult.elements)
100+
101+ notifyDataSetChanged()
102102 }
103103
104104 companion object {
@@ -120,20 +120,3 @@ internal class SearchAdapter(activity: AppCompatActivity) : ListAdapter<SearchLi
120120 private const val ITEM_ID_ALGOLIA_LOGO : Long = - 102
121121 }
122122}
123-
124- private object DiffCallback : DiffUtil.ItemCallback<SearchListElement>() {
125-
126- override fun areItemsTheSame (oldItem : SearchListElement ? , newItem : SearchListElement ? ): Boolean {
127- if (oldItem is EventElement && newItem is EventElement ) {
128- return oldItem.event.id == newItem.event.id
129- }
130- if (oldItem is SpeakerElement && newItem is SpeakerElement ) {
131- return oldItem.speaker.id == newItem.speaker.id
132- }
133- return oldItem == newItem
134- }
135-
136- override fun areContentsTheSame (oldItem : SearchListElement ? , newItem : SearchListElement ? ): Boolean {
137- return oldItem == newItem
138- }
139- }
0 commit comments