Skip to content
This repository was archived by the owner on Jun 27, 2020. It is now read-only.
Merged

Dev #180

Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
#168. Add @Inject in RecordAdapter. Change anonymous class into lambd…
…a in rvOnClickListener.
  • Loading branch information
bogdan-evtushenko committed Aug 23, 2019
commit 285c58c23e4d9c3ddacedc35bff5c2c45699b0d7
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,6 @@ class AccountOperationsFragment : BaseFragment() {
internal lateinit var recordController: RecordController
@Inject
internal lateinit var transferController: TransferController
@Inject
internal lateinit var formatController: FormatController

private lateinit var account: Account

Expand All @@ -37,7 +35,7 @@ class AccountOperationsFragment : BaseFragment() {
}

override fun initViews(view: View) {
recyclerView.adapter = RecordAdapter(requireContext(), getRecords(), formatController, false)
recyclerView.adapter = RecordAdapter(requireContext(), getRecords(), false)
}

private fun getRecords(): List<Record> {
Expand Down Expand Up @@ -86,4 +84,5 @@ class AccountOperationsFragment : BaseFragment() {
}

}

}
Original file line number Diff line number Diff line change
Expand Up @@ -107,5 +107,4 @@ private void initViews(@Nullable View rootView) {
barChart.setHighlightPerTapEnabled(false);
}
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -72,5 +72,4 @@ private void initViews(@Nullable View rootView) {
listView.setAdapter(new MonthSummaryAdapter(getActivity(), monthReport));
}
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -70,13 +70,12 @@ class MainActivity : BaseDrawerActivity() {
tvDefaultAccountSum = navigationView.getHeaderView(0).findViewById(R.id.tvDefaultAccountSum)
tvCurrency = navigationView.getHeaderView(0).findViewById(R.id.tvCurrency)

recordAdapter = RecordAdapter(this, listOf(), formatController, true)
recordAdapter.setOnItemClickListener(object : RecordAdapter.OnItemClickListener {
override fun onItemClick(position: Int) {
if (position == 0) showReport()
else editRecord(position)
}
})
recordAdapter = RecordAdapter(this, listOf(), true)

recordAdapter.setOnItemClickListener { position ->
if (position == 0) showReport()
else editRecord(position)
}
recyclerView.adapter = recordAdapter

spinner.setPeriodSelectedListener { period ->
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,12 +16,14 @@ import com.blogspot.e_kanivets.moneytracker.report.record.IRecordReport
import com.blogspot.e_kanivets.moneytracker.ui.presenter.ShortSummaryPresenter
import kotlinx.android.synthetic.main.view_record.view.*
import kotlinx.android.synthetic.main.view_summary_records.view.*
import javax.inject.Inject

class RecordAdapter : RecyclerView.Adapter<RecyclerView.ViewHolder> {

private var formatController: FormatController
@Inject
lateinit var formatController: FormatController

private var itemClickListener: OnItemClickListener? = null
private var itemClickListener: ((Int) -> Unit)? = null

private var whiteRed: Int
private var whiteGreen: Int
Expand All @@ -35,7 +37,7 @@ class RecordAdapter : RecyclerView.Adapter<RecyclerView.ViewHolder> {
private var isHeaderViewNeeded: Boolean = false
private lateinit var headerViewHolder: HeaderViewHolder

constructor(context: Context, records: List<Record>, formatController: FormatController, isHeaderViewNeeded: Boolean) {
constructor(context: Context, records: List<Record>, isHeaderViewNeeded: Boolean) {
this.context = context
this.records = records

Expand All @@ -49,7 +51,6 @@ class RecordAdapter : RecyclerView.Adapter<RecyclerView.ViewHolder> {
summaryPresenter = ShortSummaryPresenter(context)

this.isHeaderViewNeeded = isHeaderViewNeeded
this.formatController = formatController
}

override fun getItemCount() = records.size + if (isHeaderViewNeeded) 1 else 0
Expand Down Expand Up @@ -100,7 +101,7 @@ class RecordAdapter : RecyclerView.Adapter<RecyclerView.ViewHolder> {
notifyDataSetChanged()
}

fun setOnItemClickListener(itemClickListener: OnItemClickListener) {
fun setOnItemClickListener(itemClickListener: (Int) -> Unit) {
this.itemClickListener = itemClickListener
}

Expand All @@ -113,7 +114,7 @@ class RecordAdapter : RecyclerView.Adapter<RecyclerView.ViewHolder> {
var tvCategory: TextView
var tvCurrency: TextView

constructor(view: View, itemClickListener: OnItemClickListener?) : super(view) {
constructor(view: View, itemClickListener: ((Int) -> Unit)?) : super(view) {
container = view.container
tvDateAndTime = view.tvDateAndTime
tvPrice = view.tvPrice
Expand All @@ -122,7 +123,7 @@ class RecordAdapter : RecyclerView.Adapter<RecyclerView.ViewHolder> {
tvCurrency = view.tvCurrency

view.setOnClickListener {
itemClickListener?.onItemClick(adapterPosition)
itemClickListener?.invoke(adapterPosition)
}
}
}
Expand All @@ -142,26 +143,21 @@ class RecordAdapter : RecyclerView.Adapter<RecyclerView.ViewHolder> {

override fun getTvTotal(): TextView = tvTotal

constructor(view: View, itemClickListener: OnItemClickListener?) : super(view) {
constructor(view: View, itemClickListener: ((Int) -> Unit)?) : super(view) {
tvPeriod = view.tvPeriod
tvTotalIncome = view.tvTotalIncome
tvTotalExpense = view.tvTotalExpense
tvTotal = view.tvTotal

view.setOnClickListener {
itemClickListener?.onItemClick(0)
itemClickListener?.invoke(0)
}
}
}

interface OnItemClickListener {
fun onItemClick(position: Int)
}

companion object {

private const val TYPE_HEADER = 0
private const val TYPE_ITEM = 1
}

}