diff options
author | Pannag Sanketi <psanketi@google.com> | 2011-11-14 21:48:17 -0800 |
---|---|---|
committer | Pannag Sanketi <psanketi@google.com> | 2011-11-15 13:25:11 -0800 |
commit | 87e72ba9d89f8b83b1356f17077b9652346a29d4 (patch) | |
tree | 344aa57a41727486f3b44423e22e6f7f9dcaddf1 /src/com/android | |
parent | 34238165cfdf04584587360dfcf21109bf09e144 (diff) | |
download | LegacyCamera-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')
-rw-r--r-- | src/com/android/camera/EffectsRecorder.java | 4 | ||||
-rwxr-xr-x | src/com/android/camera/VideoCamera.java | 14 |
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: |