sanders: Remove ScreenOff gestures
* We do not support wake gestures * Remove the screen off gestures from Actions, Handler
This commit is contained in:
committed by
therootlord
parent
18859c1826
commit
db1f82e5d9
@@ -78,12 +78,6 @@
|
||||
android:theme="@style/LineageActions">
|
||||
</activity>
|
||||
|
||||
<activity
|
||||
android:name=".ScreenOffGestureSettingsActivity"
|
||||
android:label="@string/screen_off_gestures_title"
|
||||
android:theme="@style/LineageActions">
|
||||
</activity>
|
||||
|
||||
</application>
|
||||
|
||||
</manifest>
|
||||
|
||||
@@ -48,14 +48,4 @@
|
||||
android:targetClass="org.lineageos.settings.device.FPGestureSettingsActivity" />
|
||||
</Preference>
|
||||
|
||||
<Preference
|
||||
android:key="screen_off_gestures"
|
||||
android:title="@string/screen_off_gestures_title"
|
||||
android:summary="@string/screen_off_gestures_manage_summary"
|
||||
android:icon="@drawable/ic_settings_screen_off_gestures">
|
||||
<intent
|
||||
android:targetPackage="org.lineageos.settings.device"
|
||||
android:targetClass="org.lineageos.settings.device.ScreenOffGestureSettingsActivity" />
|
||||
</Preference>
|
||||
|
||||
</PreferenceScreen>
|
||||
|
||||
@@ -95,7 +95,6 @@ public class KeyHandler implements DeviceKeyHandler {
|
||||
WakeLock mProximityWakeLock;
|
||||
WakeLock mGestureWakeLock;
|
||||
private KeyguardManager mKeyguardManager;
|
||||
private ScreenOffGesturesHandler mScreenOffGesturesHandler;
|
||||
private FPScreenOffGesturesHandler mFPScreenOffGesturesHandler;
|
||||
private SensorManager mSensorManager;
|
||||
private CameraManager mCameraManager;
|
||||
@@ -109,7 +108,6 @@ public class KeyHandler implements DeviceKeyHandler {
|
||||
private Handler mHandler;
|
||||
private int fpTapCounts = 0;
|
||||
private boolean fpTapPending = false;
|
||||
private boolean screenOffGesturePending = false;
|
||||
private SettingsObserver mSettingsObserver;
|
||||
private Runnable doubleTapRunnable = new Runnable() {
|
||||
public void run() {
|
||||
@@ -131,11 +129,6 @@ public class KeyHandler implements DeviceKeyHandler {
|
||||
resetDoubleTapOnFP();
|
||||
}
|
||||
};
|
||||
private Runnable screenOffGestureRunnable = new Runnable() {
|
||||
public void run() {
|
||||
resetScreenOffGestureDelay();
|
||||
}
|
||||
};
|
||||
|
||||
public KeyHandler(Context context) {
|
||||
mContext = context;
|
||||
@@ -146,7 +139,6 @@ public class KeyHandler implements DeviceKeyHandler {
|
||||
mPowerManager = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
|
||||
mNotificationManager
|
||||
= (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
|
||||
mScreenOffGesturesHandler = new ScreenOffGesturesHandler();
|
||||
mFPScreenOffGesturesHandler = new FPScreenOffGesturesHandler();
|
||||
|
||||
mGestureWakeLock = mPowerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK,
|
||||
@@ -173,7 +165,6 @@ public class KeyHandler implements DeviceKeyHandler {
|
||||
}
|
||||
|
||||
mCameraManager = (CameraManager) mContext.getSystemService(Context.CAMERA_SERVICE);
|
||||
mCameraManager.registerTorchCallback(new MyTorchCallback(), mScreenOffGesturesHandler);
|
||||
mCameraManager.registerTorchCallback(new MyTorchCallback(), mFPScreenOffGesturesHandler);
|
||||
|
||||
mHandler = new Handler(Looper.getMainLooper());
|
||||
@@ -472,8 +463,7 @@ public class KeyHandler implements DeviceKeyHandler {
|
||||
}
|
||||
|
||||
boolean isFPScanCode = ArrayUtils.contains(sSupportedFPGestures, scanCode);
|
||||
boolean isScreenOffGesturesScanCode = ArrayUtils.contains(sSupportedScreenOffGestures, scanCode);
|
||||
if (!isFPScanCode && !isScreenOffGesturesScanCode) {
|
||||
if (!isFPScanCode) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -501,8 +491,6 @@ public class KeyHandler implements DeviceKeyHandler {
|
||||
} else {
|
||||
processFPScancode(scanCode);
|
||||
}
|
||||
} else if (isScreenOffGesturesScanCode) {
|
||||
processScreenOffScancode(scanCode);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
@@ -746,63 +734,6 @@ public class KeyHandler implements DeviceKeyHandler {
|
||||
}
|
||||
|
||||
|
||||
private void resetScreenOffGestureDelay() {
|
||||
screenOffGesturePending = false;
|
||||
mHandler.removeCallbacks(screenOffGestureRunnable);
|
||||
}
|
||||
|
||||
private void processScreenOffScancode(int scanCode) {
|
||||
if (screenOffGesturePending) {
|
||||
return;
|
||||
} else {
|
||||
resetScreenOffGestureDelay();
|
||||
screenOffGesturePending = true;
|
||||
mHandler.postDelayed(screenOffGestureRunnable, 500);
|
||||
}
|
||||
if (!mScreenOffGesturesHandler.hasMessages(GESTURE_REQUEST)) {
|
||||
Message msg = mScreenOffGesturesHandler.obtainMessage(GESTURE_REQUEST);
|
||||
msg.arg1 = scanCode;
|
||||
/* boolean defaultProximity = mContext.getResources().getBoolean(
|
||||
com.android.internal.R.bool.config_proximityCheckOnWakeEnabledByDefault);
|
||||
boolean proximityWakeCheckEnabled = Settings.System.getInt(mContext.getContentResolver(),
|
||||
Settings.System.PROXIMITY_ON_WAKE, defaultProximity ? 1 : 0) == 1;*/
|
||||
boolean defaultProximity = true;
|
||||
boolean proximityWakeCheckEnabled = true;
|
||||
if (mProximityWakeSupported && proximityWakeCheckEnabled && mProximitySensor != null) {
|
||||
mScreenOffGesturesHandler.sendMessageDelayed(msg, mProximityTimeOut);
|
||||
registerScreenOffGesturesListener(scanCode);
|
||||
} else {
|
||||
mScreenOffGesturesHandler.sendMessage(msg);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void registerScreenOffGesturesListener(final int scanCode) {
|
||||
mProximityWakeLock.acquire();
|
||||
mSensorManager.registerListener(new SensorEventListener() {
|
||||
@Override
|
||||
public void onSensorChanged(SensorEvent event) {
|
||||
mProximityWakeLock.release();
|
||||
mSensorManager.unregisterListener(this);
|
||||
if (!mScreenOffGesturesHandler.hasMessages(GESTURE_REQUEST)) {
|
||||
// The sensor took to long, ignoring.
|
||||
return;
|
||||
}
|
||||
mScreenOffGesturesHandler.removeMessages(GESTURE_REQUEST);
|
||||
if (event.values[0] == mProximitySensor.getMaximumRange()) {
|
||||
Message msg = mScreenOffGesturesHandler.obtainMessage(GESTURE_REQUEST);
|
||||
msg.arg1 = scanCode;
|
||||
mScreenOffGesturesHandler.sendMessage(msg);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAccuracyChanged(Sensor sensor, int accuracy) {
|
||||
}
|
||||
|
||||
}, mProximitySensor, SensorManager.SENSOR_DELAY_FASTEST);
|
||||
}
|
||||
|
||||
private void fireScreenOffAction(int action) {
|
||||
boolean haptic = Settings.System.getInt(mContext.getContentResolver(), KEY_GESTURE_ENABLE_HAPTIC_FEEDBACK, 1) != 0;
|
||||
if (haptic && (action == ACTION_CAMERA || action == ACTION_FLASHLIGHT)) {
|
||||
@@ -924,38 +855,6 @@ public class KeyHandler implements DeviceKeyHandler {
|
||||
}
|
||||
}
|
||||
|
||||
private class ScreenOffGesturesHandler extends Handler {
|
||||
@Override
|
||||
public void handleMessage(Message msg) {
|
||||
int scanCode = msg.arg1;
|
||||
int action = 0;
|
||||
switch (scanCode) {
|
||||
case GESTURE_SWIPE_RIGHT_SCANCODE:
|
||||
action = str2int(FileUtils.readOneLine(GESTURE_SWIPE_RIGHT_NODE));
|
||||
break;
|
||||
case GESTURE_SWIPE_LEFT_SCANCODE:
|
||||
action = str2int(FileUtils.readOneLine(GESTURE_SWIPE_LEFT_NODE));
|
||||
break;
|
||||
case GESTURE_SWIPE_DOWN_SCANCODE:
|
||||
action = str2int(FileUtils.readOneLine(GESTURE_SWIPE_DOWN_NODE));
|
||||
break;
|
||||
case GESTURE_SWIPE_UP_SCANCODE:
|
||||
action = str2int(FileUtils.readOneLine(GESTURE_SWIPE_UP_NODE));
|
||||
break;
|
||||
case GESTURE_DOUBLE_TAP_SCANCODE:
|
||||
action = str2int(FileUtils.readOneLine(GESTURE_DOUBLE_TAP_NODE));
|
||||
if (action != 0) {
|
||||
action = ACTION_POWER;
|
||||
}
|
||||
break;
|
||||
}
|
||||
boolean isActionSupported = ArrayUtils.contains(sScreenOffSupportedActions, action);
|
||||
if (isActionSupported) {
|
||||
fireScreenOffAction(action);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private class FPScreenOffGesturesHandler extends Handler {
|
||||
@Override
|
||||
public void handleMessage(Message msg) {
|
||||
@@ -978,4 +877,4 @@ public class KeyHandler implements DeviceKeyHandler {
|
||||
mTorchEnabled = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -135,8 +135,7 @@ public class LineageActionsSettings {
|
||||
} else if (GESTURE_LIFT_TO_SILENCE_KEY.equals(key)) {
|
||||
mLiftToSilenceEnabled = sharedPreferences.getBoolean(GESTURE_LIFT_TO_SILENCE_KEY, false);
|
||||
} else if (Constants.FP_HOME_KEY.equals(key) || Constants.FP_HAPTIC_KEY.equals(key) || Constants.FP_HOME_KEY_OFF.equals(key) || Constants.FP_HAPTIC_SCREENOFF_KEY.equals(key) || Constants.FP_KEYS.equals(key) || Constants.FP_KEY_DBLTAP.equals(key) || Constants.FP_KEY_HOLD.equals(key) || Constants.FP_KEY_LEFT.equals(key) || Constants.FP_KEY_RIGHT.equals(key)
|
||||
|| Constants.FP_KEYS_OFF.equals(key) || Constants.FP_KEY_DBLTAP_OFF.equals(key) || Constants.FP_KEY_HOLD_OFF.equals(key) || Constants.FP_KEY_LEFT_OFF.equals(key) || Constants.FP_KEY_RIGHT_OFF.equals(key)
|
||||
|| Constants.GESTURE_SWIPE_RIGHT.equals(key) || Constants.GESTURE_SWIPE_LEFT.equals(key) || Constants.GESTURE_SWIPE_DOWN.equals(key) || Constants.GESTURE_SWIPE_UP.equals(key)) {
|
||||
|| Constants.FP_KEYS_OFF.equals(key) || Constants.FP_KEY_DBLTAP_OFF.equals(key) || Constants.FP_KEY_HOLD_OFF.equals(key) || Constants.FP_KEY_LEFT_OFF.equals(key) || Constants.FP_KEY_RIGHT_OFF.equals(key)) {
|
||||
Constants.writePreference(mContext, key);
|
||||
updated = false;
|
||||
} else {
|
||||
|
||||
@@ -1,32 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2016 The CyanogenMod Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.lineageos.settings.device;
|
||||
|
||||
import android.os.Bundle;
|
||||
|
||||
import android.preference.PreferenceActivity;
|
||||
|
||||
public class ScreenOffGestureSettingsActivity extends PreferenceActivity {
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
if (savedInstanceState == null){
|
||||
getFragmentManager().beginTransaction()
|
||||
.replace(android.R.id.content, new ScreenOffGestureSettingsFragment()).commit();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,66 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2016 The CyanogenMod Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.lineageos.settings.device;
|
||||
|
||||
import android.os.Bundle;
|
||||
import android.provider.Settings;
|
||||
import android.support.v7.preference.Preference;
|
||||
import android.support.v14.preference.SwitchPreference;
|
||||
import android.support.v14.preference.PreferenceFragment;
|
||||
import android.view.MenuItem;
|
||||
|
||||
import static android.provider.Settings.Secure.DOUBLE_TAP_TO_WAKE;
|
||||
import static org.lineageos.settings.device.actions.Constants.KEY_GESTURE_ENABLE_HAPTIC_FEEDBACK;
|
||||
|
||||
public class ScreenOffGestureSettingsFragment extends PreferenceFragment {
|
||||
|
||||
private SwitchPreference mTapToWake;
|
||||
private SwitchPreference mHapticFeedback;
|
||||
|
||||
@Override
|
||||
public void onActivityCreated(Bundle savedInstanceState) {
|
||||
super.onActivityCreated(savedInstanceState);
|
||||
getActivity().getActionBar().setDisplayHomeAsUpEnabled(true);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
|
||||
addPreferencesFromResource(R.xml.screen_off_gesture_panel);
|
||||
mTapToWake = (SwitchPreference) findPreference("tap_to_wake");
|
||||
mTapToWake.setChecked(Settings.Secure.getInt(getActivity().getContentResolver(), DOUBLE_TAP_TO_WAKE, 0) == 1);
|
||||
mTapToWake.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
|
||||
@Override
|
||||
public boolean onPreferenceChange(Preference preference, Object objValue) {
|
||||
boolean value = (Boolean) objValue;
|
||||
Settings.Secure.putInt(getActivity().getContentResolver(), DOUBLE_TAP_TO_WAKE, value ? 1 : 0);
|
||||
return true;
|
||||
}
|
||||
});
|
||||
|
||||
mHapticFeedback = (SwitchPreference) findPreference("haptic_feedback");
|
||||
mHapticFeedback.setChecked(Settings.System.getInt(getActivity().getContentResolver(), KEY_GESTURE_ENABLE_HAPTIC_FEEDBACK, 1) == 1);
|
||||
mHapticFeedback.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
|
||||
@Override
|
||||
public boolean onPreferenceChange(Preference preference, Object objValue) {
|
||||
boolean value = (Boolean) objValue;
|
||||
Settings.System.putInt(getActivity().getContentResolver(), KEY_GESTURE_ENABLE_HAPTIC_FEEDBACK, value ? 1 : 0);
|
||||
return true;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
@@ -133,45 +133,6 @@ public class Constants {
|
||||
public static final String FP_KEY_SCREENOFF_LEFT_NODE = "/sys/homebutton/key_screenoff_left";
|
||||
public static final String FP_KEY_SCREENOFF_RIGHT_NODE = "/sys/homebutton/key_screenoff_right";
|
||||
|
||||
// Screen off gestures
|
||||
public static final int GESTURE_SWIPE_RIGHT_SCANCODE = 622;
|
||||
public static final int GESTURE_SWIPE_LEFT_SCANCODE = 623;
|
||||
public static final int GESTURE_SWIPE_DOWN_SCANCODE = 624;
|
||||
public static final int GESTURE_SWIPE_UP_SCANCODE = 625;
|
||||
public static final int GESTURE_DOUBLE_TAP_SCANCODE = 626;
|
||||
public static final int[] sSupportedScreenOffGestures = new int[]{
|
||||
GESTURE_SWIPE_RIGHT_SCANCODE,
|
||||
GESTURE_SWIPE_LEFT_SCANCODE,
|
||||
GESTURE_SWIPE_DOWN_SCANCODE,
|
||||
GESTURE_SWIPE_UP_SCANCODE,
|
||||
GESTURE_DOUBLE_TAP_SCANCODE
|
||||
};
|
||||
public static final int[] sScreenOffSupportedActions = new int[]{
|
||||
ACTION_POWER,
|
||||
ACTION_PLAY_PAUSE,
|
||||
ACTION_PREVIOUS_TRACK,
|
||||
ACTION_NEXT_TRACK,
|
||||
ACTION_FLASHLIGHT,
|
||||
ACTION_CAMERA,
|
||||
ACTION_BROWSER,
|
||||
ACTION_DIALER,
|
||||
ACTION_EMAIL,
|
||||
ACTION_MESSAGES
|
||||
};
|
||||
|
||||
// List of screen off gestures keys
|
||||
public static final String GESTURE_SWIPE_RIGHT = "screen_off_gestures_swipe_right";
|
||||
public static final String GESTURE_SWIPE_LEFT = "screen_off_gestures_swipe_left";
|
||||
public static final String GESTURE_SWIPE_DOWN = "screen_off_gestures_swipe_down";
|
||||
public static final String GESTURE_SWIPE_UP = "screen_off_gestures_swipe_up";
|
||||
|
||||
// Screen off gestures nodes
|
||||
public static final String GESTURE_SWIPE_RIGHT_NODE = "/sys/android_touch/gesture_swipe_right";
|
||||
public static final String GESTURE_SWIPE_LEFT_NODE = "/sys/android_touch/gesture_swipe_left";
|
||||
public static final String GESTURE_SWIPE_DOWN_NODE = "/sys/android_touch/gesture_swipe_down";
|
||||
public static final String GESTURE_SWIPE_UP_NODE = "/sys/android_touch/gesture_swipe_up";
|
||||
public static final String GESTURE_DOUBLE_TAP_NODE = "/sys/android_touch/doubletap2wake";
|
||||
|
||||
// Screen off gestures haptic
|
||||
public static final String KEY_GESTURE_ENABLE_HAPTIC_FEEDBACK = "screen_off_gesture_haptic_feedback";
|
||||
|
||||
@@ -197,10 +158,6 @@ public class Constants {
|
||||
FP_KEY_RIGHT_OFF,
|
||||
FP_KEY_LEFT_OFF,
|
||||
FP_HOME_KEY_OFF,
|
||||
GESTURE_SWIPE_RIGHT,
|
||||
GESTURE_SWIPE_LEFT,
|
||||
GESTURE_SWIPE_DOWN,
|
||||
GESTURE_SWIPE_UP
|
||||
};
|
||||
|
||||
static {
|
||||
@@ -218,10 +175,6 @@ public class Constants {
|
||||
sBooleanNodePreferenceMap.put(FP_KEY_HOLD_OFF, FP_KEY_SCREENOFF_HOLD_NODE);
|
||||
sBooleanNodePreferenceMap.put(FP_KEY_LEFT_OFF, FP_KEY_SCREENOFF_LEFT_NODE);
|
||||
sBooleanNodePreferenceMap.put(FP_KEY_RIGHT_OFF, FP_KEY_SCREENOFF_RIGHT_NODE);
|
||||
sBooleanNodePreferenceMap.put(GESTURE_SWIPE_RIGHT, GESTURE_SWIPE_RIGHT_NODE);
|
||||
sBooleanNodePreferenceMap.put(GESTURE_SWIPE_LEFT, GESTURE_SWIPE_LEFT_NODE);
|
||||
sBooleanNodePreferenceMap.put(GESTURE_SWIPE_DOWN, GESTURE_SWIPE_DOWN_NODE);
|
||||
sBooleanNodePreferenceMap.put(GESTURE_SWIPE_UP, GESTURE_SWIPE_UP_NODE);
|
||||
sNodeDefaultMap.put(FP_HOME_KEY, false);
|
||||
sNodeDefaultMap.put(FP_HOME_KEY_OFF, false);
|
||||
sNodeDefaultMap.put(FP_HAPTIC_KEY, false);
|
||||
@@ -236,10 +189,6 @@ public class Constants {
|
||||
sNodeDefaultMap.put(FP_KEY_HOLD_OFF, "0");
|
||||
sNodeDefaultMap.put(FP_KEY_LEFT_OFF, "0");
|
||||
sNodeDefaultMap.put(FP_KEY_RIGHT_OFF, "0");
|
||||
sNodeDefaultMap.put(GESTURE_SWIPE_RIGHT, "0");
|
||||
sNodeDefaultMap.put(GESTURE_SWIPE_LEFT, "0");
|
||||
sNodeDefaultMap.put(GESTURE_SWIPE_DOWN, "0");
|
||||
sNodeDefaultMap.put(GESTURE_SWIPE_UP, "0");
|
||||
}
|
||||
|
||||
public static boolean isPreferenceEnabled(Context context, String key) {
|
||||
@@ -257,7 +206,7 @@ public class Constants {
|
||||
String value = "1";
|
||||
Log.e(TAG, "Write Pref: " + pref);
|
||||
if (!pref.equals(FP_KEYS) && !pref.equals(FP_KEY_DBLTAP) && !pref.equals(FP_KEY_HOLD) && !pref.equals(FP_KEY_LEFT) && !pref.equals(FP_KEY_RIGHT) &&
|
||||
!pref.equals(FP_KEYS_OFF) && !pref.equals(FP_KEY_DBLTAP_OFF) && !pref.equals(FP_KEY_HOLD_OFF) && !pref.equals(FP_KEY_LEFT_OFF) && !pref.equals(FP_KEY_RIGHT_OFF) && !pref.equals(GESTURE_SWIPE_RIGHT) && !pref.equals(GESTURE_SWIPE_LEFT) && !pref.equals(GESTURE_SWIPE_DOWN) && !pref.equals(GESTURE_SWIPE_UP))
|
||||
!pref.equals(FP_KEYS_OFF) && !pref.equals(FP_KEY_DBLTAP_OFF) && !pref.equals(FP_KEY_HOLD_OFF) && !pref.equals(FP_KEY_LEFT_OFF) && !pref.equals(FP_KEY_RIGHT_OFF))
|
||||
value = isPreferenceEnabled(context, pref) ? "1" : "0";
|
||||
else
|
||||
value = GetPreference(context, pref);
|
||||
|
||||
Reference in New Issue
Block a user