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

Commit 3312f9f

Browse files
#178. Kotlinify ReportActivity.
1 parent 7974c4f commit 3312f9f

File tree

5 files changed

+101
-125
lines changed

5 files changed

+101
-125
lines changed

app/src/main/java/com/blogspot/e_kanivets/moneytracker/activity/ReportActivity.java

Lines changed: 0 additions & 121 deletions
This file was deleted.
Lines changed: 97 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,97 @@
1+
package com.blogspot.e_kanivets.moneytracker.activity
2+
3+
import android.view.View
4+
import android.widget.AdapterView
5+
import android.widget.ArrayAdapter
6+
import com.blogspot.e_kanivets.moneytracker.R
7+
import com.blogspot.e_kanivets.moneytracker.activity.base.BaseBackActivity
8+
import com.blogspot.e_kanivets.moneytracker.adapter.ExpandableListReportAdapter
9+
import com.blogspot.e_kanivets.moneytracker.controller.CurrencyController
10+
import com.blogspot.e_kanivets.moneytracker.controller.data.ExchangeRateController
11+
import com.blogspot.e_kanivets.moneytracker.controller.data.RecordController
12+
import com.blogspot.e_kanivets.moneytracker.entity.Period
13+
import com.blogspot.e_kanivets.moneytracker.entity.data.Record
14+
import com.blogspot.e_kanivets.moneytracker.report.ReportMaker
15+
import com.blogspot.e_kanivets.moneytracker.report.record.RecordReportConverter
16+
import com.blogspot.e_kanivets.moneytracker.ui.presenter.ShortSummaryPresenter
17+
import kotlinx.android.synthetic.main.activity_report.*
18+
import javax.inject.Inject
19+
20+
class ReportActivity : BaseBackActivity() {
21+
22+
@Inject
23+
lateinit var recordController: RecordController
24+
@Inject
25+
lateinit var rateController: ExchangeRateController
26+
@Inject
27+
lateinit var currencyController: CurrencyController
28+
29+
private lateinit var recordList: List<Record>
30+
private var period: Period? = null
31+
32+
private lateinit var shortSummaryPresenter: ShortSummaryPresenter
33+
34+
override fun getContentViewId(): Int {
35+
return R.layout.activity_report
36+
}
37+
38+
override fun initData(): Boolean {
39+
super.initData()
40+
appComponent.inject(this)
41+
42+
period = intent.getParcelableExtra(KEY_PERIOD)
43+
if (period == null) return false
44+
45+
recordList = recordController.getRecordsForPeriod(period)
46+
47+
return true
48+
}
49+
50+
override fun initViews() {
51+
super.initViews()
52+
53+
initSpinnerCurrency()
54+
55+
shortSummaryPresenter = ShortSummaryPresenter(this)
56+
expListView.addHeaderView(shortSummaryPresenter.create(false, null))
57+
}
58+
59+
private fun update(currency: String) {
60+
val reportMaker = ReportMaker(rateController)
61+
val report = reportMaker.getRecordReport(currency, period, recordList)
62+
63+
var adapter: ExpandableListReportAdapter? = null
64+
65+
if (report != null) {
66+
val recordReportConverter = RecordReportConverter(report)
67+
adapter = ExpandableListReportAdapter(this, recordReportConverter)
68+
}
69+
70+
expListView.setAdapter(adapter)
71+
shortSummaryPresenter.update(report, currency, reportMaker.currencyNeeded(currency, recordList))
72+
}
73+
74+
private fun initSpinnerCurrency() {
75+
val currencyList = currencyController.readAll()
76+
77+
spinnerCurrency.adapter = ArrayAdapter(this,
78+
R.layout.view_spinner_item, currencyList)
79+
spinnerCurrency.onItemSelectedListener = object : AdapterView.OnItemSelectedListener {
80+
override fun onItemSelected(p0: AdapterView<*>?, p1: View?, p2: Int, p3: Long) {
81+
update(spinnerCurrency.selectedItem.toString())
82+
}
83+
84+
override fun onNothingSelected(p0: AdapterView<*>?) {
85+
}
86+
}
87+
88+
val currency = currencyController.readDefaultCurrency()
89+
90+
spinnerCurrency.setSelection(currencyList.indexOf(currency))
91+
}
92+
93+
companion object {
94+
95+
const val KEY_PERIOD = "key_period"
96+
}
97+
}

app/src/main/java/com/blogspot/e_kanivets/moneytracker/ui/presenter/AccountsSummaryPresenter.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,7 @@ public void update() {
116116
}
117117

118118
public static class ViewHolder {
119-
@BindView(R.id.spinner_currency)
119+
@BindView(R.id.spinnerCurrency)
120120
AppCompatSpinner spinnerCurrency;
121121
@BindView(R.id.tvTotal)
122122
TextView tvTotal;

app/src/main/res/layout/activity_report.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
app:popupTheme="@style/AppTheme.PopupOverlay">
2020

2121
<android.support.v7.widget.AppCompatSpinner
22-
android:id="@+id/spinner_currency"
22+
android:id="@+id/spinnerCurrency"
2323
android:layout_width="wrap_content"
2424
android:layout_height="wrap_content"
2525
android:layout_gravity="end"
@@ -38,7 +38,7 @@
3838
app:layout_behavior="@string/appbar_scrolling_view_behavior">
3939

4040
<ExpandableListView
41-
android:id="@+id/exp_list_view"
41+
android:id="@+id/expListView"
4242
android:layout_width="match_parent"
4343
android:layout_height="wrap_content"
4444
android:layout_gravity="center_horizontal" />

app/src/main/res/layout/view_summary_accounts.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
android:text="@string/currency" />
2828

2929
<android.support.v7.widget.AppCompatSpinner
30-
android:id="@+id/spinner_currency"
30+
android:id="@+id/spinnerCurrency"
3131
android:layout_width="wrap_content"
3232
android:layout_height="25dp" />
3333

0 commit comments

Comments
 (0)