Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package ru.feedback.app
- import android.os.Bundle
- import android.support.v7.widget.RecyclerView
- import android.view.View
- import android.view.ViewGroup
- import com.hannesdorfmann.adapterdelegates3.AdapterDelegate
- import kotlinx.android.synthetic.main.item_search_result_product.view.*
- import ru.feedback.app.domain.catalog.BasketItem
- import ru.feedback.app.domain.catalog.Product
- import ru.feedback.app.extension.inflate
- import ru.feedback.app.extension.loadImage
- import ru.feedback.app.extension.toPriceString
- import ru.feedback.app.presentation.promo.PromoStartParams
- import ru.feedback.app.ui.global.IconKeys
- import ru.feedback.app.ui.global.IconLoader
- import ru.feedback.app.ui.promo.PromoFragment
- class RecomendationsAdapterDelegate(
- private val companyId: Long,
- private val productClickListener: (Product, Long) -> Unit
- ) : AdapterDelegate<MutableList<Any>>() {
- override fun isForViewType(items: MutableList<Any>, position: Int) =
- items[position] is Product
- override fun onCreateViewHolder(parent: ViewGroup): RecyclerView.ViewHolder =
- ViewHolder(parent.inflate(R.layout.item_recommend_result_product))
- override fun onBindViewHolder(
- items: MutableList<Any>,
- position: Int,
- viewHolder: RecyclerView.ViewHolder,
- payloads: MutableList<Any>
- ) = (viewHolder as ViewHolder).bind(items[position] as Product)
- private inner class ViewHolder(view: View) : RecyclerView.ViewHolder(view) {
- private lateinit var item: Product
- init {
- view.run {
- productRoot.setOnClickListener { productClickListener (item, companyId)}
- }
- }
- fun bind(item: Product) {
- //this.item2 = productdata as Product
- this@ViewHolder.item = item
- with(itemView) {
- productName.text = item.name
- productPrice.text = item.cost.toPriceString()
- IconLoader.loadIcon(context, IconKeys.Common.PLACEHOLDER_IMAGE) { placeholder ->
- productIcon.loadImage(item.logotype, placeholderBitmap = placeholder)
- }
- }
- }
- }
- /* companion object {
- private const val ARG_COMPANY_ID = "arg_company_id"
- fun newInstance(startParams: RecomendationsAdapterDelegate) = RecomendationsAdapterDelegate().apply {
- arguments = Bundle().apply {
- putLong(ARG_COMPANY_ID, startParams.companyId)
- }
- }
- }*/
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement