# This improves obfuscation and moves non-public classes to their own namespace. -repackageclasses 'cash.z.ecc.android.sdk.internal' # This makes it easier to autocomplete methods in an IDE using this obfuscated library. -keepparameternames # The ProGuard manual recommends keeping these attributes for libraries. -keepattributes EnclosingMethod,InnerClasses,Signature,Exceptions,*Annotation* # Ensure that stacktraces are reversible. -renamesourcefileattribute SourceFile -keepattributes SourceFile,LineNumberTable # Keep the public interface of the library. # Some of these will need to be tuned in the future, as they shouldn't ALL be considered part of the # public API. Much of this will be improved by further repackaging of the classes. -keep public class cash.z.ecc.android.sdk.* { public protected *; } -keep public class cash.z.ecc.android.sdk.block.* { public protected *; } -keep public class cash.z.ecc.android.sdk.db.entity.* { public protected *; } -keep public class cash.z.ecc.android.sdk.exception.* { public protected *; } -keep public class cash.z.ecc.android.sdk.ext.* { public protected *; } -keep public class cash.z.ecc.android.sdk.tool.* { public protected *; } -keep public class cash.z.ecc.android.sdk.type.* { public protected *; }