[Android] [PATCH 3/3] VideoPlayerActivity: Improve overlay timeout handling.

Geoffrey Métais geoffrey.metais at gmail.com
Thu Nov 6 13:16:41 CET 2014


LGTM


On Thu, Nov 6, 2014 at 11:26 AM, Thomas Guillem <thomas at gllm.fr> wrote:

> Don't hide ui on gesture or while seeking.
> ---
>  .../vlc/gui/video/VideoPlayerActivity.java         | 44
> ++++++++++++----------
>  1 file changed, 25 insertions(+), 19 deletions(-)
>
> diff --git
> a/vlc-android/src/org/videolan/vlc/gui/video/VideoPlayerActivity.java
> b/vlc-android/src/org/videolan/vlc/gui/video/VideoPlayerActivity.java
> index c08a95e..6172d43 100644
> --- a/vlc-android/src/org/videolan/vlc/gui/video/VideoPlayerActivity.java
> +++ b/vlc-android/src/org/videolan/vlc/gui/video/VideoPlayerActivity.java
> @@ -1411,29 +1411,27 @@ public class VideoPlayerActivity extends Activity
> implements IVideoPlayer {
>                  if (mEnableBrightnessGesture && (int)mTouchX <
> (screen.widthPixels / 2)){
>                      doBrightnessTouch(y_changed);
>                  }
> -                // Extend the overlay for a little while, so that it
> doesn't
> -                // disappear on the user if more adjustment is needed.
> This
> -                // is because on devices with soft navigation (e.g. Galaxy
> -                // Nexus), gestures can't be made without activating the
> UI.
> -                if(AndroidDevices.hasNavBar())
> -                    showOverlay();
>              } else {
>                  // Seek (Right or Left move)
>                  doSeekTouch(coef, xgesturesize, false);
>              }
> +            if (mTouchAction != TOUCH_NONE && mOverlayTimeout !=
> OVERLAY_INFINITE)
> +                showOverlayTimeout(OVERLAY_INFINITE);
>              break;
>
>          case MotionEvent.ACTION_UP:
>              // Mouse events for the core
>              LibVLC.sendMouseEvent(MotionEvent.ACTION_UP, 0, xTouch,
> yTouch);
>
> -            // Audio or Brightness
> -            if ( mTouchAction == TOUCH_NONE) {
> +            if (mTouchAction == TOUCH_NONE) {
>                  if (!mShowing) {
>                      showOverlay();
>                  } else {
>                      hideOverlay(true);
>                  }
> +            } else {
> +                // We were in gesture mode, re-init the overlay timeout
> +                showOverlay(true);
>              }
>              // Seek
>              doSeekTouch(coef, xgesturesize, true);
> @@ -1451,9 +1449,6 @@ public class VideoPlayerActivity extends Activity
> implements IVideoPlayer {
>              return;
>          mTouchAction = TOUCH_SEEK;
>
> -        // Always show seekbar when searching
> -        if (!mShowing) showOverlay();
> -
>          long length = mLibVLC.getLength();
>          long time = mLibVLC.getTime();
>
> @@ -1565,13 +1560,13 @@ public class VideoPlayerActivity extends Activity
> implements IVideoPlayer {
>          @Override
>          public void onStartTrackingTouch(SeekBar seekBar) {
>              mDragging = true;
> -            showOverlay(OVERLAY_INFINITE);
> +            showOverlayTimeout(OVERLAY_INFINITE);
>          }
>
>          @Override
>          public void onStopTrackingTouch(SeekBar seekBar) {
>              mDragging = false;
> -            showOverlay();
> +            showOverlay(true);
>              hideInfo();
>          }
>
> @@ -1714,12 +1709,12 @@ public class VideoPlayerActivity extends Activity
> implements IVideoPlayer {
>      };
>
>      private final void doPlayPause() {
> -        if (mLibVLC.isPlaying()){
> +        if (mLibVLC.isPlaying()) {
>              pause();
> -            showOverlay(OVERLAY_INFINITE);
> +            showOverlayTimeout(OVERLAY_INFINITE);
>          } else {
>              play();
> -            showOverlay(OVERLAY_TIMEOUT);
> +            showOverlayTimeout(OVERLAY_TIMEOUT);
>          }
>      }
>
> @@ -1870,10 +1865,20 @@ public class VideoPlayerActivity extends Activity
> implements IVideoPlayer {
>      };
>
>      /**
> -     * show overlay the the default timeout
> +     * show overlay
> +     * @param forceCheck: adjust the timeout in function of playing state
> +     */
> +    private void showOverlay(boolean forceCheck) {
> +        if (forceCheck)
> +            mOverlayTimeout = 0;
> +        showOverlayTimeout(0);
> +    }
> +
> +    /**
> +     * show overlay with the previous timeout value
>       */
>      private void showOverlay() {
> -        showOverlay(0);
> +        showOverlay(false);
>      }
>
>      @TargetApi(Build.VERSION_CODES.HONEYCOMB)
> @@ -1887,7 +1892,7 @@ public class VideoPlayerActivity extends Activity
> implements IVideoPlayer {
>      /**
>       * show overlay
>       */
> -    private void showOverlay(int timeout) {
> +    private void showOverlayTimeout(int timeout) {
>          if (timeout != 0)
>              mOverlayTimeout = timeout;
>          if (mOverlayTimeout == 0)
> @@ -1922,6 +1927,7 @@ public class VideoPlayerActivity extends Activity
> implements IVideoPlayer {
>       */
>      private void hideOverlay(boolean fromUser) {
>          if (mShowing) {
> +            mHandler.removeMessages(FADE_OUT);
>              mHandler.removeMessages(SHOW_PROGRESS);
>              Log.i(TAG, "remove View!");
>              if (mOverlayTips != null)
> mOverlayTips.setVisibility(View.INVISIBLE);
> --
> 2.1.1
>
> _______________________________________________
> Android mailing list
> Android at videolan.org
> https://mailman.videolan.org/listinfo/android
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.videolan.org/pipermail/android/attachments/20141106/b36245d7/attachment.html>


More information about the Android mailing list