diff options
Diffstat (limited to 'src/com/android/camera/CameraActivity.java')
-rw-r--r-- | src/com/android/camera/CameraActivity.java | 35 |
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)) { |