Merge "Zoom-in wallpaper instead of zoom-out when unfolding" into sc-v2-dev am: 50583cd3b1
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/16058127 Change-Id: I6dcc50ff4ee144482a0575c7c66c50c59047d1b4
This commit is contained in:
@@ -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)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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) }
|
||||
}
|
||||
}
|
||||
@@ -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))
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user