Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 15 additions & 3 deletions apps/flipcash/app/proguard-rules.pro
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
# Preserve source file names and line numbers for stack traces (call site tracking, Bugsnag)
-keepattributes SourceFile,LineNumberTable

# Keep AppRoute class names for analytics screen tracking
# Keep AppRoute class names. `annotatedEntry` derives each screen's root test tag
# from the route's simple name (NavMetadata.screenRootTag), so obfuscating these
# renames every screen-root resource-id the UI tests address.
-keepnames class com.flipcash.app.core.AppRoute
-keepnames class com.flipcash.app.core.AppRoute$**

Expand All @@ -15,7 +17,11 @@
-keep class * extends io.grpc.stub.AbstractStub { *; }
-keep class * implements io.grpc.BindableService { *; }

# Keep our scan classes that interact with native
# Keep our scan classes that interact with native. The scanner's JNI constructs
# these from C++ by name (FindClass("com/kik/scan/UsernameKikCode"), GetMethodID
# for <init>) and reads their backing fields directly (GetFieldID for "_username",
# "nativePtr"), none of which AGP's default native-methods rule covers. Five
# classes, so the wildcard costs little.
-keep class com.kik.scan.** { *; }

-assumenosideeffects class android.util.Log {
Expand All @@ -26,4 +32,10 @@
public static int e(...);
}

-keep public class * extends java.lang.Throwable
# Error telemetry reads exception names at runtime — Coinbase onramp traces send
# `it::class.simpleName` as `errorType`, and Events.kt does the same for analytics.
# Those are plain strings by the time they leave the device, so the Bugsnag mapping
# upload cannot repair them; the names have to survive obfuscation. Nothing reads
# the members, and an exception nothing throws need not survive, so this is
# -keepnames rather than a full keep.
-keepnames public class * extends java.lang.Throwable
Loading