diff options
Diffstat (limited to 'src/com/android')
-rw-r--r-- | src/com/android/camera/CameraActivity.java | 35 | ||||
-rw-r--r-- | src/com/android/camera/settings/AppUpgrader.java | 24 | ||||
-rw-r--r-- | src/com/android/camera/settings/Keys.java | 9 |
3 files changed, 66 insertions, 2 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)) { diff --git a/src/com/android/camera/settings/AppUpgrader.java b/src/com/android/camera/settings/AppUpgrader.java index 92bd953d1..113f4d23b 100644 --- a/src/com/android/camera/settings/AppUpgrader.java +++ b/src/com/android/camera/settings/AppUpgrader.java @@ -85,10 +85,16 @@ public class AppUpgrader extends SettingsUpgrader { * resolution size on the N5 since we stored it with a swapped width/height. */ public static final int NEEDS_N5_16by9_RESOLUTION_SWAP = 7; + + /** + * With this version, port over power shutter settings. + */ + private static final int CAMERA_SETTINGS_POWER_SHUTTER = 8; + /** * Increment this value whenever new AOSP UpgradeSteps need to be executed. */ - public static final int APP_UPGRADE_VERSION = 7; + public static final int APP_UPGRADE_VERSION = 8; private final AppController mAppController; @@ -160,6 +166,10 @@ public class AppUpgrader extends SettingsUpgrader { if (lastVersion < NEEDS_N5_16by9_RESOLUTION_SWAP) { updateN516by9ResolutionIfNeeded(settingsManager); } + + if (lastVersion < CAMERA_SETTINGS_POWER_SHUTTER) { + upgradePowerShutter(settingsManager); + } } /** @@ -431,6 +441,18 @@ public class AppUpgrader extends SettingsUpgrader { } } + private void upgradePowerShutter(SettingsManager settingsManager) { + SharedPreferences oldGlobalPreferences = + settingsManager.openPreferences(OLD_GLOBAL_PREFERENCES_FILENAME); + if (oldGlobalPreferences.contains(Keys.KEY_POWER_SHUTTER)) { + String powerShutter = removeString(oldGlobalPreferences, Keys.KEY_POWER_SHUTTER); + if (OLD_SETTINGS_VALUE_ON.equals(powerShutter)) { + settingsManager.set(SettingsManager.SCOPE_GLOBAL, Keys.KEY_POWER_SHUTTER, + true); + } + } + } + /** * The R.integer.camera_mode_* indices were cleaned up, resulting in * removals and renaming of certain values. In particular camera_mode_gcam diff --git a/src/com/android/camera/settings/Keys.java b/src/com/android/camera/settings/Keys.java index 0339ea6c7..31200b30d 100644 --- a/src/com/android/camera/settings/Keys.java +++ b/src/com/android/camera/settings/Keys.java @@ -81,6 +81,7 @@ public class Keys { public static final String KEY_SHOULD_SHOW_SETTINGS_BUTTON_CLING = "pref_should_show_settings_button_cling"; public static final String KEY_HAS_SEEN_PERMISSIONS_DIALOGS = "pref_has_seen_permissions_dialogs"; + public static final String KEY_POWER_SHUTTER = "pref_power_shutter"; /** * Set some number of defaults for the defined keys. @@ -223,5 +224,13 @@ public class Keys { return settingsManager.getBoolean(SettingsManager.SCOPE_GLOBAL, KEY_CAMERA_GRID_LINES); } + + /** + * Returns whether power shutter is set on. + */ + public static boolean isPowerShutterOn(SettingsManager settingsManager) { + return settingsManager.getBoolean(SettingsManager.SCOPE_GLOBAL, + KEY_POWER_SHUTTER); + } } |