diff options
| author | Chao Zhang <chaoz@codeaurora.org> | 2016-01-20 20:39:12 +0800 |
|---|---|---|
| committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2016-01-20 04:41:50 -0800 |
| commit | a1dbd23b6334f23e7853d6cd3d90a90cd1ea8a9b (patch) | |
| tree | 26d9f431248d2ccc31d0d7b7f5d6f7219f72574d | |
| parent | 77852d344be2f56152be52af8f2dae5d8b2cc9b7 (diff) | |
| download | android_packages_apps_Gallery2-a1dbd23b6334f23e7853d6cd3d90a90cd1ea8a9b.tar.gz android_packages_apps_Gallery2-a1dbd23b6334f23e7853d6cd3d90a90cd1ea8a9b.tar.bz2 android_packages_apps_Gallery2-a1dbd23b6334f23e7853d6cd3d90a90cd1ea8a9b.zip | |
Gallery2: fix video play abnormal when screen is locked.
play video --> lock screen --> call in --> refuse the call.
after this step, screen is locked, but video is resume playing because
CodeauroraVideoView's doPrepared() is called.
add a check of KeyguardManager.inKeyguardRestrictedInputMode() in
CodeauroraVideoView.doPreparedIfReady() like MovieActivity.
Change-Id: I19d9da0d23ca490e5038316d6b982099b8280aba
CRs-Fixed: 945013
| -rw-r--r-- | src/org/codeaurora/gallery3d/video/CodeauroraVideoView.java | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/src/org/codeaurora/gallery3d/video/CodeauroraVideoView.java b/src/org/codeaurora/gallery3d/video/CodeauroraVideoView.java index f8c70505f..3b4312d67 100644 --- a/src/org/codeaurora/gallery3d/video/CodeauroraVideoView.java +++ b/src/org/codeaurora/gallery3d/video/CodeauroraVideoView.java @@ -1,6 +1,7 @@ package org.codeaurora.gallery3d.video; import android.app.AlertDialog; +import android.app.KeyguardManager; import android.content.Context; import android.content.DialogInterface; import android.content.Intent; @@ -96,6 +97,7 @@ public class CodeauroraVideoView extends SurfaceView implements MediaPlayerContr private boolean mOnResumed; private boolean mIsShowDialog = false; private boolean mErrorDialogShowing = false; + private KeyguardManager mKeyguardManager; private final Handler mHandler = new Handler() { public void handleMessage(final Message msg) { @@ -946,6 +948,21 @@ public class CodeauroraVideoView extends SurfaceView implements MediaPlayerContr setVideoURI(uri, headers); } + private boolean isKeyguardLocked() { + if (mKeyguardManager == null) { + mKeyguardManager = + (KeyguardManager) mContext.getSystemService(Context.KEYGUARD_SERVICE); + } + // isKeyguardSecure excludes the slide lock case. + boolean locked = (mKeyguardManager != null) + && mKeyguardManager.inKeyguardRestrictedInputMode(); + if (LOG) { + Log.v(TAG, "isKeyguardLocked() locked=" + locked + ", mKeyguardManager=" + + mKeyguardManager); + } + return locked; + } + private void doPreparedIfReady(final MediaPlayer mp) { if (LOG) { Log.v(TAG, "doPreparedIfReady() mHasGotPreparedCallBack=" + mHasGotPreparedCallBack @@ -953,7 +970,7 @@ public class CodeauroraVideoView extends SurfaceView implements MediaPlayerContr + mNeedWaitLayout + ", mCurrentState=" + mCurrentState); } - if (mHasGotPreparedCallBack && mHasGotMetaData && !mNeedWaitLayout) { + if (mHasGotPreparedCallBack && mHasGotMetaData && !mNeedWaitLayout && !isKeyguardLocked()) { doPrepared(mp); } } |
