# To enable ProGuard in your project, edit project.properties # to define the proguard.config property as described in that file. # Add project specific ProGuard rules here. # By default, the flags in this file are appended to flags specified # in ${sdk.dir}/tools/proguard/proguard-android.txt # You can edit the include path and order by changing the ProGuard # include property in project.properties. # # For more details, see # http://developer.android.com/guide/developing/tools/proguard.html # Add any project specific keep options here: #-dontshrink #-dontoptimize #-dontobfuscate # If your project uses WebView with JS, uncomment the following # and specify the fully qualified class name to the JavaScript interface # class: #-keepclassmembers class android.webkit.WebView { # public *; #} #-injars bin/classes #-injars libs #-outjars bin/classes-processed.jar -keepattributes InnerClasses -keep class **.R -keep class **.R$* { ; } # Enable proguard with Cordova -keep class org.apache.cordova.** { *; } -keep class com.google.android.gms.dynamite.DynamiteModule$DynamiteLoaderClassLoader { java.lang.ClassLoader sClassLoader; } -keep class com.google.android.gms.dynamite.descriptors.com.google.android.gms.flags.ModuleDescriptor { int MODULE_VERSION; } -keep class com.google.android.gms.dynamite.descriptors.com.google.android.gms.flags.ModuleDescriptor { java.lang.String MODULE_ID; } -keep class org.apache.cordova.CordovaBridge { org.apache.cordova.PluginManager pluginManager; } -keep class org.apache.cordova.CordovaInterfaceImpl { org.apache.cordova.PluginManager pluginManager; } -keep class org.apache.cordova.CordovaResourceApi { org.apache.cordova.PluginManager pluginManager; } -keep class org.apache.cordova.CordovaWebViewImpl { org.apache.cordova.PluginManager pluginManager; } -keep class org.apache.cordova.ResumeCallback { org.apache.cordova.PluginManager pluginManager; } -keep class org.apache.cordova.engine.SystemWebViewEngine { org.apache.cordova.PluginManager pluginManager; } -keep class com.google.gson.internal.UnsafeAllocator { ** theUnsafe; } #-keep class me.leolin.shortcutbadger.ShortcutBadger { ** extraNotification; } #-keep class me.leolin.shortcutbadger.impl.XiaomiHomeBadger { ** messageCount; } #-keep class me.leolin.shortcutbadger.impl.XiaomiHomeBadger { ** extraNotification; } -dontnote org.apache.harmony.xnet.provider.jsse.NativeCrypto -dontnote sun.misc.Unsafe -keep class com.worklight.androidgap.push.** { *; } -keep class com.worklight.wlclient.push.** { *; } # Enable proguard with Google libs -keep class com.google.** { *; } -dontwarn com.google.common.** # apache.http -optimizations !class/merging/vertical*,!class/merging/horizontal*,!code/simplification/arithmetic,!field/*,!code/allocation/variable -keep class net.sqlcipher.** { *; } -dontwarn net.sqlcipher.** -keep class org.codehaus.** { *; } -keepattributes *Annotation*, EnclosingMethod -dontwarn java.lang.annotation.Annotation -keepclassmembers enum * { public static **[] values(); public static ** valueOf(java.lang.String); } # Remove debug logs in release build -assumenosideeffects class android.util.Log { public static *** d(...); } # These classes contain references to external jars which are not included in the default MobileFirst project. -dontwarn com.worklight.common.internal.WLTrusteerInternal* -dontwarn com.worklight.jsonstore.** -dontwarn org.codehaus.jackson.map.ext.* -dontwarn com.worklight.androidgap.push.GCMIntentService -dontwarn com.worklight.androidgap.plugin.WLInitializationPlugin -dontwarn android.support.v4.** -dontwarn android.net.SSLCertificateSocketFactory -dontwarn android.net.http.* -dontwarn org.xwalk.core.** -keep class org.xwalk.core.**{*;} -dontwarn org.chromium.** -keep class org.chromium.**{*;} -keepattributes ** # To prevent admob mediation issues -keep class * extends java.util.ListResourceBundle { protected Object[][] getContents(); } -keep public class com.google.android.gms.common.internal.safeparcel.SafeParcelable { public static final *** NULL; } -keepnames @com.google.android.gms.common.annotation.KeepName class * -keepclassmembernames class * { @com.google.android.gms.common.annotation.KeepName *; } -keepnames class * implements android.os.Parcelable { public static final ** CREATOR; } -keep class com.google.ads.** -keep class android.support.v7.widget.SearchView { *; } -dontwarn com.squareup.okhttp.** -dontwarn okio.** -dontwarn javax.annotation.Nullable -dontwarn javax.annotation.ParametersAreNonnullByDefault -dontwarn com.facebook.ads.** # MT - START -dontobfuscate -keep class org.mtransit.** { *; } # MT - END # SUPPORT V7 APPCOMPAT - START -keep class android.support.v4.app.** { *; } -keep class android.support.v7.app.** { *; } -keep interface android.support.v4.app.** { *; } -keep public class android.support.v7.widget.** { *; } -keep public class android.support.v7.internal.widget.** { *; } -keep public class * extends android.support.v4.view.ActionProvider { public (android.content.Context); } # SUPPORT V7 APPCOMPAT - END # FIREBASE MESSAGING -dontwarn com.google.firebase.messaging.** # GOOGLE PLAY SERVICES - START -keep public class com.google.android.gms.* { public *; } -dontwarn com.google.android.gms.** -keep class * extends java.util.ListResourceBundle { protected java.lang.Object[][] getContents(); } # Keep SafeParcelable value, needed for reflection. This is required to support backwards # compatibility of some classes. -keep public class com.google.android.gms.common.internal.safeparcel.SafeParcelable { public static final *** NULL; } # Keep the names of classes/members we need for client functionality. -keep @interface com.google.android.gms.common.annotation.KeepName -keepnames @com.google.android.gms.common.annotation.KeepName class * -keepclassmembernames class * { @com.google.android.gms.common.annotation.KeepName *; } # Needed for Parcelable/SafeParcelable Creators to not get stripped -keepnames class * implements android.os.Parcelable { public static final ** CREATOR; } # Needed when building against pre-Marshmallow SDK. -dontwarn android.security.NetworkSecurityPolicy # Keep metadata about included modules. -keep public class com.google.android.gms.dynamite.descriptors.** { public ; } # Keep the implementation of the flags api for google-play-services-flags -keep public class com.google.android.gms.flags.impl.FlagProviderImpl { public ; public ; } # Needed when building against the Marshmallow SDK (?) -dontwarn android.net.http.AndroidHttpClient -dontwarn com.google.android.gms.internal.** # Needed when building against pre-Marshmallow SDK. -dontwarn android.security.NetworkSecurityPolicy # GOOGLE PLAY SERVICES - END # GOOGLE MOBILE ADS (ADMOB) - START -keep public class com.google.android.gms.ads.** { public *; } -keep public class com.google.ads.** { public *; } -keep class com.google.ads.mediation.admob.AdMobAdapter { *; } -keep class com.google.ads.mediation.AdUrlAdapter { *; } # GOOGLE MOBILE ADS (ADMOB) - END # FACEBOOK AUDIENCE NETWORK - START -keep public class com.facebook.ads.** { public *; } -keep class com.google.ads.mediation.facebook.FacebookAdapter { *; } -dontwarn com.google.ads.mediation.facebook.** -dontwarn com.google.ads.mediation.inmobi.** -dontwarn com.facebook.ads.internal.** -dontwarn com.facebook.internal.** # FACEBOOK AUDIENCE NETWORK - END # GOOGLE ANALYTICS - START -keep public class com.google.android.gms.analytics.** { public *; } # GOOGLE ANALYTICS - END # GOOGLE PLAY IN-APP BILLING - START -keep class com.android.vending.billing.** # GOOGLE PLAY IN-APP BILLING - END # TWITTER4J - START -keep class twitter4j.** { *; } -dontwarn com.google.code.** -dontwarn oauth.signpost.** -dontwarn twitter4j.** # TWITTER4J - END # By default, the flags in this file are appended to flags specified # in /usr/share/android-studio/data/sdk/tools/proguard/proguard-android.txt # For more details, see # http://developer.android.com/guide/developing/tools/proguard.html ##---------------Begin: proguard configuration common for all Android apps ---------- -optimizationpasses 5 -dontusemixedcaseclassnames -dontskipnonpubliclibraryclasses -dontskipnonpubliclibraryclassmembers -dontpreverify -dump class_files.txt -printseeds seeds.txt -printusage unused.txt -printmapping mapping.txt -optimizations !code/simplification/arithmetic,!field/*,!class/merging/* -allowaccessmodification -repackageclasses '' -keep public class * extends android.app.Activity -keep public class * extends android.app.Application -keep public class * extends android.app.Service -keep public class * extends android.content.BroadcastReceiver -keep public class * extends android.content.ContentProvider -keep public class * extends android.app.backup.BackupAgentHelper -keep public class * extends android.preference.Preference -keep public class com.android.vending.licensing.ILicensingService -dontnote com.android.vending.licensing.ILicensingService # Explicitly preserve all serialization members. The Serializable interface # is only a marker interface, so it wouldn't save them. -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(); } # Preserve all native method names and the names of their classes. -keepclasseswithmembernames class * { native ; } -keepclasseswithmembernames class * { public (android.content.Context, android.util.AttributeSet); } -keepclasseswithmembernames class * { public (android.content.Context, android.util.AttributeSet, int); } # Preserve static fields of inner classes of R classes that might be accessed # through introspection. -keepclassmembers class **.R$* { public static ; } -keep public class * { public protected *; } -keep class * implements android.os.Parcelable { public static final android.os.Parcelable$Creator *; } ##---------------End: proguard configuration common for all Android apps ---------- #---------------Begin: proguard configuration for support library ---------- -keep class com.actionbarsherlock.** { *; } -keep interface com.actionbarsherlock.** { *; } # The support library contains references to newer platform versions. # Don't warn about those in case this app is linking against an older # platform version. We know about them, and they are safe. -dontwarn android.support.** -dontwarn com.google.ads.** ##---------------End: proguard configuration for Gson ---------- ##---------------Begin: proguard configuration for Gson ---------- # Gson uses generic type information stored in a class file when working with fields. Proguard # removes such information by default, so configure it to keep all of it. -keepattributes Signature # Gson specific classes -keep class sun.misc.Unsafe { *; } #-keep class com.google.gson.stream.** { *; } # Application classes that will be serialized/deserialized over Gson -keep class com.example.model.** { *; } ##---------------End: proguard configuration for Gson ---------- # 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 *; #} # VUNGLE mediation # https://support.vungle.com/hc/en-us/articles/115000468071#Proguard -dontwarn com.vungle.** -dontnote com.vungle.** -keep class com.vungle.** { *; } -keep class javax.inject.* # GreenRobot -dontwarn de.greenrobot.event.util.** # RxJava -dontwarn rx.internal.util.unsafe.** -keepclassmembers class rx.internal.util.unsafe.*ArrayQueue*Field* { long producerIndex; long consumerIndex; } -keepclassmembers class rx.internal.util.unsafe.BaseLinkedQueueProducerNodeRef { rx.internal.util.atomic.LinkedQueueNode producerNode; } -keepclassmembers class rx.internal.util.unsafe.BaseLinkedQueueConsumerNodeRef { rx.internal.util.atomic.LinkedQueueNode consumerNode; } -keep class rx.schedulers.Schedulers { public static ; } -keep class rx.schedulers.ImmediateScheduler { public ; } -keep class rx.schedulers.TestScheduler { public ; } -keep class rx.schedulers.Schedulers { public static ** test(); } # MOAT -dontwarn com.moat.** -keep class com.moat.** { public protected private *; } # Retrofit -dontwarn okio.** -dontwarn retrofit2.Platform$Java8