diff options
author | Vijay kumar Tumati <vtumati@codeaurora.org> | 2014-03-24 18:45:35 +0530 |
---|---|---|
committer | Vijay kumar Tumati <vtumati@codeaurora.org> | 2014-03-26 12:08:08 +0530 |
commit | efabd537a0f8904f90c4d92e0e6140cd951f0bab (patch) | |
tree | 70637d75b3e892ef39955bda76563fb0e922f87e | |
parent | 71e30d2eab51431b0a6c0a56cf39360dbd69bc14 (diff) | |
download | android_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.java | 7 | ||||
-rw-r--r-- | src/com/android/camera/PhotoModule.java | 31 | ||||
-rw-r--r-- | src/com/android/camera/VideoModule.java | 31 |
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() { |