diff --git a/app/src/main/java/com/blogspot/e_kanivets/moneytracker/activity/ReportActivity.java b/app/src/main/java/com/blogspot/e_kanivets/moneytracker/activity/ReportActivity.java deleted file mode 100644 index 667806e..0000000 --- a/app/src/main/java/com/blogspot/e_kanivets/moneytracker/activity/ReportActivity.java +++ /dev/null @@ -1,121 +0,0 @@ -package com.blogspot.e_kanivets.moneytracker.activity; - -import android.support.v7.widget.AppCompatSpinner; -import android.view.View; -import android.widget.AdapterView; -import android.widget.ArrayAdapter; -import android.widget.ExpandableListView; - -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.record.RecordReportConverter; -import com.blogspot.e_kanivets.moneytracker.report.ReportMaker; -import com.blogspot.e_kanivets.moneytracker.report.record.IRecordReport; -import com.blogspot.e_kanivets.moneytracker.ui.presenter.ShortSummaryPresenter; - -import java.util.List; - -import javax.inject.Inject; - -import butterknife.BindView; - -public class ReportActivity extends BaseBackActivity { - @SuppressWarnings("unused") - private static final String TAG = "ReportActivity"; - - public static final String KEY_PERIOD = "key_period"; - - @Inject - RecordController recordController; - @Inject - ExchangeRateController rateController; - @Inject - CurrencyController currencyController; - - private List recordList; - private Period period; - - private ShortSummaryPresenter shortSummaryPresenter; - - @BindView(R.id.spinner_currency) - AppCompatSpinner spinnerCurrency; - @BindView(R.id.exp_list_view) - ExpandableListView expandableListView; - - @Override - protected int getContentViewId() { - return R.layout.activity_report; - } - - @SuppressWarnings("RedundantIfStatement") - @Override - protected boolean initData() { - super.initData(); - getAppComponent().inject(ReportActivity.this); - - period = getIntent().getParcelableExtra(KEY_PERIOD); - if (period == null) return false; - - recordList = recordController.getRecordsForPeriod(period); - - return true; - } - - @Override - protected void initViews() { - super.initViews(); - - initSpinnerCurrency(); - - shortSummaryPresenter = new ShortSummaryPresenter(ReportActivity.this); - expandableListView.addHeaderView(shortSummaryPresenter.create(false, null)); - } - - private void update(String currency) { - ReportMaker reportMaker = new ReportMaker(rateController); - IRecordReport report = reportMaker.getRecordReport(currency, period, recordList); - - ExpandableListReportAdapter adapter = null; - - if (report != null) { - RecordReportConverter recordReportConverter = new RecordReportConverter(report); - adapter = new ExpandableListReportAdapter(ReportActivity.this, recordReportConverter); - } - - expandableListView.setAdapter(adapter); - shortSummaryPresenter.update(report, currency, reportMaker.currencyNeeded(currency, recordList)); - } - - private void initSpinnerCurrency() { - List currencyList = currencyController.readAll(); - - spinnerCurrency.setAdapter(new ArrayAdapter<>(ReportActivity.this, - R.layout.view_spinner_item, currencyList)); - spinnerCurrency.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { - @Override - public void onItemSelected(AdapterView parent, View view, int position, long id) { - update((String) spinnerCurrency.getSelectedItem()); - } - - @Override - public void onNothingSelected(AdapterView parent) { - - } - }); - - String currency = currencyController.readDefaultCurrency(); - - for (int i = 0; i < currencyList.size(); i++) { - if (currency.equals(currencyList.get(i))) { - spinnerCurrency.setSelection(i); - break; - } - } - } -} \ No newline at end of file diff --git a/app/src/main/java/com/blogspot/e_kanivets/moneytracker/activity/ReportActivity.kt b/app/src/main/java/com/blogspot/e_kanivets/moneytracker/activity/ReportActivity.kt new file mode 100644 index 0000000..d982125 --- /dev/null +++ b/app/src/main/java/com/blogspot/e_kanivets/moneytracker/activity/ReportActivity.kt @@ -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 = 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 + + 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" + } +} diff --git a/app/src/main/java/com/blogspot/e_kanivets/moneytracker/ui/presenter/AccountsSummaryPresenter.java b/app/src/main/java/com/blogspot/e_kanivets/moneytracker/ui/presenter/AccountsSummaryPresenter.java index 9417fe5..bdb2fc5 100644 --- a/app/src/main/java/com/blogspot/e_kanivets/moneytracker/ui/presenter/AccountsSummaryPresenter.java +++ b/app/src/main/java/com/blogspot/e_kanivets/moneytracker/ui/presenter/AccountsSummaryPresenter.java @@ -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; diff --git a/app/src/main/java/com/blogspot/e_kanivets/moneytracker/ui/presenter/ShortSummaryPresenter.java b/app/src/main/java/com/blogspot/e_kanivets/moneytracker/ui/presenter/ShortSummaryPresenter.java index 49217fb..2f7933f 100644 --- a/app/src/main/java/com/blogspot/e_kanivets/moneytracker/ui/presenter/ShortSummaryPresenter.java +++ b/app/src/main/java/com/blogspot/e_kanivets/moneytracker/ui/presenter/ShortSummaryPresenter.java @@ -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; } diff --git a/app/src/main/res/layout/activity_report.xml b/app/src/main/res/layout/activity_report.xml index 6853333..48b696e 100644 --- a/app/src/main/res/layout/activity_report.xml +++ b/app/src/main/res/layout/activity_report.xml @@ -19,7 +19,7 @@ app:popupTheme="@style/AppTheme.PopupOverlay"> diff --git a/app/src/main/res/layout/view_summary_accounts.xml b/app/src/main/res/layout/view_summary_accounts.xml index 098d14f..6216df9 100644 --- a/app/src/main/res/layout/view_summary_accounts.xml +++ b/app/src/main/res/layout/view_summary_accounts.xml @@ -27,7 +27,7 @@ android:text="@string/currency" />