Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8a93b1f3 authored by Nick Chameyev's avatar Nick Chameyev Committed by Automerger Merge Worker
Browse files

Merge "Do not use private APIs in unfold module" into tm-qpr-dev am: 7c4a157a

parents 25ab8b37 7c4a157a
Loading
Loading
Loading
Loading
+23 −16
Original line number Original line Diff line number Diff line
@@ -16,22 +16,24 @@


package com.android.systemui.unfold.updates
package com.android.systemui.unfold.updates


import android.content.Context
import android.hardware.display.DisplayManager
import android.os.Looper
import android.testing.AndroidTestingRunner
import android.testing.AndroidTestingRunner
import android.view.IRotationWatcher
import android.view.Display
import android.view.IWindowManager
import androidx.test.filters.SmallTest
import androidx.test.filters.SmallTest
import com.android.systemui.SysuiTestCase
import com.android.systemui.SysuiTestCase
import com.android.systemui.unfold.updates.RotationChangeProvider.RotationListener
import com.android.systemui.unfold.updates.RotationChangeProvider.RotationListener
import com.android.systemui.util.concurrency.FakeExecutor
import com.android.systemui.util.mockito.whenever
import com.android.systemui.util.time.FakeSystemClock
import com.android.systemui.utils.os.FakeHandler
import org.junit.Before
import org.junit.Before
import org.junit.Test
import org.junit.Test
import org.junit.runner.RunWith
import org.junit.runner.RunWith
import org.mockito.ArgumentCaptor
import org.mockito.ArgumentCaptor
import org.mockito.ArgumentMatchers.any
import org.mockito.ArgumentMatchers.any
import org.mockito.ArgumentMatchers.anyInt
import org.mockito.Captor
import org.mockito.Captor
import org.mockito.Mock
import org.mockito.Mock
import org.mockito.Mockito.spy
import org.mockito.Mockito.verify
import org.mockito.Mockito.verify
import org.mockito.Mockito.verifyNoMoreInteractions
import org.mockito.Mockito.verifyNoMoreInteractions
import org.mockito.MockitoAnnotations
import org.mockito.MockitoAnnotations
@@ -42,19 +44,23 @@ class RotationChangeProviderTest : SysuiTestCase() {


    private lateinit var rotationChangeProvider: RotationChangeProvider
    private lateinit var rotationChangeProvider: RotationChangeProvider


    @Mock lateinit var windowManagerInterface: IWindowManager
    @Mock lateinit var displayManager: DisplayManager
    @Mock lateinit var listener: RotationListener
    @Mock lateinit var listener: RotationListener
    @Captor lateinit var rotationWatcher: ArgumentCaptor<IRotationWatcher>
    @Mock lateinit var display: Display
    private val fakeExecutor = FakeExecutor(FakeSystemClock())
    @Captor lateinit var displayListener: ArgumentCaptor<DisplayManager.DisplayListener>
    private val fakeHandler = FakeHandler(Looper.getMainLooper())

    private lateinit var spyContext: Context


    @Before
    @Before
    fun setup() {
    fun setup() {
        MockitoAnnotations.initMocks(this)
        MockitoAnnotations.initMocks(this)
        rotationChangeProvider =
        spyContext = spy(context)
            RotationChangeProvider(windowManagerInterface, context, fakeExecutor)
        whenever(spyContext.display).thenReturn(display)
        rotationChangeProvider = RotationChangeProvider(displayManager, spyContext, fakeHandler)
        rotationChangeProvider.addCallback(listener)
        rotationChangeProvider.addCallback(listener)
        fakeExecutor.runAllReady()
        fakeHandler.dispatchQueuedMessages()
        verify(windowManagerInterface).watchRotation(rotationWatcher.capture(), anyInt())
        verify(displayManager).registerDisplayListener(displayListener.capture(), any())
    }
    }


    @Test
    @Test
@@ -70,15 +76,16 @@ class RotationChangeProviderTest : SysuiTestCase() {
        verify(listener).onRotationChanged(42)
        verify(listener).onRotationChanged(42)


        rotationChangeProvider.removeCallback(listener)
        rotationChangeProvider.removeCallback(listener)
        fakeExecutor.runAllReady()
        fakeHandler.dispatchQueuedMessages()
        sendRotationUpdate(43)
        sendRotationUpdate(43)


        verify(windowManagerInterface).removeRotationWatcher(any())
        verify(displayManager).unregisterDisplayListener(any())
        verifyNoMoreInteractions(listener)
        verifyNoMoreInteractions(listener)
    }
    }


    private fun sendRotationUpdate(newRotation: Int) {
    private fun sendRotationUpdate(newRotation: Int) {
        rotationWatcher.value.onRotationChanged(newRotation)
        whenever(display.rotation).thenReturn(newRotation)
        fakeExecutor.runAllReady()
        displayListener.allValues.forEach { it.onDisplayChanged(display.displayId) }
        fakeHandler.dispatchQueuedMessages()
    }
    }
}
}
+1 −0
Original line number Original line Diff line number Diff line
@@ -35,6 +35,7 @@ android_library {
    ],
    ],
    kotlincflags: ["-Xjvm-default=enable"],
    kotlincflags: ["-Xjvm-default=enable"],
    java_version: "1.8",
    java_version: "1.8",
    sdk_version: "current",
    min_sdk_version: "current",
    min_sdk_version: "current",
    plugins: ["dagger2-compiler"],
    plugins: ["dagger2-compiler"],
}
}
+4 −3
Original line number Original line Diff line number Diff line
@@ -19,8 +19,8 @@ package com.android.systemui.unfold
import android.content.ContentResolver
import android.content.ContentResolver
import android.content.Context
import android.content.Context
import android.hardware.SensorManager
import android.hardware.SensorManager
import android.hardware.display.DisplayManager
import android.os.Handler
import android.os.Handler
import android.view.IWindowManager
import com.android.systemui.unfold.config.UnfoldTransitionConfig
import com.android.systemui.unfold.config.UnfoldTransitionConfig
import com.android.systemui.unfold.dagger.UnfoldMain
import com.android.systemui.unfold.dagger.UnfoldMain
import com.android.systemui.unfold.dagger.UnfoldSingleThreadBg
import com.android.systemui.unfold.dagger.UnfoldSingleThreadBg
@@ -61,7 +61,7 @@ interface UnfoldSharedComponent {
            @BindsInstance @UnfoldMain executor: Executor,
            @BindsInstance @UnfoldMain executor: Executor,
            @BindsInstance @UnfoldSingleThreadBg singleThreadBgExecutor: Executor,
            @BindsInstance @UnfoldSingleThreadBg singleThreadBgExecutor: Executor,
            @BindsInstance @UnfoldTransitionATracePrefix tracingTagPrefix: String,
            @BindsInstance @UnfoldTransitionATracePrefix tracingTagPrefix: String,
            @BindsInstance windowManager: IWindowManager,
            @BindsInstance displayManager: DisplayManager,
            @BindsInstance contentResolver: ContentResolver = context.contentResolver
            @BindsInstance contentResolver: ContentResolver = context.contentResolver
        ): UnfoldSharedComponent
        ): UnfoldSharedComponent
    }
    }
@@ -84,8 +84,9 @@ interface RemoteUnfoldSharedComponent {
            @BindsInstance context: Context,
            @BindsInstance context: Context,
            @BindsInstance config: UnfoldTransitionConfig,
            @BindsInstance config: UnfoldTransitionConfig,
            @BindsInstance @UnfoldMain executor: Executor,
            @BindsInstance @UnfoldMain executor: Executor,
            @BindsInstance @UnfoldMain handler: Handler,
            @BindsInstance @UnfoldSingleThreadBg singleThreadBgExecutor: Executor,
            @BindsInstance @UnfoldSingleThreadBg singleThreadBgExecutor: Executor,
            @BindsInstance windowManager: IWindowManager,
            @BindsInstance displayManager: DisplayManager,
            @BindsInstance @UnfoldTransitionATracePrefix tracingTagPrefix: String,
            @BindsInstance @UnfoldTransitionATracePrefix tracingTagPrefix: String,
        ): RemoteUnfoldSharedComponent
        ): RemoteUnfoldSharedComponent
    }
    }
+7 −5
Original line number Original line Diff line number Diff line
@@ -19,8 +19,8 @@ package com.android.systemui.unfold


import android.content.Context
import android.content.Context
import android.hardware.SensorManager
import android.hardware.SensorManager
import android.hardware.display.DisplayManager
import android.os.Handler
import android.os.Handler
import android.view.IWindowManager
import com.android.systemui.unfold.config.UnfoldTransitionConfig
import com.android.systemui.unfold.config.UnfoldTransitionConfig
import com.android.systemui.unfold.updates.FoldProvider
import com.android.systemui.unfold.updates.FoldProvider
import com.android.systemui.unfold.updates.screen.ScreenStatusProvider
import com.android.systemui.unfold.updates.screen.ScreenStatusProvider
@@ -47,7 +47,7 @@ fun createUnfoldSharedComponent(
        mainExecutor: Executor,
        mainExecutor: Executor,
        singleThreadBgExecutor: Executor,
        singleThreadBgExecutor: Executor,
        tracingTagPrefix: String,
        tracingTagPrefix: String,
        windowManager: IWindowManager,
        displayManager: DisplayManager,
): UnfoldSharedComponent =
): UnfoldSharedComponent =
        DaggerUnfoldSharedComponent.factory()
        DaggerUnfoldSharedComponent.factory()
                .create(
                .create(
@@ -61,7 +61,7 @@ fun createUnfoldSharedComponent(
                        mainExecutor,
                        mainExecutor,
                        singleThreadBgExecutor,
                        singleThreadBgExecutor,
                        tracingTagPrefix,
                        tracingTagPrefix,
                        windowManager,
                        displayManager,
                )
                )


/**
/**
@@ -73,16 +73,18 @@ fun createRemoteUnfoldSharedComponent(
        context: Context,
        context: Context,
        config: UnfoldTransitionConfig,
        config: UnfoldTransitionConfig,
        mainExecutor: Executor,
        mainExecutor: Executor,
        mainHandler: Handler,
        singleThreadBgExecutor: Executor,
        singleThreadBgExecutor: Executor,
        tracingTagPrefix: String,
        tracingTagPrefix: String,
        windowManager: IWindowManager,
        displayManager: DisplayManager,
        ): RemoteUnfoldSharedComponent =
        ): RemoteUnfoldSharedComponent =
        DaggerRemoteUnfoldSharedComponent.factory()
        DaggerRemoteUnfoldSharedComponent.factory()
                .create(
                .create(
                        context,
                        context,
                        config,
                        config,
                        mainExecutor,
                        mainExecutor,
                        mainHandler,
                        singleThreadBgExecutor,
                        singleThreadBgExecutor,
                        windowManager,
                        displayManager,
                        tracingTagPrefix,
                        tracingTagPrefix,
                )
                )
+1 −2
Original line number Original line Diff line number Diff line
@@ -16,7 +16,6 @@
package com.android.systemui.unfold.progress
package com.android.systemui.unfold.progress


import android.os.Trace
import android.os.Trace
import android.os.Trace.TRACE_TAG_APP
import android.util.Log
import android.util.Log
import androidx.dynamicanimation.animation.DynamicAnimation
import androidx.dynamicanimation.animation.DynamicAnimation
import androidx.dynamicanimation.animation.FloatPropertyCompat
import androidx.dynamicanimation.animation.FloatPropertyCompat
@@ -110,7 +109,7 @@ class PhysicsBasedUnfoldTransitionProgressProvider @Inject constructor(


        if (DEBUG) {
        if (DEBUG) {
            Log.d(TAG, "onFoldUpdate = ${update.name()}")
            Log.d(TAG, "onFoldUpdate = ${update.name()}")
            Trace.traceCounter(Trace.TRACE_TAG_APP, "fold_update", update)
            Trace.setCounter("fold_update", update.toLong())
        }
        }
    }
    }


Loading