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

This commit is contained in:
Lucas Dupin
2021-10-18 19:56:53 +00:00
committed by Android (Google) Code Review
3 changed files with 91 additions and 1 deletions

View File

@@ -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)
}
}
}

View File

@@ -0,0 +1,32 @@
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) }
}
}

View File

@@ -0,0 +1,51 @@
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))
}
}