diff options
-rw-r--r-- | res/values/strings.xml | 7 | ||||
-rw-r--r-- | res/xml/display_settings.xml | 6 | ||||
-rw-r--r-- | src/com/android/settings/DisplaySettings.java | 31 |
3 files changed, 44 insertions, 0 deletions
diff --git a/res/values/strings.xml b/res/values/strings.xml index 38b33ac..88269e8 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -6981,4 +6981,11 @@ <string name="write_settings_on">Yes</string> <!-- Summary of app not allowed to write system settings [CHAR LIMIT=45] --> <string name="write_settings_off">No</string> + + <!-- Title of setting that controls gesture to open camera [CHAR LIMIT=40] --> + <string name="camera_gesture_title">Double twist for camera</string> + + <!-- Description of setting that controls gesture to open camera [CHAR LIMIT=NONE] --> + <string name="camera_gesture_desc">Open the camera app by twisting your wrist twice</string> + </resources> diff --git a/res/xml/display_settings.xml b/res/xml/display_settings.xml index e04d818..b5157e4 100644 --- a/res/xml/display_settings.xml +++ b/res/xml/display_settings.xml @@ -57,6 +57,12 @@ android:entries="@array/screen_timeout_entries" android:entryValues="@array/screen_timeout_values" /> + <SwitchPreference + android:key="camera_gesture" + android:title="@string/camera_gesture_title" + android:summary="@string/camera_gesture_desc" + android:persistent="false" /> + <PreferenceScreen android:key="screensaver" android:title="@string/screensaver_settings_title" diff --git a/src/com/android/settings/DisplaySettings.java b/src/com/android/settings/DisplaySettings.java index eef3c6b..d2daac8 100644 --- a/src/com/android/settings/DisplaySettings.java +++ b/src/com/android/settings/DisplaySettings.java @@ -22,6 +22,7 @@ import com.android.settings.DropDownPreference.Callback; import com.android.settings.search.BaseSearchIndexProvider; import com.android.settings.search.Indexable; +import static android.provider.Settings.Secure.CAMERA_GESTURE_DISABLED; import static android.provider.Settings.Secure.DOUBLE_TAP_TO_WAKE; import static android.provider.Settings.Secure.DOZE_ENABLED; import static android.provider.Settings.Secure.WAKE_GESTURE_ENABLED; @@ -74,6 +75,7 @@ public class DisplaySettings extends SettingsPreferenceFragment implements private static final String KEY_AUTO_BRIGHTNESS = "auto_brightness"; private static final String KEY_AUTO_ROTATE = "auto_rotate"; private static final String KEY_NIGHT_MODE = "night_mode"; + private static final String KEY_CAMERA_GESTURE = "camera_gesture"; private static final int DLG_GLOBAL_CHANGE_WARNING = 1; @@ -88,6 +90,7 @@ public class DisplaySettings extends SettingsPreferenceFragment implements private SwitchPreference mDozePreference; private SwitchPreference mTapToWakePreference; private SwitchPreference mAutoBrightnessPreference; + private SwitchPreference mCameraGesturePreference; @Override protected int getMetricsCategory() { @@ -149,6 +152,13 @@ public class DisplaySettings extends SettingsPreferenceFragment implements removePreference(KEY_TAP_TO_WAKE); } + if (isCameraGestureAvailable(getResources())) { + mCameraGesturePreference = (SwitchPreference) findPreference(KEY_CAMERA_GESTURE); + mCameraGesturePreference.setOnPreferenceChangeListener(this); + } else { + removePreference(KEY_CAMERA_GESTURE); + } + if (RotationPolicy.isRotationLockToggleVisible(activity)) { DropDownPreference rotatePreference = (DropDownPreference) findPreference(KEY_AUTO_ROTATE); @@ -224,6 +234,13 @@ public class DisplaySettings extends SettingsPreferenceFragment implements return res.getBoolean(com.android.internal.R.bool.config_automatic_brightness_available); } + private static boolean isCameraGestureAvailable(Resources res) { + boolean configSet = res.getInteger( + com.android.internal.R.integer.config_cameraLaunchGestureSensorType) != -1; + return configSet && + !SystemProperties.getBoolean("gesture.disable_camera_launch", false); + } + private void updateTimeoutPreferenceDescription(long currentTimeout) { ListPreference preference = mScreenTimeoutPreference; String summary; @@ -370,6 +387,12 @@ public class DisplaySettings extends SettingsPreferenceFragment implements int value = Settings.Secure.getInt(getContentResolver(), DOUBLE_TAP_TO_WAKE, 0); mTapToWakePreference.setChecked(value != 0); } + + // Update camera gesture if it is available. + if (mCameraGesturePreference != null) { + int value = Settings.Secure.getInt(getContentResolver(), CAMERA_GESTURE_DISABLED, 0); + mCameraGesturePreference.setChecked(value == 0); + } } private void updateScreenSaverSummary() { @@ -425,6 +448,11 @@ public class DisplaySettings extends SettingsPreferenceFragment implements boolean value = (Boolean) objValue; Settings.Secure.putInt(getContentResolver(), DOUBLE_TAP_TO_WAKE, value ? 1 : 0); } + if (preference == mCameraGesturePreference) { + boolean value = (Boolean) objValue; + Settings.Secure.putInt(getContentResolver(), CAMERA_GESTURE_DISABLED, + value ? 0 : 1 /* Backwards because setting is for disabling */); + } if (preference == mNightModePreference) { try { final int value = Integer.parseInt((String) objValue); @@ -493,6 +521,9 @@ public class DisplaySettings extends SettingsPreferenceFragment implements if (!isTapToWakeAvailable(context.getResources())) { result.add(KEY_TAP_TO_WAKE); } + if (!isCameraGestureAvailable(context.getResources())) { + result.add(KEY_CAMERA_GESTURE); + } return result; } }; |