Loading packages/SystemUI/src/com/android/systemui/dreams/touch/DreamOverlayTouchMonitor.java +9 −0 Original line number Diff line number Diff line Loading @@ -226,6 +226,15 @@ public class DreamOverlayTouchMonitor { return; } // When we stop monitoring touches, we must ensure that all active touch sessions and // descendants informed of the removal so any cleanup for active tracking can proceed. mExecutor.execute(() -> mActiveTouchSessions.forEach(touchSession -> { while (touchSession != null) { touchSession.onRemoved(); touchSession = touchSession.getPredecessor(); } })); mCurrentInputSession.dispose(); mCurrentInputSession = null; } Loading packages/SystemUI/tests/src/com/android/systemui/dreams/touch/DreamOverlayTouchMonitorTest.java +26 −0 Original line number Diff line number Diff line Loading @@ -424,6 +424,32 @@ public class DreamOverlayTouchMonitorTest extends SysuiTestCase { verify(gestureListener2).onDown(eq(followupEvent)); } @Test public void testOnRemovedCallbackOnStopMonitoring() { final DreamTouchHandler touchHandler = Mockito.mock(DreamTouchHandler.class); final DreamTouchHandler.TouchSession.Callback callback = Mockito.mock(DreamTouchHandler.TouchSession.Callback.class); final Environment environment = new Environment(Stream.of(touchHandler) .collect(Collectors.toCollection(HashSet::new))); final InputEvent initialEvent = Mockito.mock(InputEvent.class); environment.publishInputEvent(initialEvent); final DreamTouchHandler.TouchSession session = captureSession(touchHandler); session.registerCallback(callback); environment.executeAll(); environment.updateLifecycle(observerOwnerPair -> { observerOwnerPair.first.onPause(observerOwnerPair.second); }); environment.executeAll(); verify(callback).onRemoved(); } public GestureDetector.OnGestureListener registerGestureListener(DreamTouchHandler handler) { final GestureDetector.OnGestureListener gestureListener = Mockito.mock( GestureDetector.OnGestureListener.class); Loading Loading
packages/SystemUI/src/com/android/systemui/dreams/touch/DreamOverlayTouchMonitor.java +9 −0 Original line number Diff line number Diff line Loading @@ -226,6 +226,15 @@ public class DreamOverlayTouchMonitor { return; } // When we stop monitoring touches, we must ensure that all active touch sessions and // descendants informed of the removal so any cleanup for active tracking can proceed. mExecutor.execute(() -> mActiveTouchSessions.forEach(touchSession -> { while (touchSession != null) { touchSession.onRemoved(); touchSession = touchSession.getPredecessor(); } })); mCurrentInputSession.dispose(); mCurrentInputSession = null; } Loading
packages/SystemUI/tests/src/com/android/systemui/dreams/touch/DreamOverlayTouchMonitorTest.java +26 −0 Original line number Diff line number Diff line Loading @@ -424,6 +424,32 @@ public class DreamOverlayTouchMonitorTest extends SysuiTestCase { verify(gestureListener2).onDown(eq(followupEvent)); } @Test public void testOnRemovedCallbackOnStopMonitoring() { final DreamTouchHandler touchHandler = Mockito.mock(DreamTouchHandler.class); final DreamTouchHandler.TouchSession.Callback callback = Mockito.mock(DreamTouchHandler.TouchSession.Callback.class); final Environment environment = new Environment(Stream.of(touchHandler) .collect(Collectors.toCollection(HashSet::new))); final InputEvent initialEvent = Mockito.mock(InputEvent.class); environment.publishInputEvent(initialEvent); final DreamTouchHandler.TouchSession session = captureSession(touchHandler); session.registerCallback(callback); environment.executeAll(); environment.updateLifecycle(observerOwnerPair -> { observerOwnerPair.first.onPause(observerOwnerPair.second); }); environment.executeAll(); verify(callback).onRemoved(); } public GestureDetector.OnGestureListener registerGestureListener(DreamTouchHandler handler) { final GestureDetector.OnGestureListener gestureListener = Mockito.mock( GestureDetector.OnGestureListener.class); Loading