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);
|
|| (isFastNonDismissGesture && isAbleToShowMenu);
|
||||||
int menuSnapTarget = menuRow.getMenuSnapTarget();
|
int menuSnapTarget = menuRow.getMenuSnapTarget();
|
||||||
boolean isNonFalseMenuRevealingGesture =
|
boolean isNonFalseMenuRevealingGesture =
|
||||||
!isFalseGesture() && isMenuRevealingGestureAwayFromMenu;
|
isMenuRevealingGestureAwayFromMenu && !isFalseGesture();
|
||||||
if ((isNonDismissGestureTowardsMenu || isNonFalseMenuRevealingGesture)
|
if ((isNonDismissGestureTowardsMenu || isNonFalseMenuRevealingGesture)
|
||||||
&& menuSnapTarget != 0) {
|
&& menuSnapTarget != 0) {
|
||||||
// Menu has not been snapped to previously and this is menu revealing gesture
|
// Menu has not been snapped to previously and this is menu revealing gesture
|
||||||
snapOpen(animView, menuSnapTarget, velocity);
|
snapOpen(animView, menuSnapTarget, velocity);
|
||||||
menuRow.onSnapOpen();
|
menuRow.onSnapOpen();
|
||||||
} else if (isDismissGesture(ev) && !gestureTowardsMenu) {
|
} else if (isDismissGesture && !gestureTowardsMenu) {
|
||||||
dismiss(animView, velocity);
|
dismiss(animView, velocity);
|
||||||
menuRow.onDismiss();
|
menuRow.onDismiss();
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ import static junit.framework.Assert.assertTrue;
|
|||||||
import static org.mockito.ArgumentMatchers.any;
|
import static org.mockito.ArgumentMatchers.any;
|
||||||
import static org.mockito.ArgumentMatchers.anyBoolean;
|
import static org.mockito.ArgumentMatchers.anyBoolean;
|
||||||
import static org.mockito.ArgumentMatchers.anyFloat;
|
import static org.mockito.ArgumentMatchers.anyFloat;
|
||||||
|
import static org.mockito.ArgumentMatchers.anyInt;
|
||||||
import static org.mockito.Mockito.doAnswer;
|
import static org.mockito.Mockito.doAnswer;
|
||||||
import static org.mockito.Mockito.doNothing;
|
import static org.mockito.Mockito.doNothing;
|
||||||
import static org.mockito.Mockito.doReturn;
|
import static org.mockito.Mockito.doReturn;
|
||||||
@@ -227,14 +228,154 @@ public class NotificationSwipeHelperTest extends SysuiTestCase {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testHandleUpEvent_menuRow() {
|
public void testHandleUpEvent_menuRowWithoutMenu_dismiss() {
|
||||||
when(mSwipeHelper.getCurrentMenuRow()).thenReturn(mMenuRow);
|
doNothing().when(mSwipeHelper).dismiss(any(), anyFloat());
|
||||||
doNothing().when(mSwipeHelper).handleMenuRowSwipe(mEvent, mView, 0, mMenuRow);
|
doReturn(true).when(mSwipeHelper).isDismissGesture(any());
|
||||||
|
doReturn(true).when(mSwipeHelper).swipedFarEnough();
|
||||||
|
when(mMenuRow.shouldShowMenu()).thenReturn(true);
|
||||||
|
mSwipeHelper.setCurrentMenuRow(mMenuRow);
|
||||||
|
|
||||||
assertTrue("Menu row exists",
|
assertTrue("Menu row exists",
|
||||||
mSwipeHelper.handleUpEvent(mEvent, mView, 0, 0));
|
mSwipeHelper.handleUpEvent(mEvent, mView, 0, 0));
|
||||||
verify(mMenuRow, times(1)).onTouchEnd();
|
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
|
@Test
|
||||||
|
|||||||
Reference in New Issue
Block a user