11package com.blogspot.e_kanivets.moneytracker.activity.record
22
33import android.content.Intent
4+ import android.os.Bundle
5+ import android.widget.TextView
46import androidx.appcompat.app.AppCompatActivity
57import androidx.recyclerview.widget.RecyclerView
6- import android.widget.TextView
78import com.blogspot.e_kanivets.moneytracker.R
89import com.blogspot.e_kanivets.moneytracker.activity.ReportActivity
910import com.blogspot.e_kanivets.moneytracker.activity.base.BaseDrawerActivity
@@ -15,6 +16,7 @@ import com.blogspot.e_kanivets.moneytracker.controller.PreferenceController
1516import com.blogspot.e_kanivets.moneytracker.controller.data.AccountController
1617import com.blogspot.e_kanivets.moneytracker.controller.data.ExchangeRateController
1718import com.blogspot.e_kanivets.moneytracker.controller.data.RecordController
19+ import com.blogspot.e_kanivets.moneytracker.databinding.ActivityMainBinding
1820import com.blogspot.e_kanivets.moneytracker.entity.Period
1921import com.blogspot.e_kanivets.moneytracker.entity.RecordItem
2022import com.blogspot.e_kanivets.moneytracker.entity.data.Record
@@ -23,8 +25,6 @@ import com.blogspot.e_kanivets.moneytracker.ui.AppRateDialog
2325import com.blogspot.e_kanivets.moneytracker.ui.presenter.ShortSummaryPresenter
2426import com.blogspot.e_kanivets.moneytracker.util.CrashlyticsProxy
2527import com.blogspot.e_kanivets.moneytracker.util.RecordItemsBuilder
26- import kotlinx.android.synthetic.main.activity_main.*
27- import kotlinx.android.synthetic.main.content_main.*
2828import javax.inject.Inject
2929
3030class MainActivity : BaseDrawerActivity () {
@@ -36,42 +36,59 @@ class MainActivity : BaseDrawerActivity() {
3636
3737 @Inject
3838 lateinit var recordController: RecordController
39+
3940 @Inject
4041 lateinit var rateController: ExchangeRateController
42+
4143 @Inject
4244 lateinit var accountController: AccountController
45+
4346 @Inject
4447 lateinit var currencyController: CurrencyController
48+
4549 @Inject
4650 lateinit var preferenceController: PreferenceController
51+
4752 @Inject
4853 lateinit var periodController: PeriodController
54+
4955 @Inject
5056 lateinit var formatController: FormatController
5157
58+ private lateinit var summaryPresenter: ShortSummaryPresenter
59+
60+ private lateinit var binding: ActivityMainBinding
5261 private lateinit var tvDefaultAccountTitle: TextView
5362 private lateinit var tvDefaultAccountSum: TextView
5463 private lateinit var tvCurrency: TextView
55- private lateinit var summaryPresenter: ShortSummaryPresenter
5664
57- override fun getContentViewId (): Int = R .layout.activity_main
65+ override fun onCreate (savedInstanceState : Bundle ? ) {
66+ super .onCreate(savedInstanceState)
5867
59- override fun initData (): Boolean {
60- super .initData()
61- appComponent.inject(this )
62-
63- preferenceController.addLaunchCount()
68+ binding = ActivityMainBinding .inflate(layoutInflater)
69+ setContentView(binding.root)
6470
65- return super .initData()
71+ initData()
72+ initToolbar()
73+ initViews()
6674 }
6775
68- override fun initViews () {
69- super .initViews()
76+ private fun initData (): Boolean {
77+ appComponent.inject(this )
78+ preferenceController.addLaunchCount()
79+ return true
80+ }
7081
82+ private fun initViews () {
7183 setTitle(R .string.title_records)
7284
7385 if (preferenceController.checkRateDialog()) showAppRateDialog()
7486
87+ drawer = binding.drawerLayout
88+ navigationView = binding.navView
89+
90+ navigationView.setNavigationItemSelectedListener(this )
91+
7592 tvDefaultAccountTitle = navigationView.getHeaderView(0 ).findViewById(R .id.tvDefaultAccountTitle)
7693 tvDefaultAccountSum = navigationView.getHeaderView(0 ).findViewById(R .id.tvDefaultAccountSum)
7794 tvCurrency = navigationView.getHeaderView(0 ).findViewById(R .id.tvCurrency)
@@ -83,27 +100,25 @@ class MainActivity : BaseDrawerActivity() {
83100 val summaryViewHolder = summaryPresenter.create(true ) { showReport() }.tag as RecyclerView .ViewHolder
84101 recordAdapter.summaryViewHolder = summaryViewHolder
85102
86- recyclerView.adapter = recordAdapter
103+ binding. recyclerView.adapter = recordAdapter
87104
88- spinner.setPeriodSelectedListener { period ->
105+ binding. spinner.setPeriodSelectedListener { period ->
89106 this .period = period
90107 periodController.writeLastUsedPeriod(period)
91108 update()
92109 }
93110
94- spinner.setPeriod(periodController.readLastUsedPeriod())
111+ binding. spinner.setPeriod(periodController.readLastUsedPeriod())
95112
96- btnAddExpense.setOnClickListener { addExpense() }
97- btnAddIncome.setOnClickListener { addIncome() }
113+ binding. btnAddExpense.setOnClickListener { addExpense() }
114+ binding. btnAddIncome.setOnClickListener { addIncome() }
98115 }
99116
100117 private fun getPositionWithoutSummary (position : Int ) = position - 1
101118
102119 private fun editRecord (position : Int ) {
103-
104120 CrashlyticsProxy .get().logButton(" Edit Record" )
105121 val record = recordList[getRecordPosition(position)]
106-
107122 startAddRecordActivity(record, AddRecordActivity .Mode .MODE_EDIT , record.type)
108123 }
109124
@@ -124,27 +139,22 @@ class MainActivity : BaseDrawerActivity() {
124139 startActivity(intent)
125140 }
126141
127- public override fun onActivityResult (requestCode : Int , resultCode : Int , data : Intent ? ) {
142+ override fun onActivityResult (requestCode : Int , resultCode : Int , data : Intent ? ) {
128143 super .onActivityResult(requestCode, resultCode, data)
129144
130145 if (resultCode == AppCompatActivity .RESULT_OK ) {
131146 when (requestCode) {
132147 REQUEST_ACTION_RECORD -> update()
133-
134148 REQUEST_BACKUP -> {
135149 appComponent.inject(this )
136150 update()
137151 }
138-
139- else -> {
140- }
141152 }
142153 }
143154 }
144155
145156 override fun update () {
146- recordList = recordController.getRecordsForPeriod(period)
147- recordList = recordList.reversed()
157+ recordList = recordController.getRecordsForPeriod(period).reversed()
148158 recordItems = RecordItemsBuilder ().getRecordItems(recordList)
149159
150160 val currency = currencyController.readDefaultCurrency()
@@ -160,7 +170,6 @@ class MainActivity : BaseDrawerActivity() {
160170
161171 private fun getRecordPosition (position : Int ): Int {
162172 var recordPosition = 0
163-
164173 for (indexOfItem in 0 until position) {
165174 if (recordItems[indexOfItem] is RecordItem .Record ) {
166175 recordPosition++
@@ -186,14 +195,12 @@ class MainActivity : BaseDrawerActivity() {
186195
187196 private fun fillDefaultAccount () {
188197 val defaultAccount = accountController.readDefaultAccount() ? : return
189-
190- tvDefaultAccountSum.text = defaultAccount.title
198+ tvDefaultAccountTitle.text = defaultAccount.title
191199 tvDefaultAccountSum.text = formatController.formatAmount(defaultAccount.fullSum)
192200 tvCurrency.text = defaultAccount.currency
193201 }
194202
195203 companion object {
196204 private const val REQUEST_ACTION_RECORD = 6
197205 }
198-
199206}
0 commit comments