Skip to content

Commit 711e81c

Browse files
committed
Apollo: Release source code for 55.5 (1505)
1 parent 1cef6ec commit 711e81c

7 files changed

Lines changed: 32 additions & 8 deletions

File tree

android/CHANGELOG.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,13 @@ follow [https://changelog.md/](https://changelog.md/) guidelines.
66

77
## [Unreleased]
88

9+
## [55.5] - 2026-02-12
10+
11+
### FIXED
12+
13+
- Missing method after bumping `compileSdk` crash
14+
- Crashlytics obfuscating crash names
15+
916
## [55.4] - 2026-01-29
1017

1118
### CHANGED

android/apolloui/build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -101,8 +101,8 @@ android {
101101
applicationId "io.muun.apollo"
102102
minSdk 21
103103
targetSdk 35
104-
versionCode 1504
105-
versionName "55.4"
104+
versionCode 1505
105+
versionName "55.5"
106106

107107
// Use default Proguard file, bundled with Android Gradle Plugin
108108
// See: https://issuetracker.google.com/issues/126772206

android/apolloui/proguard/proguard-crashlytics-2.pro

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,11 @@
55
-keepattributes SourceFile, LineNumberTable, *Annotation*
66

77
# If you are using custom exceptions, add this line so that custom exception types are skipped during obfuscation:
8-
-keep public class * extends java.lang.Exception
8+
# -keep public class * extends java.lang.Exception
9+
10+
# The line above is the crashlytics recommended way to whitelist this. We are wrapping some exceptions with io.muun.Cause
11+
# that extends from Throwable, using this more permisive way we prevent crashlytics obfuscating it
12+
-keep public class * extends java.lang.Throwable
913

1014
# For Fabric to properly de-obfuscate your crash reports, you need to remove this line from your ProGuard config:
1115
-printmapping mapping.txt

android/apolloui/src/main/java/io/muun/apollo/data/analytics/AnalyticsProvider.kt

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,9 @@ import android.content.Context
44
import android.content.res.Resources
55
import android.os.Bundle
66
import com.google.firebase.analytics.FirebaseAnalytics
7+
import com.google.firebase.crashlytics.FirebaseCrashlytics
78
import io.muun.apollo.domain.analytics.AnalyticsEvent
9+
import io.muun.apollo.domain.errors.ReportAnalyticError
810
import io.muun.apollo.domain.model.report.ErrorReport
911
import io.muun.apollo.domain.model.user.User
1012
import rx.Single
@@ -59,9 +61,15 @@ class AnalyticsProvider @Inject constructor(context: Context) {
5961
}
6062

6163
} catch (t: Throwable) {
62-
63-
val bundle = Bundle().apply { putString("event", event.eventId) }
64-
fba.logEvent("e_tracking_error", bundle)
64+
try {
65+
// FIXME: Desperate times require desperate solutions, currently Crashlytics object
66+
// doesn't expose a plain log, it records an analytics event too, we will address this later.
67+
FirebaseCrashlytics.getInstance().log("AnalyticsProvider: Failed processing analytics event ${event.eventId}, cause: ${t.message}")
68+
val bundle = Bundle().apply { putString("event", event.eventId) }
69+
fba.logEvent("e_tracking_error", bundle)
70+
} catch (e: Exception) {
71+
FirebaseCrashlytics.getInstance().recordException(ReportAnalyticError("AnalyticsProvider: Failed processing analytics event e_tracking_error, cause: ${e.message}"))
72+
}
6573
}
6674
}
6775

android/apolloui/src/main/java/io/muun/apollo/data/logging/LoggingRequestTracker.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ object LoggingRequestTracker {
4848

4949
fun getRecentRequests(): List<Entry> =
5050
synchronized(lock) {
51-
lastEndpoints.values.toList().reversed() // most recent first
51+
lastEndpoints.values.toList().asReversed() // most recent first
5252
}
5353

5454
fun reportRecentRequest(key: IdempotencyKey, url: String) {
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
package io.muun.apollo.domain.errors
2+
3+
class ReportAnalyticError(message: String) : MuunError(message)

android/apolloui/src/main/java/io/muun/apollo/presentation/ui/view/MuunPinInput.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -201,7 +201,9 @@ public void onDeleteKey() {
201201

202202
@Override
203203
public void onBiometricsKey() {
204-
biometricsRequestedListener.onBiometricsRequested();
204+
if (biometricsRequestedListener != null) {
205+
biometricsRequestedListener.onBiometricsRequested();
206+
}
205207
}
206208
}
207209
}

0 commit comments

Comments
 (0)