-keep public class com.google.android.gms.* { public *; } -keepnames @com.google.android.gms.common.annotation.KeepName class * -keepclassmembernames class * { @com.google.android.gms.common.annotation.KeepName *; } -keep class org.webrtc.* { *; } -keep class org.webrtc.audio.* { *; } -keep class org.webrtc.voiceengine.* { *; } -keep class org.telegram.messenger.* { *; } -keep class org.telegram.messenger.camera.* { *; } -keep class org.telegram.messenger.secretmedia.* { *; } -keep class org.telegram.messenger.support.* { *; } -keep class org.telegram.messenger.support.* { *; } -keep class org.telegram.messenger.time.* { *; } -keep class org.telegram.messenger.video.* { *; } -keep class org.telegram.messenger.voip.* { *; } -keep class org.telegram.SQLite.** { *; } -keep class org.telegram.tgnet.ConnectionsManager { *; } -keep class org.telegram.tgnet.NativeByteBuffer { *; } -keep class org.telegram.tgnet.RequestDelegateInternal { *; } -keep class org.telegram.tgnet.RequestTimeDelegate { *; } -keep class org.telegram.tgnet.RequestDelegate { *; } -keep class org.telegram.tgnet.QuickAckDelegate { *; } -keep class org.telegram.tgnet.WriteToSocketDelegate { *; } -keep class com.google.android.exoplayer2.ext.** { *; } -keep class com.google.android.exoplayer2.util.FlacStreamMetadata { *; } -keep class com.google.android.exoplayer2.metadata.flac.PictureFrame { *; } -keep class com.google.android.exoplayer2.decoder.SimpleOutputBuffer { *; } # https://developers.google.com/ml-kit/known-issues#android_issues -keep class com.google.mlkit.nl.languageid.internal.LanguageIdentificationJni { *; } # Constant folding for resource integers may mean that a resource passed to this method appears to be unused. Keep the method to prevent this from happening. -keep class com.google.android.exoplayer2.upstream.RawResourceDataSource { public static android.net.Uri buildRawResourceUri(int); } # Methods accessed via reflection in DefaultExtractorsFactory -dontnote com.google.android.exoplayer2.ext.flac.FlacLibrary -keepclassmembers class com.google.android.exoplayer2.ext.flac.FlacLibrary { } # Some members of this class are being accessed from native methods. Keep them unobfuscated. -keep class com.google.android.exoplayer2.video.VideoDecoderOutputBuffer { *; } -dontnote com.google.android.exoplayer2.ext.opus.LibopusAudioRenderer -keepclassmembers class com.google.android.exoplayer2.ext.opus.LibopusAudioRenderer { (android.os.Handler, com.google.android.exoplayer2.audio.AudioRendererEventListener, com.google.android.exoplayer2.audio.AudioProcessor[]); } -dontnote com.google.android.exoplayer2.ext.flac.LibflacAudioRenderer -keepclassmembers class com.google.android.exoplayer2.ext.flac.LibflacAudioRenderer { (android.os.Handler, com.google.android.exoplayer2.audio.AudioRendererEventListener, com.google.android.exoplayer2.audio.AudioProcessor[]); } -dontnote com.google.android.exoplayer2.ext.ffmpeg.FfmpegAudioRenderer -keepclassmembers class com.google.android.exoplayer2.ext.ffmpeg.FfmpegAudioRenderer { (android.os.Handler, com.google.android.exoplayer2.audio.AudioRendererEventListener, com.google.android.exoplayer2.audio.AudioProcessor[]); } # Constructors accessed via reflection in DefaultExtractorsFactory -dontnote com.google.android.exoplayer2.ext.flac.FlacExtractor -keepclassmembers class com.google.android.exoplayer2.ext.flac.FlacExtractor { (); } # Constructors accessed via reflection in DefaultDownloaderFactory -dontnote com.google.android.exoplayer2.source.dash.offline.DashDownloader -keepclassmembers class com.google.android.exoplayer2.source.dash.offline.DashDownloader { (android.net.Uri, java.util.List, com.google.android.exoplayer2.offline.DownloaderConstructorHelper); } -dontnote com.google.android.exoplayer2.source.hls.offline.HlsDownloader -keepclassmembers class com.google.android.exoplayer2.source.hls.offline.HlsDownloader { (android.net.Uri, java.util.List, com.google.android.exoplayer2.offline.DownloaderConstructorHelper); } -dontnote com.google.android.exoplayer2.source.smoothstreaming.offline.SsDownloader -keepclassmembers class com.google.android.exoplayer2.source.smoothstreaming.offline.SsDownloader { (android.net.Uri, java.util.List, com.google.android.exoplayer2.offline.DownloaderConstructorHelper); } # Constructors accessed via reflection in DownloadHelper -dontnote com.google.android.exoplayer2.source.dash.DashMediaSource$Factory -keepclasseswithmembers class com.google.android.exoplayer2.source.dash.DashMediaSource$Factory { (com.google.android.exoplayer2.upstream.DataSource$Factory); } -dontnote com.google.android.exoplayer2.source.hls.HlsMediaSource$Factory -keepclasseswithmembers class com.google.android.exoplayer2.source.hls.HlsMediaSource$Factory { (com.google.android.exoplayer2.upstream.DataSource$Factory); } -dontnote com.google.android.exoplayer2.source.smoothstreaming.SsMediaSource$Factory -keepclasseswithmembers class com.google.android.exoplayer2.source.smoothstreaming.SsMediaSource$Factory { (com.google.android.exoplayer2.upstream.DataSource$Factory); } # Huawei Services -keep class com.huawei.hianalytics.**{ *; } -keep class com.huawei.updatesdk.**{ *; } -keep class com.huawei.hms.**{ *; } # Don't warn about checkerframework and Kotlin annotations -dontwarn org.checkerframework.** -dontwarn javax.annotation.** # Use -keep to explicitly keep any other classes shrinking would remove -dontoptimize -dontobfuscate #----------------------------------Cricdit proguard-rules--------------------------------- # Glide # Uncomment for DexGuard only #-keepresourcexmlelements manifest/application/meta-data@value=GlideModule -keep public class * implements com.bumptech.glide.module.GlideModule -keep class * extends com.bumptech.glide.module.AppGlideModule { (...); } -keep public enum com.bumptech.glide.load.ImageHeaderParser$** { **[] $VALUES; public *; } -keep class com.bumptech.glide.load.data.ParcelFileDescriptorRewinder$InternalRewinder { *** rewind(); } # Lottie -keep class com.airbnb.lottie.samples.** { *; } #Bugly -dontwarn com.tencent.bugly.** -keep public class com.tencent.bugly.**{*;} #banner -dontwarn androidx.viewpager2.** -keep class androidx.viewpager2.** {*;} -dontwarn androidx.recyclerview.widget.RecyclerView -keep class androidx.recyclerview.widget.RecyclerView{*;} -dontwarn com.youth.banner.** -keep class com.youth.banner.** {*;} #EventBus -keepattributes *Annotation* -keepclassmembers class * { @org.greenrobot.eventbus.Subscribe ; } -keep enum org.greenrobot.eventbus.ThreadMode { *; } # If using AsyncExecutord, keep required constructor of default event used. # Adjust the class name if a custom failure event type is used. -keepclassmembers class org.greenrobot.eventbus.util.ThrowableFailureEvent { (java.lang.Throwable); } # Accessed via reflection, avoid renaming or removal #-keep class org.greenrobot.eventbus.android.AndroidComponentsImpl # BigImageViewer # Add project specific ProGuard rules here. # By default, the flags in this file are appended to flags specified # in /Users/piasy/tools/android-sdk/tools/proguard/proguard-android.txt # You can edit the include path and order by changing the proguardFiles # directive in build.gradle. # # For more details, see # http://developer.android.com/guide/developing/tools/proguard.html # Add any project specific keep options here: # 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 *; #} -dontwarn java.lang.invoke.** -dontwarn com.github.piasy.cameracompat.** -dontwarn rx.** -dontwarn sun.misc.Unsafe -keep class android.support.v7.** { *; }