Loading packages/SystemUI/src/com/android/systemui/statusbar/LockscreenShadeTransitionController.kt +2 −2 Original line number Diff line number Diff line Loading @@ -178,7 +178,7 @@ class LockscreenShadeTransitionController @Inject constructor( val touchHelper = DragDownHelper(falsingManager, falsingCollector, this, context) private val splitShadeOverScroller: SplitShadeLockScreenOverScroller by lazy { splitShadeOverScrollerFactory.create(qS, nsslController) splitShadeOverScrollerFactory.create({ qS }, { nsslController }) } private val phoneShadeOverScroller: SingleShadeLockScreenOverScroller by lazy { Loading packages/SystemUI/src/com/android/systemui/statusbar/SplitShadeLockScreenOverScroller.kt +30 −4 Original line number Diff line number Diff line Loading @@ -9,6 +9,7 @@ import android.view.animation.PathInterpolator import com.android.internal.annotations.VisibleForTesting import com.android.systemui.R import com.android.systemui.animation.Interpolators import com.android.systemui.dump.DumpManager import com.android.systemui.plugins.qs.QS import com.android.systemui.statusbar.notification.stack.NotificationStackScrollLayoutController import com.android.systemui.statusbar.phone.ScrimController Loading @@ -16,16 +17,18 @@ import com.android.systemui.statusbar.policy.ConfigurationController import dagger.assisted.Assisted import dagger.assisted.AssistedFactory import dagger.assisted.AssistedInject import java.io.PrintWriter class SplitShadeLockScreenOverScroller @AssistedInject constructor( configurationController: ConfigurationController, dumpManager: DumpManager, private val context: Context, private val scrimController: ScrimController, private val statusBarStateController: SysuiStatusBarStateController, @Assisted private val qS: QS, @Assisted private val nsslController: NotificationStackScrollLayoutController @Assisted private val qSProvider: () -> QS, @Assisted private val nsslControllerProvider: () -> NotificationStackScrollLayoutController ) : LockScreenShadeOverScroller { private var releaseOverScrollAnimator: Animator? = null Loading @@ -34,6 +37,12 @@ constructor( private var maxOverScrollAmount = 0 private var previousOverscrollAmount = 0 private val qS: QS get() = qSProvider() private val nsslController: NotificationStackScrollLayoutController get() = nsslControllerProvider() init { updateResources() configurationController.addCallback( Loading @@ -42,6 +51,9 @@ constructor( updateResources() } }) dumpManager.registerDumpable("SplitShadeLockscreenOverScroller") { printWriter, _ -> dump(printWriter) } } private fun updateResources() { Loading Loading @@ -114,11 +126,25 @@ constructor( releaseOverScrollAnimator = null } private fun dump(printWriter: PrintWriter) { printWriter.println( """ SplitShadeLockScreenOverScroller: Resources: transitionToFullShadeDistance: $transitionToFullShadeDistance maxOverScrollAmount: $maxOverScrollAmount releaseOverScrollDuration: $releaseOverScrollDuration State: previousOverscrollAmount: $previousOverscrollAmount expansionDragDownAmount: $expansionDragDownAmount """.trimIndent()) } @AssistedFactory fun interface Factory { fun create( qS: QS, nsslController: NotificationStackScrollLayoutController qSProvider: () -> QS, nsslControllerProvider: () -> NotificationStackScrollLayoutController ): SplitShadeLockScreenOverScroller } Loading packages/SystemUI/src/com/android/systemui/statusbar/phone/shade/transition/ShadeTransitionController.kt +18 −1 Original line number Diff line number Diff line Loading @@ -4,6 +4,7 @@ import android.content.Context import android.content.res.Configuration import com.android.systemui.R import com.android.systemui.dagger.SysUISingleton import com.android.systemui.dump.DumpManager import com.android.systemui.plugins.qs.QS import com.android.systemui.statusbar.notification.stack.NotificationStackScrollLayoutController import com.android.systemui.statusbar.phone.NotificationPanelViewController Loading @@ -11,6 +12,7 @@ import com.android.systemui.statusbar.phone.panelstate.PanelExpansionChangeEvent import com.android.systemui.statusbar.phone.panelstate.PanelExpansionStateManager import com.android.systemui.statusbar.phone.panelstate.PanelState import com.android.systemui.statusbar.policy.ConfigurationController import java.io.PrintWriter import javax.inject.Inject /** Controls the shade expansion transition on non-lockscreen. */ Loading @@ -20,6 +22,7 @@ class ShadeTransitionController constructor( configurationController: ConfigurationController, panelExpansionStateManager: PanelExpansionStateManager, dumpManager: DumpManager, private val context: Context, private val splitShadeOverScrollerFactory: SplitShadeOverScroller.Factory, private val noOpOverScroller: NoOpOverScroller, Loading @@ -33,7 +36,7 @@ constructor( private var inSplitShade = false private val splitShadeOverScroller by lazy { splitShadeOverScrollerFactory.create(qs, notificationStackScrollLayoutController) splitShadeOverScrollerFactory.create({ qs }, { notificationStackScrollLayoutController }) } private val shadeOverScroller: ShadeOverScroller get() = Loading @@ -53,6 +56,9 @@ constructor( }) panelExpansionStateManager.addExpansionListener(this::onPanelExpansionChanged) panelExpansionStateManager.addStateListener(this::onPanelStateChanged) dumpManager.registerDumpable("ShadeTransitionController") { printWriter, _ -> dump(printWriter) } } private fun updateResources() { Loading @@ -72,4 +78,15 @@ constructor( this::qs.isInitialized && this::notificationPanelViewController.isInitialized && this::notificationStackScrollLayoutController.isInitialized private fun dump(pw: PrintWriter) { pw.println( """ ShadeTransitionController: inSplitShade: $inSplitShade qs.isInitialized: ${this::qs.isInitialized} npvc.isInitialized: ${this::notificationPanelViewController.isInitialized} nssl.isInitialized: ${this::notificationStackScrollLayoutController.isInitialized} """.trimIndent()) } } packages/SystemUI/src/com/android/systemui/statusbar/phone/shade/transition/SplitShadeOverScroller.kt +15 −8 Original line number Diff line number Diff line Loading @@ -28,8 +28,8 @@ constructor( dumpManager: DumpManager, private val context: Context, private val scrimController: ScrimController, @Assisted private val qS: QS, @Assisted private val nsslController: NotificationStackScrollLayoutController @Assisted private val qSProvider: () -> QS, @Assisted private val nsslControllerProvider: () -> NotificationStackScrollLayoutController ) : ShadeOverScroller { private var releaseOverScrollDuration = 0L Loading @@ -39,6 +39,12 @@ constructor( @PanelState private var panelState: Int = STATE_CLOSED private var releaseOverScrollAnimator: Animator? = null private val qS: QS get() = qSProvider() private val nsslController: NotificationStackScrollLayoutController get() = nsslControllerProvider() init { updateResources() configurationController.addCallback( Loading @@ -47,7 +53,9 @@ constructor( updateResources() } }) dumpManager.registerDumpable(this::dump) dumpManager.registerDumpable("SplitShadeOverScroller") { printWriter, _ -> dump(printWriter) } } private fun updateResources() { Loading Loading @@ -118,7 +126,7 @@ constructor( releaseOverScrollAnimator = null } private fun dump(pw: PrintWriter, strings: Array<String>) { private fun dump(pw: PrintWriter) { pw.println( """ SplitShadeOverScroller: Loading @@ -129,15 +137,14 @@ constructor( previousOverscrollAmount: $previousOverscrollAmount dragDownAmount: $dragDownAmount panelState: $panelState """.trimIndent() ) """.trimIndent()) } @AssistedFactory fun interface Factory { fun create( qS: QS, nsslController: NotificationStackScrollLayoutController qSProvider: () -> QS, nsslControllerProvider: () -> NotificationStackScrollLayoutController ): SplitShadeOverScroller } } packages/SystemUI/tests/src/com/android/systemui/statusbar/SplitShadeLockScreenOverScrollerTest.kt +6 −3 Original line number Diff line number Diff line package com.android.systemui.statusbar import org.mockito.Mockito.`when` as whenever import android.testing.AndroidTestingRunner import android.testing.TestableLooper import androidx.test.filters.SmallTest import com.android.systemui.SysuiTestCase import com.android.systemui.dump.DumpManager import com.android.systemui.plugins.qs.QS import com.android.systemui.statusbar.notification.stack.NotificationStackScrollLayoutController import com.android.systemui.statusbar.phone.ScrimController Loading @@ -19,6 +19,7 @@ import org.mockito.Mockito.reset import org.mockito.Mockito.verify import org.mockito.Mockito.verifyNoMoreInteractions import org.mockito.Mockito.verifyZeroInteractions import org.mockito.Mockito.`when` as whenever import org.mockito.MockitoAnnotations @RunWith(AndroidTestingRunner::class) Loading @@ -32,6 +33,7 @@ class SplitShadeLockScreenOverScrollerTest : SysuiTestCase() { @Mock private lateinit var statusBarStateController: SysuiStatusBarStateController @Mock private lateinit var qS: QS @Mock private lateinit var nsslController: NotificationStackScrollLayoutController @Mock private lateinit var dumpManager: DumpManager private lateinit var overScroller: SplitShadeLockScreenOverScroller Loading @@ -44,11 +46,12 @@ class SplitShadeLockScreenOverScrollerTest : SysuiTestCase() { overScroller = SplitShadeLockScreenOverScroller( configurationController, dumpManager, context, scrimController, statusBarStateController, qS, nsslController) { qS }, { nsslController }) } @Test Loading Loading
packages/SystemUI/src/com/android/systemui/statusbar/LockscreenShadeTransitionController.kt +2 −2 Original line number Diff line number Diff line Loading @@ -178,7 +178,7 @@ class LockscreenShadeTransitionController @Inject constructor( val touchHelper = DragDownHelper(falsingManager, falsingCollector, this, context) private val splitShadeOverScroller: SplitShadeLockScreenOverScroller by lazy { splitShadeOverScrollerFactory.create(qS, nsslController) splitShadeOverScrollerFactory.create({ qS }, { nsslController }) } private val phoneShadeOverScroller: SingleShadeLockScreenOverScroller by lazy { Loading
packages/SystemUI/src/com/android/systemui/statusbar/SplitShadeLockScreenOverScroller.kt +30 −4 Original line number Diff line number Diff line Loading @@ -9,6 +9,7 @@ import android.view.animation.PathInterpolator import com.android.internal.annotations.VisibleForTesting import com.android.systemui.R import com.android.systemui.animation.Interpolators import com.android.systemui.dump.DumpManager import com.android.systemui.plugins.qs.QS import com.android.systemui.statusbar.notification.stack.NotificationStackScrollLayoutController import com.android.systemui.statusbar.phone.ScrimController Loading @@ -16,16 +17,18 @@ import com.android.systemui.statusbar.policy.ConfigurationController import dagger.assisted.Assisted import dagger.assisted.AssistedFactory import dagger.assisted.AssistedInject import java.io.PrintWriter class SplitShadeLockScreenOverScroller @AssistedInject constructor( configurationController: ConfigurationController, dumpManager: DumpManager, private val context: Context, private val scrimController: ScrimController, private val statusBarStateController: SysuiStatusBarStateController, @Assisted private val qS: QS, @Assisted private val nsslController: NotificationStackScrollLayoutController @Assisted private val qSProvider: () -> QS, @Assisted private val nsslControllerProvider: () -> NotificationStackScrollLayoutController ) : LockScreenShadeOverScroller { private var releaseOverScrollAnimator: Animator? = null Loading @@ -34,6 +37,12 @@ constructor( private var maxOverScrollAmount = 0 private var previousOverscrollAmount = 0 private val qS: QS get() = qSProvider() private val nsslController: NotificationStackScrollLayoutController get() = nsslControllerProvider() init { updateResources() configurationController.addCallback( Loading @@ -42,6 +51,9 @@ constructor( updateResources() } }) dumpManager.registerDumpable("SplitShadeLockscreenOverScroller") { printWriter, _ -> dump(printWriter) } } private fun updateResources() { Loading Loading @@ -114,11 +126,25 @@ constructor( releaseOverScrollAnimator = null } private fun dump(printWriter: PrintWriter) { printWriter.println( """ SplitShadeLockScreenOverScroller: Resources: transitionToFullShadeDistance: $transitionToFullShadeDistance maxOverScrollAmount: $maxOverScrollAmount releaseOverScrollDuration: $releaseOverScrollDuration State: previousOverscrollAmount: $previousOverscrollAmount expansionDragDownAmount: $expansionDragDownAmount """.trimIndent()) } @AssistedFactory fun interface Factory { fun create( qS: QS, nsslController: NotificationStackScrollLayoutController qSProvider: () -> QS, nsslControllerProvider: () -> NotificationStackScrollLayoutController ): SplitShadeLockScreenOverScroller } Loading
packages/SystemUI/src/com/android/systemui/statusbar/phone/shade/transition/ShadeTransitionController.kt +18 −1 Original line number Diff line number Diff line Loading @@ -4,6 +4,7 @@ import android.content.Context import android.content.res.Configuration import com.android.systemui.R import com.android.systemui.dagger.SysUISingleton import com.android.systemui.dump.DumpManager import com.android.systemui.plugins.qs.QS import com.android.systemui.statusbar.notification.stack.NotificationStackScrollLayoutController import com.android.systemui.statusbar.phone.NotificationPanelViewController Loading @@ -11,6 +12,7 @@ import com.android.systemui.statusbar.phone.panelstate.PanelExpansionChangeEvent import com.android.systemui.statusbar.phone.panelstate.PanelExpansionStateManager import com.android.systemui.statusbar.phone.panelstate.PanelState import com.android.systemui.statusbar.policy.ConfigurationController import java.io.PrintWriter import javax.inject.Inject /** Controls the shade expansion transition on non-lockscreen. */ Loading @@ -20,6 +22,7 @@ class ShadeTransitionController constructor( configurationController: ConfigurationController, panelExpansionStateManager: PanelExpansionStateManager, dumpManager: DumpManager, private val context: Context, private val splitShadeOverScrollerFactory: SplitShadeOverScroller.Factory, private val noOpOverScroller: NoOpOverScroller, Loading @@ -33,7 +36,7 @@ constructor( private var inSplitShade = false private val splitShadeOverScroller by lazy { splitShadeOverScrollerFactory.create(qs, notificationStackScrollLayoutController) splitShadeOverScrollerFactory.create({ qs }, { notificationStackScrollLayoutController }) } private val shadeOverScroller: ShadeOverScroller get() = Loading @@ -53,6 +56,9 @@ constructor( }) panelExpansionStateManager.addExpansionListener(this::onPanelExpansionChanged) panelExpansionStateManager.addStateListener(this::onPanelStateChanged) dumpManager.registerDumpable("ShadeTransitionController") { printWriter, _ -> dump(printWriter) } } private fun updateResources() { Loading @@ -72,4 +78,15 @@ constructor( this::qs.isInitialized && this::notificationPanelViewController.isInitialized && this::notificationStackScrollLayoutController.isInitialized private fun dump(pw: PrintWriter) { pw.println( """ ShadeTransitionController: inSplitShade: $inSplitShade qs.isInitialized: ${this::qs.isInitialized} npvc.isInitialized: ${this::notificationPanelViewController.isInitialized} nssl.isInitialized: ${this::notificationStackScrollLayoutController.isInitialized} """.trimIndent()) } }
packages/SystemUI/src/com/android/systemui/statusbar/phone/shade/transition/SplitShadeOverScroller.kt +15 −8 Original line number Diff line number Diff line Loading @@ -28,8 +28,8 @@ constructor( dumpManager: DumpManager, private val context: Context, private val scrimController: ScrimController, @Assisted private val qS: QS, @Assisted private val nsslController: NotificationStackScrollLayoutController @Assisted private val qSProvider: () -> QS, @Assisted private val nsslControllerProvider: () -> NotificationStackScrollLayoutController ) : ShadeOverScroller { private var releaseOverScrollDuration = 0L Loading @@ -39,6 +39,12 @@ constructor( @PanelState private var panelState: Int = STATE_CLOSED private var releaseOverScrollAnimator: Animator? = null private val qS: QS get() = qSProvider() private val nsslController: NotificationStackScrollLayoutController get() = nsslControllerProvider() init { updateResources() configurationController.addCallback( Loading @@ -47,7 +53,9 @@ constructor( updateResources() } }) dumpManager.registerDumpable(this::dump) dumpManager.registerDumpable("SplitShadeOverScroller") { printWriter, _ -> dump(printWriter) } } private fun updateResources() { Loading Loading @@ -118,7 +126,7 @@ constructor( releaseOverScrollAnimator = null } private fun dump(pw: PrintWriter, strings: Array<String>) { private fun dump(pw: PrintWriter) { pw.println( """ SplitShadeOverScroller: Loading @@ -129,15 +137,14 @@ constructor( previousOverscrollAmount: $previousOverscrollAmount dragDownAmount: $dragDownAmount panelState: $panelState """.trimIndent() ) """.trimIndent()) } @AssistedFactory fun interface Factory { fun create( qS: QS, nsslController: NotificationStackScrollLayoutController qSProvider: () -> QS, nsslControllerProvider: () -> NotificationStackScrollLayoutController ): SplitShadeOverScroller } }
packages/SystemUI/tests/src/com/android/systemui/statusbar/SplitShadeLockScreenOverScrollerTest.kt +6 −3 Original line number Diff line number Diff line package com.android.systemui.statusbar import org.mockito.Mockito.`when` as whenever import android.testing.AndroidTestingRunner import android.testing.TestableLooper import androidx.test.filters.SmallTest import com.android.systemui.SysuiTestCase import com.android.systemui.dump.DumpManager import com.android.systemui.plugins.qs.QS import com.android.systemui.statusbar.notification.stack.NotificationStackScrollLayoutController import com.android.systemui.statusbar.phone.ScrimController Loading @@ -19,6 +19,7 @@ import org.mockito.Mockito.reset import org.mockito.Mockito.verify import org.mockito.Mockito.verifyNoMoreInteractions import org.mockito.Mockito.verifyZeroInteractions import org.mockito.Mockito.`when` as whenever import org.mockito.MockitoAnnotations @RunWith(AndroidTestingRunner::class) Loading @@ -32,6 +33,7 @@ class SplitShadeLockScreenOverScrollerTest : SysuiTestCase() { @Mock private lateinit var statusBarStateController: SysuiStatusBarStateController @Mock private lateinit var qS: QS @Mock private lateinit var nsslController: NotificationStackScrollLayoutController @Mock private lateinit var dumpManager: DumpManager private lateinit var overScroller: SplitShadeLockScreenOverScroller Loading @@ -44,11 +46,12 @@ class SplitShadeLockScreenOverScrollerTest : SysuiTestCase() { overScroller = SplitShadeLockScreenOverScroller( configurationController, dumpManager, context, scrimController, statusBarStateController, qS, nsslController) { qS }, { nsslController }) } @Test Loading