summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/com/android/camera/CameraActivity.java21
1 files changed, 14 insertions, 7 deletions
diff --git a/src/com/android/camera/CameraActivity.java b/src/com/android/camera/CameraActivity.java
index d05248a56..d9e1df29f 100644
--- a/src/com/android/camera/CameraActivity.java
+++ b/src/com/android/camera/CameraActivity.java
@@ -280,8 +280,8 @@ public class CameraActivity extends QuickActivity
return mModuleManager;
}
- // close activity when screen turns off
- private final BroadcastReceiver mScreenOffReceiver = new BroadcastReceiver() {
+ // close activity when secure app passes lock screen or screen turns off
+ private final BroadcastReceiver mShutdownReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
finish();
@@ -1440,10 +1440,17 @@ public class CameraActivity extends QuickActivity
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);
+ // activity when screen is off.
+ IntentFilter filter_screen_off = new IntentFilter(Intent.ACTION_SCREEN_OFF);
+ registerReceiver(mShutdownReceiver, filter_screen_off);
+
+ // Filter for phone unlock so that we can finish secure camera
+ // via this UI path:
+ // 1. from secure lock screen, user starts secure camera
+ // 2. user presses home button
+ // 3. user unlocks phone
+ IntentFilter filter_user_unlock = new IntentFilter(Intent.ACTION_USER_PRESENT);
+ registerReceiver(mShutdownReceiver, filter_user_unlock);
}
mCameraAppUI = new CameraAppUI(this,
(MainActivityLayout) findViewById(R.id.activity_root_view), isCaptureIntent());
@@ -1894,7 +1901,7 @@ public class CameraActivity extends QuickActivity
@Override
public void onDestroyTasks() {
if (mSecureCamera) {
- unregisterReceiver(mScreenOffReceiver);
+ unregisterReceiver(mShutdownReceiver);
}
mActionBar.removeOnMenuVisibilityListener(mOnMenuVisibilityListener);
mSettingsManager.removeAllListeners();