Loading packages/SystemUI/src/com/android/systemui/unfold/FullscreenLightRevealAnimation.kt +3 −0 Original line number Diff line number Diff line Loading @@ -32,6 +32,7 @@ import android.view.SurfaceControlViewHost import android.view.SurfaceSession import android.view.WindowManager import android.view.WindowlessWindowManager import androidx.annotation.WorkerThread import com.android.app.tracing.traceSection import com.android.systemui.dagger.qualifiers.Background import com.android.systemui.dagger.qualifiers.Main Loading Loading @@ -235,8 +236,10 @@ constructor( } private inner class RotationWatcher : RotationChangeProvider.RotationListener { @WorkerThread override fun onRotationChanged(newRotation: Int) { traceSection("$TAG#onRotationChanged") { ensureInBackground() if (currentRotation != newRotation) { currentRotation = newRotation scrimView?.revealEffect = lightRevealEffectFactory(currentRotation) Loading packages/SystemUI/tests/src/com/android/systemui/unfold/updates/RotationChangeProviderTest.kt +13 −5 Original line number Diff line number Diff line Loading @@ -18,8 +18,11 @@ package com.android.systemui.unfold.updates import android.content.Context import android.hardware.display.DisplayManager import android.os.HandlerThread import android.os.Looper import android.os.Process import android.testing.AndroidTestingRunner import android.testing.TestableLooper.RunWithLooper import android.view.Display import androidx.test.filters.SmallTest import com.android.systemui.SysuiTestCase Loading @@ -40,6 +43,7 @@ import org.mockito.MockitoAnnotations @RunWith(AndroidTestingRunner::class) @SmallTest @RunWithLooper class RotationChangeProviderTest : SysuiTestCase() { private lateinit var rotationChangeProvider: RotationChangeProvider Loading @@ -48,7 +52,10 @@ class RotationChangeProviderTest : SysuiTestCase() { @Mock lateinit var listener: RotationListener @Mock lateinit var display: Display @Captor lateinit var displayListener: ArgumentCaptor<DisplayManager.DisplayListener> private val fakeHandler = FakeHandler(Looper.getMainLooper()) private val bgThread = HandlerThread("UnfoldBgTest", Process.THREAD_PRIORITY_FOREGROUND).apply { start() } private val bgHandler = FakeHandler(bgThread.looper) private val callbackHandler = FakeHandler(Looper.getMainLooper()) private lateinit var spyContext: Context Loading @@ -57,9 +64,10 @@ class RotationChangeProviderTest : SysuiTestCase() { MockitoAnnotations.initMocks(this) spyContext = spy(context) whenever(spyContext.display).thenReturn(display) rotationChangeProvider = RotationChangeProvider(displayManager, spyContext, fakeHandler) rotationChangeProvider = RotationChangeProvider(displayManager, spyContext, bgHandler, callbackHandler) rotationChangeProvider.addCallback(listener) fakeHandler.dispatchQueuedMessages() bgHandler.dispatchQueuedMessages() verify(displayManager).registerDisplayListener(displayListener.capture(), any()) } Loading @@ -76,7 +84,7 @@ class RotationChangeProviderTest : SysuiTestCase() { verify(listener).onRotationChanged(42) rotationChangeProvider.removeCallback(listener) fakeHandler.dispatchQueuedMessages() bgHandler.dispatchQueuedMessages() sendRotationUpdate(43) verify(displayManager).unregisterDisplayListener(any()) Loading @@ -86,6 +94,6 @@ class RotationChangeProviderTest : SysuiTestCase() { private fun sendRotationUpdate(newRotation: Int) { whenever(display.rotation).thenReturn(newRotation) displayListener.allValues.forEach { it.onDisplayChanged(display.displayId) } fakeHandler.dispatchQueuedMessages() callbackHandler.dispatchQueuedMessages() } } packages/SystemUI/unfold/src/com/android/systemui/unfold/UnfoldRemoteModule.kt +2 −2 Original line number Diff line number Diff line Loading @@ -53,8 +53,8 @@ class UnfoldRemoteModule { @UnfoldMain fun provideMainRotationChangeProvider( rotationChangeProviderFactory: RotationChangeProvider.Factory, @UnfoldMain mainHandler: Handler, @UnfoldMain callbackHandler: Handler, ): RotationChangeProvider { return rotationChangeProviderFactory.create(mainHandler) return rotationChangeProviderFactory.create(callbackHandler) } } packages/SystemUI/unfold/src/com/android/systemui/unfold/UnfoldSharedComponent.kt +1 −0 Original line number Diff line number Diff line Loading @@ -87,6 +87,7 @@ interface RemoteUnfoldSharedComponent { @BindsInstance @UnfoldMain executor: Executor, @BindsInstance @UnfoldMain handler: Handler, @BindsInstance @UnfoldSingleThreadBg singleThreadBgExecutor: Executor, @BindsInstance @UnfoldBg bgHandler: Handler, @BindsInstance displayManager: DisplayManager, @BindsInstance @UnfoldTransitionATracePrefix tracingTagPrefix: String, ): RemoteUnfoldSharedComponent Loading packages/SystemUI/unfold/src/com/android/systemui/unfold/UnfoldSharedModule.kt +5 −4 Original line number Diff line number Diff line Loading @@ -270,9 +270,9 @@ internal class UnfoldRotationProviderInternalModule { @UnfoldMain fun provideRotationChangeProvider( rotationChangeProviderFactory: RotationChangeProvider.Factory, @UnfoldMain mainHandler: Handler, @UnfoldMain callbackHandler: Handler, ): RotationChangeProvider { return rotationChangeProviderFactory.create(mainHandler) return rotationChangeProviderFactory.create(callbackHandler) } @Provides Loading @@ -280,8 +280,9 @@ internal class UnfoldRotationProviderInternalModule { @UnfoldBg fun provideBgRotationChangeProvider( rotationChangeProviderFactory: RotationChangeProvider.Factory, @UnfoldBg bgHandler: Handler, @UnfoldBg callbackHandler: Handler, ): RotationChangeProvider { return rotationChangeProviderFactory.create(bgHandler) // For UnfoldBg RotationChangeProvider we use bgHandler as callbackHandler return rotationChangeProviderFactory.create(callbackHandler) } } Loading
packages/SystemUI/src/com/android/systemui/unfold/FullscreenLightRevealAnimation.kt +3 −0 Original line number Diff line number Diff line Loading @@ -32,6 +32,7 @@ import android.view.SurfaceControlViewHost import android.view.SurfaceSession import android.view.WindowManager import android.view.WindowlessWindowManager import androidx.annotation.WorkerThread import com.android.app.tracing.traceSection import com.android.systemui.dagger.qualifiers.Background import com.android.systemui.dagger.qualifiers.Main Loading Loading @@ -235,8 +236,10 @@ constructor( } private inner class RotationWatcher : RotationChangeProvider.RotationListener { @WorkerThread override fun onRotationChanged(newRotation: Int) { traceSection("$TAG#onRotationChanged") { ensureInBackground() if (currentRotation != newRotation) { currentRotation = newRotation scrimView?.revealEffect = lightRevealEffectFactory(currentRotation) Loading
packages/SystemUI/tests/src/com/android/systemui/unfold/updates/RotationChangeProviderTest.kt +13 −5 Original line number Diff line number Diff line Loading @@ -18,8 +18,11 @@ package com.android.systemui.unfold.updates import android.content.Context import android.hardware.display.DisplayManager import android.os.HandlerThread import android.os.Looper import android.os.Process import android.testing.AndroidTestingRunner import android.testing.TestableLooper.RunWithLooper import android.view.Display import androidx.test.filters.SmallTest import com.android.systemui.SysuiTestCase Loading @@ -40,6 +43,7 @@ import org.mockito.MockitoAnnotations @RunWith(AndroidTestingRunner::class) @SmallTest @RunWithLooper class RotationChangeProviderTest : SysuiTestCase() { private lateinit var rotationChangeProvider: RotationChangeProvider Loading @@ -48,7 +52,10 @@ class RotationChangeProviderTest : SysuiTestCase() { @Mock lateinit var listener: RotationListener @Mock lateinit var display: Display @Captor lateinit var displayListener: ArgumentCaptor<DisplayManager.DisplayListener> private val fakeHandler = FakeHandler(Looper.getMainLooper()) private val bgThread = HandlerThread("UnfoldBgTest", Process.THREAD_PRIORITY_FOREGROUND).apply { start() } private val bgHandler = FakeHandler(bgThread.looper) private val callbackHandler = FakeHandler(Looper.getMainLooper()) private lateinit var spyContext: Context Loading @@ -57,9 +64,10 @@ class RotationChangeProviderTest : SysuiTestCase() { MockitoAnnotations.initMocks(this) spyContext = spy(context) whenever(spyContext.display).thenReturn(display) rotationChangeProvider = RotationChangeProvider(displayManager, spyContext, fakeHandler) rotationChangeProvider = RotationChangeProvider(displayManager, spyContext, bgHandler, callbackHandler) rotationChangeProvider.addCallback(listener) fakeHandler.dispatchQueuedMessages() bgHandler.dispatchQueuedMessages() verify(displayManager).registerDisplayListener(displayListener.capture(), any()) } Loading @@ -76,7 +84,7 @@ class RotationChangeProviderTest : SysuiTestCase() { verify(listener).onRotationChanged(42) rotationChangeProvider.removeCallback(listener) fakeHandler.dispatchQueuedMessages() bgHandler.dispatchQueuedMessages() sendRotationUpdate(43) verify(displayManager).unregisterDisplayListener(any()) Loading @@ -86,6 +94,6 @@ class RotationChangeProviderTest : SysuiTestCase() { private fun sendRotationUpdate(newRotation: Int) { whenever(display.rotation).thenReturn(newRotation) displayListener.allValues.forEach { it.onDisplayChanged(display.displayId) } fakeHandler.dispatchQueuedMessages() callbackHandler.dispatchQueuedMessages() } }
packages/SystemUI/unfold/src/com/android/systemui/unfold/UnfoldRemoteModule.kt +2 −2 Original line number Diff line number Diff line Loading @@ -53,8 +53,8 @@ class UnfoldRemoteModule { @UnfoldMain fun provideMainRotationChangeProvider( rotationChangeProviderFactory: RotationChangeProvider.Factory, @UnfoldMain mainHandler: Handler, @UnfoldMain callbackHandler: Handler, ): RotationChangeProvider { return rotationChangeProviderFactory.create(mainHandler) return rotationChangeProviderFactory.create(callbackHandler) } }
packages/SystemUI/unfold/src/com/android/systemui/unfold/UnfoldSharedComponent.kt +1 −0 Original line number Diff line number Diff line Loading @@ -87,6 +87,7 @@ interface RemoteUnfoldSharedComponent { @BindsInstance @UnfoldMain executor: Executor, @BindsInstance @UnfoldMain handler: Handler, @BindsInstance @UnfoldSingleThreadBg singleThreadBgExecutor: Executor, @BindsInstance @UnfoldBg bgHandler: Handler, @BindsInstance displayManager: DisplayManager, @BindsInstance @UnfoldTransitionATracePrefix tracingTagPrefix: String, ): RemoteUnfoldSharedComponent Loading
packages/SystemUI/unfold/src/com/android/systemui/unfold/UnfoldSharedModule.kt +5 −4 Original line number Diff line number Diff line Loading @@ -270,9 +270,9 @@ internal class UnfoldRotationProviderInternalModule { @UnfoldMain fun provideRotationChangeProvider( rotationChangeProviderFactory: RotationChangeProvider.Factory, @UnfoldMain mainHandler: Handler, @UnfoldMain callbackHandler: Handler, ): RotationChangeProvider { return rotationChangeProviderFactory.create(mainHandler) return rotationChangeProviderFactory.create(callbackHandler) } @Provides Loading @@ -280,8 +280,9 @@ internal class UnfoldRotationProviderInternalModule { @UnfoldBg fun provideBgRotationChangeProvider( rotationChangeProviderFactory: RotationChangeProvider.Factory, @UnfoldBg bgHandler: Handler, @UnfoldBg callbackHandler: Handler, ): RotationChangeProvider { return rotationChangeProviderFactory.create(bgHandler) // For UnfoldBg RotationChangeProvider we use bgHandler as callbackHandler return rotationChangeProviderFactory.create(callbackHandler) } }