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

Commit e3c9bbba authored by Dave Mankoff's avatar Dave Mankoff Committed by Android (Google) Code Review
Browse files

Merge "Ensure that FalsingManager#isFalseTap handles delayed clicks." into sc-dev

parents 1f0cc466 7a08f2b7
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -224,7 +224,9 @@ public class BrightLineFalsingManager implements FalsingManager {
        }

        FalsingClassifier.Result singleTapResult =
                mSingleTapClassifier.isTap(mDataProvider.getRecentMotionEvents());
                mSingleTapClassifier.isTap(mDataProvider.getRecentMotionEvents().isEmpty()
                        ? mDataProvider.getPriorMotionEvents()
                        : mDataProvider.getRecentMotionEvents());
        mPriorResults = Collections.singleton(singleTapResult);

        if (!singleTapResult.isFalse() && robustCheck) {
+4 −4
Original line number Diff line number Diff line
@@ -276,8 +276,10 @@ public abstract class QSTileImpl<TState extends State> implements QSTile, Lifecy
        mUiEventLogger.logWithInstanceId(QSEvent.QS_ACTION_CLICK, 0, getMetricsSpec(),
                getInstanceId());
        mQSLogger.logTileClick(mTileSpec, mStatusBarStateController.getState(), mState.state);
        if (!mFalsingManager.isFalseTap(true, 0.1)) {
            mHandler.sendEmptyMessage(H.CLICK);
        }
    }

    public void secondaryClick() {
        mMetricsLogger.write(populate(new LogMaker(ACTION_QS_SECONDARY_CLICK).setType(TYPE_ACTION)
@@ -605,10 +607,8 @@ public abstract class QSTileImpl<TState extends State> implements QSTile, Lifecy
                                mContext, mEnforcedAdmin);
                        mActivityStarter.postStartActivityDismissingKeyguard(intent, 0);
                    } else {
                        if (!mFalsingManager.isFalseTap(true, 0.1)) {
                        handleClick();
                    }
                    }
                } else if (msg.what == SECONDARY_CLICK) {
                    name = "handleSecondaryClick";
                    handleSecondaryClick();
+11 −0
Original line number Diff line number Diff line
@@ -179,6 +179,17 @@ public class BrightLineClassifierTest extends SysuiTestCase {
        assertThat(mBrightLineFalsingManager.isFalseTap(false, 0)).isFalse();
    }

    @Test
    public void testIsFalseTap_EmptyRecentEvents() {
        // Ensure we look at prior events if recent events has already been emptied.
        when(mFalsingDataProvider.getRecentMotionEvents()).thenReturn(new ArrayList<>());
        when(mFalsingDataProvider.getPriorMotionEvents()).thenReturn(mMotionEventList);

        mBrightLineFalsingManager.isFalseTap(false, 0);
        verify(mSingleTapClassfier).isTap(mMotionEventList);
    }


    @Test
    public void testIsFalseTap_RobustCheck_NoFaceAuth() {
        when(mSingleTapClassfier.isTap(mMotionEventList)).thenReturn(mPassedResult);