diff options
| author | 2023-05-16 20:38:55 +0000 | |
|---|---|---|
| committer | 2023-05-16 20:38:55 +0000 | |
| commit | 792323992cdca9ec4350f4dc81729a772ea3148a (patch) | |
| tree | e1fb7800e1792e4b0e6f013e76e81252898f556b | |
| parent | f3825fa7605cdcd530795caae81754cdb2e6210d (diff) | |
| parent | ed5c25976845edc2a814113db428c98d1560db1a (diff) | |
Merge "Make addExpansionListener not send a change event on add" into udc-dev
12 files changed, 42 insertions, 24 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/biometrics/AuthDialogPanelInteractionDetector.kt b/packages/SystemUI/src/com/android/systemui/biometrics/AuthDialogPanelInteractionDetector.kt index 8edccf166efe..b72801d3b5fe 100644 --- a/packages/SystemUI/src/com/android/systemui/biometrics/AuthDialogPanelInteractionDetector.kt +++ b/packages/SystemUI/src/com/android/systemui/biometrics/AuthDialogPanelInteractionDetector.kt @@ -21,7 +21,7 @@ constructor( fun enable(onPanelInteraction: Runnable) { if (action == null) { action = Action(onPanelInteraction) - shadeExpansionStateManager.addShadeExpansionListener(this::onPanelExpansionChanged) + shadeExpansionStateManager.addExpansionListener(this::onPanelExpansionChanged) } else { Log.e(TAG, "Already enabled") } diff --git a/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsAnimationViewController.kt b/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsAnimationViewController.kt index 1dbafc6519f0..94b5fb2861b1 100644 --- a/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsAnimationViewController.kt +++ b/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsAnimationViewController.kt @@ -108,7 +108,9 @@ abstract class UdfpsAnimationViewController<T : UdfpsAnimationView>( } override fun onViewAttached() { - shadeExpansionStateManager.addExpansionListener(shadeExpansionListener) + val currentState = + shadeExpansionStateManager.addExpansionListener(shadeExpansionListener) + shadeExpansionListener.onPanelExpansionChanged(currentState) dialogManager.registerListener(dialogListener) dumpManager.registerDumpable(dumpTag, this) } diff --git a/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsKeyguardViewControllerLegacy.kt b/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsKeyguardViewControllerLegacy.kt index 5c88c9e49f35..3fc3e82b6b5a 100644 --- a/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsKeyguardViewControllerLegacy.kt +++ b/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsKeyguardViewControllerLegacy.kt @@ -290,7 +290,8 @@ constructor( qsExpansion = keyguardViewManager.qsExpansion keyguardViewManager.addCallback(statusBarKeyguardViewManagerCallback) configurationController.addCallback(configurationListener) - shadeExpansionStateManager.addExpansionListener(shadeExpansionListener) + val currentState = shadeExpansionStateManager.addExpansionListener(shadeExpansionListener) + shadeExpansionListener.onPanelExpansionChanged(currentState) updateScaleFactor() view.updatePadding() updateAlpha() diff --git a/packages/SystemUI/src/com/android/systemui/shade/NotificationShadeWindowViewController.java b/packages/SystemUI/src/com/android/systemui/shade/NotificationShadeWindowViewController.java index cb3fa15655b2..c081da1c7fea 100644 --- a/packages/SystemUI/src/com/android/systemui/shade/NotificationShadeWindowViewController.java +++ b/packages/SystemUI/src/com/android/systemui/shade/NotificationShadeWindowViewController.java @@ -480,7 +480,9 @@ public class NotificationShadeWindowViewController { setDragDownHelper(mLockscreenShadeTransitionController.getTouchHelper()); mDepthController.setRoot(mView); - mShadeExpansionStateManager.addExpansionListener(mDepthController); + ShadeExpansionChangeEvent currentState = + mShadeExpansionStateManager.addExpansionListener(mDepthController); + mDepthController.onPanelExpansionChanged(currentState); } public NotificationShadeWindowView getView() { diff --git a/packages/SystemUI/src/com/android/systemui/shade/ShadeExpansionStateManager.kt b/packages/SystemUI/src/com/android/systemui/shade/ShadeExpansionStateManager.kt index a048f543d476..2db47aeb9e90 100644 --- a/packages/SystemUI/src/com/android/systemui/shade/ShadeExpansionStateManager.kt +++ b/packages/SystemUI/src/com/android/systemui/shade/ShadeExpansionStateManager.kt @@ -49,23 +49,14 @@ class ShadeExpansionStateManager @Inject constructor() : ShadeStateEvents { private var dragDownPxAmount: Float = 0f /** - * Adds a listener that will be notified when the panel expansion fraction has changed. + * Adds a listener that will be notified when the panel expansion fraction has changed and + * returns the current state in a ShadeExpansionChangeEvent for legacy purposes (b/23035507). * - * Listener will also be immediately notified with the current values. - */ - fun addExpansionListener(listener: ShadeExpansionListener) { - addShadeExpansionListener(listener) - listener.onPanelExpansionChanged( - ShadeExpansionChangeEvent(fraction, expanded, tracking, dragDownPxAmount) - ) - } - - /** - * Adds a listener that will be notified when the panel expansion fraction has changed. * @see #addExpansionListener */ - fun addShadeExpansionListener(listener: ShadeExpansionListener) { + fun addExpansionListener(listener: ShadeExpansionListener): ShadeExpansionChangeEvent { expansionListeners.add(listener) + return ShadeExpansionChangeEvent(fraction, expanded, tracking, dragDownPxAmount) } /** Removes an expansion listener. */ diff --git a/packages/SystemUI/src/com/android/systemui/shade/data/repository/ShadeRepository.kt b/packages/SystemUI/src/com/android/systemui/shade/data/repository/ShadeRepository.kt index 44c8e48c65d4..ebb9935ca813 100644 --- a/packages/SystemUI/src/com/android/systemui/shade/data/repository/ShadeRepository.kt +++ b/packages/SystemUI/src/com/android/systemui/shade/data/repository/ShadeRepository.kt @@ -67,7 +67,8 @@ constructor(shadeExpansionStateManager: ShadeExpansionStateManager) : ShadeRepos } } - shadeExpansionStateManager.addExpansionListener(callback) + val currentState = shadeExpansionStateManager.addExpansionListener(callback) + callback.onPanelExpansionChanged(currentState) trySendWithFailureLogging(ShadeModel(), TAG, "initial shade expansion info") awaitClose { shadeExpansionStateManager.removeExpansionListener(callback) } diff --git a/packages/SystemUI/src/com/android/systemui/shade/transition/ShadeTransitionController.kt b/packages/SystemUI/src/com/android/systemui/shade/transition/ShadeTransitionController.kt index 41be526ec13e..ec16109fe1c7 100644 --- a/packages/SystemUI/src/com/android/systemui/shade/transition/ShadeTransitionController.kt +++ b/packages/SystemUI/src/com/android/systemui/shade/transition/ShadeTransitionController.kt @@ -63,7 +63,9 @@ constructor( updateResources() } }) - shadeExpansionStateManager.addExpansionListener(this::onPanelExpansionChanged) + val currentState = + shadeExpansionStateManager.addExpansionListener(this::onPanelExpansionChanged) + onPanelExpansionChanged(currentState) shadeExpansionStateManager.addStateListener(this::onPanelStateChanged) dumpManager.registerCriticalDumpable("ShadeTransitionController") { printWriter, _ -> dump(printWriter) diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/CentralSurfacesImpl.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/CentralSurfacesImpl.java index 5c99f34ce2df..fcd0b07a952c 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/CentralSurfacesImpl.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/CentralSurfacesImpl.java @@ -192,6 +192,7 @@ import com.android.systemui.shade.NotificationShadeWindowViewController; import com.android.systemui.shade.QuickSettingsController; import com.android.systemui.shade.ShadeController; import com.android.systemui.shade.ShadeExpansionChangeEvent; +import com.android.systemui.shade.ShadeExpansionListener; import com.android.systemui.shade.ShadeExpansionStateManager; import com.android.systemui.shade.ShadeLogger; import com.android.systemui.shade.ShadeSurface; @@ -915,7 +916,11 @@ public class CentralSurfacesImpl implements CoreStartable, CentralSurfaces { mScreenOffAnimationController = screenOffAnimationController; - mShadeExpansionStateManager.addExpansionListener(this::onPanelExpansionChanged); + ShadeExpansionListener shadeExpansionListener = this::onPanelExpansionChanged; + ShadeExpansionChangeEvent currentState = + mShadeExpansionStateManager.addExpansionListener(shadeExpansionListener); + shadeExpansionListener.onPanelExpansionChanged(currentState); + mShadeExpansionStateManager.addFullExpansionListener(this::onShadeExpansionFullyChanged); mActivityIntentHelper = new ActivityIntentHelper(mContext); @@ -1268,7 +1273,9 @@ public class CentralSurfacesImpl implements CoreStartable, CentralSurfaces { if (!mFeatureFlags.isEnabled(Flags.NOTIFICATION_SHELF_REFACTOR)) { mNotificationIconAreaController.setupShelf(mNotificationShelfController); } - mShadeExpansionStateManager.addExpansionListener(mWakeUpCoordinator); + ShadeExpansionChangeEvent currentState = + mShadeExpansionStateManager.addExpansionListener(mWakeUpCoordinator); + mWakeUpCoordinator.onPanelExpansionChanged(currentState); // Allow plugins to reference DarkIconDispatcher and StatusBarStateController mPluginDependencyProvider.allowPluginDependency(DarkIconDispatcher.class); diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java index 414a2ba1ad91..df68e7eb037b 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java @@ -386,7 +386,9 @@ public class StatusBarKeyguardViewManager implements RemoteInputController.Callb mPrimaryBouncerCallbackInteractor.addBouncerExpansionCallback(mExpansionCallback); mShadeViewController = shadeViewController; if (shadeExpansionStateManager != null) { - shadeExpansionStateManager.addExpansionListener(this); + ShadeExpansionChangeEvent currentState = + shadeExpansionStateManager.addExpansionListener(this); + onPanelExpansionChanged(currentState); } mBypassController = bypassController; mNotificationContainer = notificationContainer; diff --git a/packages/SystemUI/tests/src/com/android/systemui/biometrics/UdfpsKeyguardViewLegacyControllerBaseTest.java b/packages/SystemUI/tests/src/com/android/systemui/biometrics/UdfpsKeyguardViewLegacyControllerBaseTest.java index d3622c59b23c..0d3b394eabdb 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/biometrics/UdfpsKeyguardViewLegacyControllerBaseTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/biometrics/UdfpsKeyguardViewLegacyControllerBaseTest.java @@ -16,6 +16,7 @@ package com.android.systemui.biometrics; +import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.anyInt; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; @@ -100,6 +101,8 @@ public class UdfpsKeyguardViewLegacyControllerBaseTest extends SysuiTestCase { when(mResourceContext.getString(anyInt())).thenReturn("test string"); when(mKeyguardViewMediator.isAnimatingScreenOff()).thenReturn(false); when(mView.getUnpausedAlpha()).thenReturn(255); + when(mShadeExpansionStateManager.addExpansionListener(any())).thenReturn( + new ShadeExpansionChangeEvent(0, false, false, 0)); mController = createUdfpsKeyguardViewController(); } diff --git a/packages/SystemUI/tests/src/com/android/systemui/shade/ShadeExpansionStateManagerTest.kt b/packages/SystemUI/tests/src/com/android/systemui/shade/ShadeExpansionStateManagerTest.kt index a601b678c905..15c04eb2e2bc 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/shade/ShadeExpansionStateManagerTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/shade/ShadeExpansionStateManagerTest.kt @@ -35,7 +35,8 @@ class ShadeExpansionStateManagerTest : SysuiTestCase() { @Test fun onPanelExpansionChanged_listenerNotified() { val listener = TestShadeExpansionListener() - shadeExpansionStateManager.addExpansionListener(listener) + val currentState = shadeExpansionStateManager.addExpansionListener(listener) + listener.onPanelExpansionChanged(currentState) val fraction = 0.6f val expanded = true val tracking = true @@ -68,7 +69,8 @@ class ShadeExpansionStateManagerTest : SysuiTestCase() { ) val listener = TestShadeExpansionListener() - shadeExpansionStateManager.addExpansionListener(listener) + val currentState = shadeExpansionStateManager.addExpansionListener(listener) + listener.onPanelExpansionChanged(currentState) assertThat(listener.fraction).isEqualTo(fraction) assertThat(listener.expanded).isEqualTo(expanded) diff --git a/packages/SystemUI/tests/src/com/android/systemui/shade/data/repository/ShadeRepositoryImplTest.kt b/packages/SystemUI/tests/src/com/android/systemui/shade/data/repository/ShadeRepositoryImplTest.kt index 8f2c93b3bf43..e26a8bd5ec8c 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/shade/data/repository/ShadeRepositoryImplTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/shade/data/repository/ShadeRepositoryImplTest.kt @@ -23,6 +23,7 @@ import com.android.systemui.SysuiTestCase import com.android.systemui.shade.ShadeExpansionChangeEvent import com.android.systemui.shade.ShadeExpansionStateManager import com.android.systemui.shade.domain.model.ShadeModel +import com.android.systemui.util.mockito.any import com.android.systemui.util.mockito.withArgCaptor import com.google.common.truth.Truth.assertThat import kotlinx.coroutines.ExperimentalCoroutinesApi @@ -37,6 +38,7 @@ import org.junit.Test import org.junit.runner.RunWith import org.mockito.Mock import org.mockito.Mockito.verify +import org.mockito.Mockito.`when` import org.mockito.MockitoAnnotations @OptIn(ExperimentalCoroutinesApi::class) @@ -56,6 +58,9 @@ class ShadeRepositoryImplTest : SysuiTestCase() { MockitoAnnotations.initMocks(this) underTest = ShadeRepositoryImpl(shadeExpansionStateManager) + `when`(shadeExpansionStateManager.addExpansionListener(any())).thenReturn( + ShadeExpansionChangeEvent(0f, false, false, 0f) + ) } @Test |