Skip to content

Commit b9fc319

Browse files
committed
36 - Migrate RecordAdapter to ViewBinding
1 parent af29da2 commit b9fc319

File tree

1 file changed

+26
-23
lines changed

1 file changed

+26
-23
lines changed

app/src/main/java/com/blogspot/e_kanivets/moneytracker/adapter/RecordAdapter.kt

Lines changed: 26 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,14 @@ import android.content.Context
44
import androidx.core.content.ContextCompat
55
import androidx.recyclerview.widget.RecyclerView
66
import android.view.LayoutInflater
7-
import android.view.View
87
import android.view.ViewGroup
98
import android.widget.TextView
109
import com.blogspot.e_kanivets.moneytracker.MtApp
1110
import com.blogspot.e_kanivets.moneytracker.R
1211
import com.blogspot.e_kanivets.moneytracker.controller.FormatController
12+
import com.blogspot.e_kanivets.moneytracker.databinding.ViewHeaderDateBinding
13+
import com.blogspot.e_kanivets.moneytracker.databinding.ViewRecordBinding
1314
import com.blogspot.e_kanivets.moneytracker.entity.RecordItem
14-
import kotlinx.android.synthetic.main.view_header_date.view.*
15-
import kotlinx.android.synthetic.main.view_record.view.*
1615
import javax.inject.Inject
1716

1817
class RecordAdapter : RecyclerView.Adapter<RecyclerView.ViewHolder> {
@@ -57,12 +56,18 @@ class RecordAdapter : RecyclerView.Adapter<RecyclerView.ViewHolder> {
5756
TYPE_RECORD
5857
}
5958

60-
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder =
61-
when (viewType) {
62-
TYPE_RECORD -> RecordViewHolder(LayoutInflater.from(context).inflate(R.layout.view_record, parent, false), itemClickListener)
63-
TYPE_HEADER -> HeaderViewHolder(LayoutInflater.from(context).inflate(R.layout.view_header_date, parent, false))
64-
else -> summaryViewHolder
65-
}
59+
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = when (viewType) {
60+
TYPE_RECORD -> RecordViewHolder(
61+
ViewRecordBinding.inflate(LayoutInflater.from(context), parent, false),
62+
itemClickListener
63+
)
64+
65+
TYPE_HEADER -> HeaderViewHolder(
66+
ViewHeaderDateBinding.inflate(LayoutInflater.from(context), parent, false)
67+
)
68+
69+
else -> summaryViewHolder
70+
}
6671

6772
override fun onBindViewHolder(viewHolder: RecyclerView.ViewHolder, position: Int) {
6873
if (position == 0 && isSummaryViewNeeded) {
@@ -95,27 +100,25 @@ class RecordAdapter : RecyclerView.Adapter<RecyclerView.ViewHolder> {
95100
notifyDataSetChanged()
96101
}
97102

98-
class RecordViewHolder : RecyclerView.ViewHolder {
99-
100-
var tvPrice: TextView
101-
var tvTitle: TextView
102-
var tvCategory: TextView
103-
var tvCurrency: TextView
103+
class RecordViewHolder(
104+
binding: ViewRecordBinding,
105+
itemClickListener: ((Int) -> Unit)?,
106+
) : RecyclerView.ViewHolder(binding.root) {
104107

105-
constructor(view: View, itemClickListener: ((Int) -> Unit)?) : super(view) {
106-
tvPrice = view.tvPrice
107-
tvTitle = view.tvTitle
108-
tvCategory = view.tvCategory
109-
tvCurrency = view.tvCurrency
108+
var tvPrice: TextView = binding.tvPrice
109+
var tvTitle: TextView = binding.tvTitle
110+
var tvCategory: TextView = binding.tvCategory
111+
var tvCurrency: TextView = binding.tvCurrency
110112

111-
view.setOnClickListener {
113+
init {
114+
binding.root.setOnClickListener {
112115
itemClickListener?.invoke(adapterPosition)
113116
}
114117
}
115118
}
116119

117-
class HeaderViewHolder(view: View) : RecyclerView.ViewHolder(view) {
118-
val tvDate: TextView = view.tvDate
120+
class HeaderViewHolder(binding: ViewHeaderDateBinding) : RecyclerView.ViewHolder(binding.root) {
121+
val tvDate: TextView = binding.tvDate
119122
}
120123

121124
companion object {

0 commit comments

Comments
 (0)