From fa4f876668a5a1ed8f3e945c762df3beb1777b03 Mon Sep 17 00:00:00 2001 From: tonihei Date: Mon, 12 Jun 2017 07:51:10 -0700 Subject: [PATCH] UI parameter to disable automatically showing playback controls. (Fixing GitHub issue #2699) Added controllerAutoShow parameter to decide whether playback controls are shown automatically. Default is true. Can be overwritten in the XML with auto_show=false or via SimpleExoPlayerView.setControllerAutoShow(false). Also inverted the logic of maybeShowControllers and showController. SimpleExoPlayerView.(show/hide)Controller and PlaybackControlView.(show/hide) now unconditionally do what they say to allow manual operation. SimpleExoPlayerView.maybeShowController is used internally to automatically show playback controls. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=158712277 --- .../exoplayer2/demo/PlayerActivity.java | 2 - .../exoplayer2/ui/PlaybackControlView.java | 7 +- .../exoplayer2/ui/SimpleExoPlayerView.java | 84 ++++++++++++++++--- library/ui/src/main/res/values/attrs.xml | 1 + 4 files changed, 74 insertions(+), 20 deletions(-) diff --git a/demo/src/main/java/com/google/android/exoplayer2/demo/PlayerActivity.java b/demo/src/main/java/com/google/android/exoplayer2/demo/PlayerActivity.java index 71e5266ef4..a5e06fa184 100644 --- a/demo/src/main/java/com/google/android/exoplayer2/demo/PlayerActivity.java +++ b/demo/src/main/java/com/google/android/exoplayer2/demo/PlayerActivity.java @@ -205,8 +205,6 @@ public class PlayerActivity extends Activity implements OnClickListener, ExoPlay @Override public boolean dispatchKeyEvent(KeyEvent event) { - // Show the controls on any key event. - simpleExoPlayerView.showController(); // If the event was not handled then see if the player view can handle it as a media key event. return super.dispatchKeyEvent(event) || simpleExoPlayerView.dispatchMediaKeyEvent(event); } diff --git a/library/ui/src/main/java/com/google/android/exoplayer2/ui/PlaybackControlView.java b/library/ui/src/main/java/com/google/android/exoplayer2/ui/PlaybackControlView.java index 2bd576d32e..b06bbf9735 100644 --- a/library/ui/src/main/java/com/google/android/exoplayer2/ui/PlaybackControlView.java +++ b/library/ui/src/main/java/com/google/android/exoplayer2/ui/PlaybackControlView.java @@ -959,11 +959,7 @@ public class PlaybackControlView extends FrameLayout { @Override public boolean dispatchKeyEvent(KeyEvent event) { - boolean handled = dispatchMediaKeyEvent(event) || super.dispatchKeyEvent(event); - if (handled) { - show(); - } - return handled; + return dispatchMediaKeyEvent(event) || super.dispatchKeyEvent(event); } /** @@ -1005,7 +1001,6 @@ public class PlaybackControlView extends FrameLayout { break; } } - show(); return true; } diff --git a/library/ui/src/main/java/com/google/android/exoplayer2/ui/SimpleExoPlayerView.java b/library/ui/src/main/java/com/google/android/exoplayer2/ui/SimpleExoPlayerView.java index 5cbfb638a5..3ec9b0943a 100644 --- a/library/ui/src/main/java/com/google/android/exoplayer2/ui/SimpleExoPlayerView.java +++ b/library/ui/src/main/java/com/google/android/exoplayer2/ui/SimpleExoPlayerView.java @@ -88,6 +88,14 @@ import java.util.List; *
  • Default: {@code true}
  • * * + *
  • {@code auto_show} - Whether the playback controls are automatically shown when + * playback starts, pauses, ends, or fails. If set to false, the playback controls can be + * manually operated with {@link #showController()} and {@link #hideController()}. + * + *
  • *
  • {@code resize_mode} - Controls how video and album art is resized within the view. * Valid values are {@code fit}, {@code fixed_width}, {@code fixed_height} and {@code fill}. *