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

Commit 3a88e13

Browse files
Merge branch 'dev'
2 parents 17d8b1d + f256147 commit 3a88e13

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

56 files changed

+1270
-1274
lines changed

app/build.gradle

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,15 +18,15 @@ repositories {
1818
}
1919

2020
android {
21-
compileSdkVersion 27
21+
compileSdkVersion 29
2222
buildToolsVersion '27.0.3'
2323
defaultConfig {
2424
applicationId 'com.blogspot.e_kanivets.moneytracker'
25-
minSdkVersion 17
26-
targetSdkVersion 26
25+
minSdkVersion 21
26+
targetSdkVersion 29
2727

28-
versionCode 31
29-
versionName '2.0.1'
28+
versionCode 32
29+
versionName '2.1.0'
3030
}
3131
signingConfigs {
3232
releaseConfig {
@@ -99,4 +99,5 @@ dependencies {
9999
annotationProcessor 'com.google.dagger:dagger-compiler:2.11'
100100
provided 'org.glassfish:javax.annotation:10.0-b28'
101101
compile "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
102+
implementation 'com.android.support:cardview-v7:27.1.1'
102103
}

app/src/main/AndroidManifest.xml

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,6 @@
22
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
33
package="com.blogspot.e_kanivets.moneytracker">
44

5-
<!-- Used only for Dropbox backup -->
6-
<uses-permission android:name="android.permission.INTERNET" />
7-
85
<application
96
android:name=".MtApp"
107
android:allowBackup="true"
@@ -32,7 +29,7 @@
3229
android:name=".activity.record.AddRecordActivity"
3330
android:screenOrientation="portrait"
3431
android:theme="@style/Theme.Default"
35-
android:windowSoftInputMode="stateVisible" />
32+
android:windowSoftInputMode="adjustResize" />
3633
<activity
3734
android:name=".activity.account.AddAccountActivity"
3835
android:label="@string/title_add_account"
@@ -98,15 +95,19 @@
9895
android:launchMode="singleTask"
9996
android:theme="@android:style/Theme.Translucent.NoTitleBar">
10097
<intent-filter>
101-
<data android:scheme="db-5lqugcckdy9y6lj" />
102-
10398
<action android:name="android.intent.action.VIEW" />
10499

105100
<category android:name="android.intent.category.BROWSABLE" />
101+
106102
<category android:name="android.intent.category.DEFAULT" />
103+
<data android:scheme="db-5lqugcckdy9y6lj" />
107104
</intent-filter>
108105
</activity>
109106

107+
<meta-data
108+
android:name="io.fabric.ApiKey"
109+
android:value="955ae4864ae2a833aeda5b62631512524288adf8" />
110+
110111
<provider
111112
android:name="android.support.v4.content.FileProvider"
112113
android:authorities="com.blogspot.e_kanivets.moneytracker"
@@ -117,10 +118,8 @@
117118
android:resource="@xml/file_paths" />
118119
</provider>
119120

120-
<meta-data
121-
android:name="io.fabric.ApiKey"
122-
android:value="955ae4864ae2a833aeda5b62631512524288adf8" />
123-
124121
</application>
125122

123+
<uses-permission android:name="android.permission.INTERNET" />
124+
126125
</manifest>

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

Lines changed: 0 additions & 121 deletions
This file was deleted.
Lines changed: 136 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,136 @@
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.MtApp
7+
import com.blogspot.e_kanivets.moneytracker.R
8+
import com.blogspot.e_kanivets.moneytracker.activity.base.BaseBackActivity
9+
import com.blogspot.e_kanivets.moneytracker.adapter.RecordReportAdapter
10+
import com.blogspot.e_kanivets.moneytracker.controller.CurrencyController
11+
import com.blogspot.e_kanivets.moneytracker.controller.FormatController
12+
import com.blogspot.e_kanivets.moneytracker.controller.data.ExchangeRateController
13+
import com.blogspot.e_kanivets.moneytracker.controller.data.RecordController
14+
import com.blogspot.e_kanivets.moneytracker.entity.Period
15+
import com.blogspot.e_kanivets.moneytracker.entity.RecordReportItem
16+
import com.blogspot.e_kanivets.moneytracker.entity.data.Record
17+
import com.blogspot.e_kanivets.moneytracker.report.ReportMaker
18+
import com.blogspot.e_kanivets.moneytracker.report.record.IRecordReport
19+
import com.blogspot.e_kanivets.moneytracker.ui.presenter.ShortSummaryPresenter
20+
import kotlinx.android.synthetic.main.activity_report.*
21+
import java.util.*
22+
import javax.inject.Inject
23+
24+
class ReportActivity : BaseBackActivity() {
25+
26+
@Inject
27+
lateinit var recordController: RecordController
28+
@Inject
29+
lateinit var rateController: ExchangeRateController
30+
@Inject
31+
lateinit var currencyController: CurrencyController
32+
33+
private var recordList: List<Record> = listOf()
34+
private var period: Period? = null
35+
private lateinit var adapter: RecordReportAdapter
36+
private lateinit var recordReportConverter: RecordReportConverter
37+
38+
private lateinit var shortSummaryPresenter: ShortSummaryPresenter
39+
40+
override fun getContentViewId() = R.layout.activity_report
41+
42+
override fun initData(): Boolean {
43+
super.initData()
44+
appComponent.inject(this)
45+
46+
period = intent.getParcelableExtra(KEY_PERIOD)
47+
if (period == null) return false
48+
49+
recordList = recordController.getRecordsForPeriod(period)
50+
shortSummaryPresenter = ShortSummaryPresenter(this)
51+
adapter = RecordReportAdapter(mutableListOf(), hashMapOf(), this)
52+
recordReportConverter = RecordReportConverter()
53+
54+
return true
55+
}
56+
57+
override fun initViews() {
58+
super.initViews()
59+
60+
initSpinnerCurrency()
61+
62+
adapter.setSummaryView(shortSummaryPresenter.create(false, null))
63+
recyclerView.adapter = adapter
64+
}
65+
66+
private fun update(currency: String) {
67+
val reportMaker = ReportMaker(rateController)
68+
val report = reportMaker.getRecordReport(currency, period, recordList)
69+
70+
adapter.setData(recordReportConverter.getItemsFromReport(report), recordReportConverter.getDataFromReport(report))
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, R.layout.view_spinner_item, currencyList)
78+
spinnerCurrency.onItemSelectedListener = object : AdapterView.OnItemSelectedListener {
79+
override fun onItemSelected(p0: AdapterView<*>?, p1: View?, p2: Int, p3: Long) =
80+
update(spinnerCurrency.selectedItem.toString())
81+
82+
override fun onNothingSelected(p0: AdapterView<*>?) {}
83+
}
84+
85+
val currency = currencyController.readDefaultCurrency()
86+
87+
spinnerCurrency.setSelection(currencyList.indexOf(currency))
88+
}
89+
90+
class RecordReportConverter {
91+
92+
@Inject
93+
lateinit var formatController: FormatController
94+
95+
init {
96+
MtApp.get().appComponent.inject(this)
97+
}
98+
99+
fun getItemsFromReport(report: IRecordReport?): MutableList<RecordReportItem> {
100+
val items: MutableList<RecordReportItem> = mutableListOf()
101+
102+
if (report == null) return items
103+
104+
for (categoryRecord in report.summary) {
105+
val parentRow = RecordReportItem.ParentRow(categoryRecord.title, formatController.formatSignedAmount(categoryRecord.amount), false)
106+
items.add(parentRow)
107+
}
108+
return items
109+
}
110+
111+
fun getDataFromReport(report: IRecordReport?): HashMap<RecordReportItem.ParentRow, List<RecordReportItem.ChildRow>> {
112+
val data: HashMap<RecordReportItem.ParentRow, List<RecordReportItem.ChildRow>> = hashMapOf()
113+
114+
if (report == null) return data
115+
116+
for (categoryRecord in report.summary) {
117+
val parentRow = RecordReportItem.ParentRow(categoryRecord.title, formatController.formatSignedAmount(categoryRecord.amount), false)
118+
val childRows: MutableList<RecordReportItem.ChildRow> = mutableListOf()
119+
120+
for (summaryRecord in categoryRecord.summaryRecordList) {
121+
val childRow = RecordReportItem.ChildRow(summaryRecord.title, formatController.formatSignedAmount(summaryRecord.amount))
122+
childRows.add(childRow)
123+
}
124+
125+
data[parentRow] = childRows
126+
}
127+
return data
128+
}
129+
130+
}
131+
132+
companion object {
133+
134+
const val KEY_PERIOD = "key_period"
135+
}
136+
}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ public class SettingsActivity extends BaseBackActivity {
3232
super.initViews();
3333

3434
// Display the fragment as the main content.
35-
getFragmentManager().beginTransaction().replace(R.id.content, new SettingsFragment()).commit();
35+
getFragmentManager().beginTransaction().replace(R.id.contentView, new SettingsFragment()).commit();
3636
}
3737

3838
public static class SettingsFragment extends PreferenceFragment {

app/src/main/java/com/blogspot/e_kanivets/moneytracker/activity/account/AccountsActivity.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -104,9 +104,6 @@ public void onActivityResult(int requestCode, int resultCode, Intent data) {
104104
break;
105105

106106
case REQUEST_TRANSFER:
107-
update();
108-
setResult(RESULT_OK);
109-
break;
110107

111108
case REQUEST_EDIT_ACCOUNT:
112109
update();

app/src/main/java/com/blogspot/e_kanivets/moneytracker/activity/account/AddAccountActivity.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,9 +33,9 @@ public class AddAccountActivity extends BaseBackActivity {
3333

3434
private IValidator<Account> accountValidator;
3535

36-
@BindView(R.id.content)
36+
@BindView(R.id.contentView)
3737
View contentView;
38-
@BindView(R.id.et_title)
38+
@BindView(R.id.etTitle)
3939
EditText etTitle;
4040
@BindView(R.id.et_init_sum)
4141
EditText etInitSum;

app/src/main/java/com/blogspot/e_kanivets/moneytracker/activity/account/TransferActivity.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ public class TransferActivity extends BaseBackActivity {
3737

3838
private List<Account> accountList;
3939

40-
@BindView(R.id.content)
40+
@BindView(R.id.contentView)
4141
View contentView;
4242
@BindView(R.id.spinner_from)
4343
AppCompatSpinner spinnerFrom;

0 commit comments

Comments
 (0)