summaryrefslogtreecommitdiffstats
path: root/src/com/android/camera/SettingsManager.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/camera/SettingsManager.java')
-rwxr-xr-xsrc/com/android/camera/SettingsManager.java22
1 files changed, 20 insertions, 2 deletions
diff --git a/src/com/android/camera/SettingsManager.java b/src/com/android/camera/SettingsManager.java
index c99702708..675970b3d 100755
--- a/src/com/android/camera/SettingsManager.java
+++ b/src/com/android/camera/SettingsManager.java
@@ -115,6 +115,7 @@ public class SettingsManager implements ListMenu.SettingsListener {
public static final String KEY_SCEND_MODE_INSTRUCTIONAL = "pref_camera2_scenemode_instructional";
public static final String KEY_REDEYE_REDUCTION = "pref_camera2_redeyereduction_key";
public static final String KEY_CAMERA_ID = "pref_camera2_id_key";
+ public static final String KEY_SWITCH_CAMERA = "pref_camera2_switch_camera_key";
public static final String KEY_PICTURE_SIZE = "pref_camera2_picturesize_key";
public static final String KEY_ISO = "pref_camera2_iso_key";
public static final String KEY_EXPOSURE = "pref_camera2_exposure_key";
@@ -218,6 +219,7 @@ public class SettingsManager implements ListMenu.SettingsListener {
String cameraId = cameraIdList[i];
CameraCharacteristics characteristics
= manager.getCameraCharacteristics(cameraId);
+ Log.d(TAG,"cameraIdList size ="+cameraIdList.length);
byte monoOnly = 0;
try {
monoOnly = characteristics.get(CaptureModule.MetaDataMonoOnlyKey);
@@ -886,11 +888,26 @@ public class SettingsManager implements ListMenu.SettingsListener {
private void buildCameraId() {
int numOfCameras = mCharacteristics.size();
+ CharSequence[] fullEntryValues = new CharSequence[numOfCameras + 1];
+ CharSequence[] fullEntries = new CharSequence[numOfCameras + 1];
+ for(int i = 0; i < numOfCameras ; i++) {
+ int facing = mCharacteristics.get(i).get(CameraCharacteristics.LENS_FACING);
+ String facingString =
+ facing == CameraCharacteristics.LENS_FACING_FRONT? "front" : "back";
+ fullEntries[i] = "camera " + i +" facing:"+facingString;
+ fullEntryValues[i] = "" + i;
+ Log.d(TAG,"add "+fullEntries[i]+"="+ fullEntryValues[i]);
+ }
+ fullEntries[numOfCameras] = "disable";
+ fullEntryValues[numOfCameras] = "" + -1;
+ ListPreference switchPref = mPreferenceGroup.findPreference(KEY_SWITCH_CAMERA);
+ switchPref.setEntries(fullEntries);
+ switchPref.setEntryValues(fullEntryValues);
if (!mIsFrontCameraPresent) {
+ Log.d(TAG,"no front camera,remove camera id pref");
removePreference(mPreferenceGroup, KEY_CAMERA_ID);
return;
}
-
CharSequence[] entryValues = new CharSequence[numOfCameras];
CharSequence[] entries = new CharSequence[numOfCameras];
//TODO: Modify this after bayer/mono/front/back determination is done
@@ -997,6 +1014,7 @@ public class SettingsManager implements ListMenu.SettingsListener {
supported.add("off");
ListPreference videoQuality = mPreferenceGroup.findPreference(KEY_VIDEO_QUALITY);
+ if (videoQuality == null) return supported;
String videoSizeStr = videoQuality.getValue();
if (videoSizeStr != null) {
Size videoSize = parseSize(videoSizeStr);
@@ -1365,8 +1383,8 @@ public class SettingsManager implements ListMenu.SettingsListener {
private boolean isCurrentVideoResolutionSupportedByEncoder(VideoEncoderCap encoderCap) {
boolean supported = false;
ListPreference videoQuality = mPreferenceGroup.findPreference(KEY_VIDEO_QUALITY);
+ if (videoQuality == null) return supported;
String videoSizeStr = videoQuality.getValue();
-
if (videoSizeStr != null) {
Size videoSize = parseSize(videoSizeStr);