summaryrefslogtreecommitdiffstats
path: root/src/com/android/camera/CameraSettings.java
diff options
context:
space:
mode:
authorChung-yih Wang <cywang@google.com>2010-11-22 13:46:30 +0800
committerChung-yih Wang <cywang@google.com>2010-11-25 19:07:04 +0800
commit59ddc8c1add2fcffe523e3877baad1b6cc5ba2fb (patch)
tree9ef281563deca6c36963757340a33df46b0449bc /src/com/android/camera/CameraSettings.java
parent623fc04dd6194559a22b8cc9305473bf9205eb58 (diff)
downloadpackages_apps_LegacyCamera-59ddc8c1add2fcffe523e3877baad1b6cc5ba2fb.zip
packages_apps_LegacyCamera-59ddc8c1add2fcffe523e3877baad1b6cc5ba2fb.tar.gz
packages_apps_LegacyCamera-59ddc8c1add2fcffe523e3877baad1b6cc5ba2fb.tar.bz2
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.java45
1 files changed, 23 insertions, 22 deletions
diff --git a/src/com/android/camera/CameraSettings.java b/src/com/android/camera/CameraSettings.java
index 24ab449..4935d07 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) {