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

Commit 36705b0

Browse files
author
Evgenii
authored
Merge pull request #128 from evgenii-kanivets/dev
[1d]. Validators. Crashlytics. Answers.
2 parents dee73c8 + ea34591 commit 36705b0

Some content is hidden

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

45 files changed

+1088
-277
lines changed

app/build.gradle

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,19 @@
1+
buildscript {
2+
repositories {
3+
maven { url 'https://maven.fabric.io/public' }
4+
}
5+
6+
dependencies {
7+
classpath 'io.fabric.tools:gradle:1.+'
8+
}
9+
}
110
apply plugin: 'com.android.application'
11+
apply plugin: 'io.fabric'
12+
13+
repositories {
14+
maven { url 'https://maven.fabric.io/public' }
15+
}
16+
217
apply plugin: 'com.neenbedankt.android-apt'
318

419
android {
@@ -64,4 +79,7 @@ dependencies {
6479
androidTestCompile 'com.crittercism.dexmaker:dexmaker:1.4'
6580
androidTestCompile 'com.crittercism.dexmaker:dexmaker-dx:1.4'
6681
androidTestCompile 'com.crittercism.dexmaker:dexmaker-mockito:1.4'
82+
compile('com.crashlytics.sdk.android:crashlytics:2.6.5@aar') {
83+
transitive = true;
84+
}
6785
}

app/fabric.properties

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
#Contains API Secret used to validate your application. Commit to internal source control; avoid making secret public.
2+
#Wed Dec 14 10:33:29 EET 2016
3+
apiSecret=82d758bae86a87ef822afbfc6f3c016c28c0b43f1d46862ebf37405141fa3414

app/src/androidTest/java/com/blogspot/e_kanivets/moneytracker/repo/data/AccountRepoTest.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,9 +44,9 @@ public void testContentValues() throws Exception {
4444

4545
ContentValues expected = new ContentValues();
4646
expected.put(DbHelper.TITLE_COLUMN, "title1");
47-
expected.put(DbHelper.CUR_SUM_COLUMN, 100);
47+
expected.put(DbHelper.CUR_SUM_COLUMN, 100L);
4848
expected.put(DbHelper.CURRENCY_COLUMN, "NON");
49-
expected.put(DbHelper.DECIMALS_COLUMN, 30);
49+
expected.put(DbHelper.DECIMALS_COLUMN, 30L);
5050

5151
ContentValues actual = repo.contentValues(account);
5252

@@ -67,7 +67,7 @@ public void testGetListFromCursor() throws Exception {
6767

6868
Mockito.when(mockCursor.getLong(1)).thenReturn(1L);
6969
Mockito.when(mockCursor.getString(2)).thenReturn("title");
70-
Mockito.when(mockCursor.getInt(3)).thenReturn(100);
70+
Mockito.when(mockCursor.getLong(3)).thenReturn(100L);
7171
Mockito.when(mockCursor.getString(4)).thenReturn("NON");
7272

7373
List<Account> expected = new ArrayList<>();

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

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -47,10 +47,10 @@ 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, 100L);
5151
expected.put(DbHelper.ACCOUNT_ID_COLUMN, 1L);
5252
expected.put(DbHelper.CURRENCY_COLUMN, "NON");
53-
expected.put(DbHelper.DECIMALS_COLUMN, 50);
53+
expected.put(DbHelper.DECIMALS_COLUMN, 50L);
5454

5555
ContentValues actual = repo.contentValues(record);
5656

@@ -79,10 +79,10 @@ public void testGetListFromCursor() throws Exception {
7979
Mockito.when(mockCursor.getInt(3)).thenReturn(Record.TYPE_EXPENSE);
8080
Mockito.when(mockCursor.getString(4)).thenReturn("title");
8181
Mockito.when(mockCursor.getLong(5)).thenReturn(1L);
82-
Mockito.when(mockCursor.getInt(6)).thenReturn(100);
82+
Mockito.when(mockCursor.getLong(6)).thenReturn(100L);
8383
Mockito.when(mockCursor.getLong(7)).thenReturn(1L);
8484
Mockito.when(mockCursor.getString(8)).thenReturn("NON");
85-
Mockito.when(mockCursor.getInt(9)).thenReturn(50);
85+
Mockito.when(mockCursor.getLong(9)).thenReturn(50L);
8686

8787
List<Record> expected = new ArrayList<>();
8888
expected.add(new Record(1, 1, Record.TYPE_EXPENSE, "title", 1, 100, 1, "NON", 50));

app/src/androidTest/java/com/blogspot/e_kanivets/moneytracker/repo/data/TransferRepoTest.java

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -46,10 +46,10 @@ public void testContentValues() throws Exception {
4646
expected.put(DbHelper.TIME_COLUMN, 1L);
4747
expected.put(DbHelper.FROM_ACCOUNT_ID_COLUMN, 1L);
4848
expected.put(DbHelper.TO_ACCOUNT_ID_COLUMN, 2L);
49-
expected.put(DbHelper.FROM_AMOUNT_COLUMN, 100);
50-
expected.put(DbHelper.TO_AMOUNT_COLUMN, 200);
51-
expected.put(DbHelper.DECIMALS_FROM_COLUMN, 45);
52-
expected.put(DbHelper.DECIMALS_TO_COLUMN, 50);
49+
expected.put(DbHelper.FROM_AMOUNT_COLUMN, 100L);
50+
expected.put(DbHelper.TO_AMOUNT_COLUMN, 200L);
51+
expected.put(DbHelper.DECIMALS_FROM_COLUMN, 45L);
52+
expected.put(DbHelper.DECIMALS_TO_COLUMN, 50L);
5353

5454
ContentValues actual = repo.contentValues(transfer);
5555

@@ -76,10 +76,10 @@ public void testGetListFromCursor() throws Exception {
7676
Mockito.when(mockCursor.getLong(2)).thenReturn(1L);
7777
Mockito.when(mockCursor.getLong(3)).thenReturn(1L);
7878
Mockito.when(mockCursor.getLong(4)).thenReturn(2L);
79-
Mockito.when(mockCursor.getInt(5)).thenReturn(100);
80-
Mockito.when(mockCursor.getInt(6)).thenReturn(200);
81-
Mockito.when(mockCursor.getInt(7)).thenReturn(45);
82-
Mockito.when(mockCursor.getInt(8)).thenReturn(50);
79+
Mockito.when(mockCursor.getLong(5)).thenReturn(100L);
80+
Mockito.when(mockCursor.getLong(6)).thenReturn(200L);
81+
Mockito.when(mockCursor.getLong(7)).thenReturn(45L);
82+
Mockito.when(mockCursor.getLong(8)).thenReturn(50L);
8383

8484
List<Transfer> expected = new ArrayList<>();
8585
expected.add(new Transfer(1, 1, 1, 2, 100, 200, 45, 50));

app/src/main/AndroidManifest.xml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,9 @@
111111
android:name="android.support.FILE_PROVIDER_PATHS"
112112
android:resource="@xml/file_paths" />
113113
</provider>
114+
<meta-data
115+
android:name="io.fabric.ApiKey"
116+
android:value="955ae4864ae2a833aeda5b62631512524288adf8" />
114117
</application>
115118

116119
</manifest>

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

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77
import com.blogspot.e_kanivets.moneytracker.di.module.ControllerModule;
88
import com.blogspot.e_kanivets.moneytracker.di.module.repo.CachedRepoModule;
99

10+
import com.crashlytics.android.Crashlytics;
11+
import io.fabric.sdk.android.Fabric;
1012
import timber.log.Timber;
1113

1214
/**
@@ -27,6 +29,9 @@ public static MtApp get() {
2729
@Override
2830
public void onCreate() {
2931
super.onCreate();
32+
if (!BuildConfig.DEBUG) {
33+
Fabric.with(this, new Crashlytics());
34+
}
3035

3136
mtApp = this;
3237
buildAppComponent();

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ protected int getContentViewId() {
5151
return R.layout.activity_report;
5252
}
5353

54+
@SuppressWarnings("RedundantIfStatement")
5455
@Override
5556
protected boolean initData() {
5657
super.initData();

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

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@
1414
import com.blogspot.e_kanivets.moneytracker.adapter.AccountAdapter;
1515
import com.blogspot.e_kanivets.moneytracker.controller.data.AccountController;
1616
import com.blogspot.e_kanivets.moneytracker.ui.presenter.AccountsSummaryPresenter;
17+
import com.crashlytics.android.answers.Answers;
18+
import com.crashlytics.android.answers.ContentViewEvent;
1719

1820
import javax.inject.Inject;
1921

@@ -68,8 +70,7 @@ public boolean onCreateOptionsMenu(Menu menu) {
6870
public boolean onOptionsItemSelected(MenuItem item) {
6971
switch (item.getItemId()) {
7072
case R.id.action_transfer:
71-
startActivityForResult(new Intent(AccountsActivity.this, TransferActivity.class),
72-
REQUEST_TRANSFER);
73+
makeTransfer();
7374
return true;
7475

7576
default:
@@ -99,8 +100,23 @@ public boolean onContextItemSelected(MenuItem item) {
99100
}
100101
}
101102

103+
public void makeTransfer() {
104+
// Answers event
105+
Answers.getInstance().logContentView(new ContentViewEvent()
106+
.putContentName("Add Transfer")
107+
.putContentType("Button"));
108+
109+
startActivityForResult(new Intent(AccountsActivity.this, TransferActivity.class),
110+
REQUEST_TRANSFER);
111+
}
112+
102113
@OnClick(R.id.btn_add_account)
103114
public void addAccount() {
115+
// Answers event
116+
Answers.getInstance().logContentView(new ContentViewEvent()
117+
.putContentName("Add Account")
118+
.putContentType("Button"));
119+
104120
Intent intent = new Intent(AccountsActivity.this, AddAccountActivity.class);
105121
startActivityForResult(intent, REQUEST_ADD_ACCOUNT);
106122
}

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

Lines changed: 32 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,18 @@
33
import android.support.v7.widget.AppCompatSpinner;
44
import android.view.Menu;
55
import android.view.MenuItem;
6+
import android.view.View;
67
import android.widget.ArrayAdapter;
7-
import android.widget.EditText;
88

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.data.AccountController;
1212
import com.blogspot.e_kanivets.moneytracker.controller.CurrencyController;
1313
import com.blogspot.e_kanivets.moneytracker.entity.data.Account;
14+
import com.blogspot.e_kanivets.moneytracker.util.validator.AccountValidator;
15+
import com.blogspot.e_kanivets.moneytracker.util.validator.IValidator;
16+
import com.crashlytics.android.answers.Answers;
17+
import com.crashlytics.android.answers.ContentViewEvent;
1418

1519
import java.util.ArrayList;
1620

@@ -27,10 +31,10 @@ public class AddAccountActivity extends BaseBackActivity {
2731
@Inject
2832
CurrencyController currencyController;
2933

30-
@Bind(R.id.et_title)
31-
EditText etTitle;
32-
@Bind(R.id.et_init_sum)
33-
EditText etInitSum;
34+
private IValidator<Account> accountValidator;
35+
36+
@Bind(R.id.content)
37+
View contentView;
3438
@Bind(R.id.spinner)
3539
AppCompatSpinner spinner;
3640

@@ -50,46 +54,51 @@ protected boolean initData() {
5054
protected void initViews() {
5155
super.initViews();
5256

57+
accountValidator = new AccountValidator(AddAccountActivity.this, contentView);
5358
spinner.setAdapter(new ArrayAdapter<>(AddAccountActivity.this,
5459
R.layout.view_spinner_item,
5560
new ArrayList<>(currencyController.readAll())));
5661
}
5762

5863
@Override
5964
public boolean onCreateOptionsMenu(Menu menu) {
60-
getMenuInflater().inflate(R.menu.menu_add_record, menu);
65+
getMenuInflater().inflate(R.menu.menu_add_account, menu);
6166
return true;
6267
}
6368

6469
@Override
6570
public boolean onOptionsItemSelected(MenuItem item) {
6671
switch (item.getItemId()) {
6772
case R.id.action_done:
68-
if (addAccount()) {
69-
setResult(RESULT_OK);
70-
finish();
71-
} else showToast(R.string.wrong_number_text);
73+
tryAddAccount();
7274
return true;
7375

7476
default:
7577
return super.onOptionsItemSelected(item);
7678
}
7779
}
7880

79-
private boolean addAccount() {
80-
String title = etTitle.getText().toString().trim();
81-
82-
double initSum;
83-
try {
84-
initSum = Double.parseDouble(etInitSum.getText().toString().trim());
85-
} catch (NumberFormatException e) {
86-
e.printStackTrace();
87-
return false;
88-
}
81+
private void tryAddAccount() {
82+
// Answers event
83+
Answers.getInstance().logContentView(new ContentViewEvent()
84+
.putContentName("Done Account")
85+
.putContentType("Button"));
8986

90-
String currency = (String) spinner.getSelectedItem();
87+
if (addAccount()) {
88+
// Answers event
89+
Answers.getInstance().logContentView(new ContentViewEvent()
90+
.putContentName("Done Account")
91+
.putContentType("Event"));
9192

92-
Account account = new Account(title, initSum, currency);
93-
return accountController.create(account) != null;
93+
setResult(RESULT_OK);
94+
finish();
95+
}
96+
}
97+
98+
@SuppressWarnings("SimplifiableIfStatement")
99+
private boolean addAccount() {
100+
Account account = accountValidator.validate();
101+
if (account == null) return false;
102+
else return accountController.create(account) != null;
94103
}
95104
}

0 commit comments

Comments
 (0)