String action = activity.getIntent().getAction();
mIsImageCaptureIntent = (MediaStore.ACTION_IMAGE_CAPTURE.equals(action)
|| CameraActivity.ACTION_IMAGE_CAPTURE_SECURE.equals(action));
+ View cancelButton = activity.findViewById(R.id.shutter_cancel_button);
+ cancelButton.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ cancelCountDown();
+ }
+ });
}
@Override
}
}
+ private void cancelCountDown() {
+ if (mUI.isCountingDown()) {
+ // Cancel on-going countdown.
+ mUI.cancelCountDown();
+ }
+ mAppController.getCameraAppUI().showModeOptions();
+ mAppController.getCameraAppUI().transitionToCapture();
+ }
+
@Override
public void onPreviewAreaChanged(RectF previewArea) {
mPreviewArea = previewArea;
mUI.onPreviewAreaChanged(previewArea);
// mUI.updatePreviewAreaRect(previewArea);
- // mUI.positionProgressOverlay(previewArea);
+ mUI.positionProgressOverlay(previewArea);
}
@Override
@Override
public void pause() {
mPaused = true;
+ cancelCountDown();
resetTextureBufferSize();
closeCamera();
- mCountdownSoundPlayer.release();
+ mCountdownSoundPlayer.unloadSound(R.raw.beep_once);
+ mCountdownSoundPlayer.unloadSound(R.raw.beep_twice);
// Remove delayed resume trigger, if it hasn't been executed yet.
mMainHandler.removeCallbacksAndMessages(null);
@Override
public void destroy() {
+ mCountdownSoundPlayer.release();
}
@Override
switch (keyCode) {
case KeyEvent.KEYCODE_CAMERA:
case KeyEvent.KEYCODE_DPAD_CENTER:
- if (event.getRepeatCount() == 0) {
+ if (mUI.isCountingDown()) {
+ cancelCountDown();
+ } else if (event.getRepeatCount() == 0) {
onShutterButtonClick();
}
return true;