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

Commit 59bd397a 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 am: 50583cd3

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

Change-Id: I6dcc50ff4ee144482a0575c7c66c50c59047d1b4
parents e77046ae 50583cd3
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))
    }
}