diff options
author | Michael Bestas <mikeioannina@gmail.com> | 2013-11-05 16:43:50 +0200 |
---|---|---|
committer | Bruno Martins <bgcngm@gmail.com> | 2018-11-20 12:30:48 +0000 |
commit | c2e6b4b570d9736026e420979acc45a6f718b9f1 (patch) | |
tree | 85f1a82772bce93ac7e3840b632d242c31c54cc3 /src/com/android/camera/VideoModule.java | |
parent | 451b8afdfb4e1bc401b9d189682c108d3bce272b (diff) | |
download | android_packages_apps_Snap-c2e6b4b570d9736026e420979acc45a6f718b9f1.tar.gz android_packages_apps_Snap-c2e6b4b570d9736026e420979acc45a6f718b9f1.tar.bz2 android_packages_apps_Snap-c2e6b4b570d9736026e420979acc45a6f718b9f1.zip |
Camera: Cleanup hardware key handling
* Fix power shutter behaviour in camcorder mode
* Disable volume change while in panorama mode, volume buttons should only
handle camera operations while in the camera
* Add camera/power/volume key shutter handling in panorama mode
On devices with a hardware camera key:
* Disable power & volume shutter features
* Volume buttons control the zoom
On devices without a hardware camera key:
* When power shutter is disabled, volume buttons control the shutter (like AOSP)
* When power shutter is enabled, volume buttons control the zoom
Change-Id: I141946d5b6f5aec8b1e9a9f99270d30295596079
Diffstat (limited to 'src/com/android/camera/VideoModule.java')
-rw-r--r-- | src/com/android/camera/VideoModule.java | 41 |
1 files changed, 32 insertions, 9 deletions
diff --git a/src/com/android/camera/VideoModule.java b/src/com/android/camera/VideoModule.java index df436106e..e713c72dc 100644 --- a/src/com/android/camera/VideoModule.java +++ b/src/com/android/camera/VideoModule.java @@ -1385,25 +1385,41 @@ public class VideoModule implements CameraModule, switch (keyCode) { case KeyEvent.KEYCODE_VOLUME_UP: - mUI.onScaleStepResize(true); + if (event.getRepeatCount() == 0 && !CameraActivity.mPowerShutter && + !CameraUtil.hasCameraKey()) { + mUI.clickShutter(); + } else { + mUI.onScaleStepResize(true); + } return true; case KeyEvent.KEYCODE_VOLUME_DOWN: - mUI.onScaleStepResize(false); + if (event.getRepeatCount() == 0 && !CameraActivity.mPowerShutter && + !CameraUtil.hasCameraKey()) { + mUI.clickShutter(); + } else { + mUI.onScaleStepResize(false); + } return true; case KeyEvent.KEYCODE_CAMERA: if (event.getRepeatCount() == 0) { mUI.clickShutter(); - return true; } - break; + return true; case KeyEvent.KEYCODE_DPAD_CENTER: if (event.getRepeatCount() == 0) { mUI.clickShutter(); - return true; } - break; + return true; + case KeyEvent.KEYCODE_POWER: + if (event.getRepeatCount() == 0 && CameraActivity.mPowerShutter && + !CameraUtil.hasCameraKey()) { + mUI.clickShutter(); + } + return true; case KeyEvent.KEYCODE_MENU: - if (mMediaRecorderRecording) return true; + if (mMediaRecorderRecording) { + return true; + } break; } return false; @@ -1413,14 +1429,21 @@ public class VideoModule implements CameraModule, public boolean onKeyUp(int keyCode, KeyEvent event) { switch (keyCode) { case KeyEvent.KEYCODE_VOLUME_UP: + if (!CameraActivity.mPowerShutter && !CameraUtil.hasCameraKey()) { + mUI.pressShutter(false); + } + return true; case KeyEvent.KEYCODE_VOLUME_DOWN: + if (!CameraActivity.mPowerShutter && !CameraUtil.hasCameraKey()) { + mUI.pressShutter(false); + } return true; case KeyEvent.KEYCODE_CAMERA: mUI.pressShutter(false); return true; case KeyEvent.KEYCODE_POWER: - if (CameraActivity.mPowerShutter) { - onShutterButtonClick(); + if (CameraActivity.mPowerShutter && !CameraUtil.hasCameraKey()) { + mUI.pressShutter(false); } return true; } |