blob: d066e9db6718da9ebbb5b3006385739816dce4d3 [file] [log] [blame]
package com.airbnb.lottie.samples
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import com.airbnb.epoxy.EpoxyController
import com.airbnb.epoxy.EpoxyRecyclerView
import com.airbnb.lottie.samples.databinding.ListActivityBinding
import com.airbnb.lottie.samples.utils.viewBinding
import com.airbnb.lottie.samples.views.listingCard
import com.airbnb.lottie.samples.views.marquee
class WishListActivity : AppCompatActivity() {
private val binding: ListActivityBinding by viewBinding()
private val wishListedItems = mutableSetOf<Int>()
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding.recyclerView.buildModelsWith(object : EpoxyRecyclerView.ModelBuilderCallback {
override fun buildModels(controller: EpoxyController) {
controller.buildModels()
}
})
}
private fun EpoxyController.buildModels() {
marquee {
id("marquee")
title("List")
subtitle("Loading the same animation many times in a list")
}
repeat(100) { index ->
listingCard {
id(index)
isWishListed(wishListedItems.contains(index))
onToggled { isWishListed ->
if (isWishListed) wishListedItems.add(index)
else wishListedItems.remove(index)
binding.recyclerView.requestModelBuild()
}
}
}
}
}