Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(84)

Unified Diff: content/public/android/java/src/org/chromium/content/browser/ContentVideoViewLegacy.java

Issue 597523003: Remove the legacy fullscreen video path in Android. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase correctly Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: content/public/android/java/src/org/chromium/content/browser/ContentVideoViewLegacy.java
diff --git a/content/public/android/java/src/org/chromium/content/browser/ContentVideoViewLegacy.java b/content/public/android/java/src/org/chromium/content/browser/ContentVideoViewLegacy.java
deleted file mode 100644
index f7d1577f12f2c90d98460711efff0ae744330045..0000000000000000000000000000000000000000
--- a/content/public/android/java/src/org/chromium/content/browser/ContentVideoViewLegacy.java
+++ /dev/null
@@ -1,302 +0,0 @@
-// Copyright 2014 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-package org.chromium.content.browser;
-
-import android.content.Context;
-import android.graphics.Color;
-import android.view.KeyEvent;
-import android.view.MotionEvent;
-import android.view.SurfaceHolder;
-import android.view.SurfaceView;
-import android.view.View;
-import android.widget.MediaController;
-
-/**
- * Adds Android media controller to ContentVideoView.
- * The sole purpose of this class is to maintain legacy behavior while we test
- * the blink-based media controller.
- * https://code.google.com/p/chromium/issues/detail?id=331966
- */
-public class ContentVideoViewLegacy extends ContentVideoView {
- private FullScreenMediaController mMediaController;
- private boolean mCanPause;
- private boolean mCanSeekBackward;
- private boolean mCanSeekForward;
- private int mCurrentBufferPercentage;
- private MediaControlsVisibilityListener mListener;
-
- /**
- * A listener for changes in the MediaController visibility.
- */
- public interface MediaControlsVisibilityListener {
- /**
- * Callback for when the visibility of the media controls changes.
- *
- * @param shown true if the media controls are shown to the user, false otherwise
- */
- public void onMediaControlsVisibilityChanged(boolean shown);
- }
-
- private static class FullScreenMediaController extends MediaController {
-
- final View mVideoView;
- final MediaControlsVisibilityListener mListener;
-
- /**
- * @param context The context.
- * @param video The full screen video container view.
- * @param listener A listener that listens to the visibility of media controllers.
- */
- public FullScreenMediaController(
- Context context,
- View video,
- MediaControlsVisibilityListener listener) {
- super(context);
- mVideoView = video;
- mListener = listener;
- }
-
- @Override
- public void show() {
- super.show();
- if (mListener != null) mListener.onMediaControlsVisibilityChanged(true);
- if (mVideoView != null) {
- mVideoView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_VISIBLE);
- }
- }
-
- @Override
- public void hide() {
- if (mVideoView != null) {
- mVideoView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LOW_PROFILE);
- }
- if (mListener != null) mListener.onMediaControlsVisibilityChanged(false);
- super.hide();
- }
- }
-
- ContentVideoViewLegacy(Context context, long nativeContentVideoView,
- ContentVideoViewClient client) {
- super(context, nativeContentVideoView, client);
- setBackgroundColor(Color.BLACK);
- mCurrentBufferPercentage = 0;
- }
-
- @Override
- protected void showContentVideoView() {
- SurfaceView surfaceView = getSurfaceView();
- surfaceView.setZOrderOnTop(true);
- surfaceView.setOnKeyListener(new OnKeyListener() {
- @Override
- public boolean onKey(View v, int keyCode, KeyEvent event) {
- boolean isKeyCodeSupported = (
- keyCode != KeyEvent.KEYCODE_BACK &&
- keyCode != KeyEvent.KEYCODE_VOLUME_UP &&
- keyCode != KeyEvent.KEYCODE_VOLUME_DOWN &&
- keyCode != KeyEvent.KEYCODE_VOLUME_MUTE &&
- keyCode != KeyEvent.KEYCODE_CALL &&
- keyCode != KeyEvent.KEYCODE_MENU &&
- keyCode != KeyEvent.KEYCODE_SEARCH &&
- keyCode != KeyEvent.KEYCODE_ENDCALL);
- if (isInPlaybackState() && isKeyCodeSupported && mMediaController != null) {
- if (keyCode == KeyEvent.KEYCODE_HEADSETHOOK ||
- keyCode == KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE) {
- if (isPlaying()) {
- pause();
- mMediaController.show();
- } else {
- start();
- mMediaController.hide();
- }
- return true;
- } else if (keyCode == KeyEvent.KEYCODE_MEDIA_PLAY) {
- if (!isPlaying()) {
- start();
- mMediaController.hide();
- }
- return true;
- } else if (keyCode == KeyEvent.KEYCODE_MEDIA_STOP
- || keyCode == KeyEvent.KEYCODE_MEDIA_PAUSE) {
- if (isPlaying()) {
- pause();
- mMediaController.show();
- }
- return true;
- } else {
- toggleMediaControlsVisiblity();
- }
- } else if ((keyCode == KeyEvent.KEYCODE_BACK || keyCode == KeyEvent.KEYCODE_ESCAPE)
- && event.getAction() == KeyEvent.ACTION_UP) {
- exitFullscreen(false);
- return true;
- } else if (keyCode == KeyEvent.KEYCODE_MENU || keyCode == KeyEvent.KEYCODE_SEARCH) {
- return true;
- }
- return false;
- }
- });
- setOnTouchListener(new OnTouchListener() {
- @Override
- public boolean onTouch(View v, MotionEvent event) {
- if (isInPlaybackState() && mMediaController != null &&
- event.getAction() == MotionEvent.ACTION_DOWN) {
- toggleMediaControlsVisiblity();
- }
- return true;
- }
- });
- surfaceView.setFocusable(true);
- surfaceView.setFocusableInTouchMode(true);
- surfaceView.requestFocus();
- super.showContentVideoView();
- }
-
- @Override
- public void onMediaPlayerError(int errorType) {
- super.onMediaPlayerError(errorType);
- if (errorType == MEDIA_ERROR_INVALID_CODE) return;
- if (mMediaController != null) mMediaController.hide();
- }
-
- @Override
- protected void onBufferingUpdate(int percent) {
- super.onBufferingUpdate(percent);
- mCurrentBufferPercentage = percent;
- }
-
- @Override
- protected void onUpdateMediaMetadata(
- int videoWidth,
- int videoHeight,
- int duration,
- boolean canPause,
- boolean canSeekBack,
- boolean canSeekForward) {
- super.onUpdateMediaMetadata(videoWidth, videoHeight, duration,
- canPause, canSeekBack, canSeekForward);
- mCanPause = canPause;
- mCanSeekBackward = canSeekBack;
- mCanSeekForward = canSeekForward;
-
- if (mMediaController == null) return;
-
- mMediaController.setEnabled(true);
- // If paused , should show the controller forever.
- if (isPlaying()) {
- mMediaController.show();
- } else {
- mMediaController.show(0);
- }
- }
-
- @Override
- public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
- super.surfaceChanged(holder, format, width, height);
- SurfaceView surfaceView = getSurfaceView();
- surfaceView.setFocusable(true);
- surfaceView.setFocusableInTouchMode(true);
- if (isInPlaybackState() && mMediaController != null) {
- mMediaController.show();
- }
- }
-
- @Override
- protected void openVideo() {
- super.openVideo();
-
- mCurrentBufferPercentage = 0;
-
- if (mMediaController != null) return;
- mMediaController = new FullScreenMediaController(getContext(), this, mListener);
- mMediaController.setMediaPlayer(new MediaController.MediaPlayerControl() {
- @Override public boolean canPause() { return mCanPause; }
- @Override public boolean canSeekBackward() { return mCanSeekBackward; }
- @Override public boolean canSeekForward() { return mCanSeekForward; }
- @Override public int getAudioSessionId() { return 0; }
- @Override public int getBufferPercentage() { return mCurrentBufferPercentage; }
-
- @Override
- public int getCurrentPosition() {
- return ContentVideoViewLegacy.this.getCurrentPosition();
- }
-
- @Override
- public int getDuration() {
- return ContentVideoViewLegacy.this.getDuration();
- }
-
- @Override
- public boolean isPlaying() {
- return ContentVideoViewLegacy.this.isPlaying();
- }
-
- @Override
- public void pause() {
- ContentVideoViewLegacy.this.pause();
- }
-
- @Override
- public void seekTo(int pos) {
- ContentVideoViewLegacy.this.seekTo(pos);
- }
-
- @Override
- public void start() {
- ContentVideoViewLegacy.this.start();
- }
- });
- mMediaController.setAnchorView(getSurfaceView());
- mMediaController.setEnabled(false);
- }
-
- @Override
- protected void onCompletion() {
- super.onCompletion();
- if (mMediaController != null) {
- mMediaController.hide();
- }
- }
-
- @Override
- public boolean onTrackballEvent(MotionEvent ev) {
- if (isInPlaybackState() && mMediaController != null) {
- toggleMediaControlsVisiblity();
- }
- return false;
- }
-
- private void toggleMediaControlsVisiblity() {
- if (mMediaController.isShowing()) {
- mMediaController.hide();
- } else {
- mMediaController.show();
- }
- }
-
- @Override
- protected void destroyContentVideoView(boolean nativeViewDestroyed) {
- if (mMediaController != null) {
- mMediaController.setEnabled(false);
- mMediaController.hide();
- mMediaController = null;
- }
- super.destroyContentVideoView(nativeViewDestroyed);
- }
-
- @Override
- public boolean onTouchEvent(MotionEvent ev) {
- return true;
- }
-
- /**
- * Sets the MediaControlsVisibilityListener that wants to listen to visibility change events.
- *
- * @param listener the listener to send the events to.
- */
- public void setListener(MediaControlsVisibilityListener listener) {
- mListener = listener;
- }
-
-}

Powered by Google App Engine
This is Rietveld 408576698