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

Commit 5387c6c

Browse files
author
Evgenii
committed
Merge pull request #55 from evgenii-kanivets/dagger
Dagger 2
2 parents 27313ba + a9275eb commit 5387c6c

File tree

16 files changed

+334
-101
lines changed

16 files changed

+334
-101
lines changed

app/src/androidTest/java/com/blogspot/e_kanivets/moneytracker/repo/RecordRepoTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ public void testContentValues() throws Exception {
4747
expected.put(DbHelper.TYPE_COLUMN, Record.TYPE_EXPENSE);
4848
expected.put(DbHelper.TITLE_COLUMN, "title");
4949
expected.put(DbHelper.CATEGORY_ID_COLUMN, 1L);
50-
expected.put(DbHelper.PRICE_COLUMN, 100);
50+
expected.put(DbHelper.PRICE_COLUMN, 100.0);
5151
expected.put(DbHelper.ACCOUNT_ID_COLUMN, 1L);
5252
expected.put(DbHelper.CURRENCY_COLUMN, "NON");
5353

app/src/main/java/com/blogspot/e_kanivets/moneytracker/MtApp.java

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,11 @@
22

33
import android.app.Application;
44

5+
import com.blogspot.e_kanivets.moneytracker.di.AppComponent;
6+
import com.blogspot.e_kanivets.moneytracker.di.DaggerAppComponent;
7+
import com.blogspot.e_kanivets.moneytracker.di.module.ControllerModule;
8+
import com.blogspot.e_kanivets.moneytracker.di.module.RepoModule;
9+
510
/**
611
* Custom application implementation.
712
* Created on 29/08/14.
@@ -16,10 +21,24 @@ public static MtApp get() {
1621
return mtApp;
1722
}
1823

24+
private AppComponent component;
25+
1926
@Override
2027
public void onCreate() {
2128
super.onCreate();
2229

2330
mtApp = this;
31+
component = buildComponent();
32+
}
33+
34+
public AppComponent getAppComponent() {
35+
return component;
36+
}
37+
38+
private AppComponent buildComponent() {
39+
return DaggerAppComponent.builder()
40+
.repoModule(new RepoModule(get()))
41+
.controllerModule(new ControllerModule())
42+
.build();
2443
}
2544
}

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

Lines changed: 14 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -2,45 +2,42 @@
22

33
import android.os.Environment;
44

5-
import com.blogspot.e_kanivets.moneytracker.DbHelper;
5+
import com.blogspot.e_kanivets.moneytracker.MtApp;
66
import com.blogspot.e_kanivets.moneytracker.R;
77
import com.blogspot.e_kanivets.moneytracker.activity.base.BaseBackActivity;
8-
import com.blogspot.e_kanivets.moneytracker.controller.AccountController;
9-
import com.blogspot.e_kanivets.moneytracker.controller.CategoryController;
108
import com.blogspot.e_kanivets.moneytracker.controller.RecordController;
11-
import com.blogspot.e_kanivets.moneytracker.entity.Category;
12-
import com.blogspot.e_kanivets.moneytracker.entity.Record;
13-
import com.blogspot.e_kanivets.moneytracker.repo.AccountRepo;
14-
import com.blogspot.e_kanivets.moneytracker.repo.CategoryRepo;
15-
import com.blogspot.e_kanivets.moneytracker.repo.RecordRepo;
16-
import com.blogspot.e_kanivets.moneytracker.repo.base.IRepo;
179
import com.blogspot.e_kanivets.moneytracker.util.Constants;
1810

1911
import java.io.File;
2012
import java.io.FileNotFoundException;
2113
import java.io.PrintWriter;
2214
import java.util.List;
2315

16+
import javax.inject.Inject;
17+
2418
import butterknife.OnClick;
2519

2620
public class ExportActivity extends BaseBackActivity {
21+
@SuppressWarnings("unused")
2722
private static final String TAG = "ExportActivity";
2823

24+
@Inject
25+
RecordController recordController;
26+
2927
@Override
3028
protected int getContentViewId() {
3129
return R.layout.activity_export;
3230
}
3331

32+
@Override
33+
protected boolean initData() {
34+
boolean result = super.initData();
35+
MtApp.get().getAppComponent().inject(ExportActivity.this);
36+
return result;
37+
}
38+
3439
@OnClick(R.id.btn_export)
3540
public void exportRecords() {
36-
DbHelper dbHelper = new DbHelper(ExportActivity.this);
37-
IRepo<Category> categoryRepo = new CategoryRepo(dbHelper);
38-
CategoryController categoryController = new CategoryController(categoryRepo);
39-
AccountController accountController = new AccountController(new AccountRepo(dbHelper));
40-
IRepo<Record> recordRepo = new RecordRepo(dbHelper);
41-
42-
RecordController recordController = new RecordController(recordRepo, categoryController, accountController);
43-
4441
List<String> records = recordController.getRecordsForExport(0, Long.MAX_VALUE);
4542

4643
File outFile = new File(Environment.getExternalStorageDirectory(), Constants.DEFAULT_EXPORT_FILE_NAME);

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

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import android.support.v7.app.AlertDialog;
55
import android.widget.ExpandableListView;
66

7+
import com.blogspot.e_kanivets.moneytracker.MtApp;
78
import com.blogspot.e_kanivets.moneytracker.R;
89
import com.blogspot.e_kanivets.moneytracker.activity.base.BaseBackActivity;
910
import com.blogspot.e_kanivets.moneytracker.adapter.ExpandableListReportAdapter;
@@ -13,15 +14,15 @@
1314
import com.blogspot.e_kanivets.moneytracker.entity.Account;
1415
import com.blogspot.e_kanivets.moneytracker.model.Period;
1516
import com.blogspot.e_kanivets.moneytracker.entity.Record;
16-
import com.blogspot.e_kanivets.moneytracker.repo.AccountRepo;
17-
import com.blogspot.e_kanivets.moneytracker.repo.ExchangeRateRepo;
1817
import com.blogspot.e_kanivets.moneytracker.report.ReportConverter;
1918
import com.blogspot.e_kanivets.moneytracker.report.ReportMaker;
2019
import com.blogspot.e_kanivets.moneytracker.report.base.IReport;
2120
import com.blogspot.e_kanivets.moneytracker.ui.ShortSummaryPresenter;
2221

2322
import java.util.List;
2423

24+
import javax.inject.Inject;
25+
2526
import butterknife.Bind;
2627

2728
public class ReportActivity extends BaseBackActivity {
@@ -31,9 +32,15 @@ public class ReportActivity extends BaseBackActivity {
3132
public static final String KEY_PERIOD = "key_period";
3233
public static final String KEY_RECORD_LIST = "key_record_list";
3334

35+
@Inject
36+
ExchangeRateController rateController;
37+
@Inject
38+
AccountController accountController;
39+
40+
private IReport report;
41+
3442
@Bind(R.id.exp_list_view)
3543
ExpandableListView expandableListView;
36-
private IReport report;
3744

3845
@Override
3946
protected int getContentViewId() {
@@ -50,9 +57,7 @@ protected boolean initData() {
5057
Period period = getIntent().getParcelableExtra(KEY_PERIOD);
5158
if (period == null) return false;
5259

53-
DbHelper dbHelper = new DbHelper(ReportActivity.this);
54-
AccountController accountController = new AccountController(new AccountRepo(dbHelper));
55-
ExchangeRateController rateController = new ExchangeRateController(new ExchangeRateRepo(dbHelper));
60+
MtApp.get().getAppComponent().inject(ReportActivity.this);
5661

5762
String currency = DbHelper.DEFAULT_ACCOUNT_CURRENCY;
5863
Account defaultAccount = accountController.readDefaultAccount();
@@ -92,9 +97,7 @@ private void showExchangeRatesNeededDialog(String currency, List<String> ratesNe
9297
}
9398

9499
builder.setMessage(sb.toString());
95-
96100
builder.setPositiveButton(android.R.string.ok, null);
97-
98101
builder.setOnDismissListener(new DialogInterface.OnDismissListener() {
99102
@Override
100103
public void onDismiss(DialogInterface dialog) {

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

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

8-
import com.blogspot.e_kanivets.moneytracker.DbHelper;
8+
import com.blogspot.e_kanivets.moneytracker.MtApp;
99
import com.blogspot.e_kanivets.moneytracker.R;
1010
import com.blogspot.e_kanivets.moneytracker.activity.base.BaseBackActivity;
1111
import com.blogspot.e_kanivets.moneytracker.controller.AccountController;
1212
import com.blogspot.e_kanivets.moneytracker.entity.Account;
13-
import com.blogspot.e_kanivets.moneytracker.repo.AccountRepo;
1413

1514
import java.util.ArrayList;
1615
import java.util.List;
1716

17+
import javax.inject.Inject;
18+
1819
public class SettingsActivity extends BaseBackActivity {
1920
@SuppressWarnings("unused")
2021
private static final String TAG = "SettingsActivity";
@@ -35,14 +36,14 @@ protected void initViews() {
3536
}
3637

3738
public static class SettingsFragment extends PreferenceFragment {
38-
private AccountController accountController;
39+
@Inject
40+
AccountController accountController;
3941

4042
@Override
4143
public void onCreate(Bundle savedInstanceState) {
4244
super.onCreate(savedInstanceState);
4345

44-
DbHelper dbHelper = new DbHelper(getActivity());
45-
accountController = new AccountController(new AccountRepo(dbHelper));
46+
MtApp.get().getAppComponent().inject(SettingsFragment.this);
4647

4748
// Load the preferences from an XML resource
4849
addPreferencesFromResource(R.xml.preferences);

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

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,14 +9,15 @@
99
import android.widget.AdapterView;
1010
import android.widget.ListView;
1111

12-
import com.blogspot.e_kanivets.moneytracker.DbHelper;
12+
import com.blogspot.e_kanivets.moneytracker.MtApp;
1313
import com.blogspot.e_kanivets.moneytracker.R;
1414
import com.blogspot.e_kanivets.moneytracker.activity.base.BaseBackActivity;
1515
import com.blogspot.e_kanivets.moneytracker.adapter.AccountAdapter;
1616
import com.blogspot.e_kanivets.moneytracker.controller.AccountController;
17-
import com.blogspot.e_kanivets.moneytracker.repo.AccountRepo;
1817
import com.blogspot.e_kanivets.moneytracker.ui.AccountsSummaryPresenter;
1918

19+
import javax.inject.Inject;
20+
2021
import butterknife.Bind;
2122
import butterknife.OnClick;
2223

@@ -27,7 +28,9 @@ public class AccountsActivity extends BaseBackActivity {
2728
private static final int REQUEST_ADD_ACCOUNT = 1;
2829
private static final int REQUEST_TRANSFER = 2;
2930

30-
private AccountController accountController;
31+
@Inject
32+
AccountController accountController;
33+
3134
private AccountsSummaryPresenter summaryPresenter;
3235

3336
@Bind(R.id.list_view)
@@ -40,10 +43,10 @@ protected int getContentViewId() {
4043

4144
@Override
4245
protected boolean initData() {
43-
DbHelper dbHelper = new DbHelper(AccountsActivity.this);
44-
accountController = new AccountController(new AccountRepo(dbHelper));
46+
boolean result = super.initData();
47+
MtApp.get().getAppComponent().inject(AccountsActivity.this);
4548
summaryPresenter = new AccountsSummaryPresenter(AccountsActivity.this);
46-
return super.initData();
49+
return result;
4750
}
4851

4952
@Override

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

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,22 +6,26 @@
66
import android.widget.ArrayAdapter;
77
import android.widget.EditText;
88

9+
import com.blogspot.e_kanivets.moneytracker.MtApp;
910
import com.blogspot.e_kanivets.moneytracker.R;
10-
import com.blogspot.e_kanivets.moneytracker.DbHelper;
1111
import com.blogspot.e_kanivets.moneytracker.activity.base.BaseBackActivity;
1212
import com.blogspot.e_kanivets.moneytracker.controller.AccountController;
1313
import com.blogspot.e_kanivets.moneytracker.entity.Account;
14-
import com.blogspot.e_kanivets.moneytracker.repo.AccountRepo;
1514
import com.blogspot.e_kanivets.moneytracker.util.CurrencyProvider;
1615

1716
import java.util.ArrayList;
1817

18+
import javax.inject.Inject;
19+
1920
import butterknife.Bind;
2021

2122
public class AddAccountActivity extends BaseBackActivity {
2223
@SuppressWarnings("unused")
2324
private static final String TAG = "AddAccountActivity";
2425

26+
@Inject
27+
AccountController accountController;
28+
2529
@Bind(R.id.et_title)
2630
EditText etTitle;
2731
@Bind(R.id.et_init_sum)
@@ -34,6 +38,13 @@ protected int getContentViewId() {
3438
return R.layout.activity_add_account;
3539
}
3640

41+
@Override
42+
protected boolean initData() {
43+
boolean result = super.initData();
44+
MtApp.get().getAppComponent().inject(AddAccountActivity.this);
45+
return result;
46+
}
47+
3748
@Override
3849
protected void initViews() {
3950
super.initViews();
@@ -71,6 +82,6 @@ private void addAccount() {
7182

7283
Account account = new Account(title, initSum, currency);
7384

74-
new AccountController(new AccountRepo(new DbHelper(AddAccountActivity.this))).create(account);
85+
accountController.create(account);
7586
}
7687
}

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

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -6,26 +6,29 @@
66
import android.widget.ArrayAdapter;
77
import android.widget.EditText;
88

9+
import com.blogspot.e_kanivets.moneytracker.MtApp;
910
import com.blogspot.e_kanivets.moneytracker.R;
1011
import com.blogspot.e_kanivets.moneytracker.activity.base.BaseBackActivity;
1112
import com.blogspot.e_kanivets.moneytracker.controller.AccountController;
12-
import com.blogspot.e_kanivets.moneytracker.DbHelper;
1313
import com.blogspot.e_kanivets.moneytracker.controller.TransferController;
1414
import com.blogspot.e_kanivets.moneytracker.entity.Account;
1515
import com.blogspot.e_kanivets.moneytracker.entity.Transfer;
16-
import com.blogspot.e_kanivets.moneytracker.repo.AccountRepo;
17-
import com.blogspot.e_kanivets.moneytracker.repo.TransferRepo;
1816

1917
import java.util.ArrayList;
2018
import java.util.List;
2119

20+
import javax.inject.Inject;
21+
2222
import butterknife.Bind;
2323

2424
public class TransferActivity extends BaseBackActivity {
2525
@SuppressWarnings("unused")
2626
private static final String TAG = "TransferActivity";
2727

28-
private TransferController transferController;
28+
@Inject
29+
TransferController transferController;
30+
@Inject
31+
AccountController accountController;
2932

3033
private List<Account> accountList;
3134

@@ -45,14 +48,10 @@ protected int getContentViewId() {
4548

4649
@Override
4750
protected boolean initData() {
48-
DbHelper dbHelper = new DbHelper(TransferActivity.this);
49-
50-
AccountController accountController = new AccountController(new AccountRepo(dbHelper));
51-
transferController = new TransferController(new TransferRepo(dbHelper), accountController);
52-
51+
boolean result = super.initData();
52+
MtApp.get().getAppComponent().inject(TransferActivity.this);
5353
accountList = accountController.readAll();
54-
55-
return super.initData();
54+
return result;
5655
}
5756

5857
@Override

0 commit comments

Comments
 (0)