Skip to content

Commit 6c725d7

Browse files
committed
Replace AppCenter crashes with Firebase Crashlytics
1 parent eba1009 commit 6c725d7

File tree

12 files changed

+56
-86
lines changed

12 files changed

+56
-86
lines changed

app-analytics/build.gradle

-27
This file was deleted.

app-analytics/src/main/AndroidManifest.xml

-6
This file was deleted.

app-analytics/src/main/java/xyz/aprildown/timer/app/analytics/AppTrackerImpl.kt

-32
This file was deleted.

app/build.gradle

+6-3
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,11 @@ plugins {
44
alias(libs.plugins.kotlin.kapt)
55
alias(libs.plugins.hilt)
66

7-
alias(libs.plugins.gms)
87
alias(libs.plugins.dependencyGuard)
98
alias(libs.plugins.androidx.baselineprofile)
9+
10+
alias(libs.plugins.gms)
11+
alias(libs.plugins.firebase.crashlytics)
1012
}
1113

1214
def keystoreProperties = new Properties()
@@ -114,7 +116,6 @@ dependencies {
114116
implementation project(':component-tts')
115117
googleImplementation project(':flavor-google')
116118
dogImplementation project(':app-analytics-fake')
117-
googleImplementation project(':app-analytics')
118119
otherImplementation project(':app-analytics-fake')
119120

120121
baselineProfile project(':baselineprofile')
@@ -173,7 +174,9 @@ dependencies {
173174

174175
android.applicationVariants.configureEach { variant ->
175176
if (variant.name.contains('dog') || variant.name.contains('other')) {
176-
project.tasks.named('process' + variant.name.capitalize() + 'GoogleServices').getOrNull()?.enabled = false
177+
def variantNameCapitalized = variant.name.capitalize()
178+
project.tasks.named("process${variantNameCapitalized}GoogleServices").getOrNull()?.enabled = false
179+
project.tasks.named("injectCrashlyticsMappingFileId${variantNameCapitalized}").getOrNull()?.enabled = false
177180
}
178181
}
179182

app/dependencies/googleReleaseRuntimeClasspath.txt

+16-8
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
:app-analytics
21
:app-backup
32
:app-base
43
:app-intro
@@ -83,6 +82,10 @@ androidx.cursoradapter:cursoradapter:1.0.0
8382
androidx.customview:customview-poolingcontainer:1.0.0
8483
androidx.customview:customview:1.1.0
8584
androidx.databinding:viewbinding:8.3.2
85+
androidx.datastore:datastore-core:1.0.0
86+
androidx.datastore:datastore-preferences-core:1.0.0
87+
androidx.datastore:datastore-preferences:1.0.0
88+
androidx.datastore:datastore:1.0.0
8689
androidx.documentfile:documentfile:1.0.0
8790
androidx.drawerlayout:drawerlayout:1.1.1
8891
androidx.dynamicanimation:dynamicanimation:1.0.0
@@ -172,9 +175,9 @@ com.github.bumptech.glide:disklrucache:4.16.0
172175
com.github.kizitonwose:CalendarView:1.0.4
173176
com.github.zawadz88:MaterialPopupMenu:4.1.0
174177
com.google.accompanist:accompanist-drawablepainter:0.32.0
175-
com.google.android.datatransport:transport-api:3.0.0
176-
com.google.android.datatransport:transport-backend-cct:3.1.8
177-
com.google.android.datatransport:transport-runtime:3.1.8
178+
com.google.android.datatransport:transport-api:3.2.0
179+
com.google.android.datatransport:transport-backend-cct:3.3.0
180+
com.google.android.datatransport:transport-runtime:3.3.0
178181
com.google.android.flexbox:flexbox:3.0.0
179182
com.google.android.gms:play-services-auth-api-phone:18.0.2
180183
com.google.android.gms:play-services-auth-base:18.0.4
@@ -203,21 +206,26 @@ com.google.firebase:firebase-appcheck-interop:17.1.0
203206
com.google.firebase:firebase-appcheck:18.0.0
204207
com.google.firebase:firebase-auth-interop:20.0.0
205208
com.google.firebase:firebase-auth:23.0.0
206-
com.google.firebase:firebase-bom:33.1.1
209+
com.google.firebase:firebase-bom:33.2.0
207210
com.google.firebase:firebase-common-ktx:21.0.0
208211
com.google.firebase:firebase-common:21.0.0
209212
com.google.firebase:firebase-components:18.0.0
210-
com.google.firebase:firebase-encoders-json:18.0.0
213+
com.google.firebase:firebase-config-interop:16.0.1
214+
com.google.firebase:firebase-crashlytics:19.0.3
215+
com.google.firebase:firebase-datatransport:19.0.0
216+
com.google.firebase:firebase-encoders-json:18.0.1
211217
com.google.firebase:firebase-encoders-proto:16.0.0
212218
com.google.firebase:firebase-encoders:17.0.0
219+
com.google.firebase:firebase-installations-interop:17.2.0
220+
com.google.firebase:firebase-installations:18.0.0
221+
com.google.firebase:firebase-measurement-connector:20.0.1
222+
com.google.firebase:firebase-sessions:2.0.3
213223
com.google.firebase:firebase-storage:21.0.0
214224
com.google.guava:listenablefuture:1.0
215225
com.jakewharton.timber:timber:5.0.1
216226
com.joaomgcd:taskerpluginlibrary:0.4.10
217227
com.materialkolor:material-color-utilities-android:1.5.1
218228
com.materialkolor:material-color-utilities:1.5.1
219-
com.microsoft.appcenter:appcenter-crashes:5.0.4
220-
com.microsoft.appcenter:appcenter:5.0.4
221229
com.mikepenz:fastadapter-extensions-binding:5.7.0
222230
com.mikepenz:fastadapter-extensions-expandable:5.7.0
223231
com.mikepenz:fastadapter:5.7.0

build.gradle

+2-2
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,11 @@ plugins {
88
alias(libs.plugins.hilt) apply false
99
alias(libs.plugins.versions)
1010
alias(libs.plugins.dependencyGuard) apply false
11-
alias(libs.plugins.gms) apply false
12-
alias(libs.plugins.secrets) apply false
1311
alias(libs.plugins.detekt)
1412
alias(libs.plugins.android.test) apply false
1513
alias(libs.plugins.androidx.baselineprofile) apply false
14+
alias(libs.plugins.gms) apply false
15+
alias(libs.plugins.firebase.crashlytics) apply false
1616
}
1717

1818
subprojects {

flavor-google/build.gradle

+1
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ dependencies {
3131
implementation libs.firebase.auth
3232
implementation libs.firebase.auth.ui
3333
implementation libs.firebase.storage
34+
implementation libs.firebase.crashlytics
3435
implementation libs.playServices.auth
3536
implementation libs.playServices.review
3637

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
package xyz.aprildown.timer.app.analytics
2+
3+
import android.content.Context
4+
import com.google.firebase.crashlytics.ktx.crashlytics
5+
import com.google.firebase.ktx.Firebase
6+
import dagger.Reusable
7+
import xyz.aprildown.timer.domain.utils.AppTracker
8+
import javax.inject.Inject
9+
10+
@Reusable
11+
internal class AppTrackerImpl @Inject constructor() : AppTracker {
12+
override fun init(context: Context) = Unit
13+
14+
override fun trackError(throwable: Throwable, message: String?) {
15+
if (message != null) {
16+
Firebase.crashlytics.recordException(IllegalStateException(message, throwable))
17+
} else {
18+
Firebase.crashlytics.recordException(throwable)
19+
}
20+
}
21+
22+
override suspend fun hasCrashedInLastSession(): Boolean {
23+
return Firebase.crashlytics.didCrashOnPreviousExecution()
24+
}
25+
}

gradle/libs.versions.toml

+5-6
Original file line numberDiff line numberDiff line change
@@ -31,11 +31,11 @@ hilt = { id = "com.google.dagger.hilt.android", version.ref = "dagger" }
3131
versions = "com.github.ben-manes.versions:0.51.0"
3232
dependencyGuard = "com.dropbox.dependency-guard:0.5.0"
3333

34-
gms = "com.google.gms.google-services:4.4.2"
35-
secrets = "com.google.android.libraries.mapsplatform.secrets-gradle-plugin:2.0.1"
36-
3734
detekt = { id = "io.gitlab.arturbosch.detekt", version.ref = "detekt" }
3835

36+
gms = "com.google.gms.google-services:4.4.2"
37+
firebase-crashlytics = "com.google.firebase.crashlytics:3.0.2"
38+
3939
[libraries]
4040
detekt-formatting = { module = "io.gitlab.arturbosch.detekt:detekt-formatting", version.ref = "detekt" }
4141
desugarJdkLibs = "com.android.tools:desugar_jdk_libs:2.0.4"
@@ -111,15 +111,14 @@ moshi = "com.squareup.moshi:moshi:1.15.1"
111111
moshi-kotlinGen = "com.squareup.moshi:moshi-kotlin-codegen:1.15.1"
112112

113113
billing = "com.android.billingclient:billing-ktx:6.2.0"
114-
firebase_bom = "com.google.firebase:firebase-bom:33.1.1"
114+
firebase_bom = "com.google.firebase:firebase-bom:33.2.0"
115115
firebase_auth = { module = "com.google.firebase:firebase-auth" }
116116
firebase_auth_ui = "com.firebaseui:firebase-ui-auth:8.0.2"
117117
firebase_storage = { module = "com.google.firebase:firebase-storage" }
118+
firebase_crashlytics = { module = "com.google.firebase:firebase-crashlytics" }
118119
playServices_auth = "com.google.android.gms:play-services-auth:20.7.0"
119120
playServices_review = "com.google.android.play:review-ktx:2.0.1"
120121

121-
appcenter_crashes = "com.microsoft.appcenter:appcenter-crashes:5.0.4"
122-
123122
androidJob = "com.github.DeweyReed:android-job:a04c817792"
124123
okio = "com.squareup.okio:okio:3.9.0"
125124
permission = "pub.devrel:easypermissions:3.0.0"

secrets.defaults.properties

-1
This file was deleted.

settings.gradle

+1-1
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ include ':component-key', ':component-settings', ':component-tts'
3333
include ':app-scheduler', ':app-settings', ':app-backup', ':app-tasker'
3434
include ':app-timer-run', ':app-timer-edit'
3535
include ':app-timer-list', ':app-timer-one'
36-
include ':component-main', ':app-analytics', ':app-analytics-fake'
36+
include ':component-main', ':app-analytics-fake'
3737
include ':flavor-google'
3838
include ':app-intro'
3939
include ':app'

0 commit comments

Comments
 (0)