summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Justin Weir <justinweir@google.com> 2023-05-16 20:38:55 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2023-05-16 20:38:55 +0000
commit792323992cdca9ec4350f4dc81729a772ea3148a (patch)
treee1fb7800e1792e4b0e6f013e76e81252898f556b
parentf3825fa7605cdcd530795caae81754cdb2e6210d (diff)
parented5c25976845edc2a814113db428c98d1560db1a (diff)
Merge "Make addExpansionListener not send a change event on add" into udc-dev
-rw-r--r--packages/SystemUI/src/com/android/systemui/biometrics/AuthDialogPanelInteractionDetector.kt2
-rw-r--r--packages/SystemUI/src/com/android/systemui/biometrics/UdfpsAnimationViewController.kt4
-rw-r--r--packages/SystemUI/src/com/android/systemui/biometrics/UdfpsKeyguardViewControllerLegacy.kt3
-rw-r--r--packages/SystemUI/src/com/android/systemui/shade/NotificationShadeWindowViewController.java4
-rw-r--r--packages/SystemUI/src/com/android/systemui/shade/ShadeExpansionStateManager.kt17
-rw-r--r--packages/SystemUI/src/com/android/systemui/shade/data/repository/ShadeRepository.kt3
-rw-r--r--packages/SystemUI/src/com/android/systemui/shade/transition/ShadeTransitionController.kt4
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/CentralSurfacesImpl.java11
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java4
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/biometrics/UdfpsKeyguardViewLegacyControllerBaseTest.java3
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/shade/ShadeExpansionStateManagerTest.kt6
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/shade/data/repository/ShadeRepositoryImplTest.kt5
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