media/libraries/ui/proguard-rules.txt
ibaker 49b57b8da3 Integrate PlayerControlView with new scrubbing mode
This also tweaks the logic in `Util.shouldShowPlayButton` to
special-case the 'scrubbing' suppression reason. In most cases of
playback suppression (e.g. transient loss of audio focus due to a phone
call), the recommended UX is to show a 'play' button (i.e. the UI looks
like the player is paused). This doesn't look right when scrubbing
since although 'ongoing' playback is suppressed, the image on screen
is constantly changing, so a 'pause' button is kept (i.e. the UI looks
like the player is playing).

PiperOrigin-RevId: 751385521
2025-04-25 06:05:00 -07:00

49 lines
2.5 KiB
Plaintext

# Proguard rules specific to the UI module.
# Constructor method and classes accessed via reflection in PlayerView
-dontnote androidx.media3.exoplayer.video.spherical.SphericalGLSurfaceView
-keepclassmembers class androidx.media3.exoplayer.video.spherical.SphericalGLSurfaceView {
<init>(android.content.Context);
}
-dontnote androidx.media3.exoplayer.video.VideoDecoderGLSurfaceView
-keepclassmembers class androidx.media3.exoplayer.video.VideoDecoderGLSurfaceView {
<init>(android.content.Context);
}
-keepnames class androidx.media3.exoplayer.ExoPlayer {}
-keepclassmembers class androidx.media3.exoplayer.ExoPlayer {
void setImageOutput(androidx.media3.exoplayer.image.ImageOutput);
void setScrubbingModeEnabled(boolean);
boolean isScrubbingModeEnabled();
}
-keepclasseswithmembers class androidx.media3.exoplayer.image.ImageOutput {
void onImageAvailable(long, android.graphics.Bitmap);
}
# Constructor method accessed via reflection in TrackSelectionDialogBuilder
-dontnote androidx.appcompat.app.AlertDialog.Builder
-keepclassmembers class androidx.appcompat.app.AlertDialog$Builder {
<init>(android.content.Context, int);
public android.content.Context getContext();
public androidx.appcompat.app.AlertDialog$Builder setTitle(java.lang.CharSequence);
public androidx.appcompat.app.AlertDialog$Builder setView(android.view.View);
public androidx.appcompat.app.AlertDialog$Builder setPositiveButton(int, android.content.DialogInterface$OnClickListener);
public androidx.appcompat.app.AlertDialog$Builder setNegativeButton(int, android.content.DialogInterface$OnClickListener);
public androidx.appcompat.app.AlertDialog create();
}
# Equivalent methods needed when the library is de-jetified.
-dontnote android.support.v7.app.AlertDialog.Builder
-keepclassmembers class android.support.v7.app.AlertDialog$Builder {
<init>(android.content.Context, int);
public android.content.Context getContext();
public android.support.v7.app.AlertDialog$Builder setTitle(java.lang.CharSequence);
public android.support.v7.app.AlertDialog$Builder setView(android.view.View);
public android.support.v7.app.AlertDialog$Builder setPositiveButton(int, android.content.DialogInterface$OnClickListener);
public android.support.v7.app.AlertDialog$Builder setNegativeButton(int, android.content.DialogInterface$OnClickListener);
public android.support.v7.app.AlertDialog create();
}
# Don't warn about checkerframework and Kotlin annotations
-dontwarn org.checkerframework.**
-dontwarn kotlin.annotations.jvm.**
-dontwarn javax.annotation.**