summaryrefslogtreecommitdiffstats
path: root/src/com/android/camera/CameraActivity.java
diff options
context:
space:
mode:
authorDanesh M <daneshm90@gmail.com>2015-02-03 20:05:13 -0800
committerDanesh M <daneshm90@gmail.com>2015-02-04 13:26:25 -0800
commit4160876350e6f52d4d0d23c3b9fe3697a2155cce (patch)
tree3733e46afdae1f0921dcd77fdc272302a25fcaca /src/com/android/camera/CameraActivity.java
parent4fdf3fe239d9b3240901aad599c7f79a868a5556 (diff)
downloadandroid_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.java34
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)) {