From ca664b93b91ee4c29b22e914c01411c241f5068e Mon Sep 17 00:00:00 2001 From: Adrian Roos Date: Mon, 18 Apr 2016 14:40:27 -0700 Subject: [PATCH] Disable anti-falsing logic with touch exploration Change-Id: Ide1992f11ace9c2604f68fe3c9277c3e20ecb71a Fixes: 28140321 --- .../android/systemui/classifier/FalsingManager.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/packages/SystemUI/src/com/android/systemui/classifier/FalsingManager.java b/packages/SystemUI/src/com/android/systemui/classifier/FalsingManager.java index 0798590b68f50..1ac59925a70a6 100644 --- a/packages/SystemUI/src/com/android/systemui/classifier/FalsingManager.java +++ b/packages/SystemUI/src/com/android/systemui/classifier/FalsingManager.java @@ -27,6 +27,7 @@ import android.os.PowerManager; import android.os.UserHandle; import android.provider.Settings; import android.view.MotionEvent; +import android.view.accessibility.AccessibilityManager; import com.android.systemui.analytics.DataCollector; import com.android.systemui.statusbar.StatusBarState; @@ -60,6 +61,7 @@ public class FalsingManager implements SensorEventListener { private final SensorManager mSensorManager; private final DataCollector mDataCollector; private final HumanInteractionClassifier mHumanInteractionClassifier; + private final AccessibilityManager mAccessibilityManager; private static FalsingManager sInstance = null; @@ -78,7 +80,8 @@ public class FalsingManager implements SensorEventListener { private FalsingManager(Context context) { mContext = context; - mSensorManager = (SensorManager) mContext.getSystemService(Context.SENSOR_SERVICE); + mSensorManager = mContext.getSystemService(SensorManager.class); + mAccessibilityManager = context.getSystemService(AccessibilityManager.class); mDataCollector = DataCollector.getInstance(mContext); mHumanInteractionClassifier = HumanInteractionClassifier.getInstance(mContext); mScreenOn = context.getSystemService(PowerManager.class).isInteractive(); @@ -177,6 +180,11 @@ public class FalsingManager implements SensorEventListener { .toString()); } } + if (mAccessibilityManager.isTouchExplorationEnabled()) { + // Touch exploration triggers false positives in the classifier and + // already sufficiently prevents false unlocks. + return false; + } return mHumanInteractionClassifier.isFalseTouch(); }