Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
46 commits
Select commit Hold shift + click to select a range
6e17f26
36 - Upgrade Gradle to 8.9
yev-kanivets Jan 9, 2025
b2e7229
36 - Upgrade Kotlin to 2.0.0
yev-kanivets Jan 11, 2025
0dd1b59
36 - Upgrade AGP to 8.7.3
yev-kanivets Jan 11, 2025
2d15c71
36 - Upgrade targetSskVersion to 34
yev-kanivets Jan 11, 2025
3764578
36 - Upgrade Dagger to 2.35.1
yev-kanivets Jan 11, 2025
2dba3c5
36 - Disable nonFinalResIds
yev-kanivets Jan 11, 2025
4b321c6
36 - Migrate AboutActivity to ViewBinding
yev-kanivets Jan 11, 2025
835a754
36 - Migrate AccountAdapter to ViewBinding
yev-kanivets Jan 11, 2025
00767e1
36 - Migrate AccountsActivity to ViewBinding
yev-kanivets Jan 11, 2025
ed78107
36 - Migrate AccountsSummaryPresenter to ViewBinding
yev-kanivets Jan 11, 2025
eee079e
36 - Migrate AccountValidator to ViewBinding
yev-kanivets Jan 11, 2025
278b734
36 - Migrate AddAccountActivity to ViewBinding
yev-kanivets Jan 11, 2025
357e674
36 - Migrate AddExchangeRateActivity to ViewBinding
yev-kanivets Jan 11, 2025
950be40
36 - Migrate AddRecordActivity to ViewBinding
yev-kanivets Jan 11, 2025
d102935
36 - Migrate AppRateDialog to ViewBinding
yev-kanivets Jan 11, 2025
7fb1233
36 - Migrate BackupActivity to ViewBinding
yev-kanivets Jan 11, 2025
5137606
36 - Migrate BackupAdapter to ViewBinding
yev-kanivets Jan 11, 2025
043c58e
36 - Remove generic initData() and initView() methods from BaseActivity
yev-kanivets Jan 11, 2025
9e5e3f3
36 - Simplify BaseBackActivity
yev-kanivets Jan 11, 2025
2c3d27f
36 - Migrate BaseDrawerActivity to ViewBinding
yev-kanivets Jan 11, 2025
5b002b6
36 - Migrate CategoryAutoCompleteAdapter to ViewBinding
yev-kanivets Jan 11, 2025
cf700f0
36 - Migrate ChangeDateDialog to ViewBinding
yev-kanivets Jan 11, 2025
4aec1d7
36 - Migrate ChartsActivity to ViewBinding
yev-kanivets Jan 11, 2025
d497ca6
36 - Migrate EditAccountActivity to ViewBinding
yev-kanivets Jan 11, 2025
d5511a5
36 - Migrate EditAccountValidator to ViewBinding
yev-kanivets Jan 11, 2025
687f3bf
36 - Migrate ExchangeRateAdapter to ViewBinding
yev-kanivets Jan 11, 2025
09628f7
36 - Migrate ExchangeRatePairValidator to ViewBinding
yev-kanivets Jan 11, 2025
e5e8404
36 - Migrate ExchangeRatesActivity to ViewBinding
yev-kanivets Jan 11, 2025
c20f923
36 - Migrate ImportExportActivity to ViewBinding
yev-kanivets Jan 11, 2025
ba14b94
36 - Migrate MainActivity to ViewBinding
yev-kanivets Jan 11, 2025
af29da2
36 - Migrate MonthSummaryAdapter to ViewBinding
yev-kanivets Jan 11, 2025
b9fc319
36 - Migrate RecordAdapter to ViewBinding
yev-kanivets Jan 11, 2025
7e39cb4
36 - Migrate RecordReportAdapter to ViewBinding
yev-kanivets Jan 11, 2025
eba9379
36 - Migrate RecordValidator to ViewBinding
yev-kanivets Jan 11, 2025
d11528e
36 - Migrate ReportActivity to ViewBinding
yev-kanivets Jan 11, 2025
486011d
36 - Migrate SettingsActivity to ViewBinding
yev-kanivets Jan 11, 2025
7fc3bac
36 - Migrate ShortSummaryPresenter to ViewBinding
yev-kanivets Jan 11, 2025
e138a1e
36 - Migrate TransferActivity to ViewBinding
yev-kanivets Jan 11, 2025
129a5cb
36 - Migrate TransferValidator to ViewBinding
yev-kanivets Jan 11, 2025
deea375
36 - Migrate SummaryFragment to ViewBinding
yev-kanivets Jan 11, 2025
20d8ee8
36 - Migrate AccountOperationsFragment to ViewBinding
yev-kanivets Jan 12, 2025
44f0b7b
36 - Migrate EditAccountFragment to ViewBinding
yev-kanivets Jan 12, 2025
e37ed9f
36 - Migrate GraphFragment to ViewBinding
yev-kanivets Jan 12, 2025
cde9963
36 - Remove BaseFragment
yev-kanivets Jan 12, 2025
b4bb7db
36 - Remove Kotlin extensions plugin and ButterKnife dependency
yev-kanivets Jan 12, 2025
d273853
Merge branch 'master' into 36-upgrade-deps
yev-kanivets Jan 12, 2025
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
34 changes: 17 additions & 17 deletions app/build.gradle
Original file line number Diff line number Diff line change
@@ -1,20 +1,21 @@
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'com.google.gms.google-services'
apply plugin: 'com.google.firebase.crashlytics'

android {
compileSdkVersion 33
buildToolsVersion '30.0.3'
namespace = "com.blogspot.e_kanivets.moneytracker"

compileSdkVersion 34
defaultConfig {
applicationId 'com.blogspot.e_kanivets.moneytracker'
minSdkVersion 21
targetSdkVersion 33
targetSdkVersion 34

versionCode 38
versionName '2.2.0'
}

signingConfigs {
releaseConfig {
storeFile file('mt_keystore.jks')
Expand All @@ -23,6 +24,7 @@ android {
keyPassword 'moneytracker'
}
}

buildTypes {
release {
debuggable false
Expand All @@ -47,29 +49,27 @@ android {
}
}

lintOptions {
checkReleaseBuilds false
lint {
abortOnError false
}
dexOptions {
preDexLibraries = false
}
productFlavors {
checkReleaseBuilds false
}

compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
sourceCompatibility JavaVersion.VERSION_21
targetCompatibility JavaVersion.VERSION_21
}

buildFeatures {
viewBinding true
buildConfig true
}
}

dependencies {
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
implementation 'androidx.appcompat:appcompat:1.3.1'
implementation 'com.google.android.material:material:1.4.0'
implementation 'com.jakewharton:butterknife:10.2.3' // View annotation bindings
annotationProcessor 'com.jakewharton:butterknife-compiler:10.2.3' // ButterKnife compiler
implementation 'com.google.dagger:dagger:2.35.1' // Dependency injection tool
implementation 'com.google.dagger:dagger:2.51.1' // Dependency injection tool
implementation 'com.github.PhilJay:MPAndroidChart:v2.2.4' // Charts
implementation 'com.jakewharton.timber:timber:4.7.1' // Advanced logging tool
implementation 'androidx.constraintlayout:constraintlayout:2.1.1'
Expand All @@ -80,7 +80,7 @@ dependencies {
androidTestImplementation 'com.crittercism.dexmaker:dexmaker:1.4'
androidTestImplementation 'com.crittercism.dexmaker:dexmaker-dx:1.4'
androidTestImplementation 'com.crittercism.dexmaker:dexmaker-mockito:1.4'
annotationProcessor 'com.google.dagger:dagger-compiler:2.35.1'
annotationProcessor 'com.google.dagger:dagger-compiler:2.51.1'
compileOnly 'org.glassfish:javax.annotation:10.0-b28'
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
implementation 'androidx.cardview:cardview:1.0.0'
Expand Down
Original file line number Diff line number Diff line change
@@ -1,25 +1,26 @@
package com.blogspot.e_kanivets.moneytracker.activity;

import android.text.method.LinkMovementMethod;
import android.widget.TextView;

import com.blogspot.e_kanivets.moneytracker.R;
import com.blogspot.e_kanivets.moneytracker.activity.base.BaseBackActivity;

import butterknife.BindView;
import com.blogspot.e_kanivets.moneytracker.databinding.ActivityAboutBinding;

public class AboutActivity extends BaseBackActivity {
@BindView(R.id.tv_about)
TextView tvAbout;

private ActivityAboutBinding binding;

@Override
protected int getContentViewId() {
return R.layout.activity_about;
protected void onCreate(android.os.Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

binding = ActivityAboutBinding.inflate(getLayoutInflater());
setContentView(binding.getRoot());

initToolbar();
initViews();
}

@Override
protected void initViews() {
super.initViews();
tvAbout.setMovementMethod(LinkMovementMethod.getInstance());
private void initViews() {
binding.tvAbout.setMovementMethod(LinkMovementMethod.getInstance());
}
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package com.blogspot.e_kanivets.moneytracker.activity

import android.os.Bundle
import android.view.View
import android.widget.AdapterView
import android.widget.ArrayAdapter
Expand All @@ -11,13 +12,13 @@ import com.blogspot.e_kanivets.moneytracker.controller.CurrencyController
import com.blogspot.e_kanivets.moneytracker.controller.FormatController
import com.blogspot.e_kanivets.moneytracker.controller.data.ExchangeRateController
import com.blogspot.e_kanivets.moneytracker.controller.data.RecordController
import com.blogspot.e_kanivets.moneytracker.databinding.ActivityReportBinding
import com.blogspot.e_kanivets.moneytracker.entity.Period
import com.blogspot.e_kanivets.moneytracker.entity.RecordReportItem
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.IRecordReport
import com.blogspot.e_kanivets.moneytracker.ui.presenter.ShortSummaryPresenter
import kotlinx.android.synthetic.main.activity_report.*
import java.util.*
import javax.inject.Inject

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

private lateinit var shortSummaryPresenter: ShortSummaryPresenter

override fun getContentViewId() = R.layout.activity_report
private lateinit var binding: ActivityReportBinding

override fun initData(): Boolean {
super.initData()
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)

binding = ActivityReportBinding.inflate(layoutInflater)
setContentView(binding.root)

initData()
initToolbar()
initViews()
}

private fun initData(): Boolean {
appComponent.inject(this)

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

override fun initViews() {
super.initViews()

private fun initViews() {
initSpinnerCurrency()

adapter.setSummaryView(shortSummaryPresenter.create(false, null))
recyclerView.adapter = adapter
binding.recyclerView.adapter = adapter
}

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

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

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

val currency = currencyController.readDefaultCurrency()

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

class RecordReportConverter {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@
import android.preference.Preference;
import android.preference.PreferenceFragment;

import androidx.annotation.Nullable;

import com.blogspot.e_kanivets.moneytracker.BuildConfig;
import com.blogspot.e_kanivets.moneytracker.MtApp;
import com.blogspot.e_kanivets.moneytracker.R;
Expand All @@ -14,6 +16,7 @@
import com.blogspot.e_kanivets.moneytracker.controller.PreferenceController;
import com.blogspot.e_kanivets.moneytracker.controller.data.AccountController;
import com.blogspot.e_kanivets.moneytracker.controller.CurrencyController;
import com.blogspot.e_kanivets.moneytracker.databinding.ActivitySettingsBinding;
import com.blogspot.e_kanivets.moneytracker.entity.data.Account;

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

@Override protected int getContentViewId() {
return R.layout.activity_settings;
}
private ActivitySettingsBinding binding;

@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

@Override protected void initViews() {
super.initViews();
binding = ActivitySettingsBinding.inflate(getLayoutInflater());
setContentView(binding.getRoot());

initToolbar();
initViews();
}

private void initViews() {
// Display the fragment as the main content.
getFragmentManager().beginTransaction().replace(R.id.contentView, new SettingsFragment()).commit();
getFragmentManager().beginTransaction().replace(binding.contentView.getId(), new SettingsFragment()).commit();
}

public static class SettingsFragment extends PreferenceFragment {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,26 +1,26 @@
package com.blogspot.e_kanivets.moneytracker.activity.account;

import android.content.Intent;

import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.ListView;

import com.blogspot.e_kanivets.moneytracker.R;
import com.blogspot.e_kanivets.moneytracker.activity.account.edit.EditAccountActivity;
import com.blogspot.e_kanivets.moneytracker.activity.base.BaseBackActivity;
import com.blogspot.e_kanivets.moneytracker.adapter.AccountAdapter;
import com.blogspot.e_kanivets.moneytracker.controller.data.AccountController;
import com.blogspot.e_kanivets.moneytracker.databinding.ActivityAccountsBinding;
import com.blogspot.e_kanivets.moneytracker.entity.data.Account;
import com.blogspot.e_kanivets.moneytracker.ui.presenter.AccountsSummaryPresenter;
import com.blogspot.e_kanivets.moneytracker.util.CrashlyticsProxy;

import javax.inject.Inject;

import butterknife.BindView;
import butterknife.OnClick;
import butterknife.OnItemClick;

public class AccountsActivity extends BaseBackActivity {
@SuppressWarnings("unused")
private static final String TAG = "AccountsActivity";
Expand All @@ -34,29 +34,32 @@ public class AccountsActivity extends BaseBackActivity {

private AccountsSummaryPresenter summaryPresenter;

@BindView(R.id.listView)
ListView listView;
private ActivityAccountsBinding binding;

@Override
protected int getContentViewId() {
return R.layout.activity_accounts;
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

binding = ActivityAccountsBinding.inflate(getLayoutInflater());
setContentView(binding.getRoot());

initData();
initToolbar();
initViews();
}

@Override
protected boolean initData() {
boolean result = super.initData();
private boolean initData() {
getAppComponent().inject(AccountsActivity.this);
summaryPresenter = new AccountsSummaryPresenter(AccountsActivity.this);
return result;
return true;
}

@Override
protected void initViews() {
super.initViews();

listView.addHeaderView(summaryPresenter.create());
private void initViews() {
binding.listView.addHeaderView(summaryPresenter.create());
binding.listView.setOnItemClickListener((adapterView, view, i, l) -> onAccountClick(i));
binding.btnAddAccount.setOnClickListener(view -> addAccount());

registerForContextMenu(listView);
registerForContextMenu(binding.listView);
update();
}

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

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

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

private void update() {
listView.setAdapter(new AccountAdapter(AccountsActivity.this, accountController.readAll()));
binding.listView.setAdapter(new AccountAdapter(AccountsActivity.this, accountController.readAll()));
summaryPresenter.update();
}
}
Loading