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

Commit c265dbf3 authored by Brad Hinegardner's avatar Brad Hinegardner Committed by Android (Google) Code Review
Browse files

Merge "Allow certain KeyEvents to bypass falsing" into main

parents 7f613685 9d07aafe
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -398,6 +398,7 @@ public class BrightLineFalsingManager implements FalsingManager {
                || mAccessibilityManager.isTouchExplorationEnabled()
                || mDataProvider.isA11yAction()
                || mDataProvider.isFromTrackpad()
                || mDataProvider.isFromKeyboard()
                || (mFeatureFlags.isEnabled(Flags.FALSING_OFF_FOR_UNFOLDED)
                    && mDataProvider.isUnfolded());
    }
+9 −0
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@

package com.android.systemui.classifier;

import android.view.KeyEvent;
import android.view.MotionEvent;

/**
@@ -49,6 +50,14 @@ public interface FalsingCollector {
    /** */
    void onBouncerHidden();

    /**
     * Call this to record a KeyEvent in the {@link com.android.systemui.plugins.FalsingManager}.
     *
     * This may decide to only collect certain KeyEvents and ignore others. Do not assume all
     * KeyEvents are collected.
     */
    void onKeyEvent(KeyEvent ev);

    /**
     * Call this to record a MotionEvent in the {@link com.android.systemui.plugins.FalsingManager}.
     *
+8 −0
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@

package com.android.systemui.classifier;

import android.view.KeyEvent;
import android.view.MotionEvent;

import javax.inject.Inject;
@@ -23,6 +24,8 @@ import javax.inject.Inject;
/** */
public class FalsingCollectorFake implements FalsingCollector {

    public KeyEvent lastKeyEvent = null;

    @Override
    public void init() {
    }
@@ -69,6 +72,11 @@ public class FalsingCollectorFake implements FalsingCollector {
    public void onBouncerHidden() {
    }

    @Override
    public void onKeyEvent(KeyEvent ev) {
        lastKeyEvent = ev;
    }

    @Override
    public void onTouchEvent(MotionEvent ev) {
    }
+20 −0
Original line number Diff line number Diff line
@@ -21,6 +21,7 @@ import static com.android.systemui.dock.DockManager.DockEventListener;
import android.hardware.SensorManager;
import android.hardware.biometrics.BiometricSourceType;
import android.util.Log;
import android.view.KeyEvent;
import android.view.MotionEvent;

import androidx.annotation.VisibleForTesting;
@@ -49,7 +50,10 @@ import com.android.systemui.util.time.SystemClock;

import dagger.Lazy;

import java.util.Arrays;
import java.util.Collections;
import java.util.HashSet;
import java.util.Set;

import javax.inject.Inject;

@@ -61,6 +65,14 @@ class FalsingCollectorImpl implements FalsingCollector {
    private static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG);
    private static final long GESTURE_PROCESSING_DELAY_MS = 100;

    private final Set<Integer> mAcceptedKeycodes = new HashSet<>(Arrays.asList(
        KeyEvent.KEYCODE_ENTER,
        KeyEvent.KEYCODE_ESCAPE,
        KeyEvent.KEYCODE_SHIFT_LEFT,
        KeyEvent.KEYCODE_SHIFT_RIGHT,
        KeyEvent.KEYCODE_SPACE
    ));

    private final FalsingDataProvider mFalsingDataProvider;
    private final FalsingManager mFalsingManager;
    private final KeyguardUpdateMonitor mKeyguardUpdateMonitor;
@@ -278,6 +290,14 @@ class FalsingCollectorImpl implements FalsingCollector {
        }
    }

    @Override
    public void onKeyEvent(KeyEvent ev) {
        // Only collect if it is an ACTION_UP action and is allow-listed
        if (ev.getAction() == KeyEvent.ACTION_UP && mAcceptedKeycodes.contains(ev.getKeyCode())) {
            mFalsingDataProvider.onKeyEvent(ev);
        }
    }

    @Override
    public void onTouchEvent(MotionEvent ev) {
        logDebug("REAL: onTouchEvent(" + ev.getActionMasked() + ")");
+5 −0
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@

package com.android.systemui.classifier

import android.view.KeyEvent
import android.view.MotionEvent
import com.android.systemui.classifier.FalsingCollectorImpl.logDebug
import com.android.systemui.dagger.SysUISingleton
@@ -59,6 +60,10 @@ class FalsingCollectorNoOp @Inject constructor() : FalsingCollector {
        logDebug("NOOP: onBouncerHidden")
    }

    override fun onKeyEvent(ev: KeyEvent) {
        logDebug("NOOP: onKeyEvent(${ev.action}")
    }

    override fun onTouchEvent(ev: MotionEvent) {
        logDebug("NOOP: onTouchEvent(${ev.actionMasked})")
    }
Loading