diff options
author | Roman Birg <roman@cyngn.com> | 2016-08-10 12:42:07 -0700 |
---|---|---|
committer | Gerrit Code Review <gerrit@cyanogenmod.org> | 2016-08-12 07:32:40 -0700 |
commit | a0c695b831df29c47fa0fd32c232490c3d51ba2c (patch) | |
tree | eaa2bea35fe7330269c935f2516e84e5b620462e /src/com/android/settings/DisplaySettings.java | |
parent | b4bac9841a13c1ad747da3bc981993f0d6d67fd0 (diff) | |
download | packages_apps_Settings-a0c695b831df29c47fa0fd32c232490c3d51ba2c.zip packages_apps_Settings-a0c695b831df29c47fa0fd32c232490c3d51ba2c.tar.gz packages_apps_Settings-a0c695b831df29c47fa0fd32c232490c3d51ba2c.tar.bz2 |
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 <roman@cyngn.com>
Diffstat (limited to 'src/com/android/settings/DisplaySettings.java')
-rw-r--r-- | src/com/android/settings/DisplaySettings.java | 42 |
1 files changed, 42 insertions, 0 deletions
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<String> getNonIndexableKeys(Context context) { + final CMHardwareManager hardware = CMHardwareManager.getInstance(context); + ArrayList<String> result = new ArrayList<String>(); 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); + } + } + } |