Loading packages/SystemUI/src/com/android/systemui/classifier/FalsingCollectorImpl.java +4 −0 Original line number Diff line number Diff line Loading @@ -309,6 +309,10 @@ class FalsingCollectorImpl implements FalsingCollector { avoidGesture(); return; } if (ev.getActionMasked() == MotionEvent.ACTION_OUTSIDE) { return; } // We delay processing down events to see if another component wants to process them. // If #avoidGesture is called after a MotionEvent.ACTION_DOWN, all following motion events // will be ignored by the collector until another MotionEvent.ACTION_DOWN is passed in. Loading packages/SystemUI/src/com/android/systemui/wallet/ui/WalletActivity.java +1 −2 Original line number Diff line number Diff line Loading @@ -152,8 +152,7 @@ public class WalletActivity extends LifecycleActivity implements Log.w(TAG, "Unable to create wallet app intent."); return; } if (!mKeyguardStateController.isUnlocked() && mFalsingManager.isFalseTap(FalsingManager.LOW_PENALTY)) { if (mFalsingManager.isFalseTap(FalsingManager.LOW_PENALTY)) { return; } Loading packages/SystemUI/src/com/android/systemui/wallet/ui/WalletCardCarousel.java +7 −1 Original line number Diff line number Diff line Loading @@ -81,6 +81,12 @@ public class WalletCardCarousel extends RecyclerView { private float mCardCenterToScreenCenterDistancePx = Float.MAX_VALUE; interface OnSelectionListener { /** * A non-centered card was clicked. * @param position */ void onUncenteredClick(int position); /** * The card was moved to the center, thus selecting it. */ Loading Loading @@ -403,7 +409,7 @@ public class WalletCardCarousel extends RecyclerView { viewHolder.mCardView.setOnClickListener( v -> { if (position != mCenteredAdapterPosition) { smoothScrollToPosition(position); mSelectionListener.onUncenteredClick(position); } else { mSelectionListener.onCardClicked(cardViewInfo); } Loading packages/SystemUI/src/com/android/systemui/wallet/ui/WalletScreenController.java +9 −2 Original line number Diff line number Diff line Loading @@ -180,6 +180,14 @@ public class WalletScreenController implements queryWalletCards(); } @Override public void onUncenteredClick(int position) { if (mFalsingManager.isFalseTap(FalsingManager.LOW_PENALTY)) { return; } mCardCarousel.smoothScrollToPosition(position); } @Override public void onCardSelected(@NonNull WalletCardViewInfo card) { if (mIsDismissed) { Loading Loading @@ -208,8 +216,7 @@ public class WalletScreenController implements @Override public void onCardClicked(@NonNull WalletCardViewInfo cardInfo) { if (!mKeyguardStateController.isUnlocked() && mFalsingManager.isFalseTap(FalsingManager.LOW_PENALTY)) { if (mFalsingManager.isFalseTap(FalsingManager.LOW_PENALTY)) { return; } if (!(cardInfo instanceof QAWalletCardViewInfo) Loading packages/SystemUI/tests/src/com/android/systemui/classifier/FalsingCollectorImplTest.java +14 −0 Original line number Diff line number Diff line Loading @@ -198,6 +198,20 @@ public class FalsingCollectorImplTest extends SysuiTestCase { verify(mFalsingDataProvider, never()).onMotionEvent(any(MotionEvent.class)); } @Test public void testIgnoreActionOutside() { MotionEvent outside = MotionEvent.obtain(0, 0, MotionEvent.ACTION_OUTSIDE, 0, 0, 0); MotionEvent up = MotionEvent.obtain(0, 0, MotionEvent.ACTION_UP, 0, 0, 0); // Nothing passed initially. The outside event will be completely ignored. mFalsingCollector.onTouchEvent(outside); verify(mFalsingDataProvider, never()).onMotionEvent(any(MotionEvent.class)); // Up event flushes, and the outside event isn't passed through. mFalsingCollector.onTouchEvent(up); verify(mFalsingDataProvider).onMotionEvent(up); } @Test public void testAvoidUnlocked() { MotionEvent down = MotionEvent.obtain(0, 0, MotionEvent.ACTION_DOWN, 0, 0, 0); Loading Loading
packages/SystemUI/src/com/android/systemui/classifier/FalsingCollectorImpl.java +4 −0 Original line number Diff line number Diff line Loading @@ -309,6 +309,10 @@ class FalsingCollectorImpl implements FalsingCollector { avoidGesture(); return; } if (ev.getActionMasked() == MotionEvent.ACTION_OUTSIDE) { return; } // We delay processing down events to see if another component wants to process them. // If #avoidGesture is called after a MotionEvent.ACTION_DOWN, all following motion events // will be ignored by the collector until another MotionEvent.ACTION_DOWN is passed in. Loading
packages/SystemUI/src/com/android/systemui/wallet/ui/WalletActivity.java +1 −2 Original line number Diff line number Diff line Loading @@ -152,8 +152,7 @@ public class WalletActivity extends LifecycleActivity implements Log.w(TAG, "Unable to create wallet app intent."); return; } if (!mKeyguardStateController.isUnlocked() && mFalsingManager.isFalseTap(FalsingManager.LOW_PENALTY)) { if (mFalsingManager.isFalseTap(FalsingManager.LOW_PENALTY)) { return; } Loading
packages/SystemUI/src/com/android/systemui/wallet/ui/WalletCardCarousel.java +7 −1 Original line number Diff line number Diff line Loading @@ -81,6 +81,12 @@ public class WalletCardCarousel extends RecyclerView { private float mCardCenterToScreenCenterDistancePx = Float.MAX_VALUE; interface OnSelectionListener { /** * A non-centered card was clicked. * @param position */ void onUncenteredClick(int position); /** * The card was moved to the center, thus selecting it. */ Loading Loading @@ -403,7 +409,7 @@ public class WalletCardCarousel extends RecyclerView { viewHolder.mCardView.setOnClickListener( v -> { if (position != mCenteredAdapterPosition) { smoothScrollToPosition(position); mSelectionListener.onUncenteredClick(position); } else { mSelectionListener.onCardClicked(cardViewInfo); } Loading
packages/SystemUI/src/com/android/systemui/wallet/ui/WalletScreenController.java +9 −2 Original line number Diff line number Diff line Loading @@ -180,6 +180,14 @@ public class WalletScreenController implements queryWalletCards(); } @Override public void onUncenteredClick(int position) { if (mFalsingManager.isFalseTap(FalsingManager.LOW_PENALTY)) { return; } mCardCarousel.smoothScrollToPosition(position); } @Override public void onCardSelected(@NonNull WalletCardViewInfo card) { if (mIsDismissed) { Loading Loading @@ -208,8 +216,7 @@ public class WalletScreenController implements @Override public void onCardClicked(@NonNull WalletCardViewInfo cardInfo) { if (!mKeyguardStateController.isUnlocked() && mFalsingManager.isFalseTap(FalsingManager.LOW_PENALTY)) { if (mFalsingManager.isFalseTap(FalsingManager.LOW_PENALTY)) { return; } if (!(cardInfo instanceof QAWalletCardViewInfo) Loading
packages/SystemUI/tests/src/com/android/systemui/classifier/FalsingCollectorImplTest.java +14 −0 Original line number Diff line number Diff line Loading @@ -198,6 +198,20 @@ public class FalsingCollectorImplTest extends SysuiTestCase { verify(mFalsingDataProvider, never()).onMotionEvent(any(MotionEvent.class)); } @Test public void testIgnoreActionOutside() { MotionEvent outside = MotionEvent.obtain(0, 0, MotionEvent.ACTION_OUTSIDE, 0, 0, 0); MotionEvent up = MotionEvent.obtain(0, 0, MotionEvent.ACTION_UP, 0, 0, 0); // Nothing passed initially. The outside event will be completely ignored. mFalsingCollector.onTouchEvent(outside); verify(mFalsingDataProvider, never()).onMotionEvent(any(MotionEvent.class)); // Up event flushes, and the outside event isn't passed through. mFalsingCollector.onTouchEvent(up); verify(mFalsingDataProvider).onMotionEvent(up); } @Test public void testAvoidUnlocked() { MotionEvent down = MotionEvent.obtain(0, 0, MotionEvent.ACTION_DOWN, 0, 0, 0); Loading