diff options
author | weijiew <weijiew@codeaurora.org> | 2017-02-20 14:25:22 +0800 |
---|---|---|
committer | weijiew <weijiew@codeaurora.org> | 2017-03-01 18:00:13 +0800 |
commit | 0160260eb1991093e6961c63c7a72bd4b80c7589 (patch) | |
tree | f05b0c886a9271a18b369f08c2061962230d9e26 /src | |
parent | 727fdda2c1d3db4cc107825f8e6ab114f60b7064 (diff) | |
download | android_packages_apps_Snap-0160260eb1991093e6961c63c7a72bd4b80c7589.tar.gz android_packages_apps_Snap-0160260eb1991093e6961c63c7a72bd4b80c7589.tar.bz2 android_packages_apps_Snap-0160260eb1991093e6961c63c7a72bd4b80c7589.zip |
SnapdragonCamera: Add zoom option to developer option for camera2
For automation testing, we need a way to adjust the zoom without
using the pinch gesture. Therefore, adding zoom option preference
to the developer option.
CRs-Fixed: 2008116
Change-Id: Ie459dbbb28051d49f8e4951d6adb112d03cf22f6
Diffstat (limited to 'src')
-rwxr-xr-x | src/com/android/camera/CaptureModule.java | 12 | ||||
-rw-r--r-- | src/com/android/camera/SettingsActivity.java | 1 | ||||
-rw-r--r-- | src/com/android/camera/SettingsManager.java | 20 |
3 files changed, 32 insertions, 1 deletions
diff --git a/src/com/android/camera/CaptureModule.java b/src/com/android/camera/CaptureModule.java index e4c162a5b..1bfc38be4 100755 --- a/src/com/android/camera/CaptureModule.java +++ b/src/com/android/camera/CaptureModule.java @@ -2168,7 +2168,7 @@ public class CaptureModule implements CameraModule, PhotoController, mState[i] = STATE_PREVIEW; } mLongshotActive = false; - mZoomValue = 1.0f; + updateZoom(); updatePreviewSurfaceReadyState(false); } @@ -3006,6 +3006,16 @@ public class CaptureModule implements CameraModule, PhotoController, } } + private void updateZoom() { + String zoomStr = mSettingsManager.getValue(SettingsManager.KEY_ZOOM); + int zoom = Integer.parseInt(zoomStr); + if ( zoom !=0 ) { + mZoomValue = (float)zoom; + }else{ + mZoomValue = 1.0f; + } + } + private boolean startRecordingVideo(final int cameraId) { if (null == mCameraDevice[cameraId]) { return false; diff --git a/src/com/android/camera/SettingsActivity.java b/src/com/android/camera/SettingsActivity.java index 00f42daa4..201dda1c8 100644 --- a/src/com/android/camera/SettingsActivity.java +++ b/src/com/android/camera/SettingsActivity.java @@ -208,6 +208,7 @@ public class SettingsActivity extends PreferenceActivity { updatePreference(SettingsManager.KEY_EXPOSURE); updatePreference(SettingsManager.KEY_VIDEO_HIGH_FRAME_RATE); updatePreference(SettingsManager.KEY_VIDEO_ENCODER); + updatePreference(SettingsManager.KEY_ZOOM); Map<String, SettingsManager.Values> map = mSettingsManager.getValuesMap(); Set<Map.Entry<String, SettingsManager.Values>> set = map.entrySet(); diff --git a/src/com/android/camera/SettingsManager.java b/src/com/android/camera/SettingsManager.java index d8c36b16b..d9184d579 100644 --- a/src/com/android/camera/SettingsManager.java +++ b/src/com/android/camera/SettingsManager.java @@ -144,6 +144,8 @@ public class SettingsManager implements ListMenu.SettingsListener { public static final String KEY_HISTOGRAM = "pref_camera2_histogram_key"; public static final String KEY_HDR = "pref_camera2_hdr_key"; public static final String KEY_SAVERAW = "pref_camera2_saveraw_key"; + public static final String KEY_ZOOM = "pref_camera2_zoom_key"; + public static final HashMap<String, Integer> KEY_ISO_INDEX = new HashMap<String, Integer>(); private static final String TAG = "SnapCam_SettingsManager"; @@ -607,6 +609,7 @@ public class SettingsManager implements ListMenu.SettingsListener { ListPreference antiBandingLevel = mPreferenceGroup.findPreference(KEY_ANTI_BANDING_LEVEL); ListPreference histogram = mPreferenceGroup.findPreference(KEY_HISTOGRAM); ListPreference hdr = mPreferenceGroup.findPreference(KEY_HDR); + ListPreference zoom = mPreferenceGroup.findPreference(KEY_ZOOM); if (whiteBalance != null) { if (filterUnsupportedOptions(whiteBalance, getSupportedWhiteBalanceModes(cameraId))) { @@ -744,6 +747,13 @@ public class SettingsManager implements ListMenu.SettingsListener { removePreference(mPreferenceGroup, KEY_SELFIE_FLASH); removePreference(mPreferenceGroup, KEY_SELFIEMIRROR); } + + if ( zoom != null ) { + if (filterUnsupportedOptions(zoom, + getSupportedZoomLevel(cameraId))) { + mFilteredKeys.add(zoom.getKey()); + } + } } private void runTimeUpdateDependencyOptions(ListPreference pref) { @@ -1252,6 +1262,16 @@ public class SettingsManager implements ListMenu.SettingsListener { return modes; } + private List<String> getSupportedZoomLevel(int cameraId) { + float maxZoom = mCharacteristics.get(cameraId).get(CameraCharacteristics + .SCALER_AVAILABLE_MAX_DIGITAL_ZOOM); + ArrayList<String> supported = new ArrayList<String>(); + for (int zoomLevel = 0; zoomLevel <= maxZoom; zoomLevel++) { + supported.add(String.valueOf(zoomLevel)); + } + return supported; + } + private void resetIfInvalid(ListPreference pref) { // Set the value to the first entry if it is invalid. String value = pref.getValue(); |