From 77bee7afda91d4229e361b00731d6fa5871407e5 Mon Sep 17 00:00:00 2001 From: kaiyiz Date: Fri, 6 Mar 2015 10:56:23 +0800 Subject: Gallery2: Pause video when dialog shows The live stream will be pause by server timeout dialog but start by surface change callback later. Check whether the dialog shows before start media player. Change-Id: I77e8e2b6f84cb0957571d86d9eef2cfb997f1074 CRs-Fixed: 802294 --- src/com/android/gallery3d/app/MoviePlayer.java | 8 ++++++++ src/org/codeaurora/gallery3d/video/CodeauroraVideoView.java | 6 ++++++ 2 files changed, 14 insertions(+) diff --git a/src/com/android/gallery3d/app/MoviePlayer.java b/src/com/android/gallery3d/app/MoviePlayer.java index e6702b583..a65586e7a 100755 --- a/src/com/android/gallery3d/app/MoviePlayer.java +++ b/src/com/android/gallery3d/app/MoviePlayer.java @@ -1356,6 +1356,12 @@ public class MoviePlayer implements } }) + .setOnCancelListener(new OnCancelListener() { + public void onCancel(DialogInterface dialog) { + mController.showEnded(); + onCompletion(); + } + }) .create(); mServerTimeoutDialog.setOnDismissListener(new OnDismissListener() { @@ -1363,6 +1369,7 @@ public class MoviePlayer implements if (LOG) { Log.v(TAG, "mServerTimeoutDialog.onDismiss()"); } + mVideoView.setDialogShowState(false); mIsShowDialog = false; } @@ -1373,6 +1380,7 @@ public class MoviePlayer implements if (LOG) { Log.v(TAG, "mServerTimeoutDialog.onShow()"); } + mVideoView.setDialogShowState(true); mIsShowDialog = true; } diff --git a/src/org/codeaurora/gallery3d/video/CodeauroraVideoView.java b/src/org/codeaurora/gallery3d/video/CodeauroraVideoView.java index 20d14f900..41fd09c53 100755 --- a/src/org/codeaurora/gallery3d/video/CodeauroraVideoView.java +++ b/src/org/codeaurora/gallery3d/video/CodeauroraVideoView.java @@ -94,6 +94,7 @@ public class CodeauroraVideoView extends SurfaceView implements MediaPlayerContr private boolean mNeedWaitLayout = false; private boolean mHasGotMetaData = false; private boolean mOnResumed; + private boolean mIsShowDialog = false; private final Handler mHandler = new Handler() { public void handleMessage(final Message msg) { @@ -746,8 +747,13 @@ public class CodeauroraVideoView extends SurfaceView implements MediaPlayerContr } } + public void setDialogShowState(boolean isDialogShow) { + mIsShowDialog = isDialogShow; + } + @Override public void start() { + if (mIsShowDialog) return; if (isInPlaybackState()) { mMediaPlayer.start(); mCurrentState = STATE_PLAYING; -- cgit v1.2.3