summaryrefslogtreecommitdiffstats
path: root/src/com/android/camera/CameraSettings.java
diff options
context:
space:
mode:
authorWu-cheng Li <wuchengli@google.com>2010-08-26 09:53:17 -0700
committerWu-cheng Li <wuchengli@google.com>2010-09-08 17:35:32 -0700
commit8eaa6919f0d5c10c95c99f2f937d57ea5c4a5bba (patch)
tree73a39653e17d41237387089acbf84a91a003f817 /src/com/android/camera/CameraSettings.java
parent10b93066fee33db02a3f7d37d821e6c40c71ecc4 (diff)
downloadpackages_apps_LegacyCamera-8eaa6919f0d5c10c95c99f2f937d57ea5c4a5bba.zip
packages_apps_LegacyCamera-8eaa6919f0d5c10c95c99f2f937d57ea5c4a5bba.tar.gz
packages_apps_LegacyCamera-8eaa6919f0d5c10c95c99f2f937d57ea5c4a5bba.tar.bz2
Add switch camera on-screen button. DO NOT MERGE
Change-Id: I00895a9df69d2b29656075da1e03b1a1f684b107
Diffstat (limited to 'src/com/android/camera/CameraSettings.java')
-rw-r--r--src/com/android/camera/CameraSettings.java53
1 files changed, 45 insertions, 8 deletions
diff --git a/src/com/android/camera/CameraSettings.java b/src/com/android/camera/CameraSettings.java
index 29eb187..7743fd3 100644
--- a/src/com/android/camera/CameraSettings.java
+++ b/src/com/android/camera/CameraSettings.java
@@ -20,6 +20,7 @@ import android.app.Activity;
import android.content.Context;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
+import android.hardware.Camera.CameraInfo;
import android.hardware.Camera.Parameters;
import android.hardware.Camera.Size;
import android.media.CamcorderProfile;
@@ -47,7 +48,7 @@ public class CameraSettings {
public static final String KEY_WHITE_BALANCE = "pref_camera_whitebalance_key";
public static final String KEY_SCENE_MODE = "pref_camera_scenemode_key";
public static final String KEY_EXPOSURE = "pref_camera_exposure_key";
- public static final String KEY_CAMERA_ID = "pref_camera_id";
+ public static final String KEY_CAMERA_ID = "pref_camera_id_key";
private static final String VIDEO_QUALITY_HIGH = "high";
private static final String VIDEO_QUALITY_MMS = "mms";
@@ -73,10 +74,13 @@ public class CameraSettings {
private final Context mContext;
private final Parameters mParameters;
+ private final CameraInfo[] mCameraInfo;
- public CameraSettings(Activity activity, Parameters parameters) {
+ public CameraSettings(Activity activity, Parameters parameters,
+ CameraInfo[] cameraInfo) {
mContext = activity;
mParameters = parameters;
+ mCameraInfo = cameraInfo;
}
public PreferenceGroup getPreferenceGroup(int preferenceRes) {
@@ -136,6 +140,8 @@ public class CameraSettings {
ListPreference flashMode = group.findPreference(KEY_FLASH_MODE);
ListPreference focusMode = group.findPreference(KEY_FOCUS_MODE);
ListPreference exposure = group.findPreference(KEY_EXPOSURE);
+ IconListPreference cameraId =
+ (IconListPreference)group.findPreference(KEY_CAMERA_ID);
ListPreference videoFlashMode =
group.findPreference(KEY_VIDEOCAMERA_FLASH_MODE);
@@ -185,10 +191,8 @@ public class CameraSettings {
filterUnsupportedOptions(group,
videoFlashMode, mParameters.getSupportedFlashModes());
}
-
- if (exposure != null) {
- buildExposureCompensation(group, exposure);
- }
+ if (exposure != null) buildExposureCompensation(group, exposure);
+ if (cameraId != null) buildCameraId(group, cameraId);
}
private void buildExposureCompensation(
@@ -216,6 +220,38 @@ public class CameraSettings {
exposure.setEntryValues(entryValues);
}
+ private void buildCameraId(
+ PreferenceGroup group, IconListPreference cameraId) {
+ int numOfCameras = mCameraInfo.length;
+ if (numOfCameras < 2) {
+ removePreference(group, cameraId.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].mFacing == 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;
+ }
+ }
+ cameraId.setEntries(entries);
+ cameraId.setEntryValues(entryValues);
+ cameraId.setIconIds(iconIds);
+ cameraId.setLargeIconIds(largeIconIds);
+ }
+
private static boolean removePreference(PreferenceGroup group, String key) {
for (int i = 0, n = group.size(); i < n; i++) {
CameraPreference child = group.get(i);
@@ -340,13 +376,14 @@ public class CameraSettings {
}
public static int readPreferredCameraId(SharedPreferences pref) {
- return pref.getInt(KEY_CAMERA_ID, 0);
+ String id = Integer.toString(android.hardware.Camera.CAMERA_ID_DEFAULT);
+ return Integer.parseInt(pref.getString(KEY_CAMERA_ID, id));
}
public static void writePreferredCameraId(SharedPreferences pref,
int cameraId) {
Editor editor = pref.edit();
- editor.putInt(KEY_CAMERA_ID, cameraId);
+ editor.putString(KEY_CAMERA_ID, Integer.toString(cameraId));
editor.apply();
}
}