diff options
Diffstat (limited to 'src/com/android/camera/CaptureModule.java')
-rw-r--r-- | src/com/android/camera/CaptureModule.java | 295 |
1 files changed, 171 insertions, 124 deletions
diff --git a/src/com/android/camera/CaptureModule.java b/src/com/android/camera/CaptureModule.java index 770da35ed..c541dd4d0 100644 --- a/src/com/android/camera/CaptureModule.java +++ b/src/com/android/camera/CaptureModule.java @@ -68,6 +68,7 @@ import android.view.KeyEvent; import android.view.OrientationEventListener; import android.view.Surface; import android.view.SurfaceHolder; +import android.view.SurfaceView; import android.view.View; import android.widget.Toast; @@ -80,6 +81,7 @@ import com.android.camera.imageprocessor.filter.SharpshooterFilter; import com.android.camera.ui.CountDownView; import com.android.camera.ui.ModuleSwitcher; import com.android.camera.ui.RotateTextToast; +import com.android.camera.ui.TrackingFocusRenderer; import com.android.camera.util.CameraUtil; import com.android.camera.util.PersistUtil; import com.android.camera.util.SettingTranslation; @@ -199,6 +201,7 @@ public class CaptureModule implements CameraModule, PhotoController, private CameraCharacteristics mMainCameraCharacteristics; private int mDisplayRotation; private int mDisplayOrientation; + private boolean mIsRefocus = false; /** * A {@link CameraCaptureSession } for camera preview. @@ -216,7 +219,6 @@ public class CaptureModule implements CameraModule, PhotoController, */ private PostProcessor mPostProcessor; private FrameProcessor mFrameProcessor; - private Size mFrameProcPreviewOutputSize; private CaptureResult mPreviewCaptureResult; private Face[] mPreviewFaces = null; private Face[] mStickyFaces = null; @@ -240,7 +242,6 @@ public class CaptureModule implements CameraModule, PhotoController, private CameraCaptureSession mCurrentSession; private Size mPreviewSize; private Size mPictureSize; - private Size mVideoPreviewSize; private Size mVideoSize; private Size mVideoSnapshotSize; @@ -398,13 +399,14 @@ public class CaptureModule implements CameraModule, PhotoController, }); mFirstPreviewLoaded = true; } - - Face[] faces = result.get(CaptureResult.STATISTICS_FACES); - mPreviewFaces = faces; - if(faces != null && faces.length != 0) { - mStickyFaces = faces; + if (id == getMainCameraId()) { + Face[] faces = result.get(CaptureResult.STATISTICS_FACES); + mPreviewFaces = faces; + if (faces != null && faces.length != 0) { + mStickyFaces = faces; + } + mPreviewCaptureResult = result; } - mPreviewCaptureResult = result; updateCaptureStateMachine(id, result); } @@ -705,7 +707,9 @@ public class CaptureModule implements CameraModule, PhotoController, } // When the session is ready, we start displaying the preview. mCaptureSession[id] = cameraCaptureSession; - mCurrentSession = cameraCaptureSession; + if(id == getMainCameraId()) { + mCurrentSession = cameraCaptureSession; + } initializePreviewConfiguration(id); setDisplayOrientation(); updateFaceDetection(); @@ -727,7 +731,7 @@ public class CaptureModule implements CameraModule, PhotoController, @Override public void onConfigureFailed(CameraCaptureSession cameraCaptureSession) { - Log.e(TAG, "cameracapturesession - onConfigureFailed"); + Log.e(TAG, "cameracapturesession - onConfigureFailed "+id); new AlertDialog.Builder(mActivity) .setTitle("Camera Initialization Failed") .setMessage("Closing SnapdragonCamera") @@ -748,6 +752,11 @@ public class CaptureModule implements CameraModule, PhotoController, } }; + if(id == getMainCameraId()) { + mFrameProcessor.init(mPreviewSize); + mFrameProcessor.setOutputSurface(surface); + } + if(isClearSightOn()) { mPreviewRequestBuilder[id].addTarget(surface); list.add(surface); @@ -755,16 +764,17 @@ public class CaptureModule implements CameraModule, PhotoController, id == BAYER_ID, mCameraDevice[id], list, captureSessionCallback); } else if (id == getMainCameraId()) { if(mFrameProcessor.isFrameFilterEnabled()) { - mFrameProcessor.init(mFrameProcPreviewOutputSize); mActivity.runOnUiThread(new Runnable() { public void run() { - mUI.getSurfaceHolder().setFixedSize(mFrameProcPreviewOutputSize.getHeight(), mFrameProcPreviewOutputSize.getWidth()); + mUI.getSurfaceHolder().setFixedSize(mPreviewSize.getHeight(), mPreviewSize.getWidth()); } }); } - mFrameProcessor.setOutputSurface(surface); - mPreviewRequestBuilder[id].addTarget(mFrameProcessor.getInputSurface()); - list.add(mFrameProcessor.getInputSurface()); + List<Surface> surfaces = mFrameProcessor.getInputSurfaces(); + for(Surface surs : surfaces) { + mPreviewRequestBuilder[id].addTarget(surs); + list.add(surs); + } list.add(mImageReader[id].getSurface()); mCameraDevice[id].createCaptureSession(list, captureSessionCallback, null); } else { @@ -778,11 +788,23 @@ public class CaptureModule implements CameraModule, PhotoController, } } - private void setAFModeToPreview(int id, int afMode) { + public void setAFModeToPreview(int id, int afMode) { Log.d(TAG, "setAFModeToPreview " + afMode); mPreviewRequestBuilder[id].set(CaptureRequest.CONTROL_AF_MODE, afMode); applyAFRegions(mPreviewRequestBuilder[id], id); applyAERegions(mPreviewRequestBuilder[id], id); + mPreviewRequestBuilder[id].setTag(id); + try { + mCaptureSession[id].setRepeatingRequest(mPreviewRequestBuilder[id] + .build(), mCaptureCallback, mCameraHandler); + } catch (CameraAccessException e) { + e.printStackTrace(); + } + } + + public void setFocusDistanceToPreview(int id, float fd) { + mPreviewRequestBuilder[id].set(CaptureRequest.LENS_FOCUS_DISTANCE, fd); + mPreviewRequestBuilder[id].setTag(id); try { mCaptureSession[id].setRepeatingRequest(mPreviewRequestBuilder[id] .build(), mCaptureCallback, mCameraHandler); @@ -796,6 +818,10 @@ public class CaptureModule implements CameraModule, PhotoController, mSettingsManager.reinit(getMainCameraId()); } + public boolean isRefocus() { + return mIsRefocus; + } + public boolean getRecordLocation() { String value = mSettingsManager.getValue(SettingsManager.KEY_RECORD_LOCATION); if (value == null) value = RecordLocationPreference.VALUE_NONE; @@ -879,7 +905,7 @@ public class CaptureModule implements CameraModule, PhotoController, CaptureRequest.Builder builder = mCameraDevice[id].createCaptureRequest(CameraDevice .TEMPLATE_PREVIEW); builder.setTag(id); - builder.addTarget(getPreviewSurface(id)); + addPreviewSurface(builder, null, id); applySettingsForLockFocus(builder, id); CaptureRequest request = builder.build(); @@ -901,7 +927,7 @@ public class CaptureModule implements CameraModule, PhotoController, CaptureRequest.Builder builder = mCameraDevice[id].createCaptureRequest(CameraDevice .TEMPLATE_PREVIEW); builder.setTag(id); - builder.addTarget(getPreviewSurface(id)); + addPreviewSurface(builder, null, id); mControlAFMode = CaptureRequest.CONTROL_AF_MODE_AUTO; applySettingsForAutoFocus(builder, id); @@ -936,9 +962,32 @@ public class CaptureModule implements CameraModule, PhotoController, mPreviewRequestBuilder[id].set(BayerMonoLinkEnableKey, (byte) 0); } } - private void captureStillPicture(final int id) { Log.d(TAG, "captureStillPicture " + id); + mIsRefocus = false; + CameraCaptureSession.CaptureCallback captureCallback = new CameraCaptureSession.CaptureCallback() { + + @Override + public void onCaptureCompleted(CameraCaptureSession session, + CaptureRequest request, + TotalCaptureResult result) { + Log.d(TAG, "captureStillPicture onCaptureCompleted: " + id); + } + + @Override + public void onCaptureFailed(CameraCaptureSession session, + CaptureRequest request, + CaptureFailure result) { + Log.d(TAG, "captureStillPicture onCaptureFailed: " + id); + } + + @Override + public void onCaptureSequenceCompleted(CameraCaptureSession session, int + sequenceId, long frameNumber) { + Log.d(TAG, "captureStillPicture onCaptureSequenceCompleted: " + id); + unlockFocus(id); + } + }; try { if (null == mActivity || null == mCameraDevice[id]) { warningToast("Camera is not ready yet to take a picture."); @@ -957,7 +1006,7 @@ public class CaptureModule implements CameraModule, PhotoController, captureBuilder.set(CaptureRequest.JPEG_ORIENTATION, CameraUtil.getJpegRotation(id, mOrientation)); captureBuilder.set(CaptureRequest.CONTROL_MODE, CaptureRequest.CONTROL_MODE_AUTO); - captureBuilder.addTarget(getPreviewSurface(id)); + addPreviewSurface(captureBuilder, null, id); captureBuilder.set(CaptureRequest.CONTROL_AF_MODE, mControlAFMode); captureBuilder.set(CaptureRequest.CONTROL_AF_TRIGGER, CaptureRequest.CONTROL_AF_TRIGGER_IDLE); applySettingsForCapture(captureBuilder, id); @@ -966,31 +1015,14 @@ public class CaptureModule implements CameraModule, PhotoController, ClearSightImageProcessor.getInstance().capture( id==BAYER_ID, mCaptureSession[id], captureBuilder, mCaptureCallbackHandler); } else if(id == getMainCameraId() && mPostProcessor.isFilterOn()) { + mCaptureSession[id].stopRepeating(); captureBuilder.addTarget(mImageReader[id].getSurface()); - List<CaptureRequest> captureList = mPostProcessor.setRequiredImages(captureBuilder); - mCaptureSession[id].captureBurst(captureList, new CameraCaptureSession.CaptureCallback() { - - @Override - public void onCaptureCompleted(CameraCaptureSession session, - CaptureRequest request, - TotalCaptureResult result) { - Log.d(TAG, "captureStillPicture onCaptureCompleted: " + id); - } - - @Override - public void onCaptureFailed(CameraCaptureSession session, - CaptureRequest request, - CaptureFailure result) { - Log.d(TAG, "captureStillPicture onCaptureFailed: " + id); - } - - @Override - public void onCaptureSequenceCompleted(CameraCaptureSession session, int - sequenceId, long frameNumber) { - Log.d(TAG, "captureStillPicture onCaptureSequenceCompleted: " + id); - unlockFocus(id); - } - }, mCaptureCallbackHandler); + if(mPostProcessor.isManualMode()) { + mPostProcessor.manualCapture(captureBuilder, mCaptureSession[id], captureCallback, mCaptureCallbackHandler); + } else { + List<CaptureRequest> captureList = mPostProcessor.setRequiredImages(captureBuilder); + mCaptureSession[id].captureBurst(captureList, captureCallback, mCaptureCallbackHandler); + } } else { captureBuilder.addTarget(mImageReader[id].getSurface()); mCaptureSession[id].stopRepeating(); @@ -1129,7 +1161,7 @@ public class CaptureModule implements CameraModule, PhotoController, CaptureRequest.Builder builder = mCameraDevice[id].createCaptureRequest(CameraDevice .TEMPLATE_PREVIEW); builder.setTag(id); - builder.addTarget(getPreviewSurface(id)); + addPreviewSurface(builder, null, id); applySettingsForPrecapture(builder, id); CaptureRequest request = builder.build(); mPrecaptureRequestHashCode[id] = request.hashCode(); @@ -1140,36 +1172,6 @@ public class CaptureModule implements CameraModule, PhotoController, } } - private void determineFrameProcPreviewOutputSize(List<Size> sizeList, float targetRatio) { - Display display = mActivity.getWindowManager().getDefaultDisplay(); - Point ds = new Point(); - display.getSize(ds); - int i=0, j=0, width, height; - float ratio; - for(; i < sizeList.size(); i++) { - width = sizeList.get(i).getHeight(); - height = sizeList.get(i).getWidth(); - ratio = (float)height/width; - if(ds.x >= width || ds.y >= height) { - if(j == 0) { - j = i; - } - if(ratio < targetRatio + 0.2f && ratio > targetRatio - 0.2f) { - break; - } - } - } - if(i == sizeList.size()) { - if(j != 0) { - mFrameProcPreviewOutputSize = sizeList.get(j); - } else { - mFrameProcPreviewOutputSize = sizeList.get(sizeList.size()-1); - } - } else { - mFrameProcPreviewOutputSize = sizeList.get(i); - } - } - public CameraCharacteristics getMainCameraCharacteristics() { return mMainCameraCharacteristics; } @@ -1203,19 +1205,6 @@ public class CaptureModule implements CameraModule, PhotoController, } mCameraId[i] = cameraId; - if (i == getMainCameraId()) { - String pictureSize = mSettingsManager.getValue(SettingsManager - .KEY_PICTURE_SIZE); - - Size size = parsePictureSize(pictureSize); - - Point screenSize = new Point(); - mActivity.getWindowManager().getDefaultDisplay().getSize(screenSize); - Size[] prevSizes = map.getOutputSizes(imageFormat); - mFrameProcPreviewOutputSize = getOptimalPreviewSize(size, prevSizes, screenSize.x, - screenSize.y); - } - if (isClearSightOn()) { if(i == getMainCameraId()) { ClearSightImageProcessor.getInstance().init(mPictureSize.getWidth(), @@ -1226,12 +1215,9 @@ public class CaptureModule implements CameraModule, PhotoController, // No Clearsight mImageReader[i] = ImageReader.newInstance(mPictureSize.getWidth(), mPictureSize.getHeight(), imageFormat, MAX_IMAGE_NUM); - if(mPostProcessor.isFilterOn() && i == getMainCameraId()) { + if((mPostProcessor.isFilterOn() || getFrameFilters().size() != 0) + && i == getMainCameraId()) { mImageReader[i].setOnImageAvailableListener(mPostProcessor, mImageAvailableHandler); -// if(mFrameProcessor.isFrameFilterEnabled()) { -// determineFrameProcPreviewOutputSize(Arrays.asList(map.getOutputSizes(imageFormat)), -// (float) size.getWidth() / (float) size.getHeight()); -// } } else { mImageReader[i].setOnImageAvailableListener(new ImageAvailableListener(i) { @Override @@ -1306,7 +1292,7 @@ public class CaptureModule implements CameraModule, PhotoController, CaptureRequest.Builder builder = mCameraDevice[id].createCaptureRequest(CameraDevice .TEMPLATE_PREVIEW); builder.setTag(id); - builder.addTarget(getPreviewSurface(id)); + addPreviewSurface(builder, null, id); applySettingsForUnlockFocus(builder, id); mCaptureSession[id].capture(builder.build(), mCaptureCallback, mCameraHandler); @@ -1571,20 +1557,36 @@ public class CaptureModule implements CameraModule, PhotoController, } private ArrayList<Integer> getFrameProcFilterId() { - String scene = mSettingsManager.getValue(SettingsManager.KEY_MAKEUP); ArrayList<Integer> filters = new ArrayList<Integer>(); + + String scene = mSettingsManager.getValue(SettingsManager.KEY_MAKEUP); if(scene != null && scene.equalsIgnoreCase("on")) { filters.add(FrameProcessor.FILTER_MAKEUP); } + String trackingFocus = mSettingsManager.getValue(SettingsManager.KEY_TRACKINGFOCUS); + if(trackingFocus != null && trackingFocus.equalsIgnoreCase("on")) { + filters.add(FrameProcessor.LISTENER_TRACKING_FOCUS); + } return filters; } + public void setRefocusLastTaken(final boolean value) { + mIsRefocus = value; + mActivity.runOnUiThread(new Runnable() { + public void run() { + mUI.showRefocusToast(value); + } + }); + } + private int getPostProcFilterId(int mode) { if (mode == SettingsManager.SCENE_MODE_OPTIZOOM_INT) { return PostProcessor.FILTER_OPTIZOOM; } else if (mode == SettingsManager.SCENE_MODE_NIGHT_INT && SharpshooterFilter.isSupportedStatic()) { return PostProcessor.FILTER_SHARPSHOOTER; + } else if (mode == SettingsManager.SCENE_MODE_UBIFOCUS_INT) { + return PostProcessor.FILTER_UBIFOCUS; } return PostProcessor.FILTER_NONE; } @@ -1620,7 +1622,7 @@ public class CaptureModule implements CameraModule, PhotoController, mFrameProcessor.onOpen(getFrameProcFilterId()); } - if(mPostProcessor.isFilterOn()) { + if(mPostProcessor.isFilterOn() || getFrameFilters().size() != 0) { setUpCameraOutputs(ImageFormat.YUV_420_888); } else { setUpCameraOutputs(ImageFormat.JPEG); @@ -2007,11 +2009,6 @@ public class CaptureModule implements CameraModule, PhotoController, private void updateVideoSize() { String videoSize = mSettingsManager.getValue(SettingsManager.KEY_VIDEO_QUALITY); mVideoSize = parsePictureSize(videoSize); - Point screenSize = new Point(); - mActivity.getWindowManager().getDefaultDisplay().getSize(screenSize); - Size[] prevSizes = mSettingsManager.getSupportedOutputSize(getMainCameraId(), - MediaRecorder.class); - mVideoPreviewSize = getOptimalPreviewSize(mVideoSize, prevSizes, screenSize.x, screenSize.y); } private void updateVideoSnapshotSize() { @@ -2049,8 +2046,8 @@ public class CaptureModule implements CameraModule, PhotoController, mState[cameraId] = STATE_PREVIEW; mControlAFMode = CaptureRequest.CONTROL_AF_MODE_CONTINUOUS_PICTURE; closePreviewSession(); - boolean changed = mUI.setPreviewSize(mVideoPreviewSize.getWidth(), mVideoPreviewSize - .getHeight()); + mFrameProcessor.onClose(); + boolean changed = mUI.setPreviewSize(mVideoSize.getWidth(), mVideoSize.getHeight()); if (changed) { mUI.hideSurfaceView(); mUI.showSurfaceView(); @@ -2063,11 +2060,18 @@ public class CaptureModule implements CameraModule, PhotoController, .createCaptureRequest(CameraDevice.TEMPLATE_RECORD); List<Surface> surfaces = new ArrayList<>(); - Surface previewSurface = getPreviewSurface(cameraId); - surfaces.add(previewSurface); - mPreviewBuilder.addTarget(previewSurface); - surfaces.add(mMediaRecorder.getSurface()); - mPreviewBuilder.addTarget(mMediaRecorder.getSurface()); + Surface surface = getPreviewSurfaceForSession(cameraId); + mFrameProcessor.init(mVideoSize); + if(mFrameProcessor.isFrameFilterEnabled()) { + mActivity.runOnUiThread(new Runnable() { + public void run() { + mUI.getSurfaceHolder().setFixedSize(mVideoSize.getHeight(), mVideoSize.getWidth()); + } + }); + } + mFrameProcessor.setOutputSurface(surface); + mFrameProcessor.setVideoOutputSurface(mMediaRecorder.getSurface()); + addPreviewSurface(mPreviewBuilder, surfaces, cameraId); surfaces.add(mVideoSnapshotImageReader.getSurface()); mCameraDevice[cameraId].createCaptureSession(surfaces, new CameraCaptureSession @@ -2243,12 +2247,13 @@ public class CaptureModule implements CameraModule, PhotoController, Log.d(TAG, "stopRecordingVideo " + cameraId); // Stop recording + mFrameProcessor.onClose(); + mFrameProcessor.setVideoOutputSurface(null); closePreviewSession(); mMediaRecorder.stop(); mMediaRecorder.reset(); saveVideo(); - mUI.showRecordingUI(false); mIsRecordingVideo = false; boolean changed = mUI.setPreviewSize(mPreviewSize.getWidth(), mPreviewSize.getHeight()); @@ -2356,9 +2361,13 @@ public class CaptureModule implements CameraModule, PhotoController, String fileName = generateVideoFilename(outputFormat); Log.v(TAG, "New video filename: " + fileName); mMediaRecorder.setOutputFile(fileName); - mMediaRecorder.setVideoEncodingBitRate(mProfile.videoBitRate); mMediaRecorder.setVideoFrameRate(mProfile.videoFrameRate); - mMediaRecorder.setVideoSize(mProfile.videoFrameWidth, mProfile.videoFrameHeight); + mMediaRecorder.setVideoEncodingBitRate(mProfile.videoBitRate); + if(mFrameProcessor.isFrameFilterEnabled()) { + mMediaRecorder.setVideoSize(mProfile.videoFrameHeight, mProfile.videoFrameWidth); + } else { + mMediaRecorder.setVideoSize(mProfile.videoFrameWidth, mProfile.videoFrameHeight); + } mMediaRecorder.setVideoEncoder(videoEncoder); if (!mCaptureTimeLapse) { mMediaRecorder.setAudioEncodingBitRate(mProfile.audioBitRate); @@ -2382,7 +2391,11 @@ public class CaptureModule implements CameraModule, PhotoController, rotation += Integer.parseInt(videoRotation); rotation = rotation % 360; } - mMediaRecorder.setOrientationHint(rotation); + if(mFrameProcessor.isFrameFilterEnabled()) { + mMediaRecorder.setOrientationHint(0); + } else { + mMediaRecorder.setOrientationHint(rotation); + } mMediaRecorder.prepare(); } @@ -2417,7 +2430,8 @@ public class CaptureModule implements CameraModule, PhotoController, if (seconds > 0) { mUI.startCountDown(seconds, true); } else { - if (mPostProcessor.isFilterOn() && mPostProcessor.isItBusy()) { + if((mPostProcessor.isFilterOn() || getFrameFilters().size() != 0) + && mPostProcessor.isItBusy()) { warningToast("It's still busy processing previous scene mode request."); return; } @@ -2716,22 +2730,29 @@ public class CaptureModule implements CameraModule, PhotoController, } } - private Surface getPreviewSurface(int id) { - if (isBackCamera()) { - if (getCameraMode() == DUAL_MODE && id == MONO_ID) { - return mUI.getSurfaceHolder2().getSurface(); - } else { - return mFrameProcessor.getInputSurface(); + private void addPreviewSurface(CaptureRequest.Builder builder, List<Surface> surfaceList, int id) { + if (isBackCamera() && getCameraMode() == DUAL_MODE && id == MONO_ID) { + if(surfaceList != null) { + surfaceList.add(mUI.getMonoDummySurface()); } + builder.addTarget(mUI.getMonoDummySurface()); + return; } else { - return mFrameProcessor.getInputSurface(); + List<Surface> surfaces = mFrameProcessor.getInputSurfaces(); + for(Surface surface : surfaces) { + if(surfaceList != null) { + surfaceList.add(surface); + } + builder.addTarget(surface); + } + return; } } private Surface getPreviewSurfaceForSession(int id) { if (isBackCamera()) { if (getCameraMode() == DUAL_MODE && id == MONO_ID) { - return mUI.getSurfaceHolder2().getSurface(); + return mUI.getMonoDummySurface(); } else { return mUI.getSurfaceHolder().getSurface(); } @@ -2819,6 +2840,23 @@ public class CaptureModule implements CameraModule, PhotoController, mDisplayOrientation = CameraUtil.getDisplayOrientation(mDisplayRotation, getMainCameraId()); } + private void checkVideoSizeDependency() { + String makeup = mSettingsManager.getValue(SettingsManager.KEY_MAKEUP); + if(makeup.equalsIgnoreCase("on")) { + if(mVideoSize.getWidth() > 640 || mVideoSize.getHeight() > 480) { + mActivity.runOnUiThread(new Runnable() { + public void run() { + RotateTextToast.makeText(mActivity, R.string.makeup_video_size_limit, Toast.LENGTH_SHORT).show(); + } + }); + mSettingsManager.setValue(mSettingsManager.KEY_VIDEO_QUALITY, "640x480"); + } + mSettingsManager.updateVideoQualityMenu(getMainCameraId(), 640, 480); + } else { + mSettingsManager.updateVideoQualityMenu(getMainCameraId(), -1, -1); + } + } + @Override public void onSettingsChanged(List<SettingsManager.SettingState> settings) { if (mPaused) return; @@ -2872,7 +2910,11 @@ public class CaptureModule implements CameraModule, PhotoController, if (count == 0) restart(); return; case SettingsManager.KEY_MAKEUP: - restart(); + if (count == 0) restart(); + checkVideoSizeDependency(); + return; + case SettingsManager.KEY_TRACKINGFOCUS: + if (count == 0) restart(); return; case SettingsManager.KEY_SCENE_MODE: if (count == 0 && checkNeedToRestart(value)) { @@ -2946,8 +2988,9 @@ public class CaptureModule implements CameraModule, PhotoController, private boolean checkNeedToRestart(String value) { mPostProcessor.setFilter(PostProcessor.FILTER_NONE); int mode = Integer.parseInt(value); - if (getPostProcFilterId(mode) != PostProcessor.FILTER_NONE) + if (getPostProcFilterId(mode) != PostProcessor.FILTER_NONE) { return true; + } if (value.equals(SettingsManager.SCENE_MODE_DUAL_STRING) && mCurrentMode != DUAL_MODE) return true; if (!value.equals(SettingsManager.SCENE_MODE_DUAL_STRING) && mCurrentMode == DUAL_MODE) @@ -2995,7 +3038,7 @@ public class CaptureModule implements CameraModule, PhotoController, private Size getMaxSizeWithRatio(Size[] sizes, Size reference) { float ratio = (float) reference.getWidth() / reference.getHeight(); - for (Size size: sizes) { + for (Size size : sizes) { float prevRatio = (float) size.getWidth() / size.getHeight(); if (Math.abs(prevRatio - ratio) < 0.01) { return size; @@ -3004,6 +3047,10 @@ public class CaptureModule implements CameraModule, PhotoController, return sizes[0]; } + public TrackingFocusRenderer getTrackingForcusRenderer() { + return mUI.getTrackingFocusRenderer(); + } + /** * Compares two {@code Size}s based on their areas. */ |