From a0c695b831df29c47fa0fd32c232490c3d51ba2c Mon Sep 17 00:00:00 2001 From: Roman Birg Date: Wed, 10 Aug 2016 12:42:07 -0700 Subject: Settings: move high touch sensitivity setting to Display For devices that support this feature, it makes sense to place this under display settings as most people wouldn't look under language. Ticket: CYNGNOS-3250 Change-Id: Ib99f5e8c5f0f2bdae7b5b5f788a364a1d63aa146 Signed-off-by: Roman Birg --- src/com/android/settings/DisplaySettings.java | 42 ++++++++++++++++++++++ .../android/settings/cyanogenmod/BootReceiver.java | 2 ++ .../InputMethodAndLanguageSettings.java | 25 ------------- 3 files changed, 44 insertions(+), 25 deletions(-) (limited to 'src') diff --git a/src/com/android/settings/DisplaySettings.java b/src/com/android/settings/DisplaySettings.java index f01f1e8..a434e97 100644 --- a/src/com/android/settings/DisplaySettings.java +++ b/src/com/android/settings/DisplaySettings.java @@ -20,6 +20,7 @@ import com.android.internal.logging.MetricsLogger; import android.app.AlertDialog; import android.content.DialogInterface; +import android.content.SharedPreferences; import android.preference.CheckBoxPreference; import android.os.UserHandle; @@ -83,6 +84,7 @@ import java.util.List; import com.android.settings.Utils; import com.android.settings.cyanogenmod.DisplayRotation; +import cyanogenmod.hardware.CMHardwareManager; import cyanogenmod.hardware.LiveDisplayManager; import cyanogenmod.providers.CMSettings; @@ -113,6 +115,7 @@ public class DisplaySettings extends SettingsPreferenceFragment implements private static final String KEY_NOTIFICATION_LIGHT = "notification_light"; private static final String KEY_BATTERY_LIGHT = "battery_light"; private static final String KEY_LIVEDISPLAY = "live_display"; + private static final String KEY_HIGH_TOUCH_SENSITIVITY = "high_touch_sensitivity"; private static final int DLG_GLOBAL_CHANGE_WARNING = 1; @@ -130,10 +133,13 @@ public class DisplaySettings extends SettingsPreferenceFragment implements private SwitchPreference mLiftToWakePreference; private SwitchPreference mDozePreference; private SwitchPreference mTapToWakePreference; + private SwitchPreference mHighTouchSensitivity; private SwitchPreference mProximityCheckOnWakePreference; private SwitchPreference mAutoBrightnessPreference; private SwitchPreference mWakeWhenPluggedOrUnplugged; + private CMHardwareManager mHardware; + private ContentObserver mAccelerometerRotationObserver = new ContentObserver(new Handler()) { @Override @@ -164,6 +170,8 @@ public class DisplaySettings extends SettingsPreferenceFragment implements final ContentResolver resolver = activity.getContentResolver(); addPreferencesFromResource(R.xml.display); + mHardware = CMHardwareManager.getInstance(activity); + PreferenceCategory displayPrefs = (PreferenceCategory) findPreference(KEY_CATEGORY_DISPLAY); PreferenceCategory interfacePrefs = (PreferenceCategory) @@ -294,6 +302,16 @@ public class DisplaySettings extends SettingsPreferenceFragment implements } } + mHighTouchSensitivity = (SwitchPreference) findPreference(KEY_HIGH_TOUCH_SENSITIVITY); + if (!mHardware.isSupported( + CMHardwareManager.FEATURE_HIGH_TOUCH_SENSITIVITY)) { + displayPrefs.removePreference(mHighTouchSensitivity); + mHighTouchSensitivity = null; + } else { + mHighTouchSensitivity.setChecked( + mHardware.get(CMHardwareManager.FEATURE_HIGH_TOUCH_SENSITIVITY)); + } + mProximityCheckOnWakePreference = (SwitchPreference) findPreference(KEY_PROXIMITY_WAKE); boolean proximityCheckOnWake = getResources().getBoolean( org.cyanogenmod.platform.internal.R.bool.config_proximityCheckOnWake); @@ -677,6 +695,12 @@ public class DisplaySettings extends SettingsPreferenceFragment implements } else if (preference == mAccelerometer) { RotationPolicy.setRotationLockForAccessibility(getActivity(), !mAccelerometer.isChecked()); + } else if (preference == mHighTouchSensitivity) { + boolean mHighTouchSensitivityEnable = mHighTouchSensitivity.isChecked(); + CMSettings.System.putInt(getActivity().getContentResolver(), + CMSettings.System.HIGH_TOUCH_SENSITIVITY_ENABLE, + mHighTouchSensitivityEnable ? 1 : 0); + return true; } return super.onPreferenceTreeClick(preferenceScreen, preference); @@ -796,6 +820,8 @@ public class DisplaySettings extends SettingsPreferenceFragment implements @Override public List getNonIndexableKeys(Context context) { + final CMHardwareManager hardware = CMHardwareManager.getInstance(context); + ArrayList result = new ArrayList(); if (!context.getResources().getBoolean( com.android.internal.R.bool.config_dreamsSupported)) { @@ -828,7 +854,23 @@ public class DisplaySettings extends SettingsPreferenceFragment implements if (!isCameraGestureAvailable(context.getResources())) { result.add(KEY_CAMERA_GESTURE); } + if (hardware.isSupported(CMHardwareManager.FEATURE_HIGH_TOUCH_SENSITIVITY)) { + result.add(KEY_HIGH_TOUCH_SENSITIVITY); + } return result; } }; + + public static void restore(Context context) { + final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); + final CMHardwareManager hardware = CMHardwareManager.getInstance(context); + if (hardware.isSupported(CMHardwareManager.FEATURE_HIGH_TOUCH_SENSITIVITY)) { + final boolean enabled = prefs.getBoolean(KEY_HIGH_TOUCH_SENSITIVITY, + hardware.get(CMHardwareManager.FEATURE_HIGH_TOUCH_SENSITIVITY)); + CMSettings.System.putInt(context.getContentResolver(), + CMSettings.System.HIGH_TOUCH_SENSITIVITY_ENABLE, + enabled ? 1 : 0); + } + } + } diff --git a/src/com/android/settings/cyanogenmod/BootReceiver.java b/src/com/android/settings/cyanogenmod/BootReceiver.java index 7bee75c..20190e6 100644 --- a/src/com/android/settings/cyanogenmod/BootReceiver.java +++ b/src/com/android/settings/cyanogenmod/BootReceiver.java @@ -23,6 +23,7 @@ import android.content.SharedPreferences; import android.preference.PreferenceManager; import com.android.settings.ButtonSettings; +import com.android.settings.DisplaySettings; import com.android.settings.R; import com.android.settings.Utils; import com.android.settings.contributors.ContributorsCloudFragment; @@ -43,6 +44,7 @@ public class BootReceiver extends BroadcastReceiver { ButtonSettings.restoreKeyDisabler(ctx); VibratorIntensity.restore(ctx); InputMethodAndLanguageSettings.restore(ctx); + DisplaySettings.restore(ctx); setRestoredTunable(ctx); } diff --git a/src/com/android/settings/inputmethod/InputMethodAndLanguageSettings.java b/src/com/android/settings/inputmethod/InputMethodAndLanguageSettings.java index 1e7b35c..7c531da 100644 --- a/src/com/android/settings/inputmethod/InputMethodAndLanguageSettings.java +++ b/src/com/android/settings/inputmethod/InputMethodAndLanguageSettings.java @@ -93,7 +93,6 @@ public class InputMethodAndLanguageSettings extends SettingsPreferenceFragment private static final String KEY_USER_DICTIONARY_SETTINGS = "key_user_dictionary_settings"; private static final String KEY_POINTER_SETTINGS_CATEGORY = "pointer_settings_category"; private static final String KEY_PREVIOUSLY_ENABLED_SUBTYPES = "previously_enabled_subtypes"; - private static final String KEY_HIGH_TOUCH_SENSITIVITY = "high_touch_sensitivity"; private static final String KEY_TOUCHSCREEN_HOVERING = "touchscreen_hovering"; private static final String KEY_TRACKPAD_SETTINGS = "gesture_pad_settings"; private static final String KEY_STYLUS_GESTURES = "stylus_gestures"; @@ -115,7 +114,6 @@ public class InputMethodAndLanguageSettings extends SettingsPreferenceFragment private int mDefaultInputMethodSelectorVisibility = 0; private ListPreference mShowInputMethodSelectorPref; private SwitchPreference mStylusIconEnabled; - private SwitchPreference mHighTouchSensitivity; private SwitchPreference mTouchscreenHovering; private PreferenceCategory mKeyboardSettingsCategory; private PreferenceCategory mHardKeyboardCategory; @@ -203,7 +201,6 @@ public class InputMethodAndLanguageSettings extends SettingsPreferenceFragment mStylusGestures = (PreferenceScreen) findPreference(KEY_STYLUS_GESTURES); mStylusIconEnabled = (SwitchPreference) findPreference(KEY_STYLUS_ICON_ENABLED); - mHighTouchSensitivity = (SwitchPreference) findPreference(KEY_HIGH_TOUCH_SENSITIVITY); mTouchscreenHovering = (SwitchPreference) findPreference(KEY_TOUCHSCREEN_HOVERING); @@ -213,15 +210,6 @@ public class InputMethodAndLanguageSettings extends SettingsPreferenceFragment pointerSettingsCategory.removePreference(mStylusIconEnabled); } - if (!mHardware.isSupported( - CMHardwareManager.FEATURE_HIGH_TOUCH_SENSITIVITY)) { - pointerSettingsCategory.removePreference(mHighTouchSensitivity); - mHighTouchSensitivity = null; - } else { - mHighTouchSensitivity.setChecked( - mHardware.get(CMHardwareManager.FEATURE_HIGH_TOUCH_SENSITIVITY)); - } - if (!mHardware.isSupported(CMHardwareManager.FEATURE_TOUCH_HOVERING)) { pointerSettingsCategory.removePreference(mTouchscreenHovering); mTouchscreenHovering = null; @@ -433,12 +421,6 @@ public class InputMethodAndLanguageSettings extends SettingsPreferenceFragment if (preference == mStylusIconEnabled) { Settings.System.putInt(getActivity().getContentResolver(), Settings.System.STYLUS_ICON_ENABLED, mStylusIconEnabled.isChecked() ? 1 : 0); - } else if (preference == mHighTouchSensitivity) { - boolean mHighTouchSensitivityEnable = mHighTouchSensitivity.isChecked(); - CMSettings.System.putInt(getActivity().getContentResolver(), - CMSettings.System.HIGH_TOUCH_SENSITIVITY_ENABLE, - mHighTouchSensitivityEnable ? 1 : 0); - return true; } else if (preference == mTouchscreenHovering) { boolean touchHoveringEnable = mTouchscreenHovering.isChecked(); CMSettings.Secure.putInt(getActivity().getContentResolver(), @@ -785,13 +767,6 @@ public class InputMethodAndLanguageSettings extends SettingsPreferenceFragment public static void restore(Context context) { final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); final CMHardwareManager hardware = CMHardwareManager.getInstance(context); - if (hardware.isSupported(CMHardwareManager.FEATURE_HIGH_TOUCH_SENSITIVITY)) { - final boolean enabled = prefs.getBoolean(KEY_HIGH_TOUCH_SENSITIVITY, - hardware.get(CMHardwareManager.FEATURE_HIGH_TOUCH_SENSITIVITY)); - CMSettings.System.putInt(context.getContentResolver(), - CMSettings.System.HIGH_TOUCH_SENSITIVITY_ENABLE, - enabled ? 1 : 0); - } if (hardware.isSupported(CMHardwareManager.FEATURE_TOUCH_HOVERING)) { final boolean enabled = prefs.getBoolean(KEY_TOUCHSCREEN_HOVERING, hardware.get(CMHardwareManager.FEATURE_TOUCH_HOVERING)); -- cgit v1.1