Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a93dc19b authored by Dave Mankoff's avatar Dave Mankoff
Browse files

Analyze Falsing on Expanded Notif Shade.

Ensure that gestures on the expanded notification shade are picked up
properly by the FalsingManager. This adds `SHADE_DRAG` and
`QS_COLLAPSE` falsing interaction types to cover these cases.

Also, try to limit calling on the FalsingManager until a gesture is
actually ready to occur, instead of querying it while deciding what
the current gesture is.

Fixes: 184042853
Test: manual
Change-Id: I1f651614d4d1520bac1a2375319f69fb1017505f
parent 5a268a95
Loading
Loading
Loading
Loading
+7 −2
Original line number Diff line number Diff line
@@ -38,8 +38,10 @@ public abstract class Classifier {
    public static final int BOUNCER_UNLOCK = 8;
    public static final int PULSE_EXPAND = 9;
    public static final int BRIGHTNESS_SLIDER = 10;
    public static final int UDFPS_AUTHENTICATION = 11;
    public static final int DISABLED_UDFPS_AFFORDANCE = 12;
    public static final int SHADE_DRAG = 11;
    public static final int QS_COLLAPSE = 12;
    public static final int UDFPS_AUTHENTICATION = 13;
    public static final int DISABLED_UDFPS_AFFORDANCE = 14;

    @IntDef({
            QUICK_SETTINGS,
@@ -53,6 +55,9 @@ public abstract class Classifier {
            BOUNCER_UNLOCK,
            PULSE_EXPAND,
            BRIGHTNESS_SLIDER,
            SHADE_DRAG,
            QS_COLLAPSE,
            BRIGHTNESS_SLIDER,
            UDFPS_AUTHENTICATION,
            DISABLED_UDFPS_AFFORDANCE
    })
+6 −1
Original line number Diff line number Diff line
@@ -22,6 +22,9 @@ import static com.android.internal.config.sysui.SystemUiDeviceConfigFlags.BRIGHT
import static com.android.internal.config.sysui.SystemUiDeviceConfigFlags.BRIGHTLINE_FALSING_DISTANCE_VELOCITY_TO_DISTANCE;
import static com.android.internal.config.sysui.SystemUiDeviceConfigFlags.BRIGHTLINE_FALSING_DISTANCE_VERTICAL_FLING_THRESHOLD_IN;
import static com.android.internal.config.sysui.SystemUiDeviceConfigFlags.BRIGHTLINE_FALSING_DISTANCE_VERTICAL_SWIPE_THRESHOLD_IN;
import static com.android.systemui.classifier.Classifier.BRIGHTNESS_SLIDER;
import static com.android.systemui.classifier.Classifier.QS_COLLAPSE;
import static com.android.systemui.classifier.Classifier.SHADE_DRAG;

import android.provider.DeviceConfig;
import android.view.MotionEvent;
@@ -148,7 +151,9 @@ class DistanceClassifier extends FalsingClassifier {
    Result calculateFalsingResult(
            @Classifier.InteractionType int interactionType,
            double historyBelief, double historyConfidence) {
        if (interactionType == Classifier.BRIGHTNESS_SLIDER
        if (interactionType == BRIGHTNESS_SLIDER
                || interactionType == SHADE_DRAG
                || interactionType == QS_COLLAPSE
                || interactionType == Classifier.UDFPS_AUTHENTICATION
                || interactionType == Classifier.DISABLED_UDFPS_AFFORDANCE) {
            return Result.passed(0);
+3 −1
Original line number Diff line number Diff line
@@ -18,6 +18,7 @@ package com.android.systemui.classifier;

import static com.android.internal.config.sysui.SystemUiDeviceConfigFlags.BRIGHTLINE_FALSING_PROXIMITY_PERCENT_COVERED_THRESHOLD;
import static com.android.systemui.classifier.Classifier.BRIGHTNESS_SLIDER;
import static com.android.systemui.classifier.Classifier.QS_COLLAPSE;
import static com.android.systemui.classifier.Classifier.QUICK_SETTINGS;

import android.provider.DeviceConfig;
@@ -116,7 +117,8 @@ class ProximityClassifier extends FalsingClassifier {
    Result calculateFalsingResult(
            @Classifier.InteractionType int interactionType,
            double historyBelief, double historyConfidence) {
        if (interactionType == QUICK_SETTINGS || interactionType == BRIGHTNESS_SLIDER) {
        if (interactionType == QUICK_SETTINGS || interactionType == BRIGHTNESS_SLIDER
                || interactionType == QS_COLLAPSE) {
            return Result.passed(0);
        }

+8 −0
Original line number Diff line number Diff line
@@ -23,8 +23,10 @@ import static com.android.systemui.classifier.Classifier.LEFT_AFFORDANCE;
import static com.android.systemui.classifier.Classifier.NOTIFICATION_DISMISS;
import static com.android.systemui.classifier.Classifier.NOTIFICATION_DRAG_DOWN;
import static com.android.systemui.classifier.Classifier.PULSE_EXPAND;
import static com.android.systemui.classifier.Classifier.QS_COLLAPSE;
import static com.android.systemui.classifier.Classifier.QUICK_SETTINGS;
import static com.android.systemui.classifier.Classifier.RIGHT_AFFORDANCE;
import static com.android.systemui.classifier.Classifier.SHADE_DRAG;
import static com.android.systemui.classifier.Classifier.UNLOCK;

import javax.inject.Inject;
@@ -77,6 +79,12 @@ public class TypeClassifier extends FalsingClassifier {
            case RIGHT_AFFORDANCE:  // Swiping from the bottom right corner for camera or similar.
                wrongDirection = right || !up;
                break;
            case SHADE_DRAG:
                wrongDirection = !vertical;
                break;
            case QS_COLLAPSE:
                wrongDirection = !vertical || !up;
                break;
            default:
                wrongDirection = true;
                break;
+2 −1
Original line number Diff line number Diff line
@@ -21,6 +21,7 @@ import static com.android.internal.config.sysui.SystemUiDeviceConfigFlags.BRIGHT
import static com.android.internal.config.sysui.SystemUiDeviceConfigFlags.BRIGHTLINE_FALSING_ZIGZAG_Y_PRIMARY_DEVIANCE;
import static com.android.internal.config.sysui.SystemUiDeviceConfigFlags.BRIGHTLINE_FALSING_ZIGZAG_Y_SECONDARY_DEVIANCE;
import static com.android.systemui.classifier.Classifier.BRIGHTNESS_SLIDER;
import static com.android.systemui.classifier.Classifier.SHADE_DRAG;

import android.graphics.Point;
import android.provider.DeviceConfig;
@@ -88,7 +89,7 @@ class ZigZagClassifier extends FalsingClassifier {
    Result calculateFalsingResult(
            @Classifier.InteractionType int interactionType,
            double historyBelief, double historyConfidence) {
        if (interactionType == BRIGHTNESS_SLIDER) {
        if (interactionType == BRIGHTNESS_SLIDER || interactionType == SHADE_DRAG) {
            return Result.passed(0);
        }

Loading