Skip to content

Commit 563a338

Browse files
authored
Merge pull request #37 from xorum-io/36-upgrade-deps
Upgrade dependencies, migrate to ViewBinding
2 parents 3e57ea4 + d273853 commit 563a338

Some content is hidden

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

57 files changed

+1577
-1742
lines changed

app/build.gradle

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,21 @@
11
apply plugin: 'com.android.application'
22
apply plugin: 'kotlin-android'
3-
apply plugin: 'kotlin-android-extensions'
43
apply plugin: 'com.google.gms.google-services'
54
apply plugin: 'com.google.firebase.crashlytics'
65

76
android {
8-
compileSdkVersion 33
9-
buildToolsVersion '30.0.3'
7+
namespace = "com.blogspot.e_kanivets.moneytracker"
8+
9+
compileSdkVersion 34
1010
defaultConfig {
1111
applicationId 'com.blogspot.e_kanivets.moneytracker'
1212
minSdkVersion 21
13-
targetSdkVersion 33
13+
targetSdkVersion 34
1414

1515
versionCode 38
1616
versionName '2.2.0'
1717
}
18+
1819
signingConfigs {
1920
releaseConfig {
2021
storeFile file('mt_keystore.jks')
@@ -23,6 +24,7 @@ android {
2324
keyPassword 'moneytracker'
2425
}
2526
}
27+
2628
buildTypes {
2729
release {
2830
debuggable false
@@ -47,29 +49,27 @@ android {
4749
}
4850
}
4951

50-
lintOptions {
51-
checkReleaseBuilds false
52+
lint {
5253
abortOnError false
53-
}
54-
dexOptions {
55-
preDexLibraries = false
56-
}
57-
productFlavors {
54+
checkReleaseBuilds false
5855
}
5956

6057
compileOptions {
61-
sourceCompatibility JavaVersion.VERSION_1_8
62-
targetCompatibility JavaVersion.VERSION_1_8
58+
sourceCompatibility JavaVersion.VERSION_21
59+
targetCompatibility JavaVersion.VERSION_21
60+
}
61+
62+
buildFeatures {
63+
viewBinding true
64+
buildConfig true
6365
}
6466
}
6567

6668
dependencies {
6769
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
6870
implementation 'androidx.appcompat:appcompat:1.3.1'
6971
implementation 'com.google.android.material:material:1.4.0'
70-
implementation 'com.jakewharton:butterknife:10.2.3' // View annotation bindings
71-
annotationProcessor 'com.jakewharton:butterknife-compiler:10.2.3' // ButterKnife compiler
72-
implementation 'com.google.dagger:dagger:2.35.1' // Dependency injection tool
72+
implementation 'com.google.dagger:dagger:2.51.1' // Dependency injection tool
7373
implementation 'com.github.PhilJay:MPAndroidChart:v2.2.4' // Charts
7474
implementation 'com.jakewharton.timber:timber:4.7.1' // Advanced logging tool
7575
implementation 'androidx.constraintlayout:constraintlayout:2.1.1'
@@ -80,7 +80,7 @@ dependencies {
8080
androidTestImplementation 'com.crittercism.dexmaker:dexmaker:1.4'
8181
androidTestImplementation 'com.crittercism.dexmaker:dexmaker-dx:1.4'
8282
androidTestImplementation 'com.crittercism.dexmaker:dexmaker-mockito:1.4'
83-
annotationProcessor 'com.google.dagger:dagger-compiler:2.35.1'
83+
annotationProcessor 'com.google.dagger:dagger-compiler:2.51.1'
8484
compileOnly 'org.glassfish:javax.annotation:10.0-b28'
8585
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
8686
implementation 'androidx.cardview:cardview:1.0.0'
Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,26 @@
11
package com.blogspot.e_kanivets.moneytracker.activity;
22

33
import android.text.method.LinkMovementMethod;
4-
import android.widget.TextView;
54

6-
import com.blogspot.e_kanivets.moneytracker.R;
75
import com.blogspot.e_kanivets.moneytracker.activity.base.BaseBackActivity;
8-
9-
import butterknife.BindView;
6+
import com.blogspot.e_kanivets.moneytracker.databinding.ActivityAboutBinding;
107

118
public class AboutActivity extends BaseBackActivity {
12-
@BindView(R.id.tv_about)
13-
TextView tvAbout;
9+
10+
private ActivityAboutBinding binding;
1411

1512
@Override
16-
protected int getContentViewId() {
17-
return R.layout.activity_about;
13+
protected void onCreate(android.os.Bundle savedInstanceState) {
14+
super.onCreate(savedInstanceState);
15+
16+
binding = ActivityAboutBinding.inflate(getLayoutInflater());
17+
setContentView(binding.getRoot());
18+
19+
initToolbar();
20+
initViews();
1821
}
1922

20-
@Override
21-
protected void initViews() {
22-
super.initViews();
23-
tvAbout.setMovementMethod(LinkMovementMethod.getInstance());
23+
private void initViews() {
24+
binding.tvAbout.setMovementMethod(LinkMovementMethod.getInstance());
2425
}
2526
}

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

Lines changed: 21 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.blogspot.e_kanivets.moneytracker.activity
22

3+
import android.os.Bundle
34
import android.view.View
45
import android.widget.AdapterView
56
import android.widget.ArrayAdapter
@@ -11,13 +12,13 @@ import com.blogspot.e_kanivets.moneytracker.controller.CurrencyController
1112
import com.blogspot.e_kanivets.moneytracker.controller.FormatController
1213
import com.blogspot.e_kanivets.moneytracker.controller.data.ExchangeRateController
1314
import com.blogspot.e_kanivets.moneytracker.controller.data.RecordController
15+
import com.blogspot.e_kanivets.moneytracker.databinding.ActivityReportBinding
1416
import com.blogspot.e_kanivets.moneytracker.entity.Period
1517
import com.blogspot.e_kanivets.moneytracker.entity.RecordReportItem
1618
import com.blogspot.e_kanivets.moneytracker.entity.data.Record
1719
import com.blogspot.e_kanivets.moneytracker.report.ReportMaker
1820
import com.blogspot.e_kanivets.moneytracker.report.record.IRecordReport
1921
import com.blogspot.e_kanivets.moneytracker.ui.presenter.ShortSummaryPresenter
20-
import kotlinx.android.synthetic.main.activity_report.*
2122
import java.util.*
2223
import javax.inject.Inject
2324

@@ -37,10 +38,20 @@ class ReportActivity : BaseBackActivity() {
3738

3839
private lateinit var shortSummaryPresenter: ShortSummaryPresenter
3940

40-
override fun getContentViewId() = R.layout.activity_report
41+
private lateinit var binding: ActivityReportBinding
4142

42-
override fun initData(): Boolean {
43-
super.initData()
43+
override fun onCreate(savedInstanceState: Bundle?) {
44+
super.onCreate(savedInstanceState)
45+
46+
binding = ActivityReportBinding.inflate(layoutInflater)
47+
setContentView(binding.root)
48+
49+
initData()
50+
initToolbar()
51+
initViews()
52+
}
53+
54+
private fun initData(): Boolean {
4455
appComponent.inject(this)
4556

4657
period = intent.getParcelableExtra(KEY_PERIOD)
@@ -54,13 +65,11 @@ class ReportActivity : BaseBackActivity() {
5465
return true
5566
}
5667

57-
override fun initViews() {
58-
super.initViews()
59-
68+
private fun initViews() {
6069
initSpinnerCurrency()
6170

6271
adapter.setSummaryView(shortSummaryPresenter.create(false, null))
63-
recyclerView.adapter = adapter
72+
binding.recyclerView.adapter = adapter
6473
}
6574

6675
private fun update(currency: String) {
@@ -74,17 +83,17 @@ class ReportActivity : BaseBackActivity() {
7483
private fun initSpinnerCurrency() {
7584
val currencyList = currencyController.readAll()
7685

77-
spinnerCurrency.adapter = ArrayAdapter(this, R.layout.view_spinner_item, currencyList)
78-
spinnerCurrency.onItemSelectedListener = object : AdapterView.OnItemSelectedListener {
86+
binding.spinnerCurrency.adapter = ArrayAdapter(this, R.layout.view_spinner_item, currencyList)
87+
binding.spinnerCurrency.onItemSelectedListener = object : AdapterView.OnItemSelectedListener {
7988
override fun onItemSelected(p0: AdapterView<*>?, p1: View?, p2: Int, p3: Long) =
80-
update(spinnerCurrency.selectedItem.toString())
89+
update(binding.spinnerCurrency.selectedItem.toString())
8190

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

8594
val currency = currencyController.readDefaultCurrency()
8695

87-
spinnerCurrency.setSelection(currencyList.indexOf(currency))
96+
binding.spinnerCurrency.setSelection(currencyList.indexOf(currency))
8897
}
8998

9099
class RecordReportConverter {

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

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66
import android.preference.Preference;
77
import android.preference.PreferenceFragment;
88

9+
import androidx.annotation.Nullable;
10+
911
import com.blogspot.e_kanivets.moneytracker.BuildConfig;
1012
import com.blogspot.e_kanivets.moneytracker.MtApp;
1113
import com.blogspot.e_kanivets.moneytracker.R;
@@ -14,6 +16,7 @@
1416
import com.blogspot.e_kanivets.moneytracker.controller.PreferenceController;
1517
import com.blogspot.e_kanivets.moneytracker.controller.data.AccountController;
1618
import com.blogspot.e_kanivets.moneytracker.controller.CurrencyController;
19+
import com.blogspot.e_kanivets.moneytracker.databinding.ActivitySettingsBinding;
1720
import com.blogspot.e_kanivets.moneytracker.entity.data.Account;
1821

1922
import java.util.ArrayList;
@@ -24,15 +27,22 @@
2427
public class SettingsActivity extends BaseBackActivity {
2528
@SuppressWarnings("unused") private static final String TAG = "SettingsActivity";
2629

27-
@Override protected int getContentViewId() {
28-
return R.layout.activity_settings;
29-
}
30+
private ActivitySettingsBinding binding;
31+
32+
@Override
33+
protected void onCreate(@Nullable Bundle savedInstanceState) {
34+
super.onCreate(savedInstanceState);
3035

31-
@Override protected void initViews() {
32-
super.initViews();
36+
binding = ActivitySettingsBinding.inflate(getLayoutInflater());
37+
setContentView(binding.getRoot());
38+
39+
initToolbar();
40+
initViews();
41+
}
3342

43+
private void initViews() {
3444
// Display the fragment as the main content.
35-
getFragmentManager().beginTransaction().replace(R.id.contentView, new SettingsFragment()).commit();
45+
getFragmentManager().beginTransaction().replace(binding.contentView.getId(), new SettingsFragment()).commit();
3646
}
3747

3848
public static class SettingsFragment extends PreferenceFragment {

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

Lines changed: 23 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,26 @@
11
package com.blogspot.e_kanivets.moneytracker.activity.account;
22

33
import android.content.Intent;
4+
5+
import androidx.annotation.Nullable;
46
import androidx.appcompat.app.AppCompatActivity;
7+
8+
import android.os.Bundle;
59
import android.view.Menu;
610
import android.view.MenuItem;
7-
import android.widget.ListView;
811

912
import com.blogspot.e_kanivets.moneytracker.R;
1013
import com.blogspot.e_kanivets.moneytracker.activity.account.edit.EditAccountActivity;
1114
import com.blogspot.e_kanivets.moneytracker.activity.base.BaseBackActivity;
1215
import com.blogspot.e_kanivets.moneytracker.adapter.AccountAdapter;
1316
import com.blogspot.e_kanivets.moneytracker.controller.data.AccountController;
17+
import com.blogspot.e_kanivets.moneytracker.databinding.ActivityAccountsBinding;
1418
import com.blogspot.e_kanivets.moneytracker.entity.data.Account;
1519
import com.blogspot.e_kanivets.moneytracker.ui.presenter.AccountsSummaryPresenter;
1620
import com.blogspot.e_kanivets.moneytracker.util.CrashlyticsProxy;
1721

1822
import javax.inject.Inject;
1923

20-
import butterknife.BindView;
21-
import butterknife.OnClick;
22-
import butterknife.OnItemClick;
23-
2424
public class AccountsActivity extends BaseBackActivity {
2525
@SuppressWarnings("unused")
2626
private static final String TAG = "AccountsActivity";
@@ -34,29 +34,32 @@ public class AccountsActivity extends BaseBackActivity {
3434

3535
private AccountsSummaryPresenter summaryPresenter;
3636

37-
@BindView(R.id.listView)
38-
ListView listView;
37+
private ActivityAccountsBinding binding;
3938

4039
@Override
41-
protected int getContentViewId() {
42-
return R.layout.activity_accounts;
40+
protected void onCreate(@Nullable Bundle savedInstanceState) {
41+
super.onCreate(savedInstanceState);
42+
43+
binding = ActivityAccountsBinding.inflate(getLayoutInflater());
44+
setContentView(binding.getRoot());
45+
46+
initData();
47+
initToolbar();
48+
initViews();
4349
}
4450

45-
@Override
46-
protected boolean initData() {
47-
boolean result = super.initData();
51+
private boolean initData() {
4852
getAppComponent().inject(AccountsActivity.this);
4953
summaryPresenter = new AccountsSummaryPresenter(AccountsActivity.this);
50-
return result;
54+
return true;
5155
}
5256

53-
@Override
54-
protected void initViews() {
55-
super.initViews();
56-
57-
listView.addHeaderView(summaryPresenter.create());
57+
private void initViews() {
58+
binding.listView.addHeaderView(summaryPresenter.create());
59+
binding.listView.setOnItemClickListener((adapterView, view, i, l) -> onAccountClick(i));
60+
binding.btnAddAccount.setOnClickListener(view -> addAccount());
5861

59-
registerForContextMenu(listView);
62+
registerForContextMenu(binding.listView);
6063
update();
6164
}
6265

@@ -75,7 +78,6 @@ public boolean onOptionsItemSelected(MenuItem item) {
7578
return super.onOptionsItemSelected(item);
7679
}
7780

78-
@OnItemClick(R.id.listView)
7981
public void onAccountClick(int position) {
8082
Account account = accountController.readAll().get(position - 1);
8183
startActivityForResult(EditAccountActivity.Companion.newIntent(this, account), REQUEST_EDIT_ACCOUNT);
@@ -86,7 +88,6 @@ public void makeTransfer() {
8688
startActivityForResult(new Intent(AccountsActivity.this, TransferActivity.class), REQUEST_TRANSFER);
8789
}
8890

89-
@OnClick(R.id.btn_add_account)
9091
public void addAccount() {
9192
CrashlyticsProxy.get().logButton("Add Account");
9293
Intent intent = new Intent(AccountsActivity.this, AddAccountActivity.class);
@@ -117,7 +118,7 @@ public void onActivityResult(int requestCode, int resultCode, Intent data) {
117118
}
118119

119120
private void update() {
120-
listView.setAdapter(new AccountAdapter(AccountsActivity.this, accountController.readAll()));
121+
binding.listView.setAdapter(new AccountAdapter(AccountsActivity.this, accountController.readAll()));
121122
summaryPresenter.update();
122123
}
123124
}

0 commit comments

Comments
 (0)