Index: content/public/android/java/src/org/chromium/content/browser/ContentVideoView.java |
diff --git a/content/public/android/java/src/org/chromium/content/browser/ContentVideoView.java b/content/public/android/java/src/org/chromium/content/browser/ContentVideoView.java |
index d3e760cd6872547833273843eb278a36a723f280..fad3a357b0e29f1886b05c569f18e27d01bc0c7c 100644 |
--- a/content/public/android/java/src/org/chromium/content/browser/ContentVideoView.java |
+++ b/content/public/android/java/src/org/chromium/content/browser/ContentVideoView.java |
@@ -38,8 +38,7 @@ import org.chromium.content.R; |
@JNINamespace("content") |
public class ContentVideoView |
extends FrameLayout |
- implements ContentVideoViewControls.Delegate, |
- SurfaceHolder.Callback, View.OnTouchListener, View.OnKeyListener { |
+ implements SurfaceHolder.Callback { |
private static final String TAG = "ContentVideoView"; |
@@ -74,7 +73,6 @@ public class ContentVideoView |
private int mVideoHeight; |
private int mCurrentBufferPercentage; |
private int mDuration; |
- private ContentVideoViewControls mControls; |
private boolean mCanPause; |
private boolean mCanSeekBack; |
private boolean mCanSeekForward; |
@@ -146,58 +144,6 @@ public class ContentVideoView |
} |
} |
- private static class FullScreenControls implements ContentVideoViewControls { |
- |
- View mVideoView; |
- MediaController mMediaController; |
- |
- public FullScreenControls(Context context, View video) { |
- mMediaController = new MediaController(context); |
- mVideoView = video; |
- } |
- |
- @Override |
- public void show() { |
- mMediaController.show(); |
- if (mVideoView != null) { |
- mVideoView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_VISIBLE); |
- } |
- } |
- |
- @Override |
- public void show(int timeout_ms) { |
- mMediaController.show(timeout_ms); |
- } |
- |
- @Override |
- public void hide() { |
- if (mVideoView != null) { |
- mVideoView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LOW_PROFILE); |
- } |
- mMediaController.hide(); |
- } |
- |
- @Override |
- public boolean isShowing() { |
- return mMediaController.isShowing(); |
- } |
- |
- @Override |
- public void setEnabled(boolean enabled) { |
- mMediaController.setEnabled(enabled); |
- } |
- |
- @Override |
- public void setDelegate(Delegate delegate) { |
- mMediaController.setMediaPlayer(delegate); |
- } |
- |
- @Override |
- public void setAnchorView(View view) { |
- mMediaController.setAnchorView(view); |
- } |
- } |
- |
private Runnable mExitFullscreenRunnable = new Runnable() { |
@Override |
public void run() { |
@@ -213,7 +159,6 @@ public class ContentVideoView |
initResources(context); |
mCurrentBufferPercentage = 0; |
mVideoSurfaceView = new VideoSurfaceView(context); |
- setBackgroundColor(Color.BLACK); |
qinmin
2013/09/27 19:39:23
why we need to change this? if the tab surface vie
trchen
2013/09/27 22:38:41
The black filler has a z-order higher than the Bli
|
showContentVideoView(); |
setVisibility(View.VISIBLE); |
mClient.onShowCustomView(this); |
@@ -246,9 +191,6 @@ public class ContentVideoView |
mProgressView = new ProgressView(getContext(), mVideoLoadingText); |
} |
this.addView(mProgressView, layoutParams); |
- mVideoSurfaceView.setZOrderOnTop(true); |
- mVideoSurfaceView.setOnKeyListener(this); |
- mVideoSurfaceView.setOnTouchListener(this); |
mVideoSurfaceView.getHolder().addCallback(this); |
mVideoSurfaceView.setFocusable(true); |
mVideoSurfaceView.setFocusableInTouchMode(true); |
@@ -268,9 +210,6 @@ public class ContentVideoView |
} |
mCurrentState = STATE_ERROR; |
- if (mControls != null) { |
- mControls.hide(); |
- } |
/* Pop up an error dialog so the user knows that |
* something bad has happened. Only try and pop up the dialog |
@@ -337,15 +276,7 @@ public class ContentVideoView |
mCanPause = canPause; |
mCanSeekBack = canSeekBack; |
mCanSeekForward = canSeekForward; |
- mCurrentState = isPlaying() ? STATE_PLAYING : STATE_PAUSED; |
- if (mControls != null) { |
- mControls.setEnabled(true); |
- // If paused , should show the controller for ever. |
- if (isPlaying()) |
- mControls.show(); |
- else |
- mControls.show(0); |
- } |
+ mCurrentState = nativeIsPlaying(mNativeContentVideoView) ? STATE_PLAYING : STATE_PAUSED; |
onVideoSizeChanged(videoWidth, videoHeight); |
} |
@@ -354,9 +285,6 @@ public class ContentVideoView |
public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) { |
mVideoSurfaceView.setFocusable(true); |
mVideoSurfaceView.setFocusableInTouchMode(true); |
- if (isInPlaybackState() && mControls != null) { |
- mControls.show(); |
- } |
} |
@Override |
@@ -374,32 +302,11 @@ public class ContentVideoView |
post(mExitFullscreenRunnable); |
} |
- private void setControls(ContentVideoViewControls controls) { |
- if (mControls != null) { |
- mControls.hide(); |
- } |
- mControls = controls; |
- attachControls(); |
- } |
- |
- private void attachControls() { |
- if (mControls != null) { |
- mControls.setDelegate(this); |
- mControls.setAnchorView(mVideoSurfaceView); |
- mControls.setEnabled(false); |
- } |
- } |
- |
@CalledByNative |
private void openVideo() { |
if (mSurfaceHolder != null) { |
mCurrentState = STATE_IDLE; |
mCurrentBufferPercentage = 0; |
- ContentVideoViewControls controls = mClient.createControls(); |
- if (controls == null) { |
- controls = new FullScreenControls(getContext(), this); |
- } |
- setControls(controls); |
if (mNativeContentVideoView != 0) { |
nativeUpdateMediaMetadata(mNativeContentVideoView); |
nativeSetSurface(mNativeContentVideoView, |
@@ -410,166 +317,12 @@ public class ContentVideoView |
private void onCompletion() { |
mCurrentState = STATE_PLAYBACK_COMPLETED; |
- if (mControls != null) { |
- mControls.hide(); |
- } |
- } |
- |
- @Override |
- public boolean onTouch(View v, MotionEvent event) { |
- if (isInPlaybackState() && mControls != null && |
- event.getAction() == MotionEvent.ACTION_DOWN) { |
- toggleMediaControlsVisiblity(); |
- } |
- return true; |
- } |
- |
- @Override |
- public boolean onTrackballEvent(MotionEvent ev) { |
- if (isInPlaybackState() && mControls != null) { |
- toggleMediaControlsVisiblity(); |
- } |
- return false; |
- } |
- |
- @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 && mControls != null) { |
- if (keyCode == KeyEvent.KEYCODE_HEADSETHOOK || |
- keyCode == KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE) { |
- if (isPlaying()) { |
- pause(); |
- mControls.show(); |
- } else { |
- start(); |
- mControls.hide(); |
- } |
- return true; |
- } else if (keyCode == KeyEvent.KEYCODE_MEDIA_PLAY) { |
- if (!isPlaying()) { |
- start(); |
- mControls.hide(); |
- } |
- return true; |
- } else if (keyCode == KeyEvent.KEYCODE_MEDIA_STOP |
- || keyCode == KeyEvent.KEYCODE_MEDIA_PAUSE) { |
- if (isPlaying()) { |
- pause(); |
- mControls.show(); |
- } |
- return true; |
- } else { |
- toggleMediaControlsVisiblity(); |
- } |
- } else if (keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_UP) { |
- exitFullscreen(false); |
- return true; |
- } else if (keyCode == KeyEvent.KEYCODE_MENU || keyCode == KeyEvent.KEYCODE_SEARCH) { |
- return true; |
- } |
- return super.onKeyDown(keyCode, event); |
- } |
- |
- private void toggleMediaControlsVisiblity() { |
- if (mControls.isShowing()) { |
- mControls.hide(); |
- } else { |
- mControls.show(); |
- } |
} |
private boolean isInPlaybackState() { |
return (mCurrentState != STATE_ERROR && mCurrentState != STATE_IDLE); |
} |
- @Override |
- public void start() { |
- if (isInPlaybackState()) { |
- if (mNativeContentVideoView != 0) { |
- nativePlay(mNativeContentVideoView); |
- } |
- mCurrentState = STATE_PLAYING; |
- } |
- } |
- |
- @Override |
- public void pause() { |
- if (isInPlaybackState()) { |
- if (isPlaying()) { |
- if (mNativeContentVideoView != 0) { |
- nativePause(mNativeContentVideoView); |
- } |
- mCurrentState = STATE_PAUSED; |
- } |
- } |
- } |
- |
- // cache duration as mDuration for faster access |
- @Override |
- public int getDuration() { |
- if (isInPlaybackState()) { |
- if (mDuration > 0) { |
- return mDuration; |
- } |
- if (mNativeContentVideoView != 0) { |
- mDuration = nativeGetDurationInMilliSeconds(mNativeContentVideoView); |
- } else { |
- mDuration = 0; |
- } |
- return mDuration; |
- } |
- mDuration = -1; |
- return mDuration; |
- } |
- |
- @Override |
- public int getCurrentPosition() { |
- if (isInPlaybackState() && mNativeContentVideoView != 0) { |
- return nativeGetCurrentPosition(mNativeContentVideoView); |
- } |
- return 0; |
- } |
- |
- @Override |
- public void seekTo(int msec) { |
- if (mNativeContentVideoView != 0) { |
- nativeSeekTo(mNativeContentVideoView, msec); |
- } |
- } |
- |
- @Override |
- public boolean isPlaying() { |
- return mNativeContentVideoView != 0 && nativeIsPlaying(mNativeContentVideoView); |
- } |
- |
- @Override |
- public int getBufferPercentage() { |
- return mCurrentBufferPercentage; |
- } |
- |
- @Override |
- public boolean canPause() { |
- return mCanPause; |
- } |
- |
- @Override |
- public boolean canSeekBackward() { |
- return mCanSeekBack; |
- } |
- |
- @Override |
- public boolean canSeekForward() { |
- return mCanSeekForward; |
- } |
- |
public int getAudioSessionId() { |
return 0; |
} |
@@ -586,14 +339,6 @@ public class ContentVideoView |
return new ContentVideoView(context, nativeContentVideoView, client); |
} |
- private void removeControls() { |
- if (mControls != null) { |
- mControls.setEnabled(false); |
- mControls.hide(); |
- mControls = null; |
- } |
- } |
- |
public void removeSurfaceView() { |
removeView(mVideoSurfaceView); |
removeView(mProgressView); |
@@ -617,7 +362,6 @@ public class ContentVideoView |
private void destroyContentVideoView(boolean nativeViewDestroyed) { |
if (mVideoSurfaceView != null) { |
mClient.onDestroyContentVideoView(); |
- removeControls(); |
removeSurfaceView(); |
setVisibility(View.GONE); |
} |
@@ -631,11 +375,6 @@ public class ContentVideoView |
} |
@Override |
- public boolean onTouchEvent(MotionEvent ev) { |
- return true; |
- } |
- |
- @Override |
public boolean onKeyDown(int keyCode, KeyEvent event) { |
if (keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_UP) { |
exitFullscreen(false); |