Filter RecyclerView on the basis of model using FastAdapter
open class StoreModeBaseModel -> ParentClass
Child Classes
data class PersonalOfferModel(val personalOffer: PersonalOffer) : StoreModeBaseModel()
data class FavoriteOfferModel(val product: Product) : StoreModeBaseModel()
I am using fast Adapter like
private val itemAdapter = ModelAdapter { element: StoreModeBaseModel ->
getItem(element)
}
private fun getItem(element: StoreModeBaseModel): GenericItem {
return when (element) {
is PersonalOfferModel -> PersonalOfferItemStoreMode(element)
is FavoriteOfferModel -> FavoriteOfferItem(element).apply {
this.model.product.forSaleOnline = false
}
else -> FooterItem(element)
}
}
I am setting data like
personalOffersList.map { models.add(PersonalOfferModel(it)) }
favoriteOffersList.map { models.add(FavoriteOfferModel(Product.mapFromDB(it))) }
if (itemAdapter.models.isEmpty()) {
itemAdapter.clear()
itemAdapter.add(models)
} else {
itemAdapter.set(models)
}
Now on click of a tab or button I want to filter PersonalOffer and FavouriteOffer
When I click on PersonalOffer tab models with PersonalOfferModel should be shown in RecyclerView and when I select(click) on FavoriteOffer then FavoriteOfferModel items should be shown in RecyclerView