Merge "Avoid duplicate calls to the FalsingManager upon Notification dismissals" into tm-qpr-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
1d3d960255
@@ -251,13 +251,13 @@ class NotificationSwipeHelper extends SwipeHelper implements NotificationSwipeAc
|
||||
|| (isFastNonDismissGesture && isAbleToShowMenu);
|
||||
int menuSnapTarget = menuRow.getMenuSnapTarget();
|
||||
boolean isNonFalseMenuRevealingGesture =
|
||||
!isFalseGesture() && isMenuRevealingGestureAwayFromMenu;
|
||||
isMenuRevealingGestureAwayFromMenu && !isFalseGesture();
|
||||
if ((isNonDismissGestureTowardsMenu || isNonFalseMenuRevealingGesture)
|
||||
&& menuSnapTarget != 0) {
|
||||
// Menu has not been snapped to previously and this is menu revealing gesture
|
||||
snapOpen(animView, menuSnapTarget, velocity);
|
||||
menuRow.onSnapOpen();
|
||||
} else if (isDismissGesture(ev) && !gestureTowardsMenu) {
|
||||
} else if (isDismissGesture && !gestureTowardsMenu) {
|
||||
dismiss(animView, velocity);
|
||||
menuRow.onDismiss();
|
||||
} else {
|
||||
|
||||
@@ -20,6 +20,7 @@ import static junit.framework.Assert.assertTrue;
|
||||
import static org.mockito.ArgumentMatchers.any;
|
||||
import static org.mockito.ArgumentMatchers.anyBoolean;
|
||||
import static org.mockito.ArgumentMatchers.anyFloat;
|
||||
import static org.mockito.ArgumentMatchers.anyInt;
|
||||
import static org.mockito.Mockito.doAnswer;
|
||||
import static org.mockito.Mockito.doNothing;
|
||||
import static org.mockito.Mockito.doReturn;
|
||||
@@ -227,14 +228,154 @@ public class NotificationSwipeHelperTest extends SysuiTestCase {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testHandleUpEvent_menuRow() {
|
||||
when(mSwipeHelper.getCurrentMenuRow()).thenReturn(mMenuRow);
|
||||
doNothing().when(mSwipeHelper).handleMenuRowSwipe(mEvent, mView, 0, mMenuRow);
|
||||
public void testHandleUpEvent_menuRowWithoutMenu_dismiss() {
|
||||
doNothing().when(mSwipeHelper).dismiss(any(), anyFloat());
|
||||
doReturn(true).when(mSwipeHelper).isDismissGesture(any());
|
||||
doReturn(true).when(mSwipeHelper).swipedFarEnough();
|
||||
when(mMenuRow.shouldShowMenu()).thenReturn(true);
|
||||
mSwipeHelper.setCurrentMenuRow(mMenuRow);
|
||||
|
||||
assertTrue("Menu row exists",
|
||||
mSwipeHelper.handleUpEvent(mEvent, mView, 0, 0));
|
||||
verify(mMenuRow, times(1)).onTouchEnd();
|
||||
verify(mSwipeHelper, times(1)).handleMenuRowSwipe(mEvent, mView, 0, mMenuRow);
|
||||
verify(mSwipeHelper, times(1)).isDismissGesture(mEvent);
|
||||
verify(mSwipeHelper, times(1)).dismiss(mView, 0);
|
||||
verify(mSwipeHelper, never()).isFalseGesture();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testHandleUpEvent_menuRowWithoutMenu_snapback() {
|
||||
doNothing().when(mSwipeHelper).snapChild(any(), anyInt(), anyFloat());
|
||||
doReturn(false).when(mSwipeHelper).isDismissGesture(any());
|
||||
doReturn(true).when(mSwipeHelper).swipedFarEnough();
|
||||
when(mMenuRow.shouldShowMenu()).thenReturn(true);
|
||||
mSwipeHelper.setCurrentMenuRow(mMenuRow);
|
||||
|
||||
assertTrue("Menu row exists",
|
||||
mSwipeHelper.handleUpEvent(mEvent, mView, 0, 0));
|
||||
verify(mMenuRow, times(1)).onTouchEnd();
|
||||
verify(mSwipeHelper, times(1)).isDismissGesture(mEvent);
|
||||
verify(mSwipeHelper, times(1)).snapClosed(mView, 0);
|
||||
verify(mMenuRow, times(1)).onSnapClosed();
|
||||
verify(mSwipeHelper, never()).isFalseGesture();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testHandleUpEvent_menuRowWithOpenMenu_dismissed() {
|
||||
doNothing().when(mSwipeHelper).dismiss(any(), anyFloat());
|
||||
doReturn(true).when(mSwipeHelper).isDismissGesture(any());
|
||||
doReturn(true).when(mSwipeHelper).swipedFarEnough();
|
||||
when(mMenuRow.shouldShowMenu()).thenReturn(true);
|
||||
when(mMenuRow.isSnappedAndOnSameSide()).thenReturn(true);
|
||||
mSwipeHelper.setCurrentMenuRow(mMenuRow);
|
||||
|
||||
assertTrue("Menu row exists",
|
||||
mSwipeHelper.handleUpEvent(mEvent, mView, 0, 0));
|
||||
verify(mMenuRow, times(1)).onTouchEnd();
|
||||
verify(mSwipeHelper, times(1)).isDismissGesture(mEvent);
|
||||
verify(mSwipeHelper, times(1)).dismiss(mView, 0);
|
||||
verify(mSwipeHelper, never()).isFalseGesture();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testHandleUpEvent_menuRowWithOpenMenu_snapback() {
|
||||
doNothing().when(mSwipeHelper).snapChild(any(), anyInt(), anyFloat());
|
||||
doReturn(false).when(mSwipeHelper).isDismissGesture(any());
|
||||
doReturn(true).when(mSwipeHelper).swipedFarEnough();
|
||||
when(mMenuRow.shouldShowMenu()).thenReturn(true);
|
||||
when(mMenuRow.isSnappedAndOnSameSide()).thenReturn(true);
|
||||
mSwipeHelper.setCurrentMenuRow(mMenuRow);
|
||||
|
||||
assertTrue("Menu row exists",
|
||||
mSwipeHelper.handleUpEvent(mEvent, mView, 0, 0));
|
||||
verify(mMenuRow, times(1)).onTouchEnd();
|
||||
verify(mSwipeHelper, times(1)).isDismissGesture(mEvent);
|
||||
verify(mSwipeHelper, times(1)).snapClosed(mView, 0);
|
||||
verify(mMenuRow, times(1)).onSnapClosed();
|
||||
verify(mSwipeHelper, never()).isFalseGesture();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testHandleUpEvent_menuRowWithClosedMenu_dismissed() {
|
||||
doNothing().when(mSwipeHelper).dismiss(any(), anyFloat());
|
||||
doReturn(true).when(mSwipeHelper).isDismissGesture(any());
|
||||
doReturn(true).when(mSwipeHelper).swipedFarEnough();
|
||||
when(mMenuRow.shouldShowMenu()).thenReturn(true);
|
||||
when(mMenuRow.isSnappedAndOnSameSide()).thenReturn(false);
|
||||
mSwipeHelper.setCurrentMenuRow(mMenuRow);
|
||||
|
||||
assertTrue("Menu row exists",
|
||||
mSwipeHelper.handleUpEvent(mEvent, mView, 0, 0));
|
||||
verify(mMenuRow, times(1)).onTouchEnd();
|
||||
verify(mSwipeHelper, times(1)).isDismissGesture(mEvent);
|
||||
verify(mSwipeHelper, times(1)).dismiss(mView, 0);
|
||||
verify(mSwipeHelper, never()).isFalseGesture();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testHandleUpEvent_menuRowWithClosedMenu_snapback() {
|
||||
doNothing().when(mSwipeHelper).snapChild(any(), anyInt(), anyFloat());
|
||||
doReturn(false).when(mSwipeHelper).isDismissGesture(any());
|
||||
doReturn(true).when(mSwipeHelper).swipedFarEnough();
|
||||
when(mMenuRow.shouldShowMenu()).thenReturn(true);
|
||||
when(mMenuRow.isSnappedAndOnSameSide()).thenReturn(false);
|
||||
mSwipeHelper.setCurrentMenuRow(mMenuRow);
|
||||
|
||||
assertTrue("Menu row exists",
|
||||
mSwipeHelper.handleUpEvent(mEvent, mView, 0, 0));
|
||||
verify(mMenuRow, times(1)).onTouchEnd();
|
||||
verify(mSwipeHelper, times(1)).isDismissGesture(mEvent);
|
||||
verify(mSwipeHelper, times(1)).snapClosed(mView, 0);
|
||||
verify(mMenuRow, times(1)).onSnapClosed();
|
||||
verify(mSwipeHelper, never()).isFalseGesture();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testIsDismissGesture() {
|
||||
doReturn(false).when(mSwipeHelper).isFalseGesture();
|
||||
doReturn(true).when(mSwipeHelper).swipedFarEnough();
|
||||
doReturn(true).when(mSwipeHelper).swipedFastEnough();
|
||||
when(mCallback.canChildBeDismissedInDirection(any(), anyBoolean())).thenReturn(true);
|
||||
when(mEvent.getActionMasked()).thenReturn(MotionEvent.ACTION_UP);
|
||||
|
||||
assertTrue("Should be a dismiss gesture", mSwipeHelper.isDismissGesture(mEvent));
|
||||
verify(mSwipeHelper, times(1)).isFalseGesture();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testIsDismissGesture_falseGesture() {
|
||||
doReturn(true).when(mSwipeHelper).isFalseGesture();
|
||||
doReturn(true).when(mSwipeHelper).swipedFarEnough();
|
||||
doReturn(true).when(mSwipeHelper).swipedFastEnough();
|
||||
when(mCallback.canChildBeDismissedInDirection(any(), anyBoolean())).thenReturn(true);
|
||||
when(mEvent.getActionMasked()).thenReturn(MotionEvent.ACTION_UP);
|
||||
|
||||
assertFalse("False gesture should stop dismissal", mSwipeHelper.isDismissGesture(mEvent));
|
||||
verify(mSwipeHelper, times(1)).isFalseGesture();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testIsDismissGesture_farEnough() {
|
||||
doReturn(false).when(mSwipeHelper).isFalseGesture();
|
||||
doReturn(true).when(mSwipeHelper).swipedFarEnough();
|
||||
doReturn(false).when(mSwipeHelper).swipedFastEnough();
|
||||
when(mCallback.canChildBeDismissedInDirection(any(), anyBoolean())).thenReturn(true);
|
||||
when(mEvent.getActionMasked()).thenReturn(MotionEvent.ACTION_UP);
|
||||
|
||||
assertTrue("Should be a dismissal", mSwipeHelper.isDismissGesture(mEvent));
|
||||
verify(mSwipeHelper, times(1)).isFalseGesture();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testIsDismissGesture_notFarOrFastEnough() {
|
||||
doReturn(false).when(mSwipeHelper).isFalseGesture();
|
||||
doReturn(false).when(mSwipeHelper).swipedFarEnough();
|
||||
doReturn(false).when(mSwipeHelper).swipedFastEnough();
|
||||
when(mCallback.canChildBeDismissedInDirection(any(), anyBoolean())).thenReturn(true);
|
||||
when(mEvent.getActionMasked()).thenReturn(MotionEvent.ACTION_UP);
|
||||
|
||||
assertFalse("Should not be a dismissal", mSwipeHelper.isDismissGesture(mEvent));
|
||||
verify(mSwipeHelper, times(1)).isFalseGesture();
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
Reference in New Issue
Block a user