summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLars Greiss <kufikugel@googlemail.com>2014-02-02 03:09:22 +0100
committerSteve Kondik <steve@cyngn.com>2016-11-02 12:22:26 -0700
commit60fe2087173761175a4441f6a6e26f80497375da (patch)
tree1d742abf4b49a689e3cb0302a3bbe3ecfd8cd552
parent1fd7ce85ce5e60f4d11b3a7ef3c2d1bc82448488 (diff)
downloadandroid_packages_apps_Snap-60fe2087173761175a4441f6a6e26f80497375da.tar.gz
android_packages_apps_Snap-60fe2087173761175a4441f6a6e26f80497375da.tar.bz2
android_packages_apps_Snap-60fe2087173761175a4441f6a6e26f80497375da.zip
Camera2: tweak volume key zoom and cleanup
- cleanup unused code - cleanup codestyle - add more zoom steps for smother zooming - show zoom circle indicator during zoom Change-Id: I5214fc2620a0c5167bfdc8e85f7115966c3b8bcf
-rw-r--r--src/com/android/camera/PhotoUI.java7
-rw-r--r--src/com/android/camera/PreviewGestures.java7
-rw-r--r--src/com/android/camera/VideoUI.java11
-rw-r--r--src/com/android/camera/ui/ZoomRenderer.java46
4 files changed, 61 insertions, 10 deletions
diff --git a/src/com/android/camera/PhotoUI.java b/src/com/android/camera/PhotoUI.java
index a3174a67d..5b75b54f7 100644
--- a/src/com/android/camera/PhotoUI.java
+++ b/src/com/android/camera/PhotoUI.java
@@ -1314,6 +1314,13 @@ public class PhotoUI implements PieListener,
mFaceView.setFaces(faces);
}
+ public boolean onScaleStepResize(boolean direction) {
+ if(mGestures != null){
+ return mGestures.onScaleStepResize(direction);
+ }
+ return false;
+ }
+
@Override
public void onDisplayChanged() {
Log.d(TAG, "Device flip detected.");
diff --git a/src/com/android/camera/PreviewGestures.java b/src/com/android/camera/PreviewGestures.java
index 0ac6ce01c..7aa5fa84c 100644
--- a/src/com/android/camera/PreviewGestures.java
+++ b/src/com/android/camera/PreviewGestures.java
@@ -293,5 +293,12 @@ public class PreviewGestures
public void onScaleEnd(ScaleGestureDetector detector) {
mZoom.onScaleEnd(detector);
}
+
+ public boolean onScaleStepResize(boolean direction) {
+ if(mZoom != null){
+ return mZoom.onScaleStepResize(direction);
+ }
+ return false;
+ }
}
diff --git a/src/com/android/camera/VideoUI.java b/src/com/android/camera/VideoUI.java
index adda6b206..3c461f213 100644
--- a/src/com/android/camera/VideoUI.java
+++ b/src/com/android/camera/VideoUI.java
@@ -22,7 +22,6 @@ import org.codeaurora.snapcam.R;
import android.content.res.Configuration;
import android.graphics.Bitmap;
-import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Point;
import android.graphics.drawable.ColorDrawable;
@@ -1100,21 +1099,13 @@ public class VideoUI implements PieRenderer.PieListener,
return mCameraControls.getVisibility() == View.VISIBLE;
}
- public boolean onScaleStepResize(boolean direction)
- {
+ public boolean onScaleStepResize(boolean direction) {
if(mGestures != null){
return mGestures.onScaleStepResize(direction);
}
return false;
}
- public void onScaleChangeDraw(Canvas canvas)
- {
- if(mGestures != null){
- mGestures.onScaleChangeDraw(canvas);
- }
- }
-
@Override
public void onDisplayChanged() {
mCameraControls.checkLayoutFlip();
diff --git a/src/com/android/camera/ui/ZoomRenderer.java b/src/com/android/camera/ui/ZoomRenderer.java
index 11bff7a8d..9d655378a 100644
--- a/src/com/android/camera/ui/ZoomRenderer.java
+++ b/src/com/android/camera/ui/ZoomRenderer.java
@@ -22,6 +22,7 @@ import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Rect;
+import android.os.Handler;
import android.view.ScaleGestureDetector;
import org.codeaurora.snapcam.R;
@@ -35,6 +36,8 @@ public class ZoomRenderer extends OverlayRenderer
private int mMinZoom;
private OnZoomChangedListener mListener;
+ private final Handler mHandler = new Handler();
+
private ScaleGestureDetector mDetector;
private Paint mPaint;
private Paint mTextPaint;
@@ -47,6 +50,7 @@ public class ZoomRenderer extends OverlayRenderer
private int mOuterStroke;
private int mZoomSig;
private int mZoomFraction;
+ private boolean mInZoom;
private Rect mTextBounds;
private int mOrientation;
private boolean mCamera2 = false;
@@ -165,6 +169,48 @@ public class ZoomRenderer extends OverlayRenderer
return true;
}
+ public boolean onScaleStepResize(boolean direction) {
+ int zoom;
+ float circle;
+ float circleStep = (mMaxCircle - mMinCircle)/18;
+ if(direction){
+ circle = (int) (mCircleSize + circleStep);
+ } else {
+ circle = (int) (mCircleSize - circleStep);
+ }
+ circle = Math.max(mMinCircle, circle);
+ circle = Math.min(mMaxCircle, circle);
+ if (mListener != null && (int) circle != mCircleSize
+ && ((mMaxCircle - mMinCircle) > 0)) {
+ mCircleSize = (int) circle;
+ zoom = mMinZoom + (int) ((mCircleSize - mMinCircle)
+ * (mMaxZoom - mMinZoom) / (mMaxCircle - mMinCircle));
+ if (mListener != null) {
+ mHandler.removeCallbacks(mOnZoomEnd);
+ if (!mInZoom) {
+ mInZoom = true;
+ setVisible(true);
+ mListener.onZoomStart();
+ update();
+ }
+ mListener.onZoomValueChanged(zoom);
+ mHandler.postDelayed(mOnZoomEnd, 300);
+ }
+ update();
+ }
+ return true;
+ }
+
+ Runnable mOnZoomEnd = new Runnable() {
+ public void run() {
+ mInZoom = false;
+ setVisible(false);
+ if (mListener != null) {
+ mListener.onZoomEnd();
+ }
+ }
+ };
+
@Override
public boolean onScaleBegin(ScaleGestureDetector detector) {
setVisible(true);