diff options
-rw-r--r-- | src/com/android/camera/AndroidCameraManagerImpl.java | 11 | ||||
-rw-r--r-- | src/com/android/camera/CameraManager.java | 1 | ||||
-rw-r--r-- | src/com/android/camera/PhotoModule.java | 8 | ||||
-rw-r--r-- | src/com/android/camera/PhotoUI.java | 1 | ||||
-rw-r--r-- | src/com/android/camera/ui/ModuleSwitcher.java | 9 |
5 files changed, 28 insertions, 2 deletions
diff --git a/src/com/android/camera/AndroidCameraManagerImpl.java b/src/com/android/camera/AndroidCameraManagerImpl.java index 1a9e2a7dc..3bfe0c2cb 100644 --- a/src/com/android/camera/AndroidCameraManagerImpl.java +++ b/src/com/android/camera/AndroidCameraManagerImpl.java @@ -74,6 +74,7 @@ class AndroidCameraManagerImpl implements CameraManager { private static final int ADD_CALLBACK_BUFFER = 105; private static final int SET_PREVIEW_DISPLAY_ASYNC = 106; private static final int SET_PREVIEW_CALLBACK = 107; + private static final int SET_ONESHOT_PREVIEW_CALLBACK = 108; // Parameters private static final int SET_PARAMETERS = 201; private static final int GET_PARAMETERS = 202; @@ -340,6 +341,9 @@ class AndroidCameraManagerImpl implements CameraManager { mCamera.setPreviewCallback((PreviewCallback) msg.obj); return; + case SET_ONESHOT_PREVIEW_CALLBACK: + mCamera.setOneShotPreviewCallback((PreviewCallback) msg.obj); + case ENABLE_SHUTTER_SOUND: enableShutterSound((msg.arg1 == 1) ? true : false); return; @@ -498,6 +502,13 @@ class AndroidCameraManagerImpl implements CameraManager { } @Override + public void setOneShotPreviewCallback(Handler handler, CameraPreviewDataCallback cb) { + mCameraHandler.obtainMessage( + SET_ONESHOT_PREVIEW_CALLBACK, + PreviewCallbackForward.getNewInstance(handler, this, cb)).sendToTarget(); + } + + @Override public void addCallbackBuffer(byte[] callbackBuffer) { mCameraHandler.obtainMessage(ADD_CALLBACK_BUFFER, callbackBuffer).sendToTarget(); } diff --git a/src/com/android/camera/CameraManager.java b/src/com/android/camera/CameraManager.java index 1856ec85c..e7d535060 100644 --- a/src/com/android/camera/CameraManager.java +++ b/src/com/android/camera/CameraManager.java @@ -240,6 +240,7 @@ public interface CameraManager { */ public void setPreviewDataCallbackWithBuffer(Handler handler, CameraPreviewDataCallback cb); + public void setOneShotPreviewCallback(Handler handler, CameraPreviewDataCallback cb); /** * Adds buffer for the preview callback. * diff --git a/src/com/android/camera/PhotoModule.java b/src/com/android/camera/PhotoModule.java index fd251cee3..54787bd2b 100644 --- a/src/com/android/camera/PhotoModule.java +++ b/src/com/android/camera/PhotoModule.java @@ -532,7 +532,6 @@ public class PhotoModule if (mCameraState == SNAPSHOT_IN_PROGRESS) { return; } - mUI.hidePreviewCover(); setCameraState(IDLE); mFocusManager.onPreviewStarted(); startFaceDetection(); @@ -2646,6 +2645,13 @@ public class PhotoModule setCameraParameters(UPDATE_PARAM_ALL); mCameraDevice.startPreview(); + mCameraDevice.setOneShotPreviewCallback(mHandler, + new CameraManager.CameraPreviewDataCallback() { + @Override + public void onPreviewFrame(byte[] data, CameraProxy camera) { + mUI.hidePreviewCover(); + } + }); mHandler.sendEmptyMessage(ON_PREVIEW_STARTED); setDisplayOrientation(); diff --git a/src/com/android/camera/PhotoUI.java b/src/com/android/camera/PhotoUI.java index 5707f7b62..f8667254a 100644 --- a/src/com/android/camera/PhotoUI.java +++ b/src/com/android/camera/PhotoUI.java @@ -553,6 +553,7 @@ public class PhotoUI implements PieListener, }); if (mController.isImageCaptureIntent()) { hideSwitcher(); + mSwitcher.setSwitcherVisibility(false); ViewGroup cameraControls = (ViewGroup) mRootView.findViewById(R.id.camera_controls); mActivity.getLayoutInflater().inflate(R.layout.review_module_control, cameraControls); diff --git a/src/com/android/camera/ui/ModuleSwitcher.java b/src/com/android/camera/ui/ModuleSwitcher.java index 6c20da497..217c92a54 100644 --- a/src/com/android/camera/ui/ModuleSwitcher.java +++ b/src/com/android/camera/ui/ModuleSwitcher.java @@ -53,6 +53,7 @@ public class ModuleSwitcher extends RotateImageView public static final int LIGHTCYCLE_MODULE_INDEX = 3; public static final int GCAM_MODULE_INDEX = 4; private boolean mTouchEnabled = true; + private boolean mIsVisible = true; private static final int[] DRAW_IDS = { R.drawable.ic_switch_camera, @@ -267,9 +268,15 @@ public class ModuleSwitcher extends RotateImageView mParent.setOnTouchListener(null); } + public void setSwitcherVisibility(boolean isVisible) { + mIsVisible = isVisible; + } + public void removePopup() { mShowingPopup = false; - setVisibility(View.VISIBLE); + if (mIsVisible) { + setVisibility(View.VISIBLE); + } if (mPopup != null) { ((ViewGroup) mParent).removeView(mPopup); mPopup = null; |