1
0
Fork 0

No issue: Adds sameAs function for TopSiteList AdapterItem

master
ekager 2020-07-30 17:08:33 -04:00 committed by Emily Kager
parent 3d3153039c
commit 6cdf304d10
1 changed files with 9 additions and 2 deletions

View File

@ -41,10 +41,17 @@ sealed class AdapterItem(@LayoutRes val viewType: Int) {
)
data class TopSiteList(val topSites: List<TopSite>) : AdapterItem(TopSiteViewHolder.LAYOUT_ID) {
override fun sameAs(other: AdapterItem): Boolean {
val newTopSites = (other as? TopSiteList) ?: return false
return newTopSites.topSites == this.topSites
}
override fun contentsSameAs(other: AdapterItem): Boolean {
val newTopSites = (other as? TopSiteList)?.topSites?.asSequence() ?: return false
val newTopSites = (other as? TopSiteList) ?: return false
if (newTopSites.topSites.size != this.topSites.size) return false
val newSitesSequence = newTopSites.topSites.asSequence()
val oldTopSites = this.topSites.asSequence()
return newTopSites.zip(oldTopSites).all { (new, old) -> new.title == old.title }
return newSitesSequence.zip(oldTopSites).all { (new, old) -> new.title == old.title }
}
}