# # Copyright (C) 2015 The Android Open Source Project # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # # Following libraries contain 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.ibm.icu.** -dontwarn com.google.android.exoplayer.** -dontwarn com.android.tv.tuner.** -dontwarn com.android.tv.dvr.** # This is due to legacy API katniss is referencing. Seems safe. -dontwarn com.google.android.volley.** -dontwarn com.google.android.common.** -keepclasseswithmembers class com.android.tv.tuner.*DataSource { int readAt(long, byte[], int, int); long getSize(); void close(); } -keepclasseswithmembers class com.google.android.exoplayer2.ext.ffmpeg { native ; } # Configuration of proguard via annotations. Apply them to # the elements of your program not only to ensure correct proguard # functionality, but to document non-obvious entry points to your code to make # it survive refactorings. # Annotations are implemented as attributes, so we have to explicitly keep them. # Catch all which encompasses attributes like RuntimeVisibleParameterAnnotations # and RuntimeVisibleTypeAnnotations -keepattributes RuntimeVisible*Annotation* # JNI is an entry point that's hard to keep track of, so there's # an annotation to mark fields and methods used by native code. # Keep the annotations that proguard needs to process. -keep class com.android.tv.common.annotation.UsedBy* # Just because native code accesses members of a class, does not mean that the # class itself needs to be annotated - only annotate classes that are # referenced themselves in native code. -keep @com.android.tv.common.annotation.UsedBy* class * -keepclassmembers class * { @com.android.tv.common.annotation.UsedBy* *; } # For tests -keep @android.support.annotation.VisibleForTesting class * {*;} -keepclasseswithmembers class * { @android.support.annotation.VisibleForTesting ; } # Grpc used by epg via reflection -keep class io.grpc.internal.DnsNameResolverProvider # Don't warn about checkerframework in Android proguard -dontwarn org.checkerframework.**