summaryrefslogtreecommitdiffstats
path: root/src/com/android/camera/CameraActivity.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/camera/CameraActivity.java')
-rw-r--r--src/com/android/camera/CameraActivity.java35
1 files changed, 34 insertions, 1 deletions
diff --git a/src/com/android/camera/CameraActivity.java b/src/com/android/camera/CameraActivity.java
index d797aa7b2..a1357b49c 100644
--- a/src/com/android/camera/CameraActivity.java
+++ b/src/com/android/camera/CameraActivity.java
@@ -173,7 +173,8 @@ import java.util.List;
public class CameraActivity extends QuickActivity
implements AppController, CameraAgent.CameraOpenCallback,
- ShareActionProvider.OnShareTargetSelectedListener {
+ ShareActionProvider.OnShareTargetSelectedListener,
+ SettingsManager.OnSettingChangedListener {
private static final Log.Tag TAG = new Log.Tag("CameraActivity");
@@ -293,6 +294,9 @@ public class CameraActivity extends QuickActivity
/** First run dialog */
private FirstRunDialog mFirstRunDialog;
+ // Keep track of powershutter state
+ public boolean mPowerShutter;
+
@Override
public CameraAppUI getCameraAppUI() {
return mCameraAppUI;
@@ -565,6 +569,13 @@ public class CameraActivity extends QuickActivity
mFatalErrorHandler.onCameraReconnectFailure();
}
+ @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;
@@ -1496,6 +1507,8 @@ public class CameraActivity extends QuickActivity
ModulesInfo.setupModules(mAppContext, mModuleManager, mFeatureConfig);
+ initPowerShutter();
+
AppUpgrader appUpgrader = new AppUpgrader(this);
appUpgrader.upgrade(mSettingsManager);
@@ -2209,9 +2222,25 @@ public class CameraActivity extends QuickActivity
}
}
+ 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;
}
@@ -2230,6 +2259,10 @@ public class CameraActivity extends QuickActivity
@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)) {