summaryrefslogtreecommitdiffstats
path: root/src/com/android
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android')
-rw-r--r--src/com/android/camera/Camera.java8
-rw-r--r--src/com/android/camera/Util.java36
-rw-r--r--src/com/android/camera/VideoCamera.java7
3 files changed, 51 insertions, 0 deletions
diff --git a/src/com/android/camera/Camera.java b/src/com/android/camera/Camera.java
index f37df10..78e0ad0 100644
--- a/src/com/android/camera/Camera.java
+++ b/src/com/android/camera/Camera.java
@@ -941,7 +941,15 @@ public class Camera extends NoSearchActivity implements View.OnClickListener,
mPreferences = new ComboPreferences(this);
CameraSettings.upgradeGlobalPreferences(mPreferences.getGlobal());
+
mCameraId = CameraSettings.readPreferredCameraId(mPreferences);
+
+ //Testing purpose. Launch a specific camera through the intent extras.
+ int intentCameraId = Util.getCameraFacingIntentExtras(this);
+ if (intentCameraId != -1) {
+ mCameraId = intentCameraId;
+ }
+
mPreferences.setLocalId(this, mCameraId);
CameraSettings.upgradeLocalPreferences(mPreferences.getLocal());
diff --git a/src/com/android/camera/Util.java b/src/com/android/camera/Util.java
index 66c301b..77293e3 100644
--- a/src/com/android/camera/Util.java
+++ b/src/com/android/camera/Util.java
@@ -51,6 +51,10 @@ public class Util {
public static final String REVIEW_ACTION = "com.android.camera.action.REVIEW";
+ // Private intent extras. Test only.
+ public static final String EXTRAS_CAMERA_FACING =
+ "android.intent.extras.CAMERA_FACING";
+
private Util() {
}
@@ -408,4 +412,36 @@ public class Util {
}
return true;
}
+
+ // This is for test only. Allow the camera to launch the specific camera.
+ public static int getCameraFacingIntentExtras(Activity currentActivity) {
+ int cameraId = -1;
+
+ int intentCameraId =
+ currentActivity.getIntent().getIntExtra(Util.EXTRAS_CAMERA_FACING, -1);
+
+ if (isFrontCameraIntent(intentCameraId)) {
+ // Check if the front camera exist
+ int frontCameraId = CameraHolder.instance().getFrontCameraId();
+ if (frontCameraId != -1) {
+ cameraId = frontCameraId;
+ }
+ } else if (isBackCameraIntent(intentCameraId)) {
+ // Check if the back camera exist
+ int backCameraId = CameraHolder.instance().getBackCameraId();
+ if (backCameraId != -1) {
+ cameraId = backCameraId;
+ }
+ }
+ return cameraId;
+ }
+
+ private static boolean isFrontCameraIntent(int intentCameraId) {
+ return (intentCameraId == android.hardware.Camera.CameraInfo.CAMERA_FACING_FRONT);
+ }
+
+ private static boolean isBackCameraIntent(int intentCameraId) {
+ return (intentCameraId == android.hardware.Camera.CameraInfo.CAMERA_FACING_BACK);
+ }
+
}
diff --git a/src/com/android/camera/VideoCamera.java b/src/com/android/camera/VideoCamera.java
index 053b074..15f81ce 100644
--- a/src/com/android/camera/VideoCamera.java
+++ b/src/com/android/camera/VideoCamera.java
@@ -311,6 +311,13 @@ public class VideoCamera extends NoSearchActivity
mPreferences = new ComboPreferences(this);
CameraSettings.upgradeGlobalPreferences(mPreferences.getGlobal());
mCameraId = CameraSettings.readPreferredCameraId(mPreferences);
+
+ //Testing purpose. Launch a specific camera through the intent extras.
+ int intentCameraId = Util.getCameraFacingIntentExtras(this);
+ if (intentCameraId != -1) {
+ mCameraId = intentCameraId;
+ }
+
mPreferences.setLocalId(this, mCameraId);
CameraSettings.upgradeLocalPreferences(mPreferences.getLocal());