Loading res/values/strings.xml +1 −0 Original line number Diff line number Diff line Loading @@ -5847,6 +5847,7 @@ <string name="keywords_lockscreen">slide to unlock, password, pattern, PIN</string> <string name="keywords_profile_challenge">work challenge, work, profile</string> <string name="keywords_unification">work profile, managed profile, unify, unification, work, profile</string> <string name="keywords_gesture">gesture</string> <!-- NFC Wi-Fi pairing/setup strings--> Loading res/xml/display_settings.xml +6 −7 Original line number Diff line number Diff line Loading @@ -63,11 +63,6 @@ android:title="@string/camera_gesture_title" android:summary="@string/camera_gesture_desc" /> <SwitchPreference android:key="camera_double_tap_power_gesture" android:title="@string/camera_double_tap_power_gesture_title" android:summary="@string/camera_double_tap_power_gesture_desc" /> <PreferenceScreen android:key="screensaver" android:title="@string/screensaver_settings_title" Loading @@ -77,10 +72,14 @@ android:key="lift_to_wake" android:title="@string/lift_to_wake_title" /> <SwitchPreference <PreferenceScreen android:key="doze" android:title="@string/doze_title" android:summary="@string/doze_summary" /> android:summary="@string/doze_summary" android:fragment="com.android.settings.gestures.GestureSettings" > <extra android:name=":settings:fragment_args_key" android:value="gesture_pick_up_and_nudge" /> </PreferenceScreen> <SwitchPreference android:key="tap_to_wake" Loading res/xml/gesture_settings.xml +2 −1 Original line number Diff line number Diff line Loading @@ -16,7 +16,8 @@ <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" xmlns:settings="http://schemas.android.com/apk/res-auto" android:title="@string/gesture_preference_title"> android:title="@string/gesture_preference_title" settings:keywords="@string/keywords_gesture"> <com.android.settings.gestures.GesturePreference android:key="gesture_double_tap_power" Loading src/com/android/settings/DisplaySettings.java +1 −47 Original line number Diff line number Diff line Loading @@ -57,7 +57,6 @@ import com.android.settingslib.RestrictedPreference; import java.util.ArrayList; import java.util.List; import static android.provider.Settings.Secure.CAMERA_DOUBLE_TAP_POWER_GESTURE_DISABLED; 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; Loading Loading @@ -86,8 +85,6 @@ public class DisplaySettings extends SettingsPreferenceFragment implements 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 String KEY_CAMERA_DOUBLE_TAP_POWER_GESTURE = "camera_double_tap_power_gesture"; private static final String KEY_WALLPAPER = "wallpaper"; private static final String KEY_VR_DISPLAY_PREF = "vr_display_pref"; Loading @@ -97,11 +94,9 @@ public class DisplaySettings extends SettingsPreferenceFragment implements private ListPreference mNightModePreference; private Preference mScreenSaverPreference; private SwitchPreference mLiftToWakePreference; private SwitchPreference mDozePreference; private SwitchPreference mTapToWakePreference; private SwitchPreference mAutoBrightnessPreference; private SwitchPreference mCameraGesturePreference; private SwitchPreference mCameraDoubleTapPowerGesturePreference; @Override protected int getMetricsCategory() { Loading Loading @@ -141,10 +136,7 @@ public class DisplaySettings extends SettingsPreferenceFragment implements removePreference(KEY_LIFT_TO_WAKE); } if (isDozeAvailable(activity)) { mDozePreference = (SwitchPreference) findPreference(KEY_DOZE); mDozePreference.setOnPreferenceChangeListener(this); } else { if (!isDozeAvailable(activity)) { removePreference(KEY_DOZE); } Loading @@ -162,14 +154,6 @@ public class DisplaySettings extends SettingsPreferenceFragment implements removePreference(KEY_CAMERA_GESTURE); } if (isCameraDoubleTapPowerGestureAvailable(getResources())) { mCameraDoubleTapPowerGesturePreference = (SwitchPreference) findPreference(KEY_CAMERA_DOUBLE_TAP_POWER_GESTURE); mCameraDoubleTapPowerGesturePreference.setOnPreferenceChangeListener(this); } else { removePreference(KEY_CAMERA_DOUBLE_TAP_POWER_GESTURE); } if (RotationPolicy.isRotationLockToggleVisible(activity)) { DropDownPreference rotatePreference = (DropDownPreference) findPreference(KEY_AUTO_ROTATE); Loading Loading @@ -288,11 +272,6 @@ public class DisplaySettings extends SettingsPreferenceFragment implements !SystemProperties.getBoolean("gesture.disable_camera_launch", false); } private static boolean isCameraDoubleTapPowerGestureAvailable(Resources res) { return res.getBoolean( com.android.internal.R.bool.config_cameraDoubleTapPowerGestureEnabled); } private static boolean isVrDisplayModeAvailable(Context context) { PackageManager pm = context.getPackageManager(); return pm.hasSystemFeature(PackageManager.FEATURE_VR_MODE_HIGH_PERFORMANCE); Loading Loading @@ -365,12 +344,6 @@ public class DisplaySettings extends SettingsPreferenceFragment implements mLiftToWakePreference.setChecked(value != 0); } // Update doze if it is available. if (mDozePreference != null) { int value = Settings.Secure.getInt(getContentResolver(), DOZE_ENABLED, 1); mDozePreference.setChecked(value != 0); } // Update tap to wake if it is available. if (mTapToWakePreference != null) { int value = Settings.Secure.getInt(getContentResolver(), DOUBLE_TAP_TO_WAKE, 0); Loading @@ -382,13 +355,6 @@ public class DisplaySettings extends SettingsPreferenceFragment implements int value = Settings.Secure.getInt(getContentResolver(), CAMERA_GESTURE_DISABLED, 0); mCameraGesturePreference.setChecked(value == 0); } // Update camera gesture #2 if it is available. if (mCameraDoubleTapPowerGesturePreference != null) { int value = Settings.Secure.getInt( getContentResolver(), CAMERA_DOUBLE_TAP_POWER_GESTURE_DISABLED, 0); mCameraDoubleTapPowerGesturePreference.setChecked(value == 0); } } private void updateScreenSaverSummary() { Loading Loading @@ -431,10 +397,6 @@ public class DisplaySettings extends SettingsPreferenceFragment implements boolean value = (Boolean) objValue; Settings.Secure.putInt(getContentResolver(), WAKE_GESTURE_ENABLED, value ? 1 : 0); } if (preference == mDozePreference) { boolean value = (Boolean) objValue; Settings.Secure.putInt(getContentResolver(), DOZE_ENABLED, value ? 1 : 0); } if (preference == mTapToWakePreference) { boolean value = (Boolean) objValue; Settings.Secure.putInt(getContentResolver(), DOUBLE_TAP_TO_WAKE, value ? 1 : 0); Loading @@ -444,11 +406,6 @@ public class DisplaySettings extends SettingsPreferenceFragment implements Settings.Secure.putInt(getContentResolver(), CAMERA_GESTURE_DISABLED, value ? 0 : 1 /* Backwards because setting is for disabling */); } if (preference == mCameraDoubleTapPowerGesturePreference) { boolean value = (Boolean) objValue; Settings.Secure.putInt(getContentResolver(), CAMERA_DOUBLE_TAP_POWER_GESTURE_DISABLED, value ? 0 : 1 /* Backwards because setting is for disabling */); } if (preference == mNightModePreference) { try { final int value = Integer.parseInt((String) objValue); Loading Loading @@ -554,9 +511,6 @@ public class DisplaySettings extends SettingsPreferenceFragment implements if (!isCameraGestureAvailable(context.getResources())) { result.add(KEY_CAMERA_GESTURE); } if (!isCameraDoubleTapPowerGestureAvailable(context.getResources())) { result.add(KEY_CAMERA_DOUBLE_TAP_POWER_GESTURE); } if (!isVrDisplayModeAvailable(context)) { result.add(KEY_VR_DISPLAY_PREF); } Loading src/com/android/settings/gestures/GestureSettings.java +85 −13 Original line number Diff line number Diff line Loading @@ -16,51 +16,81 @@ package com.android.settings.gestures; import android.content.Context; import android.content.res.Resources; import android.os.Build; import android.os.Bundle; import android.support.v7.preference.PreferenceScreen; import android.provider.Settings; import android.os.SystemProperties; import android.provider.SearchIndexableResource; import android.provider.Settings.Secure; import android.support.v7.preference.Preference; import android.text.TextUtils; import android.util.Log; import com.android.internal.logging.MetricsProto.MetricsEvent; import com.android.settings.R; import com.android.settings.search.BaseSearchIndexProvider; import com.android.settings.search.Indexable; import com.android.settings.SettingsPreferenceFragment; import java.util.ArrayList; import java.util.List; /** * Top level fragment for gesture settings. * This will create individual switch preference for each gesture and handle updates when each * preference is updated */ public class GestureSettings extends SettingsPreferenceFragment implements Preference.OnPreferenceChangeListener { Preference.OnPreferenceChangeListener, Indexable { private static final String TAG = "GestureSettings"; private static final String PREF_KEY_DOUBLE_TAP_POWER = "gesture_double_tap_power"; private static final String PREF_KEY_DOUBLE_TWIST = "gesture_double_twist"; private static final String PREF_KEY_PICK_UP_AND_NUDGE = "gesture_pick_up_and_nudge"; private static final String PREF_KEY_SWIPE_DOWN_FINGERPRINT = "gesture_swipe_down_fingerprint"; private static final String DEBUG_DOZE_COMPONENT = "debug.doze.component"; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); addPreferencesFromResource(R.xml.gesture_settings); Context context = getActivity(); // Double tap power for camera int cameraDisabled = Settings.Secure.getInt(getActivity().getContentResolver(), Settings.Secure.CAMERA_DOUBLE_TAP_POWER_GESTURE_DISABLED, 1); if (isCameraDoubleTapPowerGestureAvailable(getResources())) { int cameraDisabled = Secure.getInt( getContentResolver(), Secure.CAMERA_DOUBLE_TAP_POWER_GESTURE_DISABLED, 1); GesturePreference preference = (GesturePreference) findPreference(PREF_KEY_DOUBLE_TAP_POWER); preference.setChecked(cameraDisabled == 0); preference.setOnPreferenceChangeListener(this); } else { removePreference(PREF_KEY_DOUBLE_TAP_POWER); } // Ambient Display if (isDozeAvailable(context)) { GesturePreference preference = (GesturePreference) findPreference(PREF_KEY_PICK_UP_AND_NUDGE); int dozeEnabled = Secure.getInt(getContentResolver(), Secure.DOZE_ENABLED, 0); preference.setChecked(dozeEnabled != 0); preference.setOnPreferenceChangeListener(this); } else { removePreference(PREF_KEY_PICK_UP_AND_NUDGE); } } @Override public boolean onPreferenceChange(Preference preference, Object newValue) { boolean enabled = (boolean) newValue; if (PREF_KEY_DOUBLE_TAP_POWER.equals(preference.getKey())) { Settings.Secure.putInt(getActivity().getContentResolver(), Settings.Secure.CAMERA_DOUBLE_TAP_POWER_GESTURE_DISABLED, enabled ? 0 : 1); String key = preference.getKey(); if (PREF_KEY_DOUBLE_TAP_POWER.equals(key)) { Secure.putInt(getActivity().getContentResolver(), Secure.CAMERA_DOUBLE_TAP_POWER_GESTURE_DISABLED, enabled ? 0 : 1); } else if (PREF_KEY_PICK_UP_AND_NUDGE.equals(key)) { Secure.putInt(getActivity().getContentResolver(), Secure.DOZE_ENABLED, enabled ? 1 : 0); } return true; } Loading @@ -70,4 +100,46 @@ public class GestureSettings extends SettingsPreferenceFragment implements return MetricsEvent.SETTINGS_GESTURES; } private static boolean isCameraDoubleTapPowerGestureAvailable(Resources res) { return res.getBoolean( com.android.internal.R.bool.config_cameraDoubleTapPowerGestureEnabled); } private static boolean isDozeAvailable(Context context) { String name = Build.IS_DEBUGGABLE ? SystemProperties.get(DEBUG_DOZE_COMPONENT) : null; if (TextUtils.isEmpty(name)) { name = context.getResources().getString( com.android.internal.R.string.config_dozeComponent); } return !TextUtils.isEmpty(name); } public static final Indexable.SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER = new BaseSearchIndexProvider() { @Override public List<SearchIndexableResource> getXmlResourcesToIndex(Context context, boolean enabled) { ArrayList<SearchIndexableResource> result = new ArrayList<SearchIndexableResource>(); SearchIndexableResource sir = new SearchIndexableResource(context); sir.xmlResId = R.xml.gesture_settings; result.add(sir); return result; } @Override public List<String> getNonIndexableKeys(Context context) { ArrayList<String> result = new ArrayList<String>(); if (!isCameraDoubleTapPowerGestureAvailable(context.getResources())) { result.add(PREF_KEY_DOUBLE_TAP_POWER); } if (!isDozeAvailable(context)) { result.add(PREF_KEY_PICK_UP_AND_NUDGE); } return result; } }; } No newline at end of file Loading
res/values/strings.xml +1 −0 Original line number Diff line number Diff line Loading @@ -5847,6 +5847,7 @@ <string name="keywords_lockscreen">slide to unlock, password, pattern, PIN</string> <string name="keywords_profile_challenge">work challenge, work, profile</string> <string name="keywords_unification">work profile, managed profile, unify, unification, work, profile</string> <string name="keywords_gesture">gesture</string> <!-- NFC Wi-Fi pairing/setup strings--> Loading
res/xml/display_settings.xml +6 −7 Original line number Diff line number Diff line Loading @@ -63,11 +63,6 @@ android:title="@string/camera_gesture_title" android:summary="@string/camera_gesture_desc" /> <SwitchPreference android:key="camera_double_tap_power_gesture" android:title="@string/camera_double_tap_power_gesture_title" android:summary="@string/camera_double_tap_power_gesture_desc" /> <PreferenceScreen android:key="screensaver" android:title="@string/screensaver_settings_title" Loading @@ -77,10 +72,14 @@ android:key="lift_to_wake" android:title="@string/lift_to_wake_title" /> <SwitchPreference <PreferenceScreen android:key="doze" android:title="@string/doze_title" android:summary="@string/doze_summary" /> android:summary="@string/doze_summary" android:fragment="com.android.settings.gestures.GestureSettings" > <extra android:name=":settings:fragment_args_key" android:value="gesture_pick_up_and_nudge" /> </PreferenceScreen> <SwitchPreference android:key="tap_to_wake" Loading
res/xml/gesture_settings.xml +2 −1 Original line number Diff line number Diff line Loading @@ -16,7 +16,8 @@ <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" xmlns:settings="http://schemas.android.com/apk/res-auto" android:title="@string/gesture_preference_title"> android:title="@string/gesture_preference_title" settings:keywords="@string/keywords_gesture"> <com.android.settings.gestures.GesturePreference android:key="gesture_double_tap_power" Loading
src/com/android/settings/DisplaySettings.java +1 −47 Original line number Diff line number Diff line Loading @@ -57,7 +57,6 @@ import com.android.settingslib.RestrictedPreference; import java.util.ArrayList; import java.util.List; import static android.provider.Settings.Secure.CAMERA_DOUBLE_TAP_POWER_GESTURE_DISABLED; 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; Loading Loading @@ -86,8 +85,6 @@ public class DisplaySettings extends SettingsPreferenceFragment implements 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 String KEY_CAMERA_DOUBLE_TAP_POWER_GESTURE = "camera_double_tap_power_gesture"; private static final String KEY_WALLPAPER = "wallpaper"; private static final String KEY_VR_DISPLAY_PREF = "vr_display_pref"; Loading @@ -97,11 +94,9 @@ public class DisplaySettings extends SettingsPreferenceFragment implements private ListPreference mNightModePreference; private Preference mScreenSaverPreference; private SwitchPreference mLiftToWakePreference; private SwitchPreference mDozePreference; private SwitchPreference mTapToWakePreference; private SwitchPreference mAutoBrightnessPreference; private SwitchPreference mCameraGesturePreference; private SwitchPreference mCameraDoubleTapPowerGesturePreference; @Override protected int getMetricsCategory() { Loading Loading @@ -141,10 +136,7 @@ public class DisplaySettings extends SettingsPreferenceFragment implements removePreference(KEY_LIFT_TO_WAKE); } if (isDozeAvailable(activity)) { mDozePreference = (SwitchPreference) findPreference(KEY_DOZE); mDozePreference.setOnPreferenceChangeListener(this); } else { if (!isDozeAvailable(activity)) { removePreference(KEY_DOZE); } Loading @@ -162,14 +154,6 @@ public class DisplaySettings extends SettingsPreferenceFragment implements removePreference(KEY_CAMERA_GESTURE); } if (isCameraDoubleTapPowerGestureAvailable(getResources())) { mCameraDoubleTapPowerGesturePreference = (SwitchPreference) findPreference(KEY_CAMERA_DOUBLE_TAP_POWER_GESTURE); mCameraDoubleTapPowerGesturePreference.setOnPreferenceChangeListener(this); } else { removePreference(KEY_CAMERA_DOUBLE_TAP_POWER_GESTURE); } if (RotationPolicy.isRotationLockToggleVisible(activity)) { DropDownPreference rotatePreference = (DropDownPreference) findPreference(KEY_AUTO_ROTATE); Loading Loading @@ -288,11 +272,6 @@ public class DisplaySettings extends SettingsPreferenceFragment implements !SystemProperties.getBoolean("gesture.disable_camera_launch", false); } private static boolean isCameraDoubleTapPowerGestureAvailable(Resources res) { return res.getBoolean( com.android.internal.R.bool.config_cameraDoubleTapPowerGestureEnabled); } private static boolean isVrDisplayModeAvailable(Context context) { PackageManager pm = context.getPackageManager(); return pm.hasSystemFeature(PackageManager.FEATURE_VR_MODE_HIGH_PERFORMANCE); Loading Loading @@ -365,12 +344,6 @@ public class DisplaySettings extends SettingsPreferenceFragment implements mLiftToWakePreference.setChecked(value != 0); } // Update doze if it is available. if (mDozePreference != null) { int value = Settings.Secure.getInt(getContentResolver(), DOZE_ENABLED, 1); mDozePreference.setChecked(value != 0); } // Update tap to wake if it is available. if (mTapToWakePreference != null) { int value = Settings.Secure.getInt(getContentResolver(), DOUBLE_TAP_TO_WAKE, 0); Loading @@ -382,13 +355,6 @@ public class DisplaySettings extends SettingsPreferenceFragment implements int value = Settings.Secure.getInt(getContentResolver(), CAMERA_GESTURE_DISABLED, 0); mCameraGesturePreference.setChecked(value == 0); } // Update camera gesture #2 if it is available. if (mCameraDoubleTapPowerGesturePreference != null) { int value = Settings.Secure.getInt( getContentResolver(), CAMERA_DOUBLE_TAP_POWER_GESTURE_DISABLED, 0); mCameraDoubleTapPowerGesturePreference.setChecked(value == 0); } } private void updateScreenSaverSummary() { Loading Loading @@ -431,10 +397,6 @@ public class DisplaySettings extends SettingsPreferenceFragment implements boolean value = (Boolean) objValue; Settings.Secure.putInt(getContentResolver(), WAKE_GESTURE_ENABLED, value ? 1 : 0); } if (preference == mDozePreference) { boolean value = (Boolean) objValue; Settings.Secure.putInt(getContentResolver(), DOZE_ENABLED, value ? 1 : 0); } if (preference == mTapToWakePreference) { boolean value = (Boolean) objValue; Settings.Secure.putInt(getContentResolver(), DOUBLE_TAP_TO_WAKE, value ? 1 : 0); Loading @@ -444,11 +406,6 @@ public class DisplaySettings extends SettingsPreferenceFragment implements Settings.Secure.putInt(getContentResolver(), CAMERA_GESTURE_DISABLED, value ? 0 : 1 /* Backwards because setting is for disabling */); } if (preference == mCameraDoubleTapPowerGesturePreference) { boolean value = (Boolean) objValue; Settings.Secure.putInt(getContentResolver(), CAMERA_DOUBLE_TAP_POWER_GESTURE_DISABLED, value ? 0 : 1 /* Backwards because setting is for disabling */); } if (preference == mNightModePreference) { try { final int value = Integer.parseInt((String) objValue); Loading Loading @@ -554,9 +511,6 @@ public class DisplaySettings extends SettingsPreferenceFragment implements if (!isCameraGestureAvailable(context.getResources())) { result.add(KEY_CAMERA_GESTURE); } if (!isCameraDoubleTapPowerGestureAvailable(context.getResources())) { result.add(KEY_CAMERA_DOUBLE_TAP_POWER_GESTURE); } if (!isVrDisplayModeAvailable(context)) { result.add(KEY_VR_DISPLAY_PREF); } Loading
src/com/android/settings/gestures/GestureSettings.java +85 −13 Original line number Diff line number Diff line Loading @@ -16,51 +16,81 @@ package com.android.settings.gestures; import android.content.Context; import android.content.res.Resources; import android.os.Build; import android.os.Bundle; import android.support.v7.preference.PreferenceScreen; import android.provider.Settings; import android.os.SystemProperties; import android.provider.SearchIndexableResource; import android.provider.Settings.Secure; import android.support.v7.preference.Preference; import android.text.TextUtils; import android.util.Log; import com.android.internal.logging.MetricsProto.MetricsEvent; import com.android.settings.R; import com.android.settings.search.BaseSearchIndexProvider; import com.android.settings.search.Indexable; import com.android.settings.SettingsPreferenceFragment; import java.util.ArrayList; import java.util.List; /** * Top level fragment for gesture settings. * This will create individual switch preference for each gesture and handle updates when each * preference is updated */ public class GestureSettings extends SettingsPreferenceFragment implements Preference.OnPreferenceChangeListener { Preference.OnPreferenceChangeListener, Indexable { private static final String TAG = "GestureSettings"; private static final String PREF_KEY_DOUBLE_TAP_POWER = "gesture_double_tap_power"; private static final String PREF_KEY_DOUBLE_TWIST = "gesture_double_twist"; private static final String PREF_KEY_PICK_UP_AND_NUDGE = "gesture_pick_up_and_nudge"; private static final String PREF_KEY_SWIPE_DOWN_FINGERPRINT = "gesture_swipe_down_fingerprint"; private static final String DEBUG_DOZE_COMPONENT = "debug.doze.component"; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); addPreferencesFromResource(R.xml.gesture_settings); Context context = getActivity(); // Double tap power for camera int cameraDisabled = Settings.Secure.getInt(getActivity().getContentResolver(), Settings.Secure.CAMERA_DOUBLE_TAP_POWER_GESTURE_DISABLED, 1); if (isCameraDoubleTapPowerGestureAvailable(getResources())) { int cameraDisabled = Secure.getInt( getContentResolver(), Secure.CAMERA_DOUBLE_TAP_POWER_GESTURE_DISABLED, 1); GesturePreference preference = (GesturePreference) findPreference(PREF_KEY_DOUBLE_TAP_POWER); preference.setChecked(cameraDisabled == 0); preference.setOnPreferenceChangeListener(this); } else { removePreference(PREF_KEY_DOUBLE_TAP_POWER); } // Ambient Display if (isDozeAvailable(context)) { GesturePreference preference = (GesturePreference) findPreference(PREF_KEY_PICK_UP_AND_NUDGE); int dozeEnabled = Secure.getInt(getContentResolver(), Secure.DOZE_ENABLED, 0); preference.setChecked(dozeEnabled != 0); preference.setOnPreferenceChangeListener(this); } else { removePreference(PREF_KEY_PICK_UP_AND_NUDGE); } } @Override public boolean onPreferenceChange(Preference preference, Object newValue) { boolean enabled = (boolean) newValue; if (PREF_KEY_DOUBLE_TAP_POWER.equals(preference.getKey())) { Settings.Secure.putInt(getActivity().getContentResolver(), Settings.Secure.CAMERA_DOUBLE_TAP_POWER_GESTURE_DISABLED, enabled ? 0 : 1); String key = preference.getKey(); if (PREF_KEY_DOUBLE_TAP_POWER.equals(key)) { Secure.putInt(getActivity().getContentResolver(), Secure.CAMERA_DOUBLE_TAP_POWER_GESTURE_DISABLED, enabled ? 0 : 1); } else if (PREF_KEY_PICK_UP_AND_NUDGE.equals(key)) { Secure.putInt(getActivity().getContentResolver(), Secure.DOZE_ENABLED, enabled ? 1 : 0); } return true; } Loading @@ -70,4 +100,46 @@ public class GestureSettings extends SettingsPreferenceFragment implements return MetricsEvent.SETTINGS_GESTURES; } private static boolean isCameraDoubleTapPowerGestureAvailable(Resources res) { return res.getBoolean( com.android.internal.R.bool.config_cameraDoubleTapPowerGestureEnabled); } private static boolean isDozeAvailable(Context context) { String name = Build.IS_DEBUGGABLE ? SystemProperties.get(DEBUG_DOZE_COMPONENT) : null; if (TextUtils.isEmpty(name)) { name = context.getResources().getString( com.android.internal.R.string.config_dozeComponent); } return !TextUtils.isEmpty(name); } public static final Indexable.SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER = new BaseSearchIndexProvider() { @Override public List<SearchIndexableResource> getXmlResourcesToIndex(Context context, boolean enabled) { ArrayList<SearchIndexableResource> result = new ArrayList<SearchIndexableResource>(); SearchIndexableResource sir = new SearchIndexableResource(context); sir.xmlResId = R.xml.gesture_settings; result.add(sir); return result; } @Override public List<String> getNonIndexableKeys(Context context) { ArrayList<String> result = new ArrayList<String>(); if (!isCameraDoubleTapPowerGestureAvailable(context.getResources())) { result.add(PREF_KEY_DOUBLE_TAP_POWER); } if (!isDozeAvailable(context)) { result.add(PREF_KEY_PICK_UP_AND_NUDGE); } return result; } }; } No newline at end of file