summaryrefslogtreecommitdiffstats
path: root/src/com/android/camera/CaptureUI.java
diff options
context:
space:
mode:
authorByunghun Jeon <bjeon@codeaurora.org>2016-03-09 15:14:18 -0800
committerSteve Kondik <steve@cyngn.com>2016-08-25 21:55:20 -0700
commit7ed01dab6670828bd4005a525eef03ed7a19b97f (patch)
tree74807ae450c5f71de530d2931fc59d7f2ece365f /src/com/android/camera/CaptureUI.java
parente9e91c3ff2b4e7e8c4b0932d8559a2a99610a8b7 (diff)
downloadandroid_packages_apps_Snap-7ed01dab6670828bd4005a525eef03ed7a19b97f.tar.gz
android_packages_apps_Snap-7ed01dab6670828bd4005a525eef03ed7a19b97f.tar.bz2
android_packages_apps_Snap-7ed01dab6670828bd4005a525eef03ed7a19b97f.zip
SnapdragonCamera: Camera2 add zoom support
Add zoom support to Camera2 CRs-Fixed: 989750 Change-Id: Id6b558ff5215f04ca7c201b1d1807521d615c353
Diffstat (limited to 'src/com/android/camera/CaptureUI.java')
-rw-r--r--src/com/android/camera/CaptureUI.java44
1 files changed, 27 insertions, 17 deletions
diff --git a/src/com/android/camera/CaptureUI.java b/src/com/android/camera/CaptureUI.java
index ed1020732..01b66fb70 100644
--- a/src/com/android/camera/CaptureUI.java
+++ b/src/com/android/camera/CaptureUI.java
@@ -24,8 +24,8 @@ import android.graphics.Matrix;
import android.graphics.Point;
import android.graphics.RectF;
import android.graphics.drawable.AnimationDrawable;
-import android.hardware.Camera;
import android.hardware.Camera.Face;
+import android.hardware.camera2.CameraCharacteristics;
import android.util.Log;
import android.view.Gravity;
import android.view.MotionEvent;
@@ -111,8 +111,6 @@ public class CaptureUI implements PieListener,
private OnScreenIndicators mOnScreenIndicators;
private PieRenderer mPieRenderer;
private ZoomRenderer mZoomRenderer;
- private int mZoomMax;
- private List<Integer> mZoomRatios;
private int mPreviewWidth = 0;
private int mPreviewHeight = 0;
private int mOriginalPreviewWidth = 0;
@@ -280,7 +278,9 @@ public class CaptureUI implements PieListener,
mRootView.findViewById(R.id.on_screen_indicators));
}
- public void onCameraOpened(PreferenceGroup prefGroup, OnPreferenceChangedListener listener) {
+ public void onCameraOpened(CameraCharacteristics[] characteristics,
+ List<Integer> characteristicsIndex, PreferenceGroup prefGroup,
+ OnPreferenceChangedListener listener) {
if (mMenu == null) {
mMenu = new CaptureMenu(mActivity, this);
mMenu.setListener(listener);
@@ -300,8 +300,11 @@ public class CaptureUI implements PieListener,
}
mGestures.setCaptureMenu(mMenu);
+ mGestures.setZoomEnabled(CameraUtil.isZoomSupported(characteristics, characteristicsIndex));
mGestures.setRenderOverlay(mRenderOverlay);
mRenderOverlay.requestLayout();
+
+ initializeZoom(characteristics, characteristicsIndex);
mActivity.setPreviewGestures(mGestures);
}
@@ -364,17 +367,19 @@ public class CaptureUI implements PieListener,
frameAnimation.start();
}
- public void initializeZoom(Camera.Parameters params) {
- if ((params == null) || !params.isZoomSupported()
- || (mZoomRenderer == null)) return;
- mZoomMax = params.getMaxZoom();
- mZoomRatios = params.getZoomRatios();
- // Currently we use immediate zoom for fast zooming to get better UX and
- // there is no plan to take advantage of the smooth zoom.
+ public void initializeZoom(CameraCharacteristics[] characteristics,
+ List<Integer> characteristicsIndex) {
+ if ((characteristics == null) || !CameraUtil.isZoomSupported(characteristics,
+ characteristicsIndex) || (mZoomRenderer == null))
+ return;
if (mZoomRenderer != null) {
- mZoomRenderer.setZoomMax(mZoomMax);
- mZoomRenderer.setZoom(params.getZoom());
- mZoomRenderer.setZoomValue(mZoomRatios.get(params.getZoom()));
+ float zoomMax = Float.MAX_VALUE;
+ for (int i = 0; i < characteristicsIndex.size(); i++) {
+ zoomMax = Math.min(characteristics[characteristicsIndex.get(i)].get
+ (CameraCharacteristics.SCALER_AVAILABLE_MAX_DIGITAL_ZOOM), zoomMax);
+ }
+ mZoomRenderer.setZoomMax(zoomMax);
+ mZoomRenderer.setZoom(1f);
mZoomRenderer.setOnZoomChangeListener(new ZoomChangeListener());
}
}
@@ -781,10 +786,10 @@ public class CaptureUI implements PieListener,
private class ZoomChangeListener implements ZoomRenderer.OnZoomChangedListener {
@Override
- public void onZoomValueChanged(int index) {
- int newZoom = mController.onZoomChanged(index);
+ public void onZoomValueChanged(float mZoomValue) {
+ mController.onZoomChanged(mZoomValue);
if (mZoomRenderer != null) {
- mZoomRenderer.setZoomValue(mZoomRatios.get(newZoom));
+ mZoomRenderer.setZoom(mZoomValue);
}
}
@@ -802,6 +807,11 @@ public class CaptureUI implements PieListener,
mPieRenderer.setBlockFocus(false);
}
}
+
+ @Override
+ public void onZoomValueChanged(int index) {
+
+ }
}
}