# # SPDX-FileCopyrightText: 2021-2025 Rahul Kumar Patel # SPDX-FileCopyrightText: 2023-2025 The Calyx Institute # SPDX-License-Identifier: GPL-3.0-or-later # # Add project specific ProGuard rules here. # You can control the set of applied configuration files using the # proguardFiles setting in build.gradle.kts. # # For more details, see # http://developer.android.com/guide/developing/tools/proguard.html # 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 *; #} # Uncomment this to preserve the line number information for # debugging stack traces. #-keepattributes SourceFile,LineNumberTable # If you keep the line number information, uncomment this to # hide the original source file name. #-renamesourcefileattribute SourceFile # ServiceLoader support -keepnames class kotlinx.coroutines.internal.MainDispatcherFactory {} -keepnames class kotlinx.coroutines.CoroutineExceptionHandler {} # Most of volatile fields are updated with AFU and should not be mangled -keepclassmembernames class kotlinx.** { volatile ; } # Same story for the standard library's SafeContinuation that also uses AtomicReferenceFieldUpdater -keepclassmembernames class kotlin.coroutines.SafeContinuation { volatile ; } # These classes are only required by kotlinx.coroutines.debug.AgentPremain, which is only loaded when # kotlinx-coroutines-core is used as a Java agent, so these are not needed in contexts where ProGuard is used. -dontwarn java.lang.instrument.ClassFileTransformer -dontwarn sun.misc.SignalHandler -dontwarn java.lang.instrument.Instrumentation -dontwarn sun.misc.Signal # JSR 305 annotations are for embedding nullability information. -dontwarn javax.annotation.** # A resource is loaded with a relative path so the package of this class must be preserved. -keepnames class okhttp3.internal.publicsuffix.PublicSuffixDatabase # Animal Sniffer compileOnly dependency to ensure APIs are compatible with older versions of Java. -dontwarn org.codehaus.mojo.animal_sniffer.* # OkHttp platform used only on JVM and when Conscrypt dependency is available. -dontwarn okhttp3.internal.platform.ConscryptPlatform -dontwarn org.conscrypt.ConscryptHostnameVerifier # Animal Sniffer compileOnly dependency to ensure APIs are compatible with older versions of Java. -dontwarn org.codehaus.mojo.animal_sniffer.* # Retrofit does reflection on generic parameters. InnerClasses is required to use Signature and # EnclosingMethod is required to use InnerClasses. -keepattributes Signature, InnerClasses, EnclosingMethod # Retrofit does reflection on method and parameter annotations. -keepattributes RuntimeVisibleAnnotations, RuntimeVisibleParameterAnnotations # Retain service method parameters when optimizing. -keepclassmembers,allowshrinking,allowobfuscation interface * { @retrofit2.http.* ; } # Ignore annotation used for build tooling. -dontwarn org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement # Ignore JSR 305 annotations for embedding nullability information. -dontwarn javax.annotation.** # Guarded by a NoClassDefFoundError try/catch and only used when on the classpath. -dontwarn kotlin.Unit # Top-level functions that can only be used by Kotlin. -dontwarn retrofit2.KotlinExtensions -dontwarn retrofit2.KotlinExtensions$* -dontwarn okio.** -keep class com.google.** -dontwarn com.google.** -keep class com.google.gson.Gson {*;} # Keep data classes -keep class com.aurora.store.data.room.favourite.ImportExport { *; } -keep class com.aurora.store.data.room.favourite.Favourite { *; } # With R8 full mode, it sees no subtypes of Retrofit interfaces since they are created with a Proxy # and replaces all potential values with null. Explicitly keeping the interfaces prevents this. -if interface * { @retrofit2.http.* ; } -keep,allowobfuscation interface <1> -keepclassmembers enum * { *; } -keep class com.aurora.store.view.ui.preferences.** -dontwarn com.aurora.store.view.ui.preferences.** -keepclassmembers class * { private ; } #GPlay API -keep public class com.aurora.gplayapi.** { *; } -keep,allowobfuscation,allowshrinking class com.google.gson.reflect.TypeToken -keep,allowobfuscation,allowshrinking class * extends com.google.gson.reflect.TypeToken # Keep Parcelable classes -keep @kotlinx.parcelize.Parcelize public class * # Keep the view binding classes and their methods -keepclassmembers class ** implements androidx.viewbinding.ViewBinding { public static *** inflate(...); } # Keep generic superclass information -keepattributes Signature -keep class * extends androidx.viewbinding.ViewBinding { *; } # Keep Huawei specific classes and methods -keep class com.huawei.** { *; } -dontwarn com.huawei.** -keep class com.hihonor.** { *; } -dontwarn com.hihonor.**