summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSu Liu <suliu@codeaurora.org>2013-09-04 18:16:50 +0800
committerSteve Kondik <shade@chemlab.org>2013-10-18 15:54:50 -0700
commit9691d548876acefdba284c56e9497a7f39d707dd (patch)
tree1f2886a47f538b57a0cd4ed22f45034bbcc508bb
parent4a1837d209f6d4e6419bf7a1f67be4c530a70fb8 (diff)
downloadandroid_packages_apps_Gallery2-next.tar.gz
android_packages_apps_Gallery2-next.tar.bz2
android_packages_apps_Gallery2-next.zip
Camera: Change volume hard key button to zoom functionnext
Able to capture image through volume hard key button in camera application, change the function to zoom function. Change-Id: Iab9fc2492b2e2ff89cd58c21bac2f147f47b77e2
-rw-r--r--src/com/android/camera/PhotoModule.java17
-rw-r--r--src/com/android/camera/PhotoUI.java17
-rw-r--r--src/com/android/camera/PreviewGestures.java16
-rw-r--r--src/com/android/camera/ui/ZoomRenderer.java36
4 files changed, 80 insertions, 6 deletions
diff --git a/src/com/android/camera/PhotoModule.java b/src/com/android/camera/PhotoModule.java
index cbfc385b2..0ab6bd596 100644
--- a/src/com/android/camera/PhotoModule.java
+++ b/src/com/android/camera/PhotoModule.java
@@ -1633,7 +1633,17 @@ public class PhotoModule
public boolean onKeyDown(int keyCode, KeyEvent event) {
switch (keyCode) {
case KeyEvent.KEYCODE_VOLUME_UP:
+ if (mActivity.isInCameraApp() && mFirstTimeInitialized
+ && (mUI.mMenuInitialized)) {
+ mUI.onScaleStepResize(true);
+ }
+ return true;
case KeyEvent.KEYCODE_VOLUME_DOWN:
+ if (mActivity.isInCameraApp() && mFirstTimeInitialized
+ && (mUI.mMenuInitialized)) {
+ mUI.onScaleStepResize(false);
+ }
+ return true;
case KeyEvent.KEYCODE_FOCUS:
if (mActivity.isInCameraApp() && mFirstTimeInitialized &&
mShutterButton.getVisibility() == View.VISIBLE) {
@@ -1671,12 +1681,7 @@ public class PhotoModule
switch (keyCode) {
case KeyEvent.KEYCODE_VOLUME_UP:
case KeyEvent.KEYCODE_VOLUME_DOWN:
- if (mActivity.isInCameraApp() && mFirstTimeInitialized &&
- mShutterButton.getVisibility() == View.VISIBLE) {
- onShutterButtonClick();
- return true;
- }
- return false;
+ return true;
case KeyEvent.KEYCODE_FOCUS:
if (mFirstTimeInitialized) {
onShutterButtonFocus(false);
diff --git a/src/com/android/camera/PhotoUI.java b/src/com/android/camera/PhotoUI.java
index dddf56292..42907274b 100644
--- a/src/com/android/camera/PhotoUI.java
+++ b/src/com/android/camera/PhotoUI.java
@@ -32,6 +32,7 @@ import android.view.ViewStub;
import android.widget.FrameLayout;
import android.widget.FrameLayout.LayoutParams;
import android.widget.Toast;
+import android.graphics.Canvas;
import com.android.camera.CameraPreference.OnPreferenceChangedListener;
import com.android.camera.FocusOverlayManager.FocusUI;
@@ -692,6 +693,22 @@ public class PhotoUI implements PieListener,
mFaceView.setFaces(faces);
}
+
+ 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 onSwipe(int direction) {
if (direction == PreviewGestures.DIR_UP) {
diff --git a/src/com/android/camera/PreviewGestures.java b/src/com/android/camera/PreviewGestures.java
index 0b80ff688..3d27e5166 100644
--- a/src/com/android/camera/PreviewGestures.java
+++ b/src/com/android/camera/PreviewGestures.java
@@ -22,6 +22,7 @@ import android.view.MotionEvent;
import android.view.ScaleGestureDetector;
import android.view.View;
import android.view.ViewConfiguration;
+import android.graphics.Canvas;
import com.android.camera.ui.PieRenderer;
import com.android.camera.ui.RenderOverlay;
@@ -385,4 +386,19 @@ public class PreviewGestures
mZoom.onScaleEnd(detector);
}
}
+
+ public boolean onScaleStepResize(boolean direction)
+ {
+ if(mZoom != null){
+ return mZoom.onScaleStepResize(direction);
+ }
+ return false;
+ }
+
+ public void onScaleChangeDraw(Canvas canvas)
+ {
+ if(mZoom != null){
+ mZoom.onScaleChangeDraw(canvas);
+ }
+ }
}
diff --git a/src/com/android/camera/ui/ZoomRenderer.java b/src/com/android/camera/ui/ZoomRenderer.java
index 86b82b459..386f2a387 100644
--- a/src/com/android/camera/ui/ZoomRenderer.java
+++ b/src/com/android/camera/ui/ZoomRenderer.java
@@ -48,6 +48,7 @@ public class ZoomRenderer extends OverlayRenderer
private int mZoomSig;
private int mZoomFraction;
private Rect mTextBounds;
+ private Canvas mCanvas;
public interface OnZoomChangedListener {
void onZoomStart();
@@ -109,6 +110,7 @@ public class ZoomRenderer extends OverlayRenderer
@Override
public void onDraw(Canvas canvas) {
+ mCanvas = canvas;
mPaint.setStrokeWidth(mInnerStroke);
canvas.drawCircle(mCenterX, mCenterY, mMinCircle, mPaint);
canvas.drawCircle(mCenterX, mCenterY, mMaxCircle, mPaint);
@@ -123,6 +125,13 @@ public class ZoomRenderer extends OverlayRenderer
mTextPaint);
}
+ public void onScaleChangeDraw(Canvas canvas) {
+ if(mCanvas != null){
+ onDraw(mCanvas);
+ }
+ }
+
+
@Override
public boolean onScale(ScaleGestureDetector detector) {
final float sf = detector.getScaleFactor();
@@ -137,6 +146,33 @@ public class ZoomRenderer extends OverlayRenderer
return true;
}
+ public boolean onScaleStepResize(boolean direction) {
+ int zoom;
+ float circle;
+ float circleStep = (mMaxCircle - mMinCircle)/10;
+ 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) {
+ mListener.onZoomStart();
+ mListener.onZoomValueChanged(zoom);
+ mListener.onZoomEnd();
+ }
+ return true;
+ } else {
+ return false;
+ }
+ }
+
@Override
public boolean onScaleBegin(ScaleGestureDetector detector) {
setVisible(true);