From 7e23452f005201ee01f84de4a82da61996bd7da9 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 4c0df84cc..509201640 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