#for javacv/javacpp
-dontwarn org.bytedeco.javacpp.**
-dontwarn org.bytedeco.javacv.**

#for mp4parser
-keep class * implements com.coremedia.iso.boxes.Box { *; }
-dontwarn com.coremedia.iso.boxes.**
-dontwarn com.googlecode.mp4parser.authoring.tracks.mjpeg.**
-dontwarn com.googlecode.mp4parser.authoring.tracks.ttml.**

#for JNI
-keepclasseswithmembernames class * {
    native <methods>;
}

#for isdkcore
-keepnames class com.moxtra.isdk.core.MxBinderSdkCoreWrapper
-keep public class com.moxtra.isdk.core.MxBinderSdkCoreWrapper {
    public void onResponse(java.lang.String,java.lang.String);
    public long[] onGetRecurrenceEvents(java.lang.String,long,java.lang.String,long,long);
    public java.lang.String GetDBPassFromKeyChain(java.lang.String);
    public boolean SetDBPassToKeyChain(java.lang.String, java.lang.String);
    public boolean RemoveDBPassFromKeyChain(java.lang.String);
    public java.lang.String GetFileDescriptor(java.lang.String);
}

-keep class com.moxtra.isdk.network.JniHttpConnectionMgrUtil {
    *;
}

-keep class com.moxtra.isdk.network.JniHttpConnectionUtil {
    *;
}

-keep class com.moxtra.isdk.network.JniPBObjectMgrUtil {
    *;
}

-keep class com.moxtra.isdk.network.JniResourcesMgrUtil {
    *;
}

-keep class com.moxtra.isdk.network.JniWebSocketUtil {
    *;
}

-keep class com.moxtra.isdk.network.JniUiTimer {
    *;
}

-keep class com.moxtra.isdk.network.JniCacheUtil {
    *;
}

-keep class com.moxtra.isdk.network.JniHttpLongPollingConnectionUtil {
    *;
}

#webrtc
-keep class org.webrtc.** {
    *;
}

-keep class com.moxtra.binder.jni.MXJniUtils {
    *;
}

-keep class com.google.protobuf.** {
    *;
}

-keep class com.googlecode.protobuf.** {
    *;
}

-keep class com.unitt.** {
    *;
}

#for audio
-keep class com.moxtra.audio.** {
    public protected *;
}

#for video
-keep class com.moxtra.mxvideo.**{
    public protected *;
}

#for ds
-keep class com.moxtra.mxds.**{
    public protected *;
}

-keep class com.moxtra.util.** {
    public protected *;
}

-keep class com.moxtra.mxtracer.** {
    public protected *;
}

-keep class com.moxtra.meetsdk.RenderViewGroup { *; }

#for tp
-keep class com.moxtra.mxtp.**{
    public protected *;
}

#for Event Bus
-keepclassmembers class ** {
    @com.squareup.otto.Subscribe public *;
    @com.squareup.otto.Produce public *;
}

#-keepclassmembers class **.R$* {
#    public static <fields>;
#}

#-keepnames class **.R{
#    *;
#}
#
#-keepnames class **.R$*{
#    *;
#}

-keep class **.R{
    *;
}

-keep class **.R$*{
    *;
}

# begin JavaCV
-keep @org.bytedeco.javacpp.annotation interface * {
    *;
}

-keep @org.bytedeco.javacpp.annotation.Platform public class *

-keepclasseswithmembernames class * {
    @org.bytedeco.* <fields>;
}

-keepclasseswithmembernames class * {
    @org.bytedeco.* <methods>;
}

-keepattributes EnclosingMethod
-keep @interface org.bytedeco.javacpp.annotation.*,javax.inject.*

-keepattributes *Annotation*, Exceptions, Signature, Deprecated, SourceFile, SourceDir, LineNumberTable, LocalVariableTable, LocalVariableTypeTable, Synthetic, EnclosingMethod, RuntimeVisibleAnnotations, RuntimeInvisibleAnnotations, RuntimeVisibleParameterAnnotations, RuntimeInvisibleParameterAnnotations, AnnotationDefault, InnerClasses
-keep class org.bytedeco.javacpp.** {*;}
-dontwarn java.awt.**
-dontwarn org.bytedeco.javacv.**
-dontwarn org.bytedeco.javacpp.**
# end JavaCV

# For android pdf viewer
-keep class com.shockwave.** {
    public *;
}