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

Commit 0b613298 authored by Dave Mankoff's avatar Dave Mankoff
Browse files

Register side swipes on the QS with the FalsingManager.

Fixes: 184843242
Test: manual && atest SystemUITests
Change-Id: I6141996e1fdb385d2578a4e56eb1df7e7b5bd6bc
parent 5a96ceaf
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -42,6 +42,7 @@ public abstract class Classifier {
    public static final int QS_COLLAPSE = 12;
    public static final int UDFPS_AUTHENTICATION = 13;
    public static final int DISABLED_UDFPS_AFFORDANCE = 14;
    public static final int QS_SWIPE = 15;

    @IntDef({
            QUICK_SETTINGS,
@@ -59,7 +60,8 @@ public abstract class Classifier {
            QS_COLLAPSE,
            BRIGHTNESS_SLIDER,
            UDFPS_AUTHENTICATION,
            DISABLED_UDFPS_AFFORDANCE
            DISABLED_UDFPS_AFFORDANCE,
            QS_SWIPE
    })
    @Retention(RetentionPolicy.SOURCE)
    public @interface InteractionType {}
+2 −1
Original line number Diff line number Diff line
@@ -155,7 +155,8 @@ class DistanceClassifier extends FalsingClassifier {
                || interactionType == SHADE_DRAG
                || interactionType == QS_COLLAPSE
                || interactionType == Classifier.UDFPS_AUTHENTICATION
                || interactionType == Classifier.DISABLED_UDFPS_AFFORDANCE) {
                || interactionType == Classifier.DISABLED_UDFPS_AFFORDANCE
                || interactionType == Classifier.QS_SWIPE) {
            return Result.passed(0);
        }

+2 −1
Original line number Diff line number Diff line
@@ -19,6 +19,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.QS_SWIPE;
import static com.android.systemui.classifier.Classifier.QUICK_SETTINGS;

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

+4 −0
Original line number Diff line number Diff line
@@ -24,6 +24,7 @@ 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.QS_SWIPE;
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;
@@ -85,6 +86,9 @@ public class TypeClassifier extends FalsingClassifier {
            case QS_COLLAPSE:
                wrongDirection = !vertical || !up;
                break;
            case QS_SWIPE:
                wrongDirection = vertical;
                break;
            default:
                wrongDirection = true;
                break;
+19 −1
Original line number Diff line number Diff line
@@ -16,12 +16,14 @@

package com.android.systemui.qs;

import static com.android.systemui.classifier.Classifier.QS_SWIPE;
import static com.android.systemui.media.dagger.MediaModule.QS_PANEL;
import static com.android.systemui.qs.QSPanel.QS_SHOW_BRIGHTNESS;
import static com.android.systemui.qs.dagger.QSFragmentModule.QS_USING_MEDIA_PLAYER;

import android.annotation.NonNull;
import android.content.res.Configuration;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;

@@ -31,6 +33,7 @@ import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.systemui.dump.DumpManager;
import com.android.systemui.media.MediaHierarchyManager;
import com.android.systemui.media.MediaHost;
import com.android.systemui.plugins.FalsingManager;
import com.android.systemui.plugins.qs.DetailAdapter;
import com.android.systemui.plugins.qs.QSTile;
import com.android.systemui.qs.customize.QSCustomizerController;
@@ -58,6 +61,7 @@ public class QSPanelController extends QSPanelControllerBase<QSPanel> {
    private final TunerService mTunerService;
    private final QSCustomizerController mQsCustomizerController;
    private final QSTileRevealController.Factory mQsTileRevealControllerFactory;
    private final FalsingManager mFalsingManager;
    private final BrightnessController mBrightnessController;
    private final BrightnessSlider.Factory mBrightnessSliderFactory;
    private final BrightnessSlider mBrightnessSlider;
@@ -81,6 +85,16 @@ public class QSPanelController extends QSPanelControllerBase<QSPanel> {
    private final BrightnessMirrorController.BrightnessMirrorListener mBrightnessMirrorListener =
            mirror -> updateBrightnessMirror();

    private View.OnTouchListener mTileLayoutTouchListener = new View.OnTouchListener() {
        @Override
        public boolean onTouch(View v, MotionEvent event) {
            if (event.getActionMasked() == MotionEvent.ACTION_UP) {
                mFalsingManager.isFalseTouch(QS_SWIPE);
            }
            return false;
        }
    };

    @Inject
    QSPanelController(QSPanel view, QSSecurityFooter qsSecurityFooter, TunerService tunerService,
            QSTileHost qstileHost, QSCustomizerController qsCustomizerController,
@@ -89,7 +103,7 @@ public class QSPanelController extends QSPanelControllerBase<QSPanel> {
            QSTileRevealController.Factory qsTileRevealControllerFactory,
            DumpManager dumpManager, MetricsLogger metricsLogger, UiEventLogger uiEventLogger,
            QSLogger qsLogger, BrightnessController.Factory brightnessControllerFactory,
            BrightnessSlider.Factory brightnessSliderFactory,
            BrightnessSlider.Factory brightnessSliderFactory, FalsingManager falsingManager,
            FeatureFlags featureFlags) {
        super(view, qstileHost, qsCustomizerController, usingMediaPlayer, mediaHost,
                metricsLogger, uiEventLogger, qsLogger, dumpManager, featureFlags);
@@ -97,6 +111,7 @@ public class QSPanelController extends QSPanelControllerBase<QSPanel> {
        mTunerService = tunerService;
        mQsCustomizerController = qsCustomizerController;
        mQsTileRevealControllerFactory = qsTileRevealControllerFactory;
        mFalsingManager = falsingManager;
        mQsSecurityFooter.setHostEnvironment(qstileHost);
        mBrightnessSliderFactory = brightnessSliderFactory;

@@ -133,6 +148,9 @@ public class QSPanelController extends QSPanelControllerBase<QSPanel> {
        if (mBrightnessMirrorController != null) {
            mBrightnessMirrorController.addCallback(mBrightnessMirrorListener);
        }

        ((PagedTileLayout) mView.createRegularTileLayout())
                .setOnTouchListener(mTileLayoutTouchListener);
    }

    @Override
Loading