diff options
Diffstat (limited to 'src/com/android/camera')
-rwxr-xr-x | src/com/android/camera/PhotoModule.java | 25 |
1 files changed, 24 insertions, 1 deletions
diff --git a/src/com/android/camera/PhotoModule.java b/src/com/android/camera/PhotoModule.java index b82490927..6770ed7cc 100755 --- a/src/com/android/camera/PhotoModule.java +++ b/src/com/android/camera/PhotoModule.java @@ -68,6 +68,7 @@ import android.widget.SeekBar.OnSeekBarChangeListener; import android.widget.LinearLayout; import android.widget.TextView; +import com.android.camera.app.CameraApp; import com.android.camera.CameraManager.CameraAFCallback; import com.android.camera.CameraManager.CameraAFMoveCallback; import com.android.camera.CameraManager.CameraPictureCallback; @@ -256,6 +257,8 @@ public class PhotoModule private byte[] mLastJpegData; private int mLastJpegOrientation = 0; + private static Context mApplicationContext; + private Runnable mDoSnapRunnable = new Runnable() { @Override public void run() { @@ -570,6 +573,7 @@ public class PhotoModule mCameraId = getPreferredCameraId(mPreferences); mContentResolver = mActivity.getContentResolver(); + mApplicationContext = CameraApp.getContext(); // Surface texture is from camera screen nail and startPreview needs it. // This must be done before startPreview. @@ -1377,6 +1381,26 @@ public class PhotoModule && (mCameraState != LONGSHOT) && (mSnapshotMode != CameraInfoWrapper.CAMERA_SUPPORT_MODE_ZSL) && (mReceivedSnapNum == mBurstSnapNum); + + CameraInfo info = CameraHolder.instance().getCameraInfo()[mCameraId]; + + final boolean isAuxCamera = info.facing > CameraInfo.CAMERA_FACING_FRONT; + final boolean isBackCamera = info.facing == CameraInfo.CAMERA_FACING_BACK; + final boolean isFrontCamera = info.facing == CameraInfo.CAMERA_FACING_FRONT; + final boolean auxCameraRestartPreviewOnPictureTaken = mApplicationContext + .getResources().getBoolean(R.bool.additional_camera_restart_preview_onPictureTaken); + final boolean backCameraRestartPreviewOnPictureTaken = mApplicationContext + .getResources().getBoolean(R.bool.back_camera_restart_preview_onPictureTaken); + final boolean frontCameraRestartPreviewOnPictureTaken = mApplicationContext + .getResources().getBoolean(R.bool.front_camera_restart_preview_onPictureTaken); + + if ((isAuxCamera && auxCameraRestartPreviewOnPictureTaken || + isBackCamera && backCameraRestartPreviewOnPictureTaken || + isFrontCamera && frontCameraRestartPreviewOnPictureTaken) && + mCameraState != LONGSHOT) { + needRestartPreview = true; + } + if (needRestartPreview) { setupPreview(); if (CameraUtil.FOCUS_MODE_CONTINUOUS_PICTURE.equals( @@ -1417,7 +1441,6 @@ public class PhotoModule .findPreference(CameraSettings.KEY_SELFIE_MIRROR); if (selfieMirrorPref != null && selfieMirrorPref.getValue() != null && selfieMirrorPref.getValue().equalsIgnoreCase("enable")) { - CameraInfo info = CameraHolder.instance().getCameraInfo()[mCameraId]; jpegData = flipJpeg(jpegData, info.orientation, orientation); jpegData = addExifTags(jpegData, orientation); } |