OSDN Git Service

Settings: move high touch sensitivity setting to Display
authorRoman Birg <roman@cyngn.com>
Wed, 10 Aug 2016 19:42:07 +0000 (12:42 -0700)
committerGerrit Code Review <gerrit@cyanogenmod.org>
Fri, 12 Aug 2016 14:32:40 +0000 (07:32 -0700)
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>
res/xml/display.xml
res/xml/language_settings.xml
src/com/android/settings/DisplaySettings.java
src/com/android/settings/cyanogenmod/BootReceiver.java
src/com/android/settings/inputmethod/InputMethodAndLanguageSettings.java

index 0d1f965..14b44ea 100644 (file)
                 android:defaultValue="true" />
 
         <SwitchPreference
+                android:key="high_touch_sensitivity"
+                android:title="@string/high_touch_sensitivity_title"
+                android:summary="@string/high_touch_sensitivity_summary"
+                android:defaultValue="false" />
+
+        <SwitchPreference
                 android:key="camera_gesture"
                 android:title="@string/camera_gesture_title"
                 android:summary="@string/camera_gesture_desc"
index 2b35f2b..f6bcb60 100644 (file)
                 android:persistent="false" />
 
         <SwitchPreference
-                android:key="high_touch_sensitivity"
-                android:title="@string/high_touch_sensitivity_title"
-                android:summary="@string/high_touch_sensitivity_summary"
-                android:defaultValue="false" />
-
-        <SwitchPreference
                 android:key="touchscreen_hovering"
                 android:title="@string/touchscreen_hovering_title"
                 android:summary="@string/touchscreen_hovering_summary"
index f01f1e8..a434e97 100644 (file)
@@ -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);
+        }
+    }
+
 }
index 7bee75c..20190e6 100644 (file)
@@ -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);
         }
 
index 1e7b35c..7c531da 100644 (file)
@@ -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));