diff options
Diffstat (limited to 'src/com/android')
-rw-r--r-- | src/com/android/camera/Camera.java | 8 | ||||
-rw-r--r-- | src/com/android/camera/Util.java | 36 | ||||
-rw-r--r-- | src/com/android/camera/VideoCamera.java | 7 |
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()); |