74 lines
2.7 KiB
Plaintext
74 lines
2.7 KiB
Plaintext
#
|
|
# 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 <methods>;
|
|
}
|
|
|
|
# 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 <methods>;
|
|
}
|
|
|
|
# Grpc used by epg via reflection
|
|
-keep class io.grpc.internal.DnsNameResolverProvider
|
|
|
|
# Don't warn about checkerframework in Android proguard
|
|
-dontwarn org.checkerframework.**
|