summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVijay kumar Tumati <vtumati@codeaurora.org>2014-03-24 18:45:35 +0530
committerVijay kumar Tumati <vtumati@codeaurora.org>2014-03-26 12:08:08 +0530
commitefabd537a0f8904f90c4d92e0e6140cd951f0bab (patch)
tree70637d75b3e892ef39955bda76563fb0e922f87e
parent71e30d2eab51431b0a6c0a56cf39360dbd69bc14 (diff)
downloadandroid_packages_apps_Snap-efabd537a0f8904f90c4d92e0e6140cd951f0bab.tar.gz
android_packages_apps_Snap-efabd537a0f8904f90c4d92e0e6140cd951f0bab.tar.bz2
android_packages_apps_Snap-efabd537a0f8904f90c4d92e0e6140cd951f0bab.zip
Camera: Open back camera first irrespective of ID
On 8916, we see back camera probed with camera ID 1. We need to open back camera first in these cases as well. Change-Id: Ie3d71afc75ef92bbb95d748cd581252fb8294e1c
-rw-r--r--src/com/android/camera/CameraSettings.java7
-rw-r--r--src/com/android/camera/PhotoModule.java31
-rw-r--r--src/com/android/camera/VideoModule.java31
3 files changed, 67 insertions, 2 deletions
diff --git a/src/com/android/camera/CameraSettings.java b/src/com/android/camera/CameraSettings.java
index 60656cd08..267de2d55 100644
--- a/src/com/android/camera/CameraSettings.java
+++ b/src/com/android/camera/CameraSettings.java
@@ -704,12 +704,15 @@ public class CameraSettings {
int n = CameraHolder.instance().getNumberOfCameras();
if (cameraId < 0 || cameraId >= n) {
- writePreferredCameraId(pref, 0);
+ cameraId = 0;
}
+ writePreferredCameraId(pref, cameraId);
}
public static int readPreferredCameraId(SharedPreferences pref) {
- return Integer.parseInt(pref.getString(KEY_CAMERA_ID, "0"));
+ String rearCameraId = Integer.toString(
+ CameraHolder.instance().getBackCameraId());
+ return Integer.parseInt(pref.getString(KEY_CAMERA_ID, rearCameraId));
}
public static void writePreferredCameraId(SharedPreferences pref,
diff --git a/src/com/android/camera/PhotoModule.java b/src/com/android/camera/PhotoModule.java
index 3fa182b5f..74dbe3abe 100644
--- a/src/com/android/camera/PhotoModule.java
+++ b/src/com/android/camera/PhotoModule.java
@@ -30,6 +30,7 @@ import android.graphics.SurfaceTexture;
import android.hardware.Camera.CameraInfo;
import android.hardware.Camera.Parameters;
import android.hardware.Camera.Size;
+import android.hardware.Camera;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
@@ -1409,6 +1410,36 @@ public class PhotoModule
CameraSettings settings = new CameraSettings(mActivity, mInitialParams,
mCameraId, CameraHolder.instance().getCameraInfo());
mPreferenceGroup = settings.getPreferenceGroup(R.xml.camera_preferences);
+
+ int numOfCams = Camera.getNumberOfCameras();
+ int backCamId = CameraHolder.instance().getBackCameraId();
+ int frontCamId = CameraHolder.instance().getFrontCameraId();
+ // We need to swap the list preference contents if back camera and front camera
+ // IDs are not 0 and 1 respectively
+ if ((numOfCams == 2) && ((backCamId != CameraInfo.CAMERA_FACING_BACK)
+ || (frontCamId != CameraInfo.CAMERA_FACING_FRONT))) {
+ Log.e(TAG,"loadCameraPreferences() updating camera_id pref");
+
+ IconListPreference switchIconPref =
+ (IconListPreference)mPreferenceGroup.findPreference(
+ CameraSettings.KEY_CAMERA_ID);
+
+ int[] iconIds = {R.drawable.ic_switch_front, R.drawable.ic_switch_back};
+ switchIconPref.setIconIds(iconIds);
+
+ String[] entries = {mActivity.getResources().getString(
+ R.string.pref_camera_id_entry_front), mActivity.getResources().
+ getString(R.string.pref_camera_id_entry_back)};
+ switchIconPref.setEntries(entries);
+
+ String[] labels = {mActivity.getResources().getString(
+ R.string.pref_camera_id_label_front), mActivity.getResources().
+ getString(R.string.pref_camera_id_label_back)};
+ switchIconPref.setLabels(labels);
+
+ int[] largeIconIds = {R.drawable.ic_switch_front, R.drawable.ic_switch_back};
+ switchIconPref.setLargeIconIds(largeIconIds);
+ }
}
@Override
diff --git a/src/com/android/camera/VideoModule.java b/src/com/android/camera/VideoModule.java
index 8562b9636..1d0c8adc5 100644
--- a/src/com/android/camera/VideoModule.java
+++ b/src/com/android/camera/VideoModule.java
@@ -30,6 +30,7 @@ import android.content.res.Configuration;
import android.graphics.Bitmap;
import android.graphics.SurfaceTexture;
import android.graphics.ImageFormat;
+import android.hardware.Camera;
import android.hardware.Camera.CameraInfo;
import android.hardware.Camera.Parameters;
import android.hardware.Camera.Size;
@@ -508,6 +509,36 @@ public class VideoModule implements CameraModule,
// Remove the video quality preference setting when the quality is given in the intent.
mPreferenceGroup = filterPreferenceScreenByIntent(
settings.getPreferenceGroup(R.xml.video_preferences));
+
+ int numOfCams = Camera.getNumberOfCameras();
+ int backCamId = CameraHolder.instance().getBackCameraId();
+ int frontCamId = CameraHolder.instance().getFrontCameraId();
+ // We need to swap the list preference contents if back camera and front camera
+ // IDs are not 0 and 1 respectively
+ if( (numOfCams == 2) && ((backCamId != CameraInfo.CAMERA_FACING_BACK)
+ || (frontCamId != CameraInfo.CAMERA_FACING_FRONT))) {
+ Log.e(TAG,"loadCameraPreferences() updating camera_id pref");
+
+ IconListPreference switchIconPref =
+ (IconListPreference)mPreferenceGroup.findPreference(
+ CameraSettings.KEY_CAMERA_ID);
+
+ int[] iconIds = {R.drawable.ic_switch_front, R.drawable.ic_switch_back};
+ switchIconPref.setIconIds(iconIds);
+
+ String[] entries = {mActivity.getResources().getString(
+ R.string.pref_camera_id_entry_front), mActivity.getResources().
+ getString(R.string.pref_camera_id_entry_back)};
+ switchIconPref.setEntries(entries);
+
+ String[] labels = {mActivity.getResources().getString(
+ R.string.pref_camera_id_label_front), mActivity.getResources().
+ getString(R.string.pref_camera_id_label_back)};
+ switchIconPref.setLabels(labels);
+
+ int[] largeIconIds = {R.drawable.ic_switch_front, R.drawable.ic_switch_back};
+ switchIconPref.setLargeIconIds(largeIconIds);
+ }
}
private void initializeVideoControl() {