summaryrefslogtreecommitdiffstats
path: root/src/com/android/settings/DisplaySettings.java
diff options
context:
space:
mode:
authorRoman Birg <roman@cyngn.com>2016-08-10 12:42:07 -0700
committerGerrit Code Review <gerrit@cyanogenmod.org>2016-08-12 07:32:40 -0700
commita0c695b831df29c47fa0fd32c232490c3d51ba2c (patch)
treeeaa2bea35fe7330269c935f2516e84e5b620462e /src/com/android/settings/DisplaySettings.java
parentb4bac9841a13c1ad747da3bc981993f0d6d67fd0 (diff)
downloadpackages_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.java42
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);
+ }
+ }
+
}