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

Commit fc90e93c authored by Lucas Dupin's avatar Lucas Dupin Committed by Automerger Merge Worker
Browse files

Merge "Zoom-in wallpaper instead of zoom-out when unfolding" into sc-v2-dev...

Merge "Zoom-in wallpaper instead of zoom-out when unfolding" into sc-v2-dev am: 50583cd3 am: 59bd397a

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/16058127

Change-Id: I0ea1096a654698381fc98450c9732742ebc2b369
parents f0ccefb2 59bd397a
Loading
Loading
Loading
Loading
+8 −1
Original line number Diff line number Diff line
@@ -33,7 +33,14 @@ class UnfoldTransitionWallpaperController @Inject constructor(

    private inner class TransitionListener : TransitionProgressListener {
        override fun onTransitionProgress(progress: Float) {
            wallpaperController.setUnfoldTransitionZoom(progress)
            // Fully zoomed in when fully unfolded
            wallpaperController.setUnfoldTransitionZoom(1 - progress)
        }

        override fun onTransitionFinished() {
            // Resets wallpaper zoom-out to 0f when fully folded
            // When fully unfolded it is set to 0f by onTransitionProgress
            wallpaperController.setUnfoldTransitionZoom(0f)
        }
    }
}
+32 −0
Original line number Diff line number Diff line
package com.android.systemui.unfold

import com.android.systemui.unfold.UnfoldTransitionProgressProvider.TransitionProgressListener

class TestUnfoldTransitionProvider : UnfoldTransitionProgressProvider, TransitionProgressListener {

    private val listeners = arrayListOf<TransitionProgressListener>()

    override fun destroy() {
        listeners.clear()
    }

    override fun addCallback(listener: TransitionProgressListener) {
        listeners.add(listener)
    }

    override fun removeCallback(listener: TransitionProgressListener) {
        listeners.remove(listener)
    }

    override fun onTransitionStarted() {
        listeners.forEach { it.onTransitionStarted() }
    }

    override fun onTransitionFinished() {
        listeners.forEach { it.onTransitionFinished() }
    }

    override fun onTransitionProgress(progress: Float) {
        listeners.forEach { it.onTransitionProgress(progress) }
    }
}
+51 −0
Original line number Diff line number Diff line
package com.android.systemui.unfold

import android.testing.AndroidTestingRunner
import androidx.test.filters.SmallTest
import com.android.systemui.SysuiTestCase
import com.android.systemui.util.WallpaperController
import org.junit.Before
import org.junit.Rule
import org.junit.Test
import org.junit.runner.RunWith
import org.mockito.AdditionalMatchers.eq
import org.mockito.Mock
import org.mockito.Mockito.verify
import org.mockito.junit.MockitoJUnit

@RunWith(AndroidTestingRunner::class)
@SmallTest
class UnfoldTransitionWallpaperControllerTest : SysuiTestCase() {

    @Mock
    private lateinit var wallpaperController: WallpaperController

    private val progressProvider = TestUnfoldTransitionProvider()

    @JvmField
    @Rule
    val mockitoRule = MockitoJUnit.rule()

    private lateinit var unfoldWallpaperController: UnfoldTransitionWallpaperController

    @Before
    fun setup() {
        unfoldWallpaperController = UnfoldTransitionWallpaperController(progressProvider,
            wallpaperController)
        unfoldWallpaperController.init()
    }

    @Test
    fun onTransitionProgress_zoomsIn() {
        progressProvider.onTransitionProgress(0.8f)

        verify(wallpaperController).setUnfoldTransitionZoom(eq(0.2f, 0.001f))
    }

    @Test
    fun onTransitionFinished_resetsZoom() {
        progressProvider.onTransitionFinished()

        verify(wallpaperController).setUnfoldTransitionZoom(eq(0f, 0.001f))
    }
}