# Printama Library - Consumer ProGuard Rules # These rules will be automatically applied to apps that use this library # Keep all public API classes and methods -keep public class com.anggastudio.printama.Printama { public *; } -keep public class com.anggastudio.printama.PrintamaUI { public *; } # Keep all callback interfaces -keep interface com.anggastudio.printama.Printama$OnConnected { *; } -keep interface com.anggastudio.printama.Printama$OnFailed { *; } -keep interface com.anggastudio.printama.Printama$OnConnectPrinter { *; } -keep interface com.anggastudio.printama.Printama$OnChoosePrinterWidth { *; } -keep interface com.anggastudio.printama.Printama$Callback { *; } # Keep constants classes -keep class com.anggastudio.printama.constants.PA { public static final *; } -keep class com.anggastudio.printama.constants.PW { public static final *; } # Keep UI Activity classes (they might be started via Intent) -keep class com.anggastudio.printama.ui.ChoosePrinterActivity { *; } # Keep utility classes that might be used via reflection -keep class com.anggastudio.printama.util.StrUtil { public static *; } # Keep Bluetooth related classes and methods -keep class * extends android.bluetooth.BluetoothDevice { *; } # Keep classes that might be used in serialization -keepclassmembers class * implements java.io.Serializable { static final long serialVersionUID; private static final java.io.ObjectStreamField[] serialPersistentFields; private void writeObject(java.io.ObjectOutputStream); private void readObject(java.io.ObjectInputStream); java.lang.Object writeReplace(); java.lang.Object readResolve(); } # Keep enum classes -keepclassmembers enum * { public static **[] values(); public static ** valueOf(java.lang.String); } # Preserve line numbers for debugging -keepattributes SourceFile,LineNumberTable # Keep generic signatures -keepattributes Signature # Keep annotations -keepattributes *Annotation* # Preserve method parameter names so API remains readable in IDE/code completion -keepattributes MethodParameters # Preserve local variable tables (helpful for older toolchains and debugging) -keepattributes LocalVariableTable,LocalVariableTypeTable