private boolean mHdrEnabled = false;
private FocusController mFocusController;
+ private OneCameraCharacteristics mCameraCharacteristics;
/** The listener to listen events from the CaptureModuleUI. */
private final CaptureModuleUI.CaptureModuleUIListener mUIListener =
}
@Override
- public void onThumbnailProcessingBegun() {
+ public void onThumbnailAvailable(final Bitmap thumbnailBitmap, final int rotation) {
+ // Call ripple effect when you know that you have the bitmap
+ // then update bitmap.
mMainHandler.post(new Runnable() {
@Override
public void run() {
mAppController.getCameraAppUI().startCaptureIndicatorRevealAnimation(
getPeekAccessibilityString());
- }
- });
- }
-
- @Override
- public void onThumbnailAvailable(final Bitmap thumbnailBitmap, final int rotation) {
- mMainHandler.post(new Runnable() {
- @Override
- public void run() {
mAppController.getCameraAppUI().updateCaptureIndicatorThumbnail(
thumbnailBitmap, rotation);
}
mMediaActionSound = new MediaActionSound();
}
+ private void updateCameraCharacteristics() {
+ try {
+ mCameraCharacteristics = mCameraManager.getCameraCharacteristics(mCameraFacing);
+ } catch (OneCameraAccessException ocae) {
+ mAppController.showErrorAndFinish(R.string.cannot_connect_camera);
+ return;
+ }
+ }
+
@Override
public void init(CameraActivity activity, boolean isSecureCamera, boolean isCaptureIntent) {
Log.d(TAG, "init");
mDisplayRotation = CameraUtil.getDisplayRotation();
mCameraFacing = getFacingFromCameraId(
mSettingsManager.getInteger(mAppController.getModuleScope(), Keys.KEY_CAMERA_ID));
+ updateCameraCharacteristics();
mUI = new CaptureModuleUI(activity, mAppController.getModuleLayoutRoot(), mUIListener);
mAppController.setPreviewStatusListener(mPreviewStatusListener);
@Override
public boolean isFlashSupported() {
- return true;
+ return mCameraCharacteristics.isFlashSupported();
}
};
}
Log.d(TAG, "Start to switch camera. cameraId=" + cameraId);
mCameraFacing = getFacingFromCameraId(cameraId);
+ updateCameraCharacteristics();
switchCamera();
}
};
} catch (InterruptedException e) {
throw new RuntimeException("Interrupted while waiting to acquire camera-open lock.", e);
}
- OneCameraCharacteristics cameraCharacteristics;
- try {
- cameraCharacteristics = mCameraManager.getCameraCharacteristics(mCameraFacing);
- } catch (OneCameraAccessException ocae) {
- mAppController.showErrorAndFinish(R.string.cannot_connect_camera);
- return;
- }
+
if (mCameraManager == null) {
Log.e(TAG, "no available OneCameraManager, showing error dialog");
mCameraOpenCloseLock.release();
// Derive objects necessary for camera creation.
MainThread mainThread = MainThread.create();
ImageRotationCalculator imageRotationCalculator = ImageRotationCalculatorImpl
- .from(cameraCharacteristics);
+ .from(mCameraCharacteristics);
// Only enable HDR on the back camera
boolean useHdr = mHdrEnabled && mCameraFacing == Facing.BACK;