@@ -3,6 +3,7 @@ package com.blogspot.e_kanivets.moneytracker.activity
33import android.view.View
44import android.widget.AdapterView
55import android.widget.ArrayAdapter
6+ import com.blogspot.e_kanivets.moneytracker.MtApp
67import com.blogspot.e_kanivets.moneytracker.R
78import com.blogspot.e_kanivets.moneytracker.activity.base.BaseBackActivity
89import com.blogspot.e_kanivets.moneytracker.adapter.RecordReportAdapter
@@ -14,6 +15,7 @@ import com.blogspot.e_kanivets.moneytracker.entity.Period
1415import com.blogspot.e_kanivets.moneytracker.entity.RecordReportItem
1516import com.blogspot.e_kanivets.moneytracker.entity.data.Record
1617import com.blogspot.e_kanivets.moneytracker.report.ReportMaker
18+ import com.blogspot.e_kanivets.moneytracker.report.record.IRecordReport
1719import com.blogspot.e_kanivets.moneytracker.ui.presenter.ShortSummaryPresenter
1820import kotlinx.android.synthetic.main.activity_report.*
1921import java.util.*
@@ -27,12 +29,11 @@ class ReportActivity : BaseBackActivity() {
2729 lateinit var rateController: ExchangeRateController
2830 @Inject
2931 lateinit var currencyController: CurrencyController
30- @Inject
31- lateinit var formatController: FormatController
3232
3333 private var recordList: List <Record > = listOf ()
3434 private var period: Period ? = null
3535 private lateinit var adapter: RecordReportAdapter
36+ private lateinit var recordReportConverter: RecordReportConverter
3637
3738 private lateinit var shortSummaryPresenter: ShortSummaryPresenter
3839
@@ -48,6 +49,7 @@ class ReportActivity : BaseBackActivity() {
4849 recordList = recordController.getRecordsForPeriod(period)
4950 shortSummaryPresenter = ShortSummaryPresenter (this )
5051 adapter = RecordReportAdapter (mutableListOf (), hashMapOf(), this )
52+ recordReportConverter = RecordReportConverter ()
5153
5254 return true
5355 }
@@ -57,35 +59,15 @@ class ReportActivity : BaseBackActivity() {
5759
5860 initSpinnerCurrency()
5961
60- adapter.addSummaryView (shortSummaryPresenter.create(false , null ))
62+ adapter.setSummaryView (shortSummaryPresenter.create(false , null ))
6163 recyclerView.adapter = adapter
6264 }
6365
6466 private fun update (currency : String ) {
6567 val reportMaker = ReportMaker (rateController)
6668 val report = reportMaker.getRecordReport(currency, period, recordList)
6769
68- val data: HashMap <RecordReportItem .ParentRow , List <RecordReportItem .ChildRow >> = hashMapOf()
69- val items: MutableList <RecordReportItem > = mutableListOf ()
70-
71- if (report != null ) {
72- for (categoryRecord in report.summary) {
73-
74- val parentRow = RecordReportItem .ParentRow (categoryRecord.title, formatController.formatSignedAmount(categoryRecord.amount), false )
75- items.add(parentRow)
76-
77- val childRows: MutableList <RecordReportItem .ChildRow > = mutableListOf ()
78-
79- for (summaryRecord in categoryRecord.summaryRecordList) {
80- val childRow = RecordReportItem .ChildRow (summaryRecord.title, formatController.formatSignedAmount(summaryRecord.amount))
81- childRows.add(childRow)
82- }
83-
84- data[parentRow] = childRows
85- }
86- }
87-
88- adapter.setData(items, data)
70+ adapter.setData(recordReportConverter.getItemsFromReport(report), recordReportConverter.getDataFromReport(report))
8971 shortSummaryPresenter.update(report, currency, reportMaker.currencyNeeded(currency, recordList))
9072 }
9173
@@ -105,6 +87,48 @@ class ReportActivity : BaseBackActivity() {
10587 spinnerCurrency.setSelection(currencyList.indexOf(currency))
10688 }
10789
90+ class RecordReportConverter {
91+
92+ @Inject
93+ lateinit var formatController: FormatController
94+
95+ init {
96+ MtApp .get().appComponent.inject(this )
97+ }
98+
99+ fun getItemsFromReport (report : IRecordReport ? ): MutableList <RecordReportItem > {
100+ val items: MutableList <RecordReportItem > = mutableListOf ()
101+
102+ if (report == null ) return items
103+
104+ for (categoryRecord in report.summary) {
105+ val parentRow = RecordReportItem .ParentRow (categoryRecord.title, formatController.formatSignedAmount(categoryRecord.amount), false )
106+ items.add(parentRow)
107+ }
108+ return items
109+ }
110+
111+ fun getDataFromReport (report : IRecordReport ? ): HashMap <RecordReportItem .ParentRow , List <RecordReportItem .ChildRow >> {
112+ val data: HashMap <RecordReportItem .ParentRow , List <RecordReportItem .ChildRow >> = hashMapOf()
113+
114+ if (report == null ) return data
115+
116+ for (categoryRecord in report.summary) {
117+ val parentRow = RecordReportItem .ParentRow (categoryRecord.title, formatController.formatSignedAmount(categoryRecord.amount), false )
118+ val childRows: MutableList <RecordReportItem .ChildRow > = mutableListOf ()
119+
120+ for (summaryRecord in categoryRecord.summaryRecordList) {
121+ val childRow = RecordReportItem .ChildRow (summaryRecord.title, formatController.formatSignedAmount(summaryRecord.amount))
122+ childRows.add(childRow)
123+ }
124+
125+ data[parentRow] = childRows
126+ }
127+ return data
128+ }
129+
130+ }
131+
108132 companion object {
109133
110134 const val KEY_PERIOD = " key_period"
0 commit comments