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

Commit 08bf208

Browse files
author
Evgenii Kanivets
committed
#124[1h]. Integrate Crashlytics and Answers.
1 parent 0013069 commit 08bf208

File tree

14 files changed

+309
-35
lines changed

14 files changed

+309
-35
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/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/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: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@
1313
import com.blogspot.e_kanivets.moneytracker.entity.data.Account;
1414
import com.blogspot.e_kanivets.moneytracker.util.validator.AccountValidator;
1515
import com.blogspot.e_kanivets.moneytracker.util.validator.IValidator;
16+
import com.crashlytics.android.answers.Answers;
17+
import com.crashlytics.android.answers.ContentViewEvent;
1618

1719
import java.util.ArrayList;
1820

@@ -68,17 +70,31 @@ public boolean onCreateOptionsMenu(Menu menu) {
6870
public boolean onOptionsItemSelected(MenuItem item) {
6971
switch (item.getItemId()) {
7072
case R.id.action_done:
71-
if (addAccount()) {
72-
setResult(RESULT_OK);
73-
finish();
74-
}
73+
tryAddAccount();
7574
return true;
7675

7776
default:
7877
return super.onOptionsItemSelected(item);
7978
}
8079
}
8180

81+
private void tryAddAccount() {
82+
// Answers event
83+
Answers.getInstance().logContentView(new ContentViewEvent()
84+
.putContentName("Done Account")
85+
.putContentType("Button"));
86+
87+
if (addAccount()) {
88+
// Answers event
89+
Answers.getInstance().logContentView(new ContentViewEvent()
90+
.putContentName("Done Account")
91+
.putContentType("Event"));
92+
93+
setResult(RESULT_OK);
94+
finish();
95+
}
96+
}
97+
8298
@SuppressWarnings("SimplifiableIfStatement")
8399
private boolean addAccount() {
84100
Account account = accountValidator.validate();

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

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@
1414
import com.blogspot.e_kanivets.moneytracker.entity.data.Transfer;
1515
import com.blogspot.e_kanivets.moneytracker.util.validator.IValidator;
1616
import com.blogspot.e_kanivets.moneytracker.util.validator.TransferValidator;
17+
import com.crashlytics.android.answers.Answers;
18+
import com.crashlytics.android.answers.ContentViewEvent;
1719

1820
import java.util.ArrayList;
1921
import java.util.List;
@@ -89,17 +91,31 @@ public boolean onCreateOptionsMenu(Menu menu) {
8991
public boolean onOptionsItemSelected(MenuItem item) {
9092
switch (item.getItemId()) {
9193
case R.id.action_done:
92-
if (doTransfer()) {
93-
setResult(RESULT_OK);
94-
finish();
95-
}
94+
tryTransfer();
9695
return true;
9796

9897
default:
9998
return super.onOptionsItemSelected(item);
10099
}
101100
}
102101

102+
private void tryTransfer() {
103+
// Answers event
104+
Answers.getInstance().logContentView(new ContentViewEvent()
105+
.putContentName("Done Transfer")
106+
.putContentType("Button"));
107+
108+
if (doTransfer()) {
109+
// Answers event
110+
Answers.getInstance().logContentView(new ContentViewEvent()
111+
.putContentName("Done Transfer")
112+
.putContentType("Event"));
113+
114+
setResult(RESULT_OK);
115+
finish();
116+
}
117+
}
118+
103119
@SuppressWarnings("SimplifiableIfStatement")
104120
private boolean doTransfer() {
105121
Transfer transfer = transferValidator.validate();

app/src/main/java/com/blogspot/e_kanivets/moneytracker/activity/base/BaseDrawerActivity.java

Lines changed: 67 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@
1515
import com.blogspot.e_kanivets.moneytracker.activity.SettingsActivity;
1616
import com.blogspot.e_kanivets.moneytracker.activity.account.AccountsActivity;
1717
import com.blogspot.e_kanivets.moneytracker.activity.exchange_rate.ExchangeRatesActivity;
18+
import com.crashlytics.android.answers.Answers;
19+
import com.crashlytics.android.answers.ContentViewEvent;
1820

1921
import butterknife.Bind;
2022

@@ -72,32 +74,27 @@ protected void initViews() {
7274
public boolean onNavigationItemSelected(MenuItem item) {
7375
switch (item.getItemId()) {
7476
case R.id.nav_accounts:
75-
startActivityForResult(new Intent(BaseDrawerActivity.this, AccountsActivity.class),
76-
REQUEST_ACCOUNTS);
77+
showAccounts();
7778
break;
7879

7980
case R.id.nav_rates:
80-
startActivityForResult(new Intent(BaseDrawerActivity.this, ExchangeRatesActivity.class),
81-
REQUEST_RATES);
81+
showRates();
8282
break;
8383

8484
case R.id.nav_charts:
85-
startActivity(new Intent(BaseDrawerActivity.this, ChartsActivity.class));
85+
showCharts();
8686
break;
8787

8888
case R.id.nav_backup:
89-
startActivityForResult(new Intent(BaseDrawerActivity.this, BackupActivity.class),
90-
REQUEST_BACKUP);
89+
showBackup();
9190
break;
9291

9392
case R.id.nav_import_export:
94-
startActivityForResult(new Intent(BaseDrawerActivity.this, ImportExportActivity.class),
95-
REQUEST_IMPORT_EXPORT);
93+
showImportExport();
9694
break;
9795

9896
case R.id.nav_settings:
99-
startActivityForResult(new Intent(BaseDrawerActivity.this, SettingsActivity.class),
100-
REQUEST_SETTINGS);
97+
showSettings();
10198
break;
10299

103100
default:
@@ -135,4 +132,63 @@ protected void onActivityResult(int requestCode, int resultCode, Intent data) {
135132
}
136133
}
137134
}
135+
136+
private void showAccounts() {
137+
// Answers event
138+
Answers.getInstance().logContentView(new ContentViewEvent()
139+
.putContentName("Show Accounts")
140+
.putContentType("Button"));
141+
142+
startActivityForResult(new Intent(BaseDrawerActivity.this, AccountsActivity.class),
143+
REQUEST_ACCOUNTS);
144+
}
145+
146+
private void showRates() {
147+
// Answers event
148+
Answers.getInstance().logContentView(new ContentViewEvent()
149+
.putContentName("Show Rates")
150+
.putContentType("Button"));
151+
152+
startActivityForResult(new Intent(BaseDrawerActivity.this, ExchangeRatesActivity.class),
153+
REQUEST_RATES);
154+
}
155+
156+
private void showCharts() {
157+
// Answers event
158+
Answers.getInstance().logContentView(new ContentViewEvent()
159+
.putContentName("Show Charts")
160+
.putContentType("Button"));
161+
162+
startActivity(new Intent(BaseDrawerActivity.this, ChartsActivity.class));
163+
}
164+
165+
private void showBackup() {
166+
// Answers event
167+
Answers.getInstance().logContentView(new ContentViewEvent()
168+
.putContentName("Show Backup")
169+
.putContentType("Button"));
170+
171+
startActivityForResult(new Intent(BaseDrawerActivity.this, BackupActivity.class),
172+
REQUEST_BACKUP);
173+
}
174+
175+
private void showImportExport() {
176+
// Answers event
177+
Answers.getInstance().logContentView(new ContentViewEvent()
178+
.putContentName("Show Import Export")
179+
.putContentType("Button"));
180+
181+
startActivityForResult(new Intent(BaseDrawerActivity.this, ImportExportActivity.class),
182+
REQUEST_IMPORT_EXPORT);
183+
}
184+
185+
private void showSettings() {
186+
// Answers event
187+
Answers.getInstance().logContentView(new ContentViewEvent()
188+
.putContentName("Show Settings")
189+
.putContentType("Button"));
190+
191+
startActivityForResult(new Intent(BaseDrawerActivity.this, SettingsActivity.class),
192+
REQUEST_SETTINGS);
193+
}
138194
}

app/src/main/java/com/blogspot/e_kanivets/moneytracker/activity/exchange_rate/AddExchangeRateActivity.java

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@
1616
import com.blogspot.e_kanivets.moneytracker.entity.ExchangeRatePair;
1717
import com.blogspot.e_kanivets.moneytracker.util.validator.ExchangeRatePairValidator;
1818
import com.blogspot.e_kanivets.moneytracker.util.validator.IValidator;
19+
import com.crashlytics.android.answers.Answers;
20+
import com.crashlytics.android.answers.ContentViewEvent;
1921

2022
import java.util.ArrayList;
2123
import java.util.List;
@@ -116,17 +118,31 @@ public boolean onCreateOptionsMenu(Menu menu) {
116118
public boolean onOptionsItemSelected(MenuItem item) {
117119
switch (item.getItemId()) {
118120
case R.id.action_done:
119-
if (addExchangeRate()) {
120-
setResult(RESULT_OK);
121-
finish();
122-
}
121+
tryAddExchangeRate();
123122
return true;
124123

125124
default:
126125
return super.onOptionsItemSelected(item);
127126
}
128127
}
129128

129+
private void tryAddExchangeRate() {
130+
// Answers event
131+
Answers.getInstance().logContentView(new ContentViewEvent()
132+
.putContentName("Done Exchange Rate")
133+
.putContentType("Button"));
134+
135+
if (addExchangeRate()) {
136+
// Answers event
137+
Answers.getInstance().logContentView(new ContentViewEvent()
138+
.putContentName("Done Exchange Rate")
139+
.putContentType("Event"));
140+
141+
setResult(RESULT_OK);
142+
finish();
143+
}
144+
}
145+
130146
@SuppressWarnings("SimplifiableIfStatement")
131147
private boolean addExchangeRate() {
132148
ExchangeRatePair pair = exchangeRatePairValidator.validate();

0 commit comments

Comments
 (0)