summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLinux Build Service Account <lnxbuild@localhost>2015-07-16 12:02:53 -0700
committerGerrit - the friendly Code Review server <code-review@localhost>2015-07-16 12:02:53 -0700
commit8a8ccc8013534838734887874c59121012538029 (patch)
tree76b6be9ba53ab34ddeee5d4168684c2b517f29cf
parent85e6469a369904022606488abde43083d821a13a (diff)
parentcbf2c477e637a1cede01e4a18666a950170e0c6f (diff)
downloadandroid_packages_apps_Snap-8a8ccc8013534838734887874c59121012538029.tar.gz
android_packages_apps_Snap-8a8ccc8013534838734887874c59121012538029.tar.bz2
android_packages_apps_Snap-8a8ccc8013534838734887874c59121012538029.zip
Merge "SnapdragonCamera: Stop record when screen off"
-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 d6f5a5801..dd8e64fc0 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();
+ }
+ }
+
}
};
@@ -1383,6 +1398,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();
@@ -1397,17 +1425,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());
@@ -1689,9 +1707,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);