diff options
Diffstat (limited to 'src/com/android/camera/SettingsManager.java')
-rwxr-xr-x | src/com/android/camera/SettingsManager.java | 22 |
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); |