android flesh out
This commit is contained in:
194
android/app/proguard-rules.pro
vendored
194
android/app/proguard-rules.pro
vendored
@@ -1,21 +1,179 @@
|
||||
# Add project specific ProGuard rules here.
|
||||
# You can control the set of applied configuration files using the
|
||||
# proguardFiles setting in build.gradle.
|
||||
#
|
||||
# For more details, see
|
||||
# http://developer.android.com/guide/developing/tools/proguard.html
|
||||
# ============================================================
|
||||
# Kordant ProGuard / R8 Rules
|
||||
# ============================================================
|
||||
|
||||
# If your project uses WebView with JS, uncomment the following
|
||||
# and specify the fully qualified class name to the JavaScript interface
|
||||
# class:
|
||||
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
|
||||
# public *;
|
||||
#}
|
||||
# Keep line numbers for crash reporting (Crashlytics)
|
||||
-keepattributes SourceFile,LineNumberTable
|
||||
-renamesourcefileattribute SourceFile
|
||||
|
||||
# Uncomment this to preserve the line number information for
|
||||
# debugging stack traces.
|
||||
#-keepattributes SourceFile,LineNumberTable
|
||||
# ============================================================
|
||||
# Compose
|
||||
# ============================================================
|
||||
-keep class androidx.compose.** { *; }
|
||||
-keepclassmembers class **$Companion {
|
||||
<fields>;
|
||||
}
|
||||
-dontwarn androidx.compose.**
|
||||
|
||||
# If you keep the line number information, uncomment this to
|
||||
# hide the original source file name.
|
||||
#-renamesourcefileattribute SourceFile
|
||||
# ============================================================
|
||||
# Kotlin
|
||||
# ============================================================
|
||||
-keepclassmembers class **.R$* {
|
||||
public static <fields>;
|
||||
}
|
||||
-keepclassmembers class * implements androidx.compose.runtime.InternalCompositeException$MessageCollector {
|
||||
public void reportException(kotlin.Exception, androidx.compose.runtime.ComposableCancellationBehaviour);
|
||||
}
|
||||
-keepclassmembers class kotlin.Metadata {
|
||||
}
|
||||
|
||||
# Keep Coroutines
|
||||
-keepnames class kotlinx.coroutines.internal.MainDispatcherFactory {}
|
||||
-keepnames class kotlinx.coroutines.CoroutineExceptionHandler {}
|
||||
-keepclassmembers class kotlinx.coroutines.CoroutineExceptionHandler {
|
||||
<init>(kotlin.String);
|
||||
}
|
||||
-keepclassmembers class kotlinx.coroutines.MainCoroutineDispatcher {
|
||||
}
|
||||
-keepclassmembers class kotlinx.coroutines.Dispatchers {}
|
||||
-keepclassmembers class kotlinx.coroutines.Dispatchers$Main {}
|
||||
-keepclasseswithmembers class * {
|
||||
@org.jetbrains.annotations.NotNull <methods>;
|
||||
}
|
||||
|
||||
# ============================================================
|
||||
# Kotlinx Serialization
|
||||
# ============================================================
|
||||
-keep class * implements kotlinx.serialization.KSerializer
|
||||
-keepclassmembers class * {
|
||||
@kotlinx.serialization.Serializable *;
|
||||
}
|
||||
-keepclassmembers enum * {
|
||||
public static ** values();
|
||||
public static ** valueOf(java.lang.String);
|
||||
}
|
||||
-dontwarn kotlinx.serialization.internal.**
|
||||
-dontwarn kotlin.Unit
|
||||
|
||||
# ============================================================
|
||||
# Retrofit
|
||||
# ============================================================
|
||||
-keepattributes Signature
|
||||
-keepattributes *Annotation*
|
||||
-keepclassmembers,allowshrinking,allowobfuscation interface * {
|
||||
@retrofit2.http.* <methods>;
|
||||
}
|
||||
-dontwarn retrofit2.-*
|
||||
-dontwarn okhttp3.**
|
||||
|
||||
# ============================================================
|
||||
# OkHttp
|
||||
# ============================================================
|
||||
-dontwarn java.lang.ClassLoader$
|
||||
-dontwarn javax.naming.**
|
||||
-dontwarn org.apache.log4j.**
|
||||
-dontwarn org.apache.commons.logging.**
|
||||
-dontwarn okio.IOException
|
||||
-dontwarn kotlin.Experimental
|
||||
|
||||
# ============================================================
|
||||
# Firebase / Crashlytics
|
||||
# ============================================================
|
||||
-keep class * extends java.util.ListResourceBundle {
|
||||
protected Object[][] getContents();
|
||||
}
|
||||
-keep public class com.google.firebase.** { public protected *; }
|
||||
-keep class com.google.android.gms.common.internal.safeparcel.SafeParcelable {
|
||||
public static final *** NULL;
|
||||
}
|
||||
-keepnames @com.google.android.gms.common.annotation.KeepName class * {
|
||||
}
|
||||
-keepclassmembernames class * {
|
||||
@com.google.android.gms.common.annotation.KeepName *;
|
||||
}
|
||||
-keepnames class * implements android.os.Parcelable {
|
||||
public static final ** CREATOR;
|
||||
}
|
||||
|
||||
# ============================================================
|
||||
# EncryptedSharedPreferences / Security Crypto
|
||||
# ============================================================
|
||||
-keep class androidx.security.crypto.** { *; }
|
||||
-keepclassmembers class androidx.security.crypto.** { *; }
|
||||
|
||||
# ============================================================
|
||||
# DataStore
|
||||
# ============================================================
|
||||
-keep class androidx.datastore.** { *; }
|
||||
-keepclassmembers class androidx.datastore.** { *; }
|
||||
|
||||
# ============================================================
|
||||
# WorkManager
|
||||
# ============================================================
|
||||
-keep class androidx.work.** { *; }
|
||||
-keepclassmembers class androidx.work.** { *; }
|
||||
-keep class * extends androidx.work.Worker {
|
||||
<init>(android.content.Context, androidx.work.WorkerParameters);
|
||||
}
|
||||
-keepnames class * extends androidx.work.Worker
|
||||
|
||||
# ============================================================
|
||||
# Google Sign-In
|
||||
# ============================================================
|
||||
-keep class com.google.android.gms.auth.** { *; }
|
||||
-keep class com.google.android.gms.common.** { *; }
|
||||
-keep class com.google.android.gms.tasks.** { *; }
|
||||
|
||||
# ============================================================
|
||||
# Coil Image Loading
|
||||
# ============================================================
|
||||
-keep class coil.** { *; }
|
||||
-dontwarn coil.**
|
||||
|
||||
# ============================================================
|
||||
# Lottie
|
||||
# ============================================================
|
||||
-keep class com.airbnb.lottie.** { *; }
|
||||
-keepclassmembers class com.airbnb.lottie.** { *; }
|
||||
|
||||
# ============================================================
|
||||
# App-Specific Keeps
|
||||
# ============================================================
|
||||
|
||||
# Keep data models for serialization
|
||||
-keep class com.kordant.android.data.model.** { *; }
|
||||
-keep class com.kordant.android.data.remote.TRPCResponse { *; }
|
||||
-keep class com.kordant.android.data.remote.TRPCResult { *; }
|
||||
-keep class com.kordant.android.data.remote.TRPCErrorResponse { *; }
|
||||
-keep class com.kordant.android.data.remote.TRPCError { *; }
|
||||
|
||||
# Keep sync classes
|
||||
-keep class com.kordant.android.data.sync.OfflineWorker {
|
||||
<init>(android.content.Context, androidx.work.WorkerParameters);
|
||||
}
|
||||
|
||||
# Keep navigation
|
||||
-keep class com.kordant.android.navigation.** { *; }
|
||||
|
||||
# Keep services (including CallScreeningService)
|
||||
-keep class com.kordant.android.service.** { *; }
|
||||
|
||||
# Keep SQLite spam database
|
||||
-keep class com.kordant.android.data.local.spam.** { *; }
|
||||
-keep class * extends android.database.sqlite.SQLiteOpenHelper {
|
||||
<init>(android.content.Context, java.lang.String, android.database.CursorFactory, int);
|
||||
}
|
||||
|
||||
# Keep call screening viewmodel and screens
|
||||
-keep class com.kordant.android.viewmodel.CallScreeningViewModel { *; }
|
||||
-keep class com.kordant.android.ui.screens.services.CallScreeningSettingsScreen { *; }
|
||||
|
||||
# Keep CallScreeningRepository
|
||||
-keep class com.kordant.android.data.repository.CallScreeningRepository { *; }
|
||||
-keep class com.kordant.android.util.CallScreeningPermissionManager { *; }
|
||||
|
||||
# Keep widget provider
|
||||
-keep class com.kordant.android.widget.** { *; }
|
||||
|
||||
# Keep content descriptors for TalkBack
|
||||
-keepattributes *Annotation*
|
||||
|
||||
Reference in New Issue
Block a user