Loading packages/SystemUI/tests/src/com/android/systemui/unfold/progress/UnfoldRemoteFilterTest.kt +23 −3 Original line number Diff line number Diff line Loading @@ -39,13 +39,33 @@ class UnfoldRemoteFilterTest : SysuiTestCase() { } @Test fun onTransitionProgress_withInterval_propagated() { fun onTransitionProgress_firstProgressEvent_propagatedImmediately() { progressProvider.onTransitionStarted() progressProvider.onTransitionProgress(0.5f) listener.assertLastProgress(0.5f) } @Test fun onTransitionProgress_secondProgressEvent_isNotPropagatedImmediately() = InstrumentationRegistry.getInstrumentation().runOnMainSync { progressProvider.onTransitionStarted() progressProvider.onTransitionProgress(0.5f) progressProvider.onTransitionProgress(0.8f) // 0.8f should be set only later, after the animation listener.assertLastProgress(0.5f) } @Test fun onTransitionProgress_severalProgressEventsWithInterval_propagated() { runOnMainThreadWithInterval( { progressProvider.onTransitionStarted() }, { progressProvider.onTransitionProgress(0.5f) } { progressProvider.onTransitionProgress(0.5f) }, { progressProvider.onTransitionProgress(0.8f) } ) listener.assertLastProgress(0.5f) listener.assertLastProgress(0.8f) } @Test Loading packages/SystemUI/unfold/src/com/android/systemui/unfold/progress/UnfoldRemoteFilter.kt +12 −1 Original line number Diff line number Diff line Loading @@ -34,6 +34,7 @@ class UnfoldRemoteFilter( } private var inProgress = false private var receivedProgressEvent = false private var processedProgress: Float = 1.0f set(newProgress) { Loading @@ -54,7 +55,16 @@ class UnfoldRemoteFilter( override fun onTransitionProgress(progress: Float) { logCounter({ "$TAG#plain_remote_progress" }, progress) if (inProgress) { if (receivedProgressEvent) { // We have received at least one progress event, animate from the previous // progress to the current springAnimation.animateToFinalPosition(progress) } else { // This is the first progress event after starting the animation, send it // straightaway and set the spring value without animating it processedProgress = progress receivedProgressEvent = true } } else { Log.e(TAG, "Progress received while not in progress.") } Loading @@ -62,6 +72,7 @@ class UnfoldRemoteFilter( override fun onTransitionFinished() { inProgress = false receivedProgressEvent = false listener.onTransitionFinished() } Loading Loading
packages/SystemUI/tests/src/com/android/systemui/unfold/progress/UnfoldRemoteFilterTest.kt +23 −3 Original line number Diff line number Diff line Loading @@ -39,13 +39,33 @@ class UnfoldRemoteFilterTest : SysuiTestCase() { } @Test fun onTransitionProgress_withInterval_propagated() { fun onTransitionProgress_firstProgressEvent_propagatedImmediately() { progressProvider.onTransitionStarted() progressProvider.onTransitionProgress(0.5f) listener.assertLastProgress(0.5f) } @Test fun onTransitionProgress_secondProgressEvent_isNotPropagatedImmediately() = InstrumentationRegistry.getInstrumentation().runOnMainSync { progressProvider.onTransitionStarted() progressProvider.onTransitionProgress(0.5f) progressProvider.onTransitionProgress(0.8f) // 0.8f should be set only later, after the animation listener.assertLastProgress(0.5f) } @Test fun onTransitionProgress_severalProgressEventsWithInterval_propagated() { runOnMainThreadWithInterval( { progressProvider.onTransitionStarted() }, { progressProvider.onTransitionProgress(0.5f) } { progressProvider.onTransitionProgress(0.5f) }, { progressProvider.onTransitionProgress(0.8f) } ) listener.assertLastProgress(0.5f) listener.assertLastProgress(0.8f) } @Test Loading
packages/SystemUI/unfold/src/com/android/systemui/unfold/progress/UnfoldRemoteFilter.kt +12 −1 Original line number Diff line number Diff line Loading @@ -34,6 +34,7 @@ class UnfoldRemoteFilter( } private var inProgress = false private var receivedProgressEvent = false private var processedProgress: Float = 1.0f set(newProgress) { Loading @@ -54,7 +55,16 @@ class UnfoldRemoteFilter( override fun onTransitionProgress(progress: Float) { logCounter({ "$TAG#plain_remote_progress" }, progress) if (inProgress) { if (receivedProgressEvent) { // We have received at least one progress event, animate from the previous // progress to the current springAnimation.animateToFinalPosition(progress) } else { // This is the first progress event after starting the animation, send it // straightaway and set the spring value without animating it processedProgress = progress receivedProgressEvent = true } } else { Log.e(TAG, "Progress received while not in progress.") } Loading @@ -62,6 +72,7 @@ class UnfoldRemoteFilter( override fun onTransitionFinished() { inProgress = false receivedProgressEvent = false listener.onTransitionFinished() } Loading