Merge "[Split shade][Motion] Fix scrim not being fully opaque after shade expansion" into tm-qpr-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
0ec6e12771
@@ -20,6 +20,7 @@ import android.annotation.IntDef
|
|||||||
import android.util.Log
|
import android.util.Log
|
||||||
import androidx.annotation.FloatRange
|
import androidx.annotation.FloatRange
|
||||||
import com.android.systemui.dagger.SysUISingleton
|
import com.android.systemui.dagger.SysUISingleton
|
||||||
|
import com.android.systemui.util.Compile
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -109,8 +110,8 @@ class PanelExpansionStateManager @Inject constructor() {
|
|||||||
|
|
||||||
debugLog(
|
debugLog(
|
||||||
"panelExpansionChanged:" +
|
"panelExpansionChanged:" +
|
||||||
"start state=${oldState.stateToString()} " +
|
"start state=${oldState.panelStateToString()} " +
|
||||||
"end state=${state.stateToString()} " +
|
"end state=${state.panelStateToString()} " +
|
||||||
"f=$fraction " +
|
"f=$fraction " +
|
||||||
"expanded=$expanded " +
|
"expanded=$expanded " +
|
||||||
"tracking=$tracking" +
|
"tracking=$tracking" +
|
||||||
@@ -126,14 +127,15 @@ class PanelExpansionStateManager @Inject constructor() {
|
|||||||
|
|
||||||
/** Updates the panel state if necessary. */
|
/** Updates the panel state if necessary. */
|
||||||
fun updateState(@PanelState state: Int) {
|
fun updateState(@PanelState state: Int) {
|
||||||
debugLog("update state: ${this.state.stateToString()} -> ${state.stateToString()}")
|
debugLog(
|
||||||
|
"update state: ${this.state.panelStateToString()} -> ${state.panelStateToString()}")
|
||||||
if (this.state != state) {
|
if (this.state != state) {
|
||||||
updateStateInternal(state)
|
updateStateInternal(state)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun updateStateInternal(@PanelState state: Int) {
|
private fun updateStateInternal(@PanelState state: Int) {
|
||||||
debugLog("go state: ${this.state.stateToString()} -> ${state.stateToString()}")
|
debugLog("go state: ${this.state.panelStateToString()} -> ${state.panelStateToString()}")
|
||||||
this.state = state
|
this.state = state
|
||||||
stateListeners.forEach { it.onPanelStateChanged(state) }
|
stateListeners.forEach { it.onPanelStateChanged(state) }
|
||||||
}
|
}
|
||||||
@@ -154,7 +156,7 @@ const val STATE_OPENING = 1
|
|||||||
const val STATE_OPEN = 2
|
const val STATE_OPEN = 2
|
||||||
|
|
||||||
@PanelState
|
@PanelState
|
||||||
private fun Int.stateToString(): String {
|
fun Int.panelStateToString(): String {
|
||||||
return when (this) {
|
return when (this) {
|
||||||
STATE_CLOSED -> "CLOSED"
|
STATE_CLOSED -> "CLOSED"
|
||||||
STATE_OPENING -> "OPENING"
|
STATE_OPENING -> "OPENING"
|
||||||
@@ -163,5 +165,5 @@ private fun Int.stateToString(): String {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private const val DEBUG = false
|
|
||||||
private val TAG = PanelExpansionStateManager::class.simpleName
|
private val TAG = PanelExpansionStateManager::class.simpleName
|
||||||
|
private val DEBUG = Compile.IS_DEBUG && Log.isLoggable(TAG, Log.DEBUG)
|
||||||
|
|||||||
@@ -11,6 +11,8 @@ import com.android.systemui.statusbar.StatusBarState
|
|||||||
import com.android.systemui.statusbar.SysuiStatusBarStateController
|
import com.android.systemui.statusbar.SysuiStatusBarStateController
|
||||||
import com.android.systemui.statusbar.phone.ScrimController
|
import com.android.systemui.statusbar.phone.ScrimController
|
||||||
import com.android.systemui.statusbar.phone.panelstate.PanelExpansionChangeEvent
|
import com.android.systemui.statusbar.phone.panelstate.PanelExpansionChangeEvent
|
||||||
|
import com.android.systemui.statusbar.phone.panelstate.PanelState
|
||||||
|
import com.android.systemui.statusbar.phone.panelstate.STATE_OPENING
|
||||||
import com.android.systemui.statusbar.policy.ConfigurationController
|
import com.android.systemui.statusbar.policy.ConfigurationController
|
||||||
import com.android.systemui.util.LargeScreenUtils
|
import com.android.systemui.util.LargeScreenUtils
|
||||||
import java.io.PrintWriter
|
import java.io.PrintWriter
|
||||||
@@ -30,8 +32,9 @@ constructor(
|
|||||||
|
|
||||||
private var inSplitShade = false
|
private var inSplitShade = false
|
||||||
private var splitShadeScrimTransitionDistance = 0
|
private var splitShadeScrimTransitionDistance = 0
|
||||||
private var lastExpansionFraction: Float = 0f
|
private var lastExpansionFraction: Float? = null
|
||||||
private var lastExpansionEvent: PanelExpansionChangeEvent? = null
|
private var lastExpansionEvent: PanelExpansionChangeEvent? = null
|
||||||
|
private var currentPanelState: Int? = null
|
||||||
|
|
||||||
init {
|
init {
|
||||||
updateResources()
|
updateResources()
|
||||||
@@ -41,8 +44,8 @@ constructor(
|
|||||||
updateResources()
|
updateResources()
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
dumpManager
|
dumpManager.registerDumpable(
|
||||||
.registerDumpable(ScrimShadeTransitionController::class.java.simpleName, this::dump)
|
ScrimShadeTransitionController::class.java.simpleName, this::dump)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun updateResources() {
|
private fun updateResources() {
|
||||||
@@ -51,21 +54,38 @@ constructor(
|
|||||||
resources.getDimensionPixelSize(R.dimen.split_shade_scrim_transition_distance)
|
resources.getDimensionPixelSize(R.dimen.split_shade_scrim_transition_distance)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun onPanelExpansionChanged(panelExpansionChangeEvent: PanelExpansionChangeEvent) {
|
fun onPanelStateChanged(@PanelState state: Int) {
|
||||||
val expansionFraction = calculateScrimExpansionFraction(panelExpansionChangeEvent)
|
currentPanelState = state
|
||||||
scrimController.setRawPanelExpansionFraction(expansionFraction)
|
onStateChanged()
|
||||||
lastExpansionFraction = expansionFraction
|
|
||||||
lastExpansionEvent = panelExpansionChangeEvent
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun calculateScrimExpansionFraction(expansionEvent: PanelExpansionChangeEvent): Float {
|
fun onPanelExpansionChanged(panelExpansionChangeEvent: PanelExpansionChangeEvent) {
|
||||||
return if (inSplitShade && isScreenUnlocked()) {
|
lastExpansionEvent = panelExpansionChangeEvent
|
||||||
|
onStateChanged()
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun onStateChanged() {
|
||||||
|
val expansionEvent = lastExpansionEvent ?: return
|
||||||
|
val panelState = currentPanelState
|
||||||
|
val expansionFraction = calculateScrimExpansionFraction(expansionEvent, panelState)
|
||||||
|
scrimController.setRawPanelExpansionFraction(expansionFraction)
|
||||||
|
lastExpansionFraction = expansionFraction
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun calculateScrimExpansionFraction(
|
||||||
|
expansionEvent: PanelExpansionChangeEvent,
|
||||||
|
@PanelState panelState: Int?
|
||||||
|
): Float {
|
||||||
|
return if (canUseCustomFraction(panelState)) {
|
||||||
constrain(expansionEvent.dragDownPxAmount / splitShadeScrimTransitionDistance, 0f, 1f)
|
constrain(expansionEvent.dragDownPxAmount / splitShadeScrimTransitionDistance, 0f, 1f)
|
||||||
} else {
|
} else {
|
||||||
expansionEvent.fraction
|
expansionEvent.fraction
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun canUseCustomFraction(panelState: Int?) =
|
||||||
|
inSplitShade && isScreenUnlocked() && panelState == STATE_OPENING
|
||||||
|
|
||||||
private fun isScreenUnlocked() =
|
private fun isScreenUnlocked() =
|
||||||
statusBarStateController.currentOrUpcomingState == StatusBarState.SHADE
|
statusBarStateController.currentOrUpcomingState == StatusBarState.SHADE
|
||||||
|
|
||||||
@@ -78,9 +98,9 @@ constructor(
|
|||||||
isScreenUnlocked: ${isScreenUnlocked()}
|
isScreenUnlocked: ${isScreenUnlocked()}
|
||||||
splitShadeScrimTransitionDistance: $splitShadeScrimTransitionDistance
|
splitShadeScrimTransitionDistance: $splitShadeScrimTransitionDistance
|
||||||
State:
|
State:
|
||||||
|
currentPanelState: $currentPanelState
|
||||||
lastExpansionFraction: $lastExpansionFraction
|
lastExpansionFraction: $lastExpansionFraction
|
||||||
lastExpansionEvent: $lastExpansionEvent
|
lastExpansionEvent: $lastExpansionEvent
|
||||||
""".trimIndent()
|
""".trimIndent())
|
||||||
)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ import com.android.systemui.statusbar.phone.NotificationPanelViewController
|
|||||||
import com.android.systemui.statusbar.phone.panelstate.PanelExpansionChangeEvent
|
import com.android.systemui.statusbar.phone.panelstate.PanelExpansionChangeEvent
|
||||||
import com.android.systemui.statusbar.phone.panelstate.PanelExpansionStateManager
|
import com.android.systemui.statusbar.phone.panelstate.PanelExpansionStateManager
|
||||||
import com.android.systemui.statusbar.phone.panelstate.PanelState
|
import com.android.systemui.statusbar.phone.panelstate.PanelState
|
||||||
|
import com.android.systemui.statusbar.phone.panelstate.panelStateToString
|
||||||
import com.android.systemui.statusbar.policy.ConfigurationController
|
import com.android.systemui.statusbar.policy.ConfigurationController
|
||||||
import java.io.PrintWriter
|
import java.io.PrintWriter
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
@@ -34,6 +35,8 @@ constructor(
|
|||||||
lateinit var qs: QS
|
lateinit var qs: QS
|
||||||
|
|
||||||
private var inSplitShade = false
|
private var inSplitShade = false
|
||||||
|
private var currentPanelState: Int? = null
|
||||||
|
private var lastPanelExpansionChangeEvent: PanelExpansionChangeEvent? = null
|
||||||
|
|
||||||
private val splitShadeOverScroller by lazy {
|
private val splitShadeOverScroller by lazy {
|
||||||
splitShadeOverScrollerFactory.create({ qs }, { notificationStackScrollLayoutController })
|
splitShadeOverScrollerFactory.create({ qs }, { notificationStackScrollLayoutController })
|
||||||
@@ -66,10 +69,13 @@ constructor(
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun onPanelStateChanged(@PanelState state: Int) {
|
private fun onPanelStateChanged(@PanelState state: Int) {
|
||||||
|
currentPanelState = state
|
||||||
shadeOverScroller.onPanelStateChanged(state)
|
shadeOverScroller.onPanelStateChanged(state)
|
||||||
|
scrimShadeTransitionController.onPanelStateChanged(state)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun onPanelExpansionChanged(event: PanelExpansionChangeEvent) {
|
private fun onPanelExpansionChanged(event: PanelExpansionChangeEvent) {
|
||||||
|
lastPanelExpansionChangeEvent = event
|
||||||
shadeOverScroller.onDragDownAmountChanged(event.dragDownPxAmount)
|
shadeOverScroller.onDragDownAmountChanged(event.dragDownPxAmount)
|
||||||
scrimShadeTransitionController.onPanelExpansionChanged(event)
|
scrimShadeTransitionController.onPanelExpansionChanged(event)
|
||||||
}
|
}
|
||||||
@@ -84,6 +90,8 @@ constructor(
|
|||||||
"""
|
"""
|
||||||
ShadeTransitionController:
|
ShadeTransitionController:
|
||||||
inSplitShade: $inSplitShade
|
inSplitShade: $inSplitShade
|
||||||
|
currentPanelState: ${currentPanelState?.panelStateToString()}
|
||||||
|
lastPanelExpansionChangeEvent: $lastPanelExpansionChangeEvent
|
||||||
qs.isInitialized: ${this::qs.isInitialized}
|
qs.isInitialized: ${this::qs.isInitialized}
|
||||||
npvc.isInitialized: ${this::notificationPanelViewController.isInitialized}
|
npvc.isInitialized: ${this::notificationPanelViewController.isInitialized}
|
||||||
nssl.isInitialized: ${this::notificationStackScrollLayoutController.isInitialized}
|
nssl.isInitialized: ${this::notificationStackScrollLayoutController.isInitialized}
|
||||||
|
|||||||
@@ -9,6 +9,9 @@ import com.android.systemui.statusbar.StatusBarState
|
|||||||
import com.android.systemui.statusbar.SysuiStatusBarStateController
|
import com.android.systemui.statusbar.SysuiStatusBarStateController
|
||||||
import com.android.systemui.statusbar.phone.ScrimController
|
import com.android.systemui.statusbar.phone.ScrimController
|
||||||
import com.android.systemui.statusbar.phone.panelstate.PanelExpansionChangeEvent
|
import com.android.systemui.statusbar.phone.panelstate.PanelExpansionChangeEvent
|
||||||
|
import com.android.systemui.statusbar.phone.panelstate.STATE_CLOSED
|
||||||
|
import com.android.systemui.statusbar.phone.panelstate.STATE_OPEN
|
||||||
|
import com.android.systemui.statusbar.phone.panelstate.STATE_OPENING
|
||||||
import com.android.systemui.statusbar.policy.FakeConfigurationController
|
import com.android.systemui.statusbar.policy.FakeConfigurationController
|
||||||
import org.junit.Before
|
import org.junit.Before
|
||||||
import org.junit.Test
|
import org.junit.Test
|
||||||
@@ -39,8 +42,9 @@ class ScrimShadeTransitionControllerTest : SysuiTestCase() {
|
|||||||
dumpManager,
|
dumpManager,
|
||||||
scrimController,
|
scrimController,
|
||||||
context.resources,
|
context.resources,
|
||||||
statusBarStateController
|
statusBarStateController)
|
||||||
)
|
|
||||||
|
controller.onPanelStateChanged(STATE_OPENING)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -54,8 +58,7 @@ class ScrimShadeTransitionControllerTest : SysuiTestCase() {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun onPanelExpansionChanged_inSplitShade_unlockedShade_setsFractionBasedOnDragDownAmount() {
|
fun onPanelExpansionChanged_inSplitShade_unlockedShade_setsFractionBasedOnDragDownAmount() {
|
||||||
whenever(statusBarStateController.currentOrUpcomingState)
|
whenever(statusBarStateController.currentOrUpcomingState).thenReturn(StatusBarState.SHADE)
|
||||||
.thenReturn(StatusBarState.SHADE)
|
|
||||||
val scrimShadeTransitionDistance =
|
val scrimShadeTransitionDistance =
|
||||||
context.resources.getDimensionPixelSize(R.dimen.split_shade_scrim_transition_distance)
|
context.resources.getDimensionPixelSize(R.dimen.split_shade_scrim_transition_distance)
|
||||||
setSplitShadeEnabled(true)
|
setSplitShadeEnabled(true)
|
||||||
@@ -68,23 +71,20 @@ class ScrimShadeTransitionControllerTest : SysuiTestCase() {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun onPanelExpansionChanged_inSplitShade_largeDragDownAmount_fractionIsNotGreaterThan1() {
|
fun onPanelExpansionChanged_inSplitShade_largeDragDownAmount_fractionIsNotGreaterThan1() {
|
||||||
whenever(statusBarStateController.currentOrUpcomingState)
|
whenever(statusBarStateController.currentOrUpcomingState).thenReturn(StatusBarState.SHADE)
|
||||||
.thenReturn(StatusBarState.SHADE)
|
|
||||||
val scrimShadeTransitionDistance =
|
val scrimShadeTransitionDistance =
|
||||||
context.resources.getDimensionPixelSize(R.dimen.split_shade_scrim_transition_distance)
|
context.resources.getDimensionPixelSize(R.dimen.split_shade_scrim_transition_distance)
|
||||||
setSplitShadeEnabled(true)
|
setSplitShadeEnabled(true)
|
||||||
|
|
||||||
controller.onPanelExpansionChanged(
|
controller.onPanelExpansionChanged(
|
||||||
EXPANSION_EVENT.copy(dragDownPxAmount = 100f * scrimShadeTransitionDistance)
|
EXPANSION_EVENT.copy(dragDownPxAmount = 100f * scrimShadeTransitionDistance))
|
||||||
)
|
|
||||||
|
|
||||||
verify(scrimController).setRawPanelExpansionFraction(1f)
|
verify(scrimController).setRawPanelExpansionFraction(1f)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun onPanelExpansionChanged_inSplitShade_negativeDragDownAmount_fractionIsNotLessThan0() {
|
fun onPanelExpansionChanged_inSplitShade_negativeDragDownAmount_fractionIsNotLessThan0() {
|
||||||
whenever(statusBarStateController.currentOrUpcomingState)
|
whenever(statusBarStateController.currentOrUpcomingState).thenReturn(StatusBarState.SHADE)
|
||||||
.thenReturn(StatusBarState.SHADE)
|
|
||||||
setSplitShadeEnabled(true)
|
setSplitShadeEnabled(true)
|
||||||
|
|
||||||
controller.onPanelExpansionChanged(EXPANSION_EVENT.copy(dragDownPxAmount = -100f))
|
controller.onPanelExpansionChanged(EXPANSION_EVENT.copy(dragDownPxAmount = -100f))
|
||||||
@@ -114,6 +114,30 @@ class ScrimShadeTransitionControllerTest : SysuiTestCase() {
|
|||||||
verify(scrimController).setRawPanelExpansionFraction(EXPANSION_EVENT.fraction)
|
verify(scrimController).setRawPanelExpansionFraction(EXPANSION_EVENT.fraction)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun onPanelExpansionChanged_inSplitShade_panelOpen_setsFractionEqualToEventFraction() {
|
||||||
|
controller.onPanelStateChanged(STATE_OPEN)
|
||||||
|
whenever(statusBarStateController.currentOrUpcomingState)
|
||||||
|
.thenReturn(StatusBarState.KEYGUARD)
|
||||||
|
setSplitShadeEnabled(true)
|
||||||
|
|
||||||
|
controller.onPanelExpansionChanged(EXPANSION_EVENT)
|
||||||
|
|
||||||
|
verify(scrimController).setRawPanelExpansionFraction(EXPANSION_EVENT.fraction)
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun onPanelExpansionChanged_inSplitShade_panelClosed_setsFractionEqualToEventFraction() {
|
||||||
|
controller.onPanelStateChanged(STATE_CLOSED)
|
||||||
|
whenever(statusBarStateController.currentOrUpcomingState)
|
||||||
|
.thenReturn(StatusBarState.KEYGUARD)
|
||||||
|
setSplitShadeEnabled(true)
|
||||||
|
|
||||||
|
controller.onPanelExpansionChanged(EXPANSION_EVENT)
|
||||||
|
|
||||||
|
verify(scrimController).setRawPanelExpansionFraction(EXPANSION_EVENT.fraction)
|
||||||
|
}
|
||||||
|
|
||||||
private fun setSplitShadeEnabled(enabled: Boolean) {
|
private fun setSplitShadeEnabled(enabled: Boolean) {
|
||||||
overrideResource(R.bool.config_use_split_notification_shade, enabled)
|
overrideResource(R.bool.config_use_split_notification_shade, enabled)
|
||||||
configurationController.notifyConfigurationChanged()
|
configurationController.notifyConfigurationChanged()
|
||||||
@@ -122,7 +146,6 @@ class ScrimShadeTransitionControllerTest : SysuiTestCase() {
|
|||||||
companion object {
|
companion object {
|
||||||
val EXPANSION_EVENT =
|
val EXPANSION_EVENT =
|
||||||
PanelExpansionChangeEvent(
|
PanelExpansionChangeEvent(
|
||||||
fraction = 0.5f, expanded = true, tracking = true, dragDownPxAmount = 10f
|
fraction = 0.5f, expanded = true, tracking = true, dragDownPxAmount = 10f)
|
||||||
)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ import com.android.systemui.dump.DumpManager
|
|||||||
import com.android.systemui.plugins.qs.QS
|
import com.android.systemui.plugins.qs.QS
|
||||||
import com.android.systemui.statusbar.notification.stack.NotificationStackScrollLayoutController
|
import com.android.systemui.statusbar.notification.stack.NotificationStackScrollLayoutController
|
||||||
import com.android.systemui.statusbar.phone.NotificationPanelViewController
|
import com.android.systemui.statusbar.phone.NotificationPanelViewController
|
||||||
|
import com.android.systemui.statusbar.phone.panelstate.PanelExpansionChangeEvent
|
||||||
import com.android.systemui.statusbar.phone.panelstate.PanelExpansionStateManager
|
import com.android.systemui.statusbar.phone.panelstate.PanelExpansionStateManager
|
||||||
import com.android.systemui.statusbar.phone.panelstate.STATE_OPENING
|
import com.android.systemui.statusbar.phone.panelstate.STATE_OPENING
|
||||||
import com.android.systemui.statusbar.policy.FakeConfigurationController
|
import com.android.systemui.statusbar.policy.FakeConfigurationController
|
||||||
@@ -49,8 +50,7 @@ class ShadeTransitionControllerTest : SysuiTestCase() {
|
|||||||
context,
|
context,
|
||||||
splitShadeOverScrollerFactory = { _, _ -> splitShadeOverScroller },
|
splitShadeOverScrollerFactory = { _, _ -> splitShadeOverScroller },
|
||||||
noOpOverScroller,
|
noOpOverScroller,
|
||||||
scrimShadeTransitionController
|
scrimShadeTransitionController)
|
||||||
)
|
|
||||||
|
|
||||||
// Resetting as they are notified upon initialization.
|
// Resetting as they are notified upon initialization.
|
||||||
reset(noOpOverScroller, splitShadeOverScroller)
|
reset(noOpOverScroller, splitShadeOverScroller)
|
||||||
@@ -91,6 +91,16 @@ class ShadeTransitionControllerTest : SysuiTestCase() {
|
|||||||
verifyZeroInteractions(splitShadeOverScroller)
|
verifyZeroInteractions(splitShadeOverScroller)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun onPanelStateChanged_forwardsToScrimTransitionController() {
|
||||||
|
initLateProperties()
|
||||||
|
|
||||||
|
startPanelExpansion()
|
||||||
|
|
||||||
|
verify(scrimShadeTransitionController).onPanelStateChanged(STATE_OPENING)
|
||||||
|
verify(scrimShadeTransitionController).onPanelExpansionChanged(DEFAULT_EXPANSION_EVENT)
|
||||||
|
}
|
||||||
|
|
||||||
private fun initLateProperties() {
|
private fun initLateProperties() {
|
||||||
controller.qs = qs
|
controller.qs = qs
|
||||||
controller.notificationStackScrollLayoutController = nsslController
|
controller.notificationStackScrollLayoutController = nsslController
|
||||||
@@ -112,14 +122,20 @@ class ShadeTransitionControllerTest : SysuiTestCase() {
|
|||||||
|
|
||||||
private fun startPanelExpansion() {
|
private fun startPanelExpansion() {
|
||||||
panelExpansionStateManager.onPanelExpansionChanged(
|
panelExpansionStateManager.onPanelExpansionChanged(
|
||||||
fraction = 0.5f,
|
DEFAULT_EXPANSION_EVENT.fraction,
|
||||||
expanded = true,
|
DEFAULT_EXPANSION_EVENT.expanded,
|
||||||
tracking = true,
|
DEFAULT_EXPANSION_EVENT.tracking,
|
||||||
dragDownPxAmount = DEFAULT_DRAG_DOWN_AMOUNT
|
DEFAULT_EXPANSION_EVENT.dragDownPxAmount,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
private const val DEFAULT_DRAG_DOWN_AMOUNT = 123f
|
private const val DEFAULT_DRAG_DOWN_AMOUNT = 123f
|
||||||
|
private val DEFAULT_EXPANSION_EVENT =
|
||||||
|
PanelExpansionChangeEvent(
|
||||||
|
fraction = 0.5f,
|
||||||
|
expanded = true,
|
||||||
|
tracking = true,
|
||||||
|
dragDownPxAmount = DEFAULT_DRAG_DOWN_AMOUNT)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user