-keepclasseswithmembernames class * {
    native <methods>;
}

# ensure we keep public sensor test methods, these are needed at runtime
-keepclassmembers class * extends com.android.cts.verifier.sensors.base.BaseSensorTestActivity {
    public <methods>;
}
-keepclassmembers class * extends android.hardware.cts.SensorTestCase {
    public <methods>;
}

# ensure we keep public Gnss Measurement test methods, these are needed at runtime
-keepclassmembers class * extends com.android.cts.verifier.location.BaseGnssTestActivity {
    public <methods>;
}
-keepclassmembers class * extends android.location.cts.GnssTestCase {
    public <methods>;
}

-keepclasseswithmembers class * extends com.android.cts.verifier.location.LocationModeTestActivity

# keep mockito methods
-keep class org.mockito.** { *; }
-keep interface org.mockito.** { *; }
-keep class com.google.dexmaker.** { *; }
-keep class com.android.dx.mockito.** { *; }
-keep interface com.google.dexmaker.** { *; }

-dontwarn android.hardware.Sensor
-dontwarn android.test.AndroidTestRunner
-dontwarn java.util.concurrent.ConcurrentLinkedDeque
-dontwarn com.android.compatibility.common.util.**
-dontwarn junit.**

# Jack seems less rigorous than proguard when it comes to warning about
# transitive dependencies.
-dontwarn com.android.org.bouncycastle.**
-dontwarn com.android.okhttp.**
-dontwarn org.opencv.**
-dontwarn androidx.test.internal.runner.hidden.ExposedInstrumentationApi

-dontwarn java.lang.management.**
