|
|
@@ -2,9 +2,10 @@ package com.adealink.weparty.playmate.list.adapter
|
|
|
|
|
|
import android.view.LayoutInflater
|
|
|
import android.view.ViewGroup
|
|
|
+import androidx.lifecycle.LifecycleOwner
|
|
|
import androidx.lifecycle.Observer
|
|
|
-import androidx.lifecycle.findViewTreeLifecycleOwner
|
|
|
import com.adealink.frame.aab.util.getCompatString
|
|
|
+import com.adealink.frame.log.Log
|
|
|
import com.adealink.frame.util.onClick
|
|
|
import com.adealink.weparty.commonui.ext.gone
|
|
|
import com.adealink.weparty.commonui.ext.hide
|
|
|
@@ -15,6 +16,7 @@ import com.adealink.weparty.commonui.recycleview.adapter.multitype.ItemViewBinde
|
|
|
import com.adealink.weparty.module.order.data.OrderDiscountInfo
|
|
|
import com.adealink.weparty.module.order.data.getFinalPrice
|
|
|
import com.adealink.weparty.module.order.data.observeDiscount
|
|
|
+import com.adealink.weparty.module.order.data.unObserveDiscount
|
|
|
import com.adealink.weparty.playmate.R
|
|
|
import com.adealink.weparty.playmate.data.PlaymateListData
|
|
|
import com.adealink.weparty.playmate.data.PlaymateListItemData
|
|
|
@@ -24,8 +26,10 @@ import com.adealink.weparty.util.formatNumber
|
|
|
import com.adealink.weparty.util.formatStar
|
|
|
import com.adealink.weparty.R as APP_R
|
|
|
|
|
|
-class PlaymateListItemViewBinder(val listener: OnPlaymateListListener) :
|
|
|
- ItemViewBinder<PlaymateListItemData, PlaymateListItemViewBinder.ViewHolder>() {
|
|
|
+class PlaymateListItemViewBinder(
|
|
|
+ val lifecycleOwner: LifecycleOwner,
|
|
|
+ val listener: OnPlaymateListListener
|
|
|
+) : ItemViewBinder<PlaymateListItemData, PlaymateListItemViewBinder.ViewHolder>() {
|
|
|
|
|
|
|
|
|
override fun onCreateViewHolder(
|
|
|
@@ -43,10 +47,16 @@ class PlaymateListItemViewBinder(val listener: OnPlaymateListListener) :
|
|
|
holder.binding.vOnline.onStop()
|
|
|
}
|
|
|
|
|
|
+ override fun onViewAttachedToWindow(holder: ViewHolder) {
|
|
|
+ super.onViewAttachedToWindow(holder)
|
|
|
+ observeDiscount(lifecycleOwner, holder.discountObserver)
|
|
|
+ }
|
|
|
+
|
|
|
override fun onViewRecycled(holder: ViewHolder) {
|
|
|
super.onViewRecycled(holder)
|
|
|
holder.binding.vVoice.stopPlay()
|
|
|
holder.binding.vOnline.onStop()
|
|
|
+ unObserveDiscount(holder.discountObserver)
|
|
|
}
|
|
|
|
|
|
override fun onBindViewHolder(
|
|
|
@@ -123,14 +133,12 @@ class PlaymateListItemViewBinder(val listener: OnPlaymateListListener) :
|
|
|
}
|
|
|
|
|
|
notifyPriceChanged()
|
|
|
- binding.root.findViewTreeLifecycleOwner()?.let {
|
|
|
- observeDiscount(it, discountObserver)
|
|
|
- }
|
|
|
}
|
|
|
|
|
|
- private val discountObserver = object : Observer<OrderDiscountInfo?> {
|
|
|
+ val discountObserver = object : Observer<OrderDiscountInfo?> {
|
|
|
|
|
|
override fun onChanged(value: OrderDiscountInfo?) {
|
|
|
+ Log.d("zhangfei", "position:${layoutPosition}, discountObserver:$this")
|
|
|
notifyPriceChanged()
|
|
|
}
|
|
|
}
|