Loading packages/SystemUI/multivalentTests/src/com/android/systemui/ambient/touch/BouncerSwipeTouchHandlerTest.java +12 −1 Original line number Diff line number Diff line Loading @@ -28,6 +28,7 @@ import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.anyFloat; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.ArgumentMatchers.isNull; import static org.mockito.Mockito.doAnswer; import static org.mockito.Mockito.never; import static org.mockito.Mockito.reset; import static org.mockito.Mockito.spy; Loading Loading @@ -80,6 +81,8 @@ import org.mockito.Captor; import org.mockito.Mock; import org.mockito.Mockito; import org.mockito.MockitoAnnotations; import org.mockito.invocation.InvocationOnMock; import org.mockito.stubbing.Answer; import platform.test.runner.parameterized.ParameterizedAndroidJunit4; import platform.test.runner.parameterized.Parameters; Loading Loading @@ -211,7 +214,15 @@ public class BouncerSwipeTouchHandlerTest extends SysuiTestCase { mKosmos.getCommunalSettingsInteractor() ); when(mScrimManager.getCurrentController()).thenReturn(mScrimController); doAnswer(new Answer<Void>() { @Override public Void answer(InvocationOnMock invocation) { final ScrimManager.Callback callback = invocation.getArgument(0); callback.onScrimControllerChanged(mScrimController); return null; } }).when(mScrimManager).addCallback(any()); when(mValueAnimatorCreator.create(anyFloat(), anyFloat())).thenReturn(mValueAnimator); when(mVelocityTrackerFactory.obtain()).thenReturn(mVelocityTracker); when(mFlingAnimationUtils.getMinVelocityPxPerSecond()).thenReturn(Float.MAX_VALUE); Loading packages/SystemUI/multivalentTests/src/com/android/systemui/ambient/touch/scrim/ScrimManagerTest.java +52 −7 Original line number Diff line number Diff line Loading @@ -23,7 +23,12 @@ import static com.android.systemui.ambient.touch.TouchSurfaceKt.SURFACE_HUB; import static com.google.common.truth.Truth.assertThat; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.clearInvocations; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.never; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; Loading Loading @@ -57,8 +62,14 @@ public class ScrimManagerTest extends SysuiTestCase { @Mock KeyguardStateController mKeyguardStateController; @Mock ScrimManager.Callback mCallback; ScrimManager.Callback mCallback = spy(new ScrimManager.Callback() { @Override public void onScrimControllerChanged(ScrimController controller) { mCurrentController = controller; } }); private ScrimController mCurrentController; private final FakeExecutor mExecutor = new FakeExecutor(new FakeSystemClock()); Loading @@ -74,13 +85,16 @@ public class ScrimManagerTest extends SysuiTestCase { ArgumentCaptor.forClass(KeyguardStateController.Callback.class); final ScrimManager manager = new ScrimManager(mExecutor, mBouncerScrimController, mBouncerlessScrimController, SURFACE_HUB, mKeyguardStateController); verify(mKeyguardStateController, never()).addCallback(any()); manager.addCallback(mCallback); mExecutor.runAllReady(); verify(mKeyguardStateController).addCallback(callbackCaptor.capture()); assertThat(manager.getCurrentController()).isEqualTo(mBouncerScrimController); assertThat(mCurrentController).isEqualTo(mBouncerScrimController); when(mKeyguardStateController.canDismissLockScreen()).thenReturn(true); callbackCaptor.getValue().onKeyguardShowingChanged(); mExecutor.runAllReady(); assertThat(manager.getCurrentController()).isEqualTo(mBouncerlessScrimController); assertThat(mCurrentController).isEqualTo(mBouncerlessScrimController); } @Test Loading @@ -90,9 +104,11 @@ public class ScrimManagerTest extends SysuiTestCase { ArgumentCaptor.forClass(KeyguardStateController.Callback.class); final ScrimManager manager = new ScrimManager(mExecutor, mBouncerScrimController, mBouncerlessScrimController, SURFACE_HUB, mKeyguardStateController); verify(mKeyguardStateController).addCallback(callbackCaptor.capture()); verify(mKeyguardStateController, never()).addCallback(any()); manager.addCallback(mCallback); mExecutor.runAllReady(); verify(mKeyguardStateController).addCallback(callbackCaptor.capture()); when(mKeyguardStateController.canDismissLockScreen()).thenReturn(true); callbackCaptor.getValue().onKeyguardShowingChanged(); mExecutor.runAllReady(); Loading @@ -107,12 +123,41 @@ public class ScrimManagerTest extends SysuiTestCase { ArgumentCaptor.forClass(KeyguardStateController.Callback.class); final ScrimManager manager = new ScrimManager(mExecutor, mBouncerScrimController, mBouncerlessScrimController, SURFACE_DREAM, mKeyguardStateController); verify(mKeyguardStateController, never()).addCallback(any()); manager.addCallback(mCallback); mExecutor.runAllReady(); verify(mKeyguardStateController).addCallback(callbackCaptor.capture()); assertThat(manager.getCurrentController()).isEqualTo(mBouncerlessScrimController); assertThat(mCurrentController).isEqualTo(mBouncerlessScrimController); when(mKeyguardStateController.canDismissLockScreen()).thenReturn(true); callbackCaptor.getValue().onKeyguardShowingChanged(); mExecutor.runAllReady(); assertThat(manager.getCurrentController()).isEqualTo(mBouncerlessScrimController); assertThat(mCurrentController).isEqualTo(mBouncerlessScrimController); } @Test public void testKeyguardStateCallbackRegistration() { final ScrimManager manager = new ScrimManager(mExecutor, mBouncerScrimController, mBouncerlessScrimController, SURFACE_DREAM, mKeyguardStateController); ArgumentCaptor<KeyguardStateController.Callback> callbackCaptor = ArgumentCaptor.forClass(KeyguardStateController.Callback.class); final ScrimManager.Callback firstMock = mock(ScrimManager.Callback.class); final ScrimManager.Callback secondMock = mock(ScrimManager.Callback.class); verify(mKeyguardStateController, never()).addCallback(any()); manager.addCallback(firstMock); mExecutor.runAllReady(); verify(mKeyguardStateController).addCallback(callbackCaptor.capture()); clearInvocations(mKeyguardStateController); manager.addCallback(secondMock); mExecutor.runAllReady(); verify(mKeyguardStateController, never()).addCallback(any()); manager.removeCallback(firstMock); mExecutor.runAllReady(); verify(mKeyguardStateController, never()).removeCallback(any()); manager.removeCallback(secondMock); mExecutor.runAllReady(); verify(mKeyguardStateController).removeCallback(callbackCaptor.getValue()); } } packages/SystemUI/src/com/android/systemui/ambient/touch/BouncerSwipeTouchHandler.kt +0 −1 Original line number Diff line number Diff line Loading @@ -295,7 +295,6 @@ constructor( notificationShadeWindowController.setForcePluginOpen(true, this) } scrimManager.addCallback(scrimManagerCallback) currentScrimController = scrimManager.currentController isKeyguardScreenRotationAllowed = keyguardStateController.isKeyguardScreenRotationAllowed() session.registerCallback { Loading packages/SystemUI/src/com/android/systemui/ambient/touch/scrim/ScrimManager.java +16 −12 Original line number Diff line number Diff line Loading @@ -80,9 +80,6 @@ public class ScrimManager { mBouncerScrimController = bouncerScrimController; mKeyguardStateController = keyguardStateController; mTouchSurface = surface; mKeyguardStateController.addCallback(mKeyguardStateCallback); updateController(); } private void updateController() { Loading @@ -105,20 +102,27 @@ public class ScrimManager { * Adds a {@link Callback} to receive future changes to the active {@link ScrimController}. */ public void addCallback(Callback callback) { mExecutor.execute(() -> mCallbacks.add(callback)); mExecutor.execute(() -> { if (mCallbacks.isEmpty()) { mKeyguardStateController.addCallback(mKeyguardStateCallback); updateController(); } mCallbacks.add(callback); callback.onScrimControllerChanged(mCurrentController); }); } /** * Removes the {@link Callback} from receiving further updates. */ public void removeCallback(Callback callback) { mExecutor.execute(() -> mCallbacks.remove(callback)); } mExecutor.execute(() -> { mCallbacks.remove(callback); /** * Returns the currently get {@link ScrimController}. */ public ScrimController getCurrentController() { return mCurrentController; if (mCallbacks.isEmpty()) { mKeyguardStateController.removeCallback(mKeyguardStateCallback); mCurrentController = null; } }); } } Loading
packages/SystemUI/multivalentTests/src/com/android/systemui/ambient/touch/BouncerSwipeTouchHandlerTest.java +12 −1 Original line number Diff line number Diff line Loading @@ -28,6 +28,7 @@ import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.anyFloat; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.ArgumentMatchers.isNull; import static org.mockito.Mockito.doAnswer; import static org.mockito.Mockito.never; import static org.mockito.Mockito.reset; import static org.mockito.Mockito.spy; Loading Loading @@ -80,6 +81,8 @@ import org.mockito.Captor; import org.mockito.Mock; import org.mockito.Mockito; import org.mockito.MockitoAnnotations; import org.mockito.invocation.InvocationOnMock; import org.mockito.stubbing.Answer; import platform.test.runner.parameterized.ParameterizedAndroidJunit4; import platform.test.runner.parameterized.Parameters; Loading Loading @@ -211,7 +214,15 @@ public class BouncerSwipeTouchHandlerTest extends SysuiTestCase { mKosmos.getCommunalSettingsInteractor() ); when(mScrimManager.getCurrentController()).thenReturn(mScrimController); doAnswer(new Answer<Void>() { @Override public Void answer(InvocationOnMock invocation) { final ScrimManager.Callback callback = invocation.getArgument(0); callback.onScrimControllerChanged(mScrimController); return null; } }).when(mScrimManager).addCallback(any()); when(mValueAnimatorCreator.create(anyFloat(), anyFloat())).thenReturn(mValueAnimator); when(mVelocityTrackerFactory.obtain()).thenReturn(mVelocityTracker); when(mFlingAnimationUtils.getMinVelocityPxPerSecond()).thenReturn(Float.MAX_VALUE); Loading
packages/SystemUI/multivalentTests/src/com/android/systemui/ambient/touch/scrim/ScrimManagerTest.java +52 −7 Original line number Diff line number Diff line Loading @@ -23,7 +23,12 @@ import static com.android.systemui.ambient.touch.TouchSurfaceKt.SURFACE_HUB; import static com.google.common.truth.Truth.assertThat; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.clearInvocations; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.never; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; Loading Loading @@ -57,8 +62,14 @@ public class ScrimManagerTest extends SysuiTestCase { @Mock KeyguardStateController mKeyguardStateController; @Mock ScrimManager.Callback mCallback; ScrimManager.Callback mCallback = spy(new ScrimManager.Callback() { @Override public void onScrimControllerChanged(ScrimController controller) { mCurrentController = controller; } }); private ScrimController mCurrentController; private final FakeExecutor mExecutor = new FakeExecutor(new FakeSystemClock()); Loading @@ -74,13 +85,16 @@ public class ScrimManagerTest extends SysuiTestCase { ArgumentCaptor.forClass(KeyguardStateController.Callback.class); final ScrimManager manager = new ScrimManager(mExecutor, mBouncerScrimController, mBouncerlessScrimController, SURFACE_HUB, mKeyguardStateController); verify(mKeyguardStateController, never()).addCallback(any()); manager.addCallback(mCallback); mExecutor.runAllReady(); verify(mKeyguardStateController).addCallback(callbackCaptor.capture()); assertThat(manager.getCurrentController()).isEqualTo(mBouncerScrimController); assertThat(mCurrentController).isEqualTo(mBouncerScrimController); when(mKeyguardStateController.canDismissLockScreen()).thenReturn(true); callbackCaptor.getValue().onKeyguardShowingChanged(); mExecutor.runAllReady(); assertThat(manager.getCurrentController()).isEqualTo(mBouncerlessScrimController); assertThat(mCurrentController).isEqualTo(mBouncerlessScrimController); } @Test Loading @@ -90,9 +104,11 @@ public class ScrimManagerTest extends SysuiTestCase { ArgumentCaptor.forClass(KeyguardStateController.Callback.class); final ScrimManager manager = new ScrimManager(mExecutor, mBouncerScrimController, mBouncerlessScrimController, SURFACE_HUB, mKeyguardStateController); verify(mKeyguardStateController).addCallback(callbackCaptor.capture()); verify(mKeyguardStateController, never()).addCallback(any()); manager.addCallback(mCallback); mExecutor.runAllReady(); verify(mKeyguardStateController).addCallback(callbackCaptor.capture()); when(mKeyguardStateController.canDismissLockScreen()).thenReturn(true); callbackCaptor.getValue().onKeyguardShowingChanged(); mExecutor.runAllReady(); Loading @@ -107,12 +123,41 @@ public class ScrimManagerTest extends SysuiTestCase { ArgumentCaptor.forClass(KeyguardStateController.Callback.class); final ScrimManager manager = new ScrimManager(mExecutor, mBouncerScrimController, mBouncerlessScrimController, SURFACE_DREAM, mKeyguardStateController); verify(mKeyguardStateController, never()).addCallback(any()); manager.addCallback(mCallback); mExecutor.runAllReady(); verify(mKeyguardStateController).addCallback(callbackCaptor.capture()); assertThat(manager.getCurrentController()).isEqualTo(mBouncerlessScrimController); assertThat(mCurrentController).isEqualTo(mBouncerlessScrimController); when(mKeyguardStateController.canDismissLockScreen()).thenReturn(true); callbackCaptor.getValue().onKeyguardShowingChanged(); mExecutor.runAllReady(); assertThat(manager.getCurrentController()).isEqualTo(mBouncerlessScrimController); assertThat(mCurrentController).isEqualTo(mBouncerlessScrimController); } @Test public void testKeyguardStateCallbackRegistration() { final ScrimManager manager = new ScrimManager(mExecutor, mBouncerScrimController, mBouncerlessScrimController, SURFACE_DREAM, mKeyguardStateController); ArgumentCaptor<KeyguardStateController.Callback> callbackCaptor = ArgumentCaptor.forClass(KeyguardStateController.Callback.class); final ScrimManager.Callback firstMock = mock(ScrimManager.Callback.class); final ScrimManager.Callback secondMock = mock(ScrimManager.Callback.class); verify(mKeyguardStateController, never()).addCallback(any()); manager.addCallback(firstMock); mExecutor.runAllReady(); verify(mKeyguardStateController).addCallback(callbackCaptor.capture()); clearInvocations(mKeyguardStateController); manager.addCallback(secondMock); mExecutor.runAllReady(); verify(mKeyguardStateController, never()).addCallback(any()); manager.removeCallback(firstMock); mExecutor.runAllReady(); verify(mKeyguardStateController, never()).removeCallback(any()); manager.removeCallback(secondMock); mExecutor.runAllReady(); verify(mKeyguardStateController).removeCallback(callbackCaptor.getValue()); } }
packages/SystemUI/src/com/android/systemui/ambient/touch/BouncerSwipeTouchHandler.kt +0 −1 Original line number Diff line number Diff line Loading @@ -295,7 +295,6 @@ constructor( notificationShadeWindowController.setForcePluginOpen(true, this) } scrimManager.addCallback(scrimManagerCallback) currentScrimController = scrimManager.currentController isKeyguardScreenRotationAllowed = keyguardStateController.isKeyguardScreenRotationAllowed() session.registerCallback { Loading
packages/SystemUI/src/com/android/systemui/ambient/touch/scrim/ScrimManager.java +16 −12 Original line number Diff line number Diff line Loading @@ -80,9 +80,6 @@ public class ScrimManager { mBouncerScrimController = bouncerScrimController; mKeyguardStateController = keyguardStateController; mTouchSurface = surface; mKeyguardStateController.addCallback(mKeyguardStateCallback); updateController(); } private void updateController() { Loading @@ -105,20 +102,27 @@ public class ScrimManager { * Adds a {@link Callback} to receive future changes to the active {@link ScrimController}. */ public void addCallback(Callback callback) { mExecutor.execute(() -> mCallbacks.add(callback)); mExecutor.execute(() -> { if (mCallbacks.isEmpty()) { mKeyguardStateController.addCallback(mKeyguardStateCallback); updateController(); } mCallbacks.add(callback); callback.onScrimControllerChanged(mCurrentController); }); } /** * Removes the {@link Callback} from receiving further updates. */ public void removeCallback(Callback callback) { mExecutor.execute(() -> mCallbacks.remove(callback)); } mExecutor.execute(() -> { mCallbacks.remove(callback); /** * Returns the currently get {@link ScrimController}. */ public ScrimController getCurrentController() { return mCurrentController; if (mCallbacks.isEmpty()) { mKeyguardStateController.removeCallback(mKeyguardStateCallback); mCurrentController = null; } }); } }