Add falsing to QSTile long click

All touches are analyzed by the falsing manager. By
checking falsing for the QS tile long click gesture, we make sure
the gesture doesn't add a large penalty to the falsing algorithm
by getting counted as an accidental touch.

Test: atest QSTileImplTest
Bug: 288235975
Change-Id: Icee87c61488dd6b5f0b93a1d51d59d4d782817e0
This commit is contained in:
Beverly
2023-06-28 21:55:13 +00:00
committed by Beverly Tai
parent ffa5a8496a
commit 0984d32e69
2 changed files with 22 additions and 1 deletions

View File

@@ -330,7 +330,9 @@ public abstract class QSTileImpl<TState extends State> implements QSTile, Lifecy
final int eventId = mClickEventId++;
mQSLogger.logTileLongClick(mTileSpec, mStatusBarStateController.getState(), mState.state,
eventId);
mHandler.obtainMessage(H.LONG_CLICK, eventId, 0, view).sendToTarget();
if (!mFalsingManager.isFalseLongTap(FalsingManager.LOW_PENALTY)) {
mHandler.obtainMessage(H.LONG_CLICK, eventId, 0, view).sendToTarget();
}
}
public LogMaker populate(LogMaker logMaker) {

View File

@@ -203,6 +203,19 @@ public class QSTileImplTest extends SysuiTestCase {
assertThat(mTile.mClicked).isTrue();
}
@Test
public void testLongClick_falsing() {
mFalsingManager.setFalseLongTap(true);
mTile.longClick(null /* view */);
mTestableLooper.processAllMessages();
assertThat(mTile.mLongClicked).isFalse();
mFalsingManager.setFalseLongTap(false);
mTile.longClick(null /* view */);
mTestableLooper.processAllMessages();
assertThat(mTile.mLongClicked).isTrue();
}
@Test
public void testSecondaryClick_Metrics() {
mTile.secondaryClick(null /* view */);
@@ -518,6 +531,7 @@ public class QSTileImplTest extends SysuiTestCase {
}
private static class TileImpl extends QSTileImpl<QSTile.BooleanState> {
boolean mClicked;
boolean mLongClicked;
int mRefreshes = 0;
protected TileImpl(
@@ -550,6 +564,11 @@ public class QSTileImplTest extends SysuiTestCase {
mClicked = true;
}
@Override
protected void handleLongClick(@Nullable View view) {
mLongClicked = true;
}
@Override
protected void handleUpdateState(BooleanState state, Object arg) {
mRefreshes++;