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

Commit 3c50871

Browse files
Merge pull request #185 from yevhenii-kanivets/178_kotlinify_reportActivity
#178. Kotlinify ReportActivity.
2 parents 7974c4f + 89e732b commit 3c50871

File tree

6 files changed

+97
-127
lines changed

6 files changed

+97
-127
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: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
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 var recordList: List<Record> = listOf()
30+
private var period: Period? = null
31+
32+
private val shortSummaryPresenter: ShortSummaryPresenter = ShortSummaryPresenter(this)
33+
34+
override fun getContentViewId() = R.layout.activity_report
35+
36+
override fun initData(): Boolean {
37+
super.initData()
38+
appComponent.inject(this)
39+
40+
period = intent.getParcelableExtra(KEY_PERIOD)
41+
if (period == null) return false
42+
43+
recordList = recordController.getRecordsForPeriod(period)
44+
45+
return true
46+
}
47+
48+
override fun initViews() {
49+
super.initViews()
50+
51+
initSpinnerCurrency()
52+
53+
expListView.addHeaderView(shortSummaryPresenter.create(false, null))
54+
}
55+
56+
private fun update(currency: String) {
57+
val reportMaker = ReportMaker(rateController)
58+
val report = reportMaker.getRecordReport(currency, period, recordList)
59+
60+
var adapter: ExpandableListReportAdapter? = null
61+
62+
if (report != null) {
63+
val recordReportConverter = RecordReportConverter(report)
64+
adapter = ExpandableListReportAdapter(this, recordReportConverter)
65+
}
66+
67+
expListView.setAdapter(adapter)
68+
shortSummaryPresenter.update(report, currency, reportMaker.currencyNeeded(currency, recordList))
69+
}
70+
71+
private fun initSpinnerCurrency() {
72+
val currencyList = currencyController.readAll()
73+
74+
spinnerCurrency.adapter = ArrayAdapter(this, R.layout.view_spinner_item, currencyList)
75+
spinnerCurrency.onItemSelectedListener = object : AdapterView.OnItemSelectedListener {
76+
override fun onItemSelected(p0: AdapterView<*>?, p1: View?, p2: Int, p3: Long) =
77+
update(spinnerCurrency.selectedItem.toString())
78+
79+
override fun onNothingSelected(p0: AdapterView<*>?) {}
80+
}
81+
82+
val currency = currencyController.readDefaultCurrency()
83+
84+
spinnerCurrency.setSelection(currencyList.indexOf(currency))
85+
}
86+
87+
companion object {
88+
89+
const val KEY_PERIOD = "key_period"
90+
}
91+
}

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/java/com/blogspot/e_kanivets/moneytracker/ui/presenter/ShortSummaryPresenter.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,13 +46,13 @@ public ShortSummaryPresenter(Context context) {
4646
green = context.getResources().getColor(R.color.green);
4747
}
4848

49-
public View create(boolean shortSummary, RecordAdapter.SummaryViewHolder mainViewHolder) {
49+
public View create(boolean shortSummary, RecordAdapter.SummaryViewHolder viewHolder) {
5050
view = layoutInflater.inflate(R.layout.view_summary_records, null);
5151
view.findViewById(R.id.iv_more).setVisibility(shortSummary ? View.VISIBLE : View.INVISIBLE);
5252
view.setEnabled(false);
5353
view.findViewById(R.id.lvSummary).setClickable(false);
5454
view.findViewById(R.id.cvSummary).setClickable(true);
55-
view.setTag(mainViewHolder != null ? mainViewHolder : new ViewHolder(view));
55+
view.setTag(viewHolder != null ? viewHolder : new ViewHolder(view));
5656

5757
return view;
5858
}

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)