diff options
author | Chih-Chung Chang <chihchung@google.com> | 2009-09-25 15:12:14 -0700 |
---|---|---|
committer | Chih-Chung Chang <chihchung@google.com> | 2009-09-25 15:12:14 -0700 |
commit | 0b8028e923b386eaa9062e076ca041914acbcd09 (patch) | |
tree | 246140629758e2785882064bff676e1484b3289a /src/com/android/camera | |
parent | c801d7371323d59f584d8dddaae104d8775f48cd (diff) | |
download | LegacyCamera-0b8028e923b386eaa9062e076ca041914acbcd09.zip LegacyCamera-0b8028e923b386eaa9062e076ca041914acbcd09.tar.gz LegacyCamera-0b8028e923b386eaa9062e076ca041914acbcd09.tar.bz2 |
Fix 2147286: Camera app should handle back key in onKeyUp
Diffstat (limited to 'src/com/android/camera')
-rw-r--r-- | src/com/android/camera/Camera.java | 15 | ||||
-rw-r--r-- | src/com/android/camera/ImageViewTouchBase.java | 21 | ||||
-rw-r--r-- | src/com/android/camera/VideoCamera.java | 16 |
3 files changed, 36 insertions, 16 deletions
diff --git a/src/com/android/camera/Camera.java b/src/com/android/camera/Camera.java index a691319..b7f09bf 100644 --- a/src/com/android/camera/Camera.java +++ b/src/com/android/camera/Camera.java @@ -1178,14 +1178,17 @@ public class Camera extends Activity implements View.OnClickListener, } @Override + public void onBackPressed() { + if (!isCameraIdle()) { + // ignore backs while we're taking a picture + return; + } + super.onBackPressed(); + } + + @Override public boolean onKeyDown(int keyCode, KeyEvent event) { switch (keyCode) { - case KeyEvent.KEYCODE_BACK: - if (!isCameraIdle()) { - // ignore backs while we're taking a picture - return true; - } - break; case KeyEvent.KEYCODE_FOCUS: if (mFirstTimeInitialized && event.getRepeatCount() == 0) { doFocus(true); diff --git a/src/com/android/camera/ImageViewTouchBase.java b/src/com/android/camera/ImageViewTouchBase.java index d58d48e..0cab8fc 100644 --- a/src/com/android/camera/ImageViewTouchBase.java +++ b/src/com/android/camera/ImageViewTouchBase.java @@ -92,15 +92,28 @@ abstract class ImageViewTouchBase extends ImageView { @Override public boolean onKeyDown(int keyCode, KeyEvent event) { - if (keyCode == KeyEvent.KEYCODE_BACK && getScale() > 1.0f) { - // If we're zoomed in, pressing Back jumps out to show the entire - // image, otherwise Back returns the user to the gallery. - zoomTo(1.0f); + if (keyCode == KeyEvent.KEYCODE_BACK + && event.getRepeatCount() == 0) { + event.startTracking(); return true; } return super.onKeyDown(keyCode, event); } + @Override + public boolean onKeyUp(int keyCode, KeyEvent event) { + if (keyCode == KeyEvent.KEYCODE_BACK && event.isTracking() + && !event.isCanceled()) { + if (getScale() > 1.0f) { + // If we're zoomed in, pressing Back jumps out to show the + // entire image, otherwise Back returns the user to the gallery. + zoomTo(1.0f); + return true; + } + } + return super.onKeyUp(keyCode, event); + } + protected Handler mHandler = new Handler(); protected int mLastXTouchPos; diff --git a/src/com/android/camera/VideoCamera.java b/src/com/android/camera/VideoCamera.java index 3809517..167356d 100644 --- a/src/com/android/camera/VideoCamera.java +++ b/src/com/android/camera/VideoCamera.java @@ -656,6 +656,16 @@ public class VideoCamera extends Activity implements View.OnClickListener, } @Override + public void onBackPressed() { + if (mPausing) return; + if (mMediaRecorderRecording) { + mShutterButton.performClick(); + return; + } + super.onBackPressed(); + } + + @Override public boolean onKeyDown(int keyCode, KeyEvent event) { // Do not handle any key if the activity is paused. if (mPausing) { @@ -663,12 +673,6 @@ public class VideoCamera extends Activity implements View.OnClickListener, } switch (keyCode) { - case KeyEvent.KEYCODE_BACK: - if (mMediaRecorderRecording) { - mShutterButton.performClick(); - return true; - } - break; case KeyEvent.KEYCODE_CAMERA: if (event.getRepeatCount() == 0) { mShutterButton.performClick(); |