summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/com/android/camera/VideoCamera.java14
1 files changed, 10 insertions, 4 deletions
diff --git a/src/com/android/camera/VideoCamera.java b/src/com/android/camera/VideoCamera.java
index 751015b..a51a7ac 100644
--- a/src/com/android/camera/VideoCamera.java
+++ b/src/com/android/camera/VideoCamera.java
@@ -531,6 +531,8 @@ public class VideoCamera extends Activity implements View.OnClickListener,
Log.d(TAG, "already stopped.");
return;
}
+ // If we don't lock the camera, release() will fail.
+ mCameraDevice.lock();
mCameraDevice.release();
mCameraDevice = null;
mPreviewing = false;
@@ -546,6 +548,8 @@ public class VideoCamera extends Activity implements View.OnClickListener,
protected void onPause() {
super.onPause();
+ mPausing = true;
+
// This is similar to what mShutterButton.performClick() does,
// but not quite the same.
if (mMediaRecorderRecording) {
@@ -557,8 +561,7 @@ public class VideoCamera extends Activity implements View.OnClickListener,
} else {
stopVideoRecording();
}
-
- mPausing = true;
+ closeCamera();
unregisterReceiver(mReceiver);
setScreenTimeoutSystemDefault();
@@ -572,13 +575,16 @@ public class VideoCamera extends Activity implements View.OnClickListener,
mStorageHint = null;
}
- closeCamera();
-
mHandler.removeMessages(UPDATE_LAST_VIDEO);
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
+ // Do not handle any key if the activity is paused.
+ if (mPausing) {
+ return true;
+ }
+
setScreenTimeoutLong();
switch (keyCode) {