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

Commit 50583cd3 authored by Lucas Dupin's avatar Lucas Dupin Committed by Android (Google) Code Review
Browse files

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

parents a80ecceb 46f1300b
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))
    }
}