Merge "Zoom-in wallpaper instead of zoom-out when unfolding" into sc-v2-dev
This commit is contained in:
@@ -33,7 +33,14 @@ class UnfoldTransitionWallpaperController @Inject constructor(
|
|||||||
|
|
||||||
private inner class TransitionListener : TransitionProgressListener {
|
private inner class TransitionListener : TransitionProgressListener {
|
||||||
override fun onTransitionProgress(progress: Float) {
|
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