diff options
author | Michael Bestas <mikeioannina@gmail.com> | 2013-11-05 16:43:50 +0200 |
---|---|---|
committer | Michael Bestas <mikeioannina@gmail.com> | 2015-09-17 23:26:02 +0300 |
commit | 4b6ade90186f024ce6986a5a13efa3be9e9c8d80 (patch) | |
tree | 1bd5eebc88ce444e13f4fe28e0f99d7ee70473f5 /src/com/android/camera/WideAnglePanoramaModule.java | |
parent | 69fe66517f086a01b6f9fb80e669256ec11c6625 (diff) | |
download | android_packages_apps_Snap-4b6ade90186f024ce6986a5a13efa3be9e9c8d80.tar.gz android_packages_apps_Snap-4b6ade90186f024ce6986a5a13efa3be9e9c8d80.tar.bz2 android_packages_apps_Snap-4b6ade90186f024ce6986a5a13efa3be9e9c8d80.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/WideAnglePanoramaModule.java')
-rw-r--r-- | src/com/android/camera/WideAnglePanoramaModule.java | 33 |
1 files changed, 32 insertions, 1 deletions
diff --git a/src/com/android/camera/WideAnglePanoramaModule.java b/src/com/android/camera/WideAnglePanoramaModule.java index 62b478dc6..30fda16f5 100644 --- a/src/com/android/camera/WideAnglePanoramaModule.java +++ b/src/com/android/camera/WideAnglePanoramaModule.java @@ -294,6 +294,9 @@ public class WideAnglePanoramaModule CameraSettings.upgradeGlobalPreferences(mPreferences.getGlobal(), activity); mLocationManager = new LocationManager(mActivity, null); + // Power shutter + mActivity.initPowerShutter(mPreferences); + mMainHandler = new Handler() { @Override public void handleMessage(Message msg) { @@ -887,6 +890,10 @@ public class WideAnglePanoramaModule } mUI.showPreviewCover(); releaseCamera(); + + // Load the power shutter + mActivity.initPowerShutter(mPreferences); + synchronized (mRendererLock) { mCameraTexture = null; @@ -1164,14 +1171,38 @@ public class WideAnglePanoramaModule public void onActivityResult(int requestCode, int resultCode, Intent data) { } - @Override public boolean onKeyDown(int keyCode, KeyEvent event) { + switch (keyCode) { + case KeyEvent.KEYCODE_VOLUME_UP: + case KeyEvent.KEYCODE_VOLUME_DOWN: + return true; + case KeyEvent.KEYCODE_CAMERA: + if (event.getRepeatCount() == 0) { + onShutterButtonClick(); + } + return true; + case KeyEvent.KEYCODE_POWER: + return true; + } return false; } @Override public boolean onKeyUp(int keyCode, KeyEvent event) { + switch (keyCode) { + case KeyEvent.KEYCODE_VOLUME_UP: + case KeyEvent.KEYCODE_VOLUME_DOWN: + if (!CameraActivity.mPowerShutter && !CameraUtil.hasCameraKey()) { + onShutterButtonClick(); + } + return true; + case KeyEvent.KEYCODE_POWER: + if (CameraActivity.mPowerShutter && !CameraUtil.hasCameraKey()) { + onShutterButtonClick(); + } + return true; + } return false; } |