diff options
author | Chung-yih Wang <cywang@google.com> | 2010-11-22 13:46:30 +0800 |
---|---|---|
committer | Chung-yih Wang <cywang@google.com> | 2010-11-25 19:07:04 +0800 |
commit | 59ddc8c1add2fcffe523e3877baad1b6cc5ba2fb (patch) | |
tree | 9ef281563deca6c36963757340a33df46b0449bc /src/com/android/camera/CameraSettings.java | |
parent | 623fc04dd6194559a22b8cc9305473bf9205eb58 (diff) | |
download | LegacyCamera-59ddc8c1add2fcffe523e3877baad1b6cc5ba2fb.tar.gz LegacyCamera-59ddc8c1add2fcffe523e3877baad1b6cc5ba2fb.tar.bz2 LegacyCamera-59ddc8c1add2fcffe523e3877baad1b6cc5ba2fb.zip |
Add front/back camera switch
bug:3156676
Change-Id: I8a5394aefa068cb099b89c5739abf0cfd78591a9
Diffstat (limited to 'src/com/android/camera/CameraSettings.java')
-rw-r--r-- | src/com/android/camera/CameraSettings.java | 45 |
1 files changed, 23 insertions, 22 deletions
diff --git a/src/com/android/camera/CameraSettings.java b/src/com/android/camera/CameraSettings.java index 24ab4491..4935d07c 100644 --- a/src/com/android/camera/CameraSettings.java +++ b/src/com/android/camera/CameraSettings.java @@ -78,6 +78,7 @@ public class CameraSettings { private final Parameters mParameters; private final CameraInfo[] mCameraInfo; private final int mCameraId; + private int[] mCameraIdByIndex; public CameraSettings(Activity activity, Parameters parameters, int cameraId, CameraInfo[] cameraInfo) { @@ -245,35 +246,35 @@ public class CameraSettings { } private void buildCameraId( - PreferenceGroup group, IconListPreference cameraId) { + PreferenceGroup group, IconListPreference preference) { int numOfCameras = mCameraInfo.length; if (numOfCameras < 2) { - removePreference(group, cameraId.getKey()); + removePreference(group, preference.getKey()); return; } - CharSequence entries[] = new CharSequence[numOfCameras]; - CharSequence entryValues[] = new CharSequence[numOfCameras]; - int[] iconIds = new int[numOfCameras]; - int[] largeIconIds = new int[numOfCameras]; - for (int i = 0; i < numOfCameras; i++) { - entryValues[i] = Integer.toString(i); - if (mCameraInfo[i].facing == CameraInfo.CAMERA_FACING_FRONT) { - entries[i] = mContext.getString( - R.string.pref_camera_id_entry_front); - iconIds[i] = R.drawable.ic_menuselect_camera_facing_front; - largeIconIds[i] = R.drawable.ic_viewfinder_camera_facing_front; - } else { - entries[i] = mContext.getString( - R.string.pref_camera_id_entry_back); - iconIds[i] = R.drawable.ic_menuselect_camera_facing_back; - largeIconIds[i] = R.drawable.ic_viewfinder_camera_facing_back; + CharSequence[] entryValues = new CharSequence[2]; + mCameraIdByIndex = new int[2]; + for (int i = 0 ; i < mCameraInfo.length ; ++i) { + int index = + (mCameraInfo[i].facing == CameraInfo.CAMERA_FACING_FRONT) + ? CameraInfo.CAMERA_FACING_FRONT + : CameraInfo.CAMERA_FACING_BACK; + if (entryValues[index] == null) { + entryValues[index] = "" + i; + mCameraIdByIndex[index] = i; + if (entryValues[((index == 1) ? 0 : 1)] != null) break; } } - cameraId.setEntries(entries); - cameraId.setEntryValues(entryValues); - cameraId.setIconIds(iconIds); - cameraId.setLargeIconIds(largeIconIds); + preference.setEntryValues(entryValues); + } + + int getCameraIdByIndex(int facingIndex) { + if (facingIndex > CameraInfo.CAMERA_FACING_FRONT || facingIndex < 0) { + Log.e(TAG, "Unsupported camera facing index " + facingIndex); + return mCameraIdByIndex[CameraInfo.CAMERA_FACING_BACK]; + } + return mCameraIdByIndex[facingIndex]; } private static boolean removePreference(PreferenceGroup group, String key) { |