You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

154 lines
5.6 KiB

# 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
# 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
# =============================================================================
# Capacitor Plugin Protection Rules
# =============================================================================
# Keep Capacitor Plugin annotations & your plugin facade
-keep class com.getcapacitor.** { *; }
-keep @com.getcapacitor.annotation.CapacitorPlugin class * { *; }
-keepclassmembers class ** {
@com.getcapacitor.annotation.PluginMethod *;
}
# Keep DailyNotification plugin classes
-keep class com.timesafari.dailynotification.** { *; }
# Keep plugin method names and signatures
-keepclassmembers class com.timesafari.dailynotification.DailyNotificationPlugin {
public *;
}
# Keep all plugin manager classes
-keep class com.timesafari.dailynotification.*Manager { *; }
-keep class com.timesafari.dailynotification.*Storage { *; }
-keep class com.timesafari.dailynotification.*Receiver { *; }
# Keep Room database classes
-keep class com.timesafari.dailynotification.storage.** { *; }
-keep class com.timesafari.dailynotification.database.** { *; }
# Keep error handling classes
-keep class com.timesafari.dailynotification.*Error* { *; }
-keep class com.timesafari.dailynotification.*Exception* { *; }
# Keep JWT and ETag managers
-keep class com.timesafari.dailynotification.*JWT* { *; }
-keep class com.timesafari.dailynotification.*ETag* { *; }
# Keep performance and optimization classes
-keep class com.timesafari.dailynotification.*Performance* { *; }
-keep class com.timesafari.dailynotification.*Optimizer* { *; }
# Keep rolling window and TTL classes
-keep class com.timesafari.dailynotification.*Rolling* { *; }
-keep class com.timesafari.dailynotification.*TTL* { *; }
# Keep exact alarm and reboot recovery classes
-keep class com.timesafari.dailynotification.*Exact* { *; }
-keep class com.timesafari.dailynotification.*Reboot* { *; }
-keep class com.timesafari.dailynotification.*Recovery* { *; }
# Keep enhanced fetcher classes
-keep class com.timesafari.dailynotification.*Enhanced* { *; }
-keep class com.timesafari.dailynotification.*Fetcher* { *; }
# Keep migration classes
-keep class com.timesafari.dailynotification.*Migration* { *; }
# Keep channel manager
-keep class com.timesafari.dailynotification.ChannelManager { *; }
# Keep permission manager
-keep class com.timesafari.dailynotification.PermissionManager { *; }
# Keep scheduler classes
-keep class com.timesafari.dailynotification.*Scheduler* { *; }
# =============================================================================
# Android System Classes
# =============================================================================
# Keep Android system classes used by the plugin
-keep class android.app.AlarmManager { *; }
-keep class android.app.NotificationManager { *; }
-keep class android.app.NotificationChannel { *; }
-keep class android.app.PendingIntent { *; }
-keep class androidx.work.WorkManager { *; }
-keep class androidx.core.app.NotificationCompat { *; }
# Keep broadcast receiver classes
-keep class android.content.BroadcastReceiver { *; }
-keep class android.content.Intent { *; }
# =============================================================================
# Room Database Protection
# =============================================================================
# Keep Room database classes
-keep class androidx.room.** { *; }
-keep class * extends androidx.room.RoomDatabase { *; }
-keep @androidx.room.Entity class * { *; }
-keep @androidx.room.Dao class * { *; }
# Keep Room database migrations
-keep class * extends androidx.room.migration.Migration { *; }
# =============================================================================
# Gson Protection (if used)
# =============================================================================
# Keep Gson classes if used for JSON serialization
-keep class com.google.gson.** { *; }
-keep class * implements com.google.gson.TypeAdapterFactory { *; }
-keep class * implements com.google.gson.JsonSerializer { *; }
-keep class * implements com.google.gson.JsonDeserializer { *; }
# =============================================================================
# Debugging and Development
# =============================================================================
# Keep debug information for development builds
-keepattributes SourceFile,LineNumberTable
-keepattributes Signature
-keepattributes Exceptions
-keepattributes InnerClasses
-keepattributes EnclosingMethod
# Keep generic signatures for reflection
-keepattributes Signature
# Keep annotations
-keepattributes *Annotation*
# =============================================================================
# Network and Security
# =============================================================================
# Keep network-related classes
-keep class java.net.** { *; }
-keep class javax.net.ssl.** { *; }
# Keep security-related classes
-keep class java.security.** { *; }
-keep class javax.crypto.** { *; }