summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorjinwu <jinwu@codeaurora.org>2017-12-15 19:25:42 +0800
committerjinwu <jinwu@codeaurora.org>2017-12-25 11:05:45 +0800
commitb29d908a2fcf3dfd24846269fea2d45c057ae4ba (patch)
tree5c04bcd75142b78915084ccfbeaff36cc896401c /src
parent7680c51aaa84db22367e442c605c136bc82e33bd (diff)
downloadandroid_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-xsrc/com/android/camera/CaptureModule.java75
-rwxr-xr-xsrc/com/android/camera/SettingsManager.java4
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);