Skip to content
This repository was archived by the owner on Jun 27, 2020. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
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

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
package com.blogspot.e_kanivets.moneytracker.activity

import android.view.View
import android.widget.AdapterView
import android.widget.ArrayAdapter
import com.blogspot.e_kanivets.moneytracker.R
import com.blogspot.e_kanivets.moneytracker.activity.base.BaseBackActivity
import com.blogspot.e_kanivets.moneytracker.adapter.ExpandableListReportAdapter
import com.blogspot.e_kanivets.moneytracker.controller.CurrencyController
import com.blogspot.e_kanivets.moneytracker.controller.data.ExchangeRateController
import com.blogspot.e_kanivets.moneytracker.controller.data.RecordController
import com.blogspot.e_kanivets.moneytracker.entity.Period
import com.blogspot.e_kanivets.moneytracker.entity.data.Record
import com.blogspot.e_kanivets.moneytracker.report.ReportMaker
import com.blogspot.e_kanivets.moneytracker.report.record.RecordReportConverter
import com.blogspot.e_kanivets.moneytracker.ui.presenter.ShortSummaryPresenter
import kotlinx.android.synthetic.main.activity_report.*
import javax.inject.Inject

class ReportActivity : BaseBackActivity() {

@Inject
lateinit var recordController: RecordController
@Inject
lateinit var rateController: ExchangeRateController
@Inject
lateinit var currencyController: CurrencyController

private var recordList: List<Record> = listOf()
private var period: Period? = null

private val shortSummaryPresenter: ShortSummaryPresenter = ShortSummaryPresenter(this)

override fun getContentViewId() = R.layout.activity_report

override fun initData(): Boolean {
super.initData()
appComponent.inject(this)

period = intent.getParcelableExtra(KEY_PERIOD)
if (period == null) return false

recordList = recordController.getRecordsForPeriod(period)

return true
}

override fun initViews() {
super.initViews()

initSpinnerCurrency()

expListView.addHeaderView(shortSummaryPresenter.create(false, null))
}

private fun update(currency: String) {
val reportMaker = ReportMaker(rateController)
val report = reportMaker.getRecordReport(currency, period, recordList)

var adapter: ExpandableListReportAdapter? = null
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All code below can be moved into if statement.


if (report != null) {
val recordReportConverter = RecordReportConverter(report)
adapter = ExpandableListReportAdapter(this, recordReportConverter)
}

expListView.setAdapter(adapter)
shortSummaryPresenter.update(report, currency, reportMaker.currencyNeeded(currency, recordList))
}

private fun initSpinnerCurrency() {
val currencyList = currencyController.readAll()

spinnerCurrency.adapter = ArrayAdapter(this, R.layout.view_spinner_item, currencyList)
spinnerCurrency.onItemSelectedListener = object : AdapterView.OnItemSelectedListener {
override fun onItemSelected(p0: AdapterView<*>?, p1: View?, p2: Int, p3: Long) =
update(spinnerCurrency.selectedItem.toString())

override fun onNothingSelected(p0: AdapterView<*>?) {}
}

val currency = currencyController.readDefaultCurrency()

spinnerCurrency.setSelection(currencyList.indexOf(currency))
}

companion object {

const val KEY_PERIOD = "key_period"
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -116,7 +116,7 @@ public void update() {
}

public static class ViewHolder {
@BindView(R.id.spinner_currency)
@BindView(R.id.spinnerCurrency)
AppCompatSpinner spinnerCurrency;
@BindView(R.id.tvTotal)
TextView tvTotal;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,13 +46,13 @@ public ShortSummaryPresenter(Context context) {
green = context.getResources().getColor(R.color.green);
}

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

return view;
}
Expand Down
4 changes: 2 additions & 2 deletions app/src/main/res/layout/activity_report.xml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
app:popupTheme="@style/AppTheme.PopupOverlay">

<android.support.v7.widget.AppCompatSpinner
android:id="@+id/spinner_currency"
android:id="@+id/spinnerCurrency"
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍

android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="end"
Expand All @@ -38,7 +38,7 @@
app:layout_behavior="@string/appbar_scrolling_view_behavior">

<ExpandableListView
android:id="@+id/exp_list_view"
android:id="@+id/expListView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal" />
Expand Down
2 changes: 1 addition & 1 deletion app/src/main/res/layout/view_summary_accounts.xml
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@
android:text="@string/currency" />

<android.support.v7.widget.AppCompatSpinner
android:id="@+id/spinner_currency"
android:id="@+id/spinnerCurrency"
android:layout_width="wrap_content"
android:layout_height="25dp" />

Expand Down