diff options
| author | 2021-04-09 18:24:06 -0400 | |
|---|---|---|
| committer | 2021-04-09 18:24:06 -0400 | |
| commit | efcf043ff92f68e1441d2597e6f9ae7c63f3d7ab (patch) | |
| tree | 3c0c3f13428f59f8722503fbfd03ef9b4a96bb47 | |
| parent | 5977b719c43cadd7d0bb22d22881cb961bad1f25 (diff) | |
Delay gesture processing in FalsingCollector.
Clicks are processed after a delay on views. To handle this, we can't
immediately analyze gestures in the FalsingManager. Instead, delay
processing slightly to give click handlers an opportunity to
acknowledge gestures.
Fixes: 184963035
Test: manual
Change-Id: I2c98d20c76b8fda1f53a0b4a3ec29674c32aa550
| -rw-r--r-- | packages/SystemUI/src/com/android/systemui/classifier/FalsingCollectorImpl.java | 9 | ||||
| -rw-r--r-- | packages/SystemUI/tests/src/com/android/systemui/classifier/FalsingCollectorImplTest.java | 6 |
2 files changed, 12 insertions, 3 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/classifier/FalsingCollectorImpl.java b/packages/SystemUI/src/com/android/systemui/classifier/FalsingCollectorImpl.java index aaea9ce98359..88748f9eaac4 100644 --- a/packages/SystemUI/src/com/android/systemui/classifier/FalsingCollectorImpl.java +++ b/packages/SystemUI/src/com/android/systemui/classifier/FalsingCollectorImpl.java @@ -24,10 +24,12 @@ import android.view.MotionEvent; import com.android.keyguard.KeyguardUpdateMonitor; import com.android.keyguard.KeyguardUpdateMonitorCallback; import com.android.systemui.dagger.SysUISingleton; +import com.android.systemui.dagger.qualifiers.Main; import com.android.systemui.plugins.FalsingManager; import com.android.systemui.plugins.statusbar.StatusBarStateController; import com.android.systemui.statusbar.StatusBarState; import com.android.systemui.statusbar.policy.KeyguardStateController; +import com.android.systemui.util.concurrency.DelayableExecutor; import com.android.systemui.util.sensors.ProximitySensor; import com.android.systemui.util.sensors.ThresholdSensor; import com.android.systemui.util.time.SystemClock; @@ -50,6 +52,7 @@ class FalsingCollectorImpl implements FalsingCollector { private final ProximitySensor mProximitySensor; private final StatusBarStateController mStatusBarStateController; private final KeyguardStateController mKeyguardStateController; + private final DelayableExecutor mMainExecutor; private final SystemClock mSystemClock; private int mState; @@ -89,7 +92,8 @@ class FalsingCollectorImpl implements FalsingCollector { FalsingCollectorImpl(FalsingDataProvider falsingDataProvider, FalsingManager falsingManager, KeyguardUpdateMonitor keyguardUpdateMonitor, HistoryTracker historyTracker, ProximitySensor proximitySensor, StatusBarStateController statusBarStateController, - KeyguardStateController keyguardStateController, SystemClock systemClock) { + KeyguardStateController keyguardStateController, + @Main DelayableExecutor mainExecutor, SystemClock systemClock) { mFalsingDataProvider = falsingDataProvider; mFalsingManager = falsingManager; mKeyguardUpdateMonitor = keyguardUpdateMonitor; @@ -97,6 +101,7 @@ class FalsingCollectorImpl implements FalsingCollector { mProximitySensor = proximitySensor; mStatusBarStateController = statusBarStateController; mKeyguardStateController = keyguardStateController; + mMainExecutor = mainExecutor; mSystemClock = systemClock; @@ -276,7 +281,7 @@ class FalsingCollectorImpl implements FalsingCollector { @Override public void onMotionEventComplete() { - mFalsingDataProvider.onMotionEventComplete(); + mMainExecutor.executeDelayed(mFalsingDataProvider::onMotionEventComplete , 50); } @Override diff --git a/packages/SystemUI/tests/src/com/android/systemui/classifier/FalsingCollectorImplTest.java b/packages/SystemUI/tests/src/com/android/systemui/classifier/FalsingCollectorImplTest.java index e6aeee7a9184..f077190168be 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/classifier/FalsingCollectorImplTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/classifier/FalsingCollectorImplTest.java @@ -35,6 +35,7 @@ import com.android.systemui.plugins.statusbar.StatusBarStateController; import com.android.systemui.statusbar.StatusBarState; import com.android.systemui.statusbar.SysuiStatusBarStateController; import com.android.systemui.statusbar.policy.KeyguardStateController; +import com.android.systemui.util.concurrency.FakeExecutor; import com.android.systemui.util.sensors.ProximitySensor; import com.android.systemui.util.sensors.ThresholdSensor; import com.android.systemui.util.time.FakeSystemClock; @@ -65,6 +66,8 @@ public class FalsingCollectorImplTest extends SysuiTestCase { private SysuiStatusBarStateController mStatusBarStateController; @Mock private KeyguardStateController mKeyguardStateController; + private final FakeSystemClock mFakeSystemClock = new FakeSystemClock(); + private final FakeExecutor mFakeExecutor = new FakeExecutor(mFakeSystemClock); @Before public void setUp() { @@ -75,7 +78,8 @@ public class FalsingCollectorImplTest extends SysuiTestCase { mFalsingCollector = new FalsingCollectorImpl(mFalsingDataProvider, mFalsingManager, mKeyguardUpdateMonitor, mHistoryTracker, mProximitySensor, - mStatusBarStateController, mKeyguardStateController, new FakeSystemClock()); + mStatusBarStateController, mKeyguardStateController, mFakeExecutor, + mFakeSystemClock); } @Test |