summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorlikaid <likaid@codeaurora.org>2015-07-13 09:53:39 +0800
committerByunghun Jeon <bjeon@codeaurora.org>2015-07-15 14:22:07 -0700
commitcbf2c477e637a1cede01e4a18666a950170e0c6f (patch)
treece015881844c890f8dcd73259a3505df3c6b2639
parentbe3465750ac0ceeae737d6764dcc73a700328a6d (diff)
downloadandroid_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.java46
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);