diff options
author | Danesh M <daneshm90@gmail.com> | 2015-02-03 20:05:13 -0800 |
---|---|---|
committer | Danesh M <daneshm90@gmail.com> | 2015-02-04 13:26:25 -0800 |
commit | 4160876350e6f52d4d0d23c3b9fe3697a2155cce (patch) | |
tree | 3733e46afdae1f0921dcd77fdc272302a25fcaca /src/com/android/camera/CameraActivity.java | |
parent | 4fdf3fe239d9b3240901aad599c7f79a868a5556 (diff) | |
download | android_packages_apps_Camera2-4160876350e6f52d4d0d23c3b9fe3697a2155cce.tar.gz android_packages_apps_Camera2-4160876350e6f52d4d0d23c3b9fe3697a2155cce.tar.bz2 android_packages_apps_Camera2-4160876350e6f52d4d0d23c3b9fe3697a2155cce.zip |
Camera: Powerkey shutter (2/2)
Change-Id: I70c5cd4dad547e2a9a96541b3104d52af5b5dd5c
Diffstat (limited to 'src/com/android/camera/CameraActivity.java')
-rw-r--r-- | src/com/android/camera/CameraActivity.java | 34 |
1 files changed, 33 insertions, 1 deletions
diff --git a/src/com/android/camera/CameraActivity.java b/src/com/android/camera/CameraActivity.java index 680b117c8..dc7298e51 100644 --- a/src/com/android/camera/CameraActivity.java +++ b/src/com/android/camera/CameraActivity.java @@ -157,7 +157,7 @@ import java.util.concurrent.TimeUnit; public class CameraActivity extends Activity implements AppController, CameraAgent.CameraOpenCallback, ShareActionProvider.OnShareTargetSelectedListener, - OrientationManager.OnOrientationChangeListener { + OrientationManager.OnOrientationChangeListener, SettingsManager.OnSettingChangedListener { private static final Log.Tag TAG = new Log.Tag("CameraActivity"); @@ -260,6 +260,8 @@ public class CameraActivity extends Activity }; private MemoryManager mMemoryManager; private MotionManager mMotionManager; + // Keep track of powershutter state + public boolean mPowerShutter; @Override public CameraAppUI getCameraAppUI() { @@ -561,6 +563,13 @@ public class CameraActivity extends Activity CameraUtil.showErrorAndFinish(this, R.string.cannot_connect_camera); } + @Override + public void onSettingChanged(SettingsManager settingsManager, String key) { + if (key.equals(Keys.KEY_POWER_SHUTTER)) { + initPowerShutter(); + } + } + private static class MainHandler extends Handler { final WeakReference<CameraActivity> mActivity; @@ -1345,6 +1354,9 @@ public class CameraActivity extends Activity ModulesInfo.setupModules(mAppContext, mModuleManager); mSettingsManager = getServices().getSettingsManager(); + mSettingsManager.addListener(this); + initPowerShutter(); + AppUpgrader appUpgrader = new AppUpgrader(this); appUpgrader.upgrade(mSettingsManager); Keys.setDefaults(mSettingsManager, mAppContext); @@ -1901,9 +1913,25 @@ public class CameraActivity extends Activity } } + protected void initPowerShutter() { + mPowerShutter = Keys.isPowerShutterOn(mSettingsManager); + if (mPowerShutter) { + getWindow().addPrivateFlags( + WindowManager.LayoutParams.PRIVATE_FLAG_PREVENT_POWER_KEY); + } else { + getWindow().clearPrivateFlags( + WindowManager.LayoutParams.PRIVATE_FLAG_PREVENT_POWER_KEY); + } + } + @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (!mFilmstripVisible) { + if (mPowerShutter && keyCode == KeyEvent.KEYCODE_POWER && + event.getRepeatCount() == 0) { + mCurrentModule.onShutterButtonFocus(true); + return true; + } if (mCurrentModule.onKeyDown(keyCode, event)) { return true; } @@ -1922,6 +1950,10 @@ public class CameraActivity extends Activity @Override public boolean onKeyUp(int keyCode, KeyEvent event) { if (!mFilmstripVisible) { + if (mPowerShutter && keyCode == KeyEvent.KEYCODE_POWER) { + mCurrentModule.onShutterButtonClick(); + return true; + } // If a module is in the middle of capture, it should // consume the key event. if (mCurrentModule.onKeyUp(keyCode, event)) { |