summaryrefslogtreecommitdiffstats
path: root/src/com/android/camera
diff options
context:
space:
mode:
authorPannag Sanketi <psanketi@google.com>2011-11-14 21:48:17 -0800
committerPannag Sanketi <psanketi@google.com>2011-11-15 13:25:11 -0800
commit87e72ba9d89f8b83b1356f17077b9652346a29d4 (patch)
tree344aa57a41727486f3b44423e22e6f7f9dcaddf1 /src/com/android/camera
parent34238165cfdf04584587360dfcf21109bf09e144 (diff)
downloadLegacyCamera-87e72ba9d89f8b83b1356f17077b9652346a29d4.zip
LegacyCamera-87e72ba9d89f8b83b1356f17077b9652346a29d4.tar.gz
LegacyCamera-87e72ba9d89f8b83b1356f17077b9652346a29d4.tar.bz2
Start Effects Recording only after preview loads
Start Effects Recording only after we get SurfaceTexture Callback in EffectsRecorder, and hence preview loaded. Disable the shutter button on creation, and re-enable it on the preview callback. Else, one could potentially start the recording before the preview loads, leading to a wrong state information and an eventual crash. Related Bugs: 5605173, 5605658 Change-Id: I2ed766997294c165ce6c262cf47f124493d0c5ec
Diffstat (limited to 'src/com/android/camera')
-rw-r--r--src/com/android/camera/EffectsRecorder.java4
-rwxr-xr-xsrc/com/android/camera/VideoCamera.java14
2 files changed, 18 insertions, 0 deletions
diff --git a/src/com/android/camera/EffectsRecorder.java b/src/com/android/camera/EffectsRecorder.java
index 737e828..8470038 100644
--- a/src/com/android/camera/EffectsRecorder.java
+++ b/src/com/android/camera/EffectsRecorder.java
@@ -73,6 +73,7 @@ public class EffectsRecorder {
public static final int EFFECT_MSG_SWITCHING_EFFECT = 2;
public static final int EFFECT_MSG_EFFECTS_STOPPED = 3;
public static final int EFFECT_MSG_RECORDING_DONE = 4;
+ public static final int EFFECT_MSG_PREVIEW_RUNNING = 5;
private Context mContext;
private Handler mHandler;
@@ -634,6 +635,9 @@ public class EffectsRecorder {
mState = STATE_PREVIEW;
if (mLogVerbose) Log.v(TAG, "Start preview/effect switch complete");
+
+ // Sending a message to listener that preview is complete
+ sendMessage(mCurrentEffect, EFFECT_MSG_PREVIEW_RUNNING);
}
}
};
diff --git a/src/com/android/camera/VideoCamera.java b/src/com/android/camera/VideoCamera.java
index f725f43..6a82187 100755
--- a/src/com/android/camera/VideoCamera.java
+++ b/src/com/android/camera/VideoCamera.java
@@ -432,6 +432,16 @@ public class VideoCamera extends ActivityBase
mShutterButton.setOnShutterButtonListener(this);
mShutterButton.requestFocus();
+ // Disable the shutter button if effects are ON since it might take
+ // a little more time for the effects preview to be ready. We do not
+ // want to allow recording before that happens. The shutter button
+ // will be enabled when we get the message from effectsrecorder that
+ // the preview is running. This becomes critical when the camera is
+ // swapped.
+ if (effectsActive()) {
+ mShutterButton.setEnabled(false);
+ }
+
mRecordingTimeView = (TextView) findViewById(R.id.recording_time);
mRecordingTimeRect = (RotateLayout) findViewById(R.id.recording_time_rect);
mOrientationListener = new MyOrientationEventListener(this);
@@ -641,6 +651,7 @@ public class VideoCamera extends ActivityBase
@Override
public void onShutterButtonClick() {
if (collapseCameraControls()) return;
+
boolean stop = mMediaRecorderRecording;
if (stop) {
@@ -1992,6 +2003,9 @@ public class VideoCamera extends ActivityBase
}
}
mEffectsDisplayResult = false;
+ } else if (effectMsg == EffectsRecorder.EFFECT_MSG_PREVIEW_RUNNING) {
+ // Enable the shutter button once the preview is complete.
+ mShutterButton.setEnabled(true);
} else if (effectId == EffectsRecorder.EFFECT_BACKDROPPER) {
switch (effectMsg) {
case EffectsRecorder.EFFECT_MSG_STARTED_LEARNING: