|
|
|
@ -19,3 +19,136 @@ |
|
|
|
# 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.** { *; } |
|
|
|
|