diff options
author | Linux Build Service Account <lnxbuild@localhost> | 2014-03-26 07:42:35 -0700 |
---|---|---|
committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2014-03-26 07:42:35 -0700 |
commit | 1c27d21582316c5031117fad7ccb291992f7fe33 (patch) | |
tree | d9786a2bf2d8e55e76216c01c5e3d8a8d05e8590 | |
parent | 3b3bf88b2db66dca0826443bbcf2559c99654020 (diff) | |
parent | efabd537a0f8904f90c4d92e0e6140cd951f0bab (diff) | |
download | android_packages_apps_Snap-1c27d21582316c5031117fad7ccb291992f7fe33.tar.gz android_packages_apps_Snap-1c27d21582316c5031117fad7ccb291992f7fe33.tar.bz2 android_packages_apps_Snap-1c27d21582316c5031117fad7ccb291992f7fe33.zip |
Merge "Camera: Open back camera first irrespective of ID"
-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() { |