Loading packages/SystemUI/src/com/android/systemui/classifier/BrightLineFalsingManager.java +3 −1 Original line number Diff line number Diff line Loading @@ -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) { Loading packages/SystemUI/src/com/android/systemui/qs/tileimpl/QSTileImpl.java +4 −4 Original line number Diff line number Diff line Loading @@ -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) Loading Loading @@ -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(); Loading packages/SystemUI/tests/src/com/android/systemui/classifier/BrightLineClassifierTest.java +11 −0 Original line number Diff line number Diff line Loading @@ -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); Loading Loading
packages/SystemUI/src/com/android/systemui/classifier/BrightLineFalsingManager.java +3 −1 Original line number Diff line number Diff line Loading @@ -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) { Loading
packages/SystemUI/src/com/android/systemui/qs/tileimpl/QSTileImpl.java +4 −4 Original line number Diff line number Diff line Loading @@ -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) Loading Loading @@ -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(); Loading
packages/SystemUI/tests/src/com/android/systemui/classifier/BrightLineClassifierTest.java +11 −0 Original line number Diff line number Diff line Loading @@ -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); Loading