summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorweijiew <weijiew@codeaurora.org>2017-02-20 14:25:22 +0800
committerweijiew <weijiew@codeaurora.org>2017-03-01 18:00:13 +0800
commit0160260eb1991093e6961c63c7a72bd4b80c7589 (patch)
treef05b0c886a9271a18b369f08c2061962230d9e26 /src
parent727fdda2c1d3db4cc107825f8e6ab114f60b7064 (diff)
downloadandroid_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-xsrc/com/android/camera/CaptureModule.java12
-rw-r--r--src/com/android/camera/SettingsActivity.java1
-rw-r--r--src/com/android/camera/SettingsManager.java20
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();