diff options
author | jinwu <jinwu@codeaurora.org> | 2017-12-15 19:25:42 +0800 |
---|---|---|
committer | jinwu <jinwu@codeaurora.org> | 2017-12-25 11:05:45 +0800 |
commit | b29d908a2fcf3dfd24846269fea2d45c057ae4ba (patch) | |
tree | 5c04bcd75142b78915084ccfbeaff36cc896401c /src | |
parent | 7680c51aaa84db22367e442c605c136bc82e33bd (diff) | |
download | android_packages_apps_Snap-b29d908a2fcf3dfd24846269fea2d45c057ae4ba.tar.gz android_packages_apps_Snap-b29d908a2fcf3dfd24846269fea2d45c057ae4ba.tar.bz2 android_packages_apps_Snap-b29d908a2fcf3dfd24846269fea2d45c057ae4ba.zip |
Add SWITCH MODE
When using switch camers by id in Dev Option,add this mode
to avoid conflict camera ids issue.
Change-Id: Ib0bef784648c0b76a5cb122eaed9859d724a899f
Diffstat (limited to 'src')
-rwxr-xr-x | src/com/android/camera/CaptureModule.java | 75 | ||||
-rwxr-xr-x | src/com/android/camera/SettingsManager.java | 4 |
2 files changed, 59 insertions, 20 deletions
diff --git a/src/com/android/camera/CaptureModule.java b/src/com/android/camera/CaptureModule.java index 4fa1de0ea..f30b0a335 100755 --- a/src/com/android/camera/CaptureModule.java +++ b/src/com/android/camera/CaptureModule.java @@ -139,10 +139,11 @@ public class CaptureModule implements CameraModule, PhotoController, public static final int DUAL_MODE = 0; public static final int BAYER_MODE = 1; public static final int MONO_MODE = 2; + public static final int SWITCH_MODE = 3; public static final int BAYER_ID = 0; public static int MONO_ID = -1; public static int FRONT_ID = -1; - public static int LOGICAL_ID = -1; + public static int SWITCH_ID = -1; public static final int INTENT_MODE_NORMAL = 0; public static final int INTENT_MODE_CAPTURE = 1; public static final int INTENT_MODE_VIDEO = 2; @@ -662,8 +663,10 @@ public class CaptureModule implements CameraModule, PhotoController, public void onError(CameraDevice cameraDevice, int error) { int id = Integer.parseInt(cameraDevice.getId()); Log.e(TAG, "onError " + id + " " + error); - cameraDevice.close(); - mCameraDevice[id] = null; + if (mCamerasOpened) { + mCameraDevice[id].close(); + mCameraDevice[id] = null; + } mCameraOpenCloseLock.release(); mCamerasOpened = false; @@ -833,7 +836,13 @@ public class CaptureModule implements CameraModule, PhotoController, public boolean isBackCamera() { String switchValue = mSettingsManager.getValue(SettingsManager.KEY_SWITCH_CAMERA); - if (switchValue != null && !switchValue.equals("-1") ) return false; + if (switchValue != null && !switchValue.equals("-1") ) { + CharSequence[] value = mSettingsManager.getEntryValues(SettingsManager.KEY_SWITCH_CAMERA); + if (value.toString().contains("front")) + return false; + else + return true; + } String value = mSettingsManager.getValue(SettingsManager.KEY_CAMERA_ID); if (value == null) return true; if (Integer.parseInt(value) == BAYER_ID) return true; @@ -841,6 +850,10 @@ public class CaptureModule implements CameraModule, PhotoController, } public int getCameraMode() { + String switchValue = mSettingsManager.getValue(SettingsManager.KEY_SWITCH_CAMERA); + if (switchValue != null && !switchValue.equals("-1") ) { + return SWITCH_MODE; + } String value = mSettingsManager.getValue(SettingsManager.KEY_SCENE_MODE); if (value != null && value.equals(SettingsManager.SCENE_MODE_DUAL_STRING)) return DUAL_MODE; value = mSettingsManager.getValue(SettingsManager.KEY_MONO_ONLY); @@ -990,9 +1003,12 @@ public class CaptureModule implements CameraModule, PhotoController, case MONO_MODE: createSession(MONO_ID); break; + case SWITCH_MODE: + createSession(SWITCH_ID); + break; } } else { - int cameraId = LOGICAL_ID == -1? FRONT_ID : LOGICAL_ID; + int cameraId = SWITCH_ID == -1? FRONT_ID : SWITCH_ID; createSession(cameraId); } } @@ -1346,9 +1362,12 @@ public class CaptureModule implements CameraModule, PhotoController, case MONO_MODE: lockFocus(MONO_ID); break; + case SWITCH_MODE: + lockFocus(SWITCH_ID); + break; } } else { - int cameraId = LOGICAL_ID == -1? FRONT_ID : LOGICAL_ID; + int cameraId = SWITCH_ID == -1? FRONT_ID : SWITCH_ID; if(takeZSLPicture(cameraId)) { return; } @@ -1381,9 +1400,12 @@ public class CaptureModule implements CameraModule, PhotoController, case MONO_MODE: cameraId = MONO_ID; break; + case SWITCH_MODE: + cameraId = SWITCH_ID; + break; } } else { - cameraId = LOGICAL_ID == -1? FRONT_ID : LOGICAL_ID; + cameraId = SWITCH_ID == -1? FRONT_ID : SWITCH_ID; } captureStillPicture(cameraId); } @@ -2527,9 +2549,13 @@ public class CaptureModule implements CameraModule, PhotoController, msg.arg1 = MONO_ID; mCameraHandler.sendMessage(msg); break; + case SWITCH_MODE: + msg.arg1 = SWITCH_ID; + mCameraHandler.sendMessage(msg); + break; } } else { - int cameraId = LOGICAL_ID == -1? FRONT_ID : LOGICAL_ID; + int cameraId = SWITCH_ID == -1? FRONT_ID : SWITCH_ID; msg.arg1 = cameraId; mCameraHandler.sendMessage(msg); } @@ -2671,9 +2697,12 @@ public class CaptureModule implements CameraModule, PhotoController, case MONO_MODE: applyZoomAndUpdate(MONO_ID); break; + case SWITCH_MODE: + applyZoomAndUpdate(SWITCH_ID); + break; } } else { - int cameraId = LOGICAL_ID == -1? FRONT_ID : LOGICAL_ID; + int cameraId = SWITCH_ID == -1? FRONT_ID : SWITCH_ID; applyZoomAndUpdate(cameraId); } mUI.updateFaceViewCameraBound(mCropRegion[getMainCameraId()]); @@ -2688,9 +2717,11 @@ public class CaptureModule implements CameraModule, PhotoController, return cameraId == BAYER_ID; case MONO_MODE: return cameraId == MONO_ID; + case SWITCH_MODE: + return cameraId == SWITCH_ID; } - } else if (LOGICAL_ID != -1) { - return cameraId == LOGICAL_ID; + } else if (SWITCH_ID != -1) { + return cameraId == SWITCH_ID; } else { return cameraId == FRONT_ID; } @@ -2857,9 +2888,12 @@ public class CaptureModule implements CameraModule, PhotoController, case MONO_MODE: triggerFocusAtPoint(x, y, MONO_ID); break; + case SWITCH_MODE: + triggerFocusAtPoint(x, y, SWITCH_ID); + break; } } else { - int cameraId = LOGICAL_ID == -1? FRONT_ID : LOGICAL_ID; + int cameraId = SWITCH_ID == -1? FRONT_ID : SWITCH_ID; triggerFocusAtPoint(x, y, cameraId); } } @@ -2872,10 +2906,12 @@ public class CaptureModule implements CameraModule, PhotoController, return BAYER_ID; case MONO_MODE: return MONO_ID; + case SWITCH_MODE: + return SWITCH_ID; } return 0; } else { - int cameraId = LOGICAL_ID == -1? FRONT_ID : LOGICAL_ID; + int cameraId = SWITCH_ID == -1? FRONT_ID : SWITCH_ID; return cameraId; } } @@ -4802,9 +4838,12 @@ public class CaptureModule implements CameraModule, PhotoController, updatePreviewBayer |= applyPreferenceToPreview(BAYER_ID, key, value); updatePreviewMono |= applyPreferenceToPreview(MONO_ID, key, value); break; + case SWITCH_MODE: + updatePreviewMono |= applyPreferenceToPreview(SWITCH_ID, key, value); + break; } - } else if (LOGICAL_ID != -1) { - updatePreviewLogical = applyPreferenceToPreview(LOGICAL_ID,key,value); + } else if (SWITCH_ID != -1) { + updatePreviewLogical = applyPreferenceToPreview(SWITCH_ID,key,value); }else { updatePreviewFront |= applyPreferenceToPreview(FRONT_ID, key, value); } @@ -4851,9 +4890,9 @@ public class CaptureModule implements CameraModule, PhotoController, if (updatePreviewLogical) { try { - if (checkSessionAndBuilder(mCaptureSession[LOGICAL_ID], - mPreviewRequestBuilder[LOGICAL_ID])) { - mCaptureSession[LOGICAL_ID].setRepeatingRequest(mPreviewRequestBuilder[LOGICAL_ID] + if (checkSessionAndBuilder(mCaptureSession[SWITCH_ID], + mPreviewRequestBuilder[SWITCH_ID])) { + mCaptureSession[SWITCH_ID].setRepeatingRequest(mPreviewRequestBuilder[SWITCH_ID] .build(), mCaptureCallback, mCameraHandler); } } catch (CameraAccessException | IllegalStateException e) { diff --git a/src/com/android/camera/SettingsManager.java b/src/com/android/camera/SettingsManager.java index 0e42dfbfc..5c3a2c7bd 100755 --- a/src/com/android/camera/SettingsManager.java +++ b/src/com/android/camera/SettingsManager.java @@ -620,8 +620,8 @@ public class SettingsManager implements ListMenu.SettingsListener { public int getInitialCameraId(SharedPreferences pref) { int switchId = Integer.parseInt( pref.getString(SettingsManager.KEY_SWITCH_CAMERA,"-1")); - CaptureModule.LOGICAL_ID = switchId; - Log.d(TAG,"LOGICAL_ID = " + switchId); + CaptureModule.SWITCH_ID = switchId; + Log.d(TAG,"SWITCH_ID = " + switchId); if (switchId != -1) return switchId; String value = pref.getString(SettingsManager.KEY_CAMERA_ID, "0"); int frontBackId = Integer.parseInt(value); |