
This ensures we have full test coverage for proguard configs now. The only configs not covered by tests are: - IMA and OkHttp which copy recommended configs from the respective library. I couldn't reproduce failures by removing them (and thus couldn't write a test that ensures they are correct). - Some dontwarn lines that just suppress warnings. In addition, this change fixes a couple of related issues: - Moved AV1 proguard config to correct module. - Removed mentioning of deprecated ExtractorMediaSource from README - Suppressed warning from IMA code that prevent proguarding under strict rules - Fixed wrong proguard exclusion in VP9 module. - Moved FLAC exclusion (DefaultExtractorsFactory) to correct module. - Added AlertDialog suppression for de-jetified code. - Removed unusued dependency from UI module that causes large APK size increase. #exofixit #minor-release PiperOrigin-RevId: 344427532
67 lines
4.1 KiB
Plaintext
67 lines
4.1 KiB
Plaintext
# Proguard rules specific to the core module.
|
|
|
|
# Constant folding for resource integers may mean that a resource passed to this method appears to be unused. Keep the method to prevent this from happening.
|
|
-keep class com.google.android.exoplayer2.upstream.RawResourceDataSource {
|
|
public static android.net.Uri buildRawResourceUri(int);
|
|
}
|
|
|
|
# Constructors accessed via reflection in DefaultRenderersFactory
|
|
-dontnote com.google.android.exoplayer2.ext.vp9.LibvpxVideoRenderer
|
|
-keepclassmembers class com.google.android.exoplayer2.ext.vp9.LibvpxVideoRenderer {
|
|
<init>(long, android.os.Handler, com.google.android.exoplayer2.video.VideoRendererEventListener, int);
|
|
}
|
|
-dontnote com.google.android.exoplayer2.ext.av1.Libgav1VideoRenderer
|
|
-keepclassmembers class com.google.android.exoplayer2.ext.av1.Libgav1VideoRenderer {
|
|
<init>(long, android.os.Handler, com.google.android.exoplayer2.video.VideoRendererEventListener, int);
|
|
}
|
|
-dontnote com.google.android.exoplayer2.ext.ffmpeg.FfmpegVideoRenderer
|
|
-keepclassmembers class com.google.android.exoplayer2.ext.ffmpeg.FfmpegVideoRenderer {
|
|
<init>(long, android.os.Handler, com.google.android.exoplayer2.video.VideoRendererEventListener, int);
|
|
}
|
|
-dontnote com.google.android.exoplayer2.ext.opus.LibopusAudioRenderer
|
|
-keepclassmembers class com.google.android.exoplayer2.ext.opus.LibopusAudioRenderer {
|
|
<init>(android.os.Handler, com.google.android.exoplayer2.audio.AudioRendererEventListener, com.google.android.exoplayer2.audio.AudioSink);
|
|
}
|
|
-dontnote com.google.android.exoplayer2.ext.flac.LibflacAudioRenderer
|
|
-keepclassmembers class com.google.android.exoplayer2.ext.flac.LibflacAudioRenderer {
|
|
<init>(android.os.Handler, com.google.android.exoplayer2.audio.AudioRendererEventListener, com.google.android.exoplayer2.audio.AudioSink);
|
|
}
|
|
-dontnote com.google.android.exoplayer2.ext.ffmpeg.FfmpegAudioRenderer
|
|
-keepclassmembers class com.google.android.exoplayer2.ext.ffmpeg.FfmpegAudioRenderer {
|
|
<init>(android.os.Handler, com.google.android.exoplayer2.audio.AudioRendererEventListener, com.google.android.exoplayer2.audio.AudioSink);
|
|
}
|
|
|
|
# Constructors accessed via reflection in DefaultDataSource
|
|
-dontnote com.google.android.exoplayer2.ext.rtmp.RtmpDataSource
|
|
-keepclassmembers class com.google.android.exoplayer2.ext.rtmp.RtmpDataSource {
|
|
<init>();
|
|
}
|
|
|
|
# Constructors accessed via reflection in DefaultDownloaderFactory
|
|
-dontnote com.google.android.exoplayer2.source.dash.offline.DashDownloader
|
|
-keepclassmembers class com.google.android.exoplayer2.source.dash.offline.DashDownloader {
|
|
<init>(com.google.android.exoplayer2.MediaItem, com.google.android.exoplayer2.upstream.cache.CacheDataSource$Factory, java.util.concurrent.Executor);
|
|
}
|
|
-dontnote com.google.android.exoplayer2.source.hls.offline.HlsDownloader
|
|
-keepclassmembers class com.google.android.exoplayer2.source.hls.offline.HlsDownloader {
|
|
<init>(com.google.android.exoplayer2.MediaItem, com.google.android.exoplayer2.upstream.cache.CacheDataSource$Factory, java.util.concurrent.Executor);
|
|
}
|
|
-dontnote com.google.android.exoplayer2.source.smoothstreaming.offline.SsDownloader
|
|
-keepclassmembers class com.google.android.exoplayer2.source.smoothstreaming.offline.SsDownloader {
|
|
<init>(com.google.android.exoplayer2.MediaItem, com.google.android.exoplayer2.upstream.cache.CacheDataSource$Factory, java.util.concurrent.Executor);
|
|
}
|
|
|
|
# Constructors accessed via reflection in DefaultMediaSourceFactory
|
|
-dontnote com.google.android.exoplayer2.source.dash.DashMediaSource$Factory
|
|
-keepclasseswithmembers class com.google.android.exoplayer2.source.dash.DashMediaSource$Factory {
|
|
<init>(com.google.android.exoplayer2.upstream.DataSource$Factory);
|
|
}
|
|
-dontnote com.google.android.exoplayer2.source.hls.HlsMediaSource$Factory
|
|
-keepclasseswithmembers class com.google.android.exoplayer2.source.hls.HlsMediaSource$Factory {
|
|
<init>(com.google.android.exoplayer2.upstream.DataSource$Factory);
|
|
}
|
|
-dontnote com.google.android.exoplayer2.source.smoothstreaming.SsMediaSource$Factory
|
|
-keepclasseswithmembers class com.google.android.exoplayer2.source.smoothstreaming.SsMediaSource$Factory {
|
|
<init>(com.google.android.exoplayer2.upstream.DataSource$Factory);
|
|
}
|