diff options
| author | Danny Baumann <dannybaumann@web.de> | 2015-10-26 14:21:47 +0100 |
|---|---|---|
| committer | doc HD <doc.divxm@gmail.com> | 2015-10-27 13:35:05 +0300 |
| commit | 35b9d98990ad80a464eb566670fccd58a027d323 (patch) | |
| tree | 7d23fcc96257b9412225f8fe9e92b7becd08d321 | |
| parent | ad8862462d5bd6125b82fbe28e68611adac1cefb (diff) | |
Fix gesture haptic feedback setting.lp5.1
The setting value was read from a system property, but never written. As
using a system property has SELinux implications and updating the
policies for all devices is more trouble than it's worth, the code was
changed to use a system setting instead.
Change-Id: I63be2e41a5a02bf537dbc3ad422282db296dd099
3 files changed, 21 insertions, 14 deletions
diff --git a/configpanel/res/xml/touchscreen_panel.xml b/configpanel/res/xml/touchscreen_panel.xml index 0d8248a..0b95338 100644 --- a/configpanel/res/xml/touchscreen_panel.xml +++ b/configpanel/res/xml/touchscreen_panel.xml @@ -34,7 +34,8 @@ <PreferenceCategory android:title="@string/touchscreen_extras"> <SwitchPreference - android:key="touchscreen_haptic_feedback" + android:key="touchscreen_gesture_haptic_feedback" + android:persistent="false" android:title="@string/haptic_feedback" android:summary="@string/haptic_feedback_summary" /> diff --git a/configpanel/src/com/cyanogenmod/settings/device/TouchscreenGestureSettings.java b/configpanel/src/com/cyanogenmod/settings/device/TouchscreenGestureSettings.java index 29000f4..b62a926 100644 --- a/configpanel/src/com/cyanogenmod/settings/device/TouchscreenGestureSettings.java +++ b/configpanel/src/com/cyanogenmod/settings/device/TouchscreenGestureSettings.java @@ -21,25 +21,22 @@ import com.android.internal.util.cm.ScreenType; import com.cyanogenmod.settings.device.utils.NodePreferenceActivity; import android.os.Bundle; -import android.os.SystemProperties; +import android.provider.Settings; import android.preference.Preference; import android.preference.SwitchPreference; public class TouchscreenGestureSettings extends NodePreferenceActivity { + private static final String KEY_HAPTIC_FEEDBACK = "touchscreen_gesture_haptic_feedback"; - private static final String KEY_HAPTIC_FEEDBACK = "touchscreen_haptic_feedback"; - - private static final String PROP_HAPTIC_FEEDBACK = "persist.gestures.haptic"; + private SwitchPreference mHapticFeedback; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); addPreferencesFromResource(R.xml.touchscreen_panel); - final SwitchPreference hapticFeedback = - (SwitchPreference) findPreference(KEY_HAPTIC_FEEDBACK); - hapticFeedback.setChecked(SystemProperties.getBoolean(PROP_HAPTIC_FEEDBACK, true)); - hapticFeedback.setOnPreferenceChangeListener(this); + mHapticFeedback = (SwitchPreference) findPreference(KEY_HAPTIC_FEEDBACK); + mHapticFeedback.setOnPreferenceChangeListener(this); } @Override @@ -47,6 +44,7 @@ public class TouchscreenGestureSettings extends NodePreferenceActivity { final String key = preference.getKey(); if (KEY_HAPTIC_FEEDBACK.equals(key)) { final boolean value = (Boolean) newValue; + Settings.System.putInt(getContentResolver(), KEY_HAPTIC_FEEDBACK, value ? 1 : 0); return true; } @@ -61,6 +59,8 @@ public class TouchscreenGestureSettings extends NodePreferenceActivity { if (!ScreenType.isTablet(this)) { getListView().setPadding(0, 0, 0, 0); } - } + mHapticFeedback.setChecked( + Settings.System.getInt(getContentResolver(), KEY_HAPTIC_FEEDBACK, 1) != 0); + } } diff --git a/keyhandler/src/com/cyanogenmod/settings/device/KeyHandler.java b/keyhandler/src/com/cyanogenmod/settings/device/KeyHandler.java index 5a22b02..f4d17ba 100644 --- a/keyhandler/src/com/cyanogenmod/settings/device/KeyHandler.java +++ b/keyhandler/src/com/cyanogenmod/settings/device/KeyHandler.java @@ -37,7 +37,6 @@ import android.os.PowerManager.WakeLock; import android.os.RemoteException; import android.os.ServiceManager; import android.os.SystemClock; -import android.os.SystemProperties; import android.os.UserHandle; import android.os.Vibrator; import android.provider.MediaStore; @@ -54,7 +53,8 @@ public class KeyHandler implements DeviceKeyHandler { private static final String TAG = KeyHandler.class.getSimpleName(); private static final int GESTURE_REQUEST = 1; - private static final String PROP_HAPTIC_FEEDBACK = "persist.gestures.haptic"; + private static final String KEY_GESTURE_HAPTIC_FEEDBACK = + "touchscreen_gesture_haptic_feedback"; private static final String ACTION_DISMISS_KEYGUARD = "com.android.keyguard.action.DISMISS_KEYGUARD_SECURELY"; @@ -263,7 +263,13 @@ public class KeyHandler implements DeviceKeyHandler { } private void doHapticFeedback() { - if (mVibrator == null || !SystemProperties.getBoolean(PROP_HAPTIC_FEEDBACK, true)) return; - mVibrator.vibrate(50); + if (mVibrator == null) { + return; + } + boolean enabled = Settings.System.getInt(mContext.getContentResolver(), + KEY_GESTURE_HAPTIC_FEEDBACK, 1) != 0; + if (enabled) { + mVibrator.vibrate(50); + } } } |
