Don't hide player controls in Accessibility mode
To meet the accessibility requirement on video player controls
visibility timeout, we now don't hide video player controls when in
Accessibility mode.
Bug: 223503737
Test: Manual. Video attached in the bug
Change-Id: I0ef2d590b0bc603acac06355107bb5520f4d216f
diff --git a/src/com/android/providers/media/photopicker/ui/ExoPlayerWrapper.java b/src/com/android/providers/media/photopicker/ui/ExoPlayerWrapper.java
index 3051e8a..1138841 100644
--- a/src/com/android/providers/media/photopicker/ui/ExoPlayerWrapper.java
+++ b/src/com/android/providers/media/photopicker/ui/ExoPlayerWrapper.java
@@ -21,6 +21,7 @@
import android.net.Uri;
import android.util.Log;
import android.view.View;
+import android.view.accessibility.AccessibilityManager;
import android.widget.ImageButton;
import android.widget.ImageView;
@@ -71,10 +72,16 @@
private ExoPlayer mExoPlayer;
private boolean mIsPlayerReleased = true;
private boolean mShouldShowControlsForNext = true;
+ private boolean mIsAccessibilityEnabled;
public ExoPlayerWrapper(Context context, MuteStatus muteStatus) {
mContext = context;
mMuteStatus = muteStatus;
+ AccessibilityManager accessibilityManager =
+ mContext.getSystemService(AccessibilityManager.class);
+ mIsAccessibilityEnabled = accessibilityManager.isEnabled();
+ accessibilityManager.addAccessibilityStateChangeListener(
+ enabled -> mIsAccessibilityEnabled = enabled);
}
/**
@@ -156,7 +163,7 @@
// 1. this is the first video preview page or
// 2. the previous video had controls visible when the page was swiped or
// 3. the previous page was not a video preview
- if (mShouldShowControlsForNext) {
+ if (mIsAccessibilityEnabled || mShouldShowControlsForNext) {
styledPlayerView.showController();
}
@@ -167,6 +174,11 @@
mExoPlayer.addListener(new Player.Listener() {
@Override
public void onIsPlayingChanged(boolean isPlaying) {
+ if (mIsAccessibilityEnabled) {
+ // Player controls are always visible in accessibility mode.
+ return;
+ }
+
// We don't have to hide controls if the state changed to PAUSED or controller
// isn't visible.
if (!isPlaying || !mShouldShowControlsForNext) return;