diff options
author | likaid <likaid@codeaurora.org> | 2015-07-13 09:53:39 +0800 |
---|---|---|
committer | Byunghun Jeon <bjeon@codeaurora.org> | 2015-07-15 14:22:07 -0700 |
commit | cbf2c477e637a1cede01e4a18666a950170e0c6f (patch) | |
tree | ce015881844c890f8dcd73259a3505df3c6b2639 | |
parent | be3465750ac0ceeae737d6764dcc73a700328a6d (diff) | |
download | android_packages_apps_Snap-cbf2c477e637a1cede01e4a18666a950170e0c6f.tar.gz android_packages_apps_Snap-cbf2c477e637a1cede01e4a18666a950170e0c6f.tar.bz2 android_packages_apps_Snap-cbf2c477e637a1cede01e4a18666a950170e0c6f.zip |
SnapdragonCamera: Stop record when screen off
During Gplayer play, when we press power key to make screen off
the SnapdragonCamera can not stop recording video.
Add a broadcast for SCREEN_OFF to make the SnapdragonCamera stop
when press power key.
Change-Id: I7f06bc651aebd3c23212edfc55696fb93e9e250d
CRs-Fixed: 866025
-rw-r--r-- | src/com/android/camera/CameraActivity.java | 46 |
1 files changed, 33 insertions, 13 deletions
diff --git a/src/com/android/camera/CameraActivity.java b/src/com/android/camera/CameraActivity.java index e7f9754ba..be64a3290 100644 --- a/src/com/android/camera/CameraActivity.java +++ b/src/com/android/camera/CameraActivity.java @@ -332,7 +332,22 @@ public class CameraActivity extends Activity private BroadcastReceiver mScreenOffReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { - finish(); + String action = intent.getAction(); + + if (action.equals(Intent.ACTION_SCREEN_ON)) { + mCurrentModule.onResumeBeforeSuper(); + mCurrentModule.onResumeAfterSuper(); + } + + if (action.equals(Intent.ACTION_SCREEN_OFF)) { + if (mSecureCamera) { + finish(); + } else { + mCurrentModule.onPauseBeforeSuper(); + mCurrentModule.onPauseAfterSuper(); + } + } + } }; @@ -1369,6 +1384,19 @@ public class CameraActivity extends Activity mSecureCamera = intent.getBooleanExtra(SECURE_CAMERA_EXTRA, false); } + // Filter for screen off so that we can finish secure camera activity + // when screen is off. + IntentFilter filter = new IntentFilter(Intent.ACTION_SCREEN_OFF); + filter.addAction(Intent.ACTION_SCREEN_ON); + registerReceiver(mScreenOffReceiver, filter); + // TODO: This static screen off event receiver is a workaround to the + // double onResume() invocation (onResume->onPause->onResume). We should + // find a better solution to this. + if (sScreenOffReceiver == null) { + sScreenOffReceiver = new ScreenOffReceiver(); + registerReceiver(sScreenOffReceiver, filter); + } + if (mSecureCamera) { // Change the window flags so that secure camera can show when locked Window win = getWindow(); @@ -1383,17 +1411,7 @@ public class CameraActivity extends Activity } win.setAttributes(params); - // Filter for screen off so that we can finish secure camera activity - // when screen is off. - IntentFilter filter = new IntentFilter(Intent.ACTION_SCREEN_OFF); - registerReceiver(mScreenOffReceiver, filter); - // TODO: This static screen off event receiver is a workaround to the - // double onResume() invocation (onResume->onPause->onResume). We should - // find a better solution to this. - if (sScreenOffReceiver == null) { - sScreenOffReceiver = new ScreenOffReceiver(); - registerReceiver(sScreenOffReceiver, filter); - } + } GcamHelper.init(getContentResolver()); @@ -1675,9 +1693,11 @@ public class CameraActivity extends Activity } if (mShutterVol >= 0 && mShutterVol <= 100) mAudioManager.setMasterVolume(mOriginalMasterVol,0); - if (mSecureCamera) { + + if (mScreenOffReceiver != null) { unregisterReceiver(mScreenOffReceiver); } + getContentResolver().unregisterContentObserver(mLocalImagesObserver); getContentResolver().unregisterContentObserver(mLocalVideosObserver); unregisterReceiver(mSDcardMountedReceiver); |