-keep class io.realm.annotations.RealmModule
-keep @io.realm.annotations.RealmModule class *
-keep @interface io.realm.annotations.RealmModule { *; }
-keep class io.realm.annotations.RealmModule { *; }

-keep class io.realm.internal.Keep
-keep @io.realm.internal.Keep class * { *; }

-keep class io.realm.internal.KeepMember
-keep @io.realm.internal.KeepMember class * { @io.realm.internal.KeepMember *; }

-dontwarn javax.**
-dontwarn io.realm.**
-dontwarn io.reactivex.android.**

-keep class io.realm.RealmCollection
-keep class io.realm.OrderedRealmCollection
-keepclasseswithmembernames class io.realm.** {
    native <methods>;
}

-dontnote rx.Observable

# Referenced from JNI
-keep class org.bson.types.Decimal128 {
    public static org.bson.types.Decimal128 fromIEEE754BIDEncoding(...);
}
-keep class org.bson.types.ObjectId {
    <init>(...);
}

-dontnote android.security.KeyStore
-dontwarn okio.Okio
-dontwarn okio.DeflaterSink

-dontnote com.android.org.conscrypt.SSLParametersImpl
-dontnote org.apache.harmony.xnet.provider.jsse.SSLParametersImpl
-dontnote sun.security.ssl.SSLContextImpl

# See https://github.com/square/okhttp/issues/3922
-dontwarn okhttp3.internal.platform.*

# Referenced from JNI
-keep class io.realm.internal.objectstore.OsJavaNetworkTransport$Response {
    int getHttpResponseCode();
    int getCustomResponseCode();
    java.lang.String[] getJNIFriendlyHeaders();
    java.lang.String getBody();
}

-keep class io.realm.internal.objectstore.OsJavaNetworkTransport$Request {
    <init>(...);
}

-keep class io.realm.internal.OsSharedRealm$SchemaChangedCallback {
    void onSchemaChanged();
}

-keep class io.realm.internal.objectstore.OsApp {
    io.realm.internal.objectstore.OsJavaNetworkTransport getNetworkTransport();
}

-keep class io.realm.internal.objectstore.OsSubscriptionSet$StateChangeCallback {
    *;
}

