summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Caitlin Cassidy <ccassidy@google.com> 2021-11-04 14:08:06 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2021-11-04 14:08:06 +0000
commitadabd84fb788f082b1dbebb77b6af0cea7cbf8bb (patch)
treeee58cd6d6f4c8e891fcca89b2414d13cacd2d7a8
parent94204aa4745b8bb66c7813da126e34a31e2f75b6 (diff)
parentafd47f3cd647a500c38a926a6c246b1be7707458 (diff)
Merge "[Status Bar Refactor] 2.3/N Migrate Udfps classes to the correct listener interface." into sc-v2-dev
-rw-r--r--packages/SystemUI/src/com/android/systemui/biometrics/UdfpsAnimationViewController.java36
-rw-r--r--packages/SystemUI/src/com/android/systemui/biometrics/UdfpsBpViewController.java8
-rw-r--r--packages/SystemUI/src/com/android/systemui/biometrics/UdfpsController.java16
-rw-r--r--packages/SystemUI/src/com/android/systemui/biometrics/UdfpsEnrollViewController.java8
-rw-r--r--packages/SystemUI/src/com/android/systemui/biometrics/UdfpsFpmOtherViewController.java8
-rw-r--r--packages/SystemUI/src/com/android/systemui/biometrics/UdfpsKeyguardViewController.java32
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarView.java18
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java36
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/panelstate/PanelExpansionStateManager.kt5
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/biometrics/UdfpsControllerTest.java3
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/biometrics/UdfpsKeyguardViewControllerTest.java26
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/PhoneStatusBarViewTest.kt30
12 files changed, 67 insertions, 159 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsAnimationViewController.java b/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsAnimationViewController.java
index a2e55c0f76e2..70bc56bd1425 100644
--- a/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsAnimationViewController.java
+++ b/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsAnimationViewController.java
@@ -23,12 +23,12 @@ import android.graphics.RectF;
import com.android.systemui.Dumpable;
import com.android.systemui.dump.DumpManager;
import com.android.systemui.plugins.statusbar.StatusBarStateController;
-import com.android.systemui.statusbar.phone.StatusBar;
+import com.android.systemui.statusbar.phone.panelstate.PanelExpansionListener;
+import com.android.systemui.statusbar.phone.panelstate.PanelExpansionStateManager;
import com.android.systemui.util.ViewController;
import java.io.FileDescriptor;
import java.io.PrintWriter;
-import java.util.Optional;
/**
* Handles:
@@ -43,7 +43,7 @@ import java.util.Optional;
abstract class UdfpsAnimationViewController<T extends UdfpsAnimationView>
extends ViewController<T> implements Dumpable {
@NonNull final StatusBarStateController mStatusBarStateController;
- @NonNull final Optional<StatusBar> mStatusBarOptional;
+ @NonNull final PanelExpansionStateManager mPanelExpansionStateManager;
@NonNull final DumpManager mDumpManger;
boolean mNotificationShadeExpanded;
@@ -51,11 +51,11 @@ abstract class UdfpsAnimationViewController<T extends UdfpsAnimationView>
protected UdfpsAnimationViewController(
T view,
@NonNull StatusBarStateController statusBarStateController,
- @NonNull Optional<StatusBar> statusBarOptional,
+ @NonNull PanelExpansionStateManager panelExpansionStateManager,
@NonNull DumpManager dumpManager) {
super(view);
mStatusBarStateController = statusBarStateController;
- mStatusBarOptional = statusBarOptional;
+ mPanelExpansionStateManager = panelExpansionStateManager;
mDumpManger = dumpManager;
}
@@ -63,17 +63,13 @@ abstract class UdfpsAnimationViewController<T extends UdfpsAnimationView>
@Override
protected void onViewAttached() {
- mStatusBarOptional.ifPresent(
- statusBar -> statusBar.addExpansionChangedListener(
- mStatusBarExpansionChangedListener));
+ mPanelExpansionStateManager.addListener(mPanelExpansionListener);
mDumpManger.registerDumpable(getDumpTag(), this);
}
@Override
protected void onViewDetached() {
- mStatusBarOptional.ifPresent(
- statusBar -> statusBar.removeExpansionChangedListener(
- mStatusBarExpansionChangedListener));
+ mPanelExpansionStateManager.removeListener(mPanelExpansionListener);
mDumpManger.unregisterDumpable(getDumpTag());
}
@@ -182,13 +178,13 @@ abstract class UdfpsAnimationViewController<T extends UdfpsAnimationView>
*/
void onTouchOutsideView() { }
- private final StatusBar.ExpansionChangedListener mStatusBarExpansionChangedListener =
- new StatusBar.ExpansionChangedListener() {
- @Override
- public void onExpansionChanged(float expansion, boolean expanded) {
- mNotificationShadeExpanded = expanded;
- mView.onExpansionChanged(expansion, expanded);
- updatePauseAuth();
- }
- };
+ private final PanelExpansionListener mPanelExpansionListener = new PanelExpansionListener() {
+ @Override
+ public void onPanelExpansionChanged(
+ float fraction, boolean expanded, boolean tracking) {
+ mNotificationShadeExpanded = expanded;
+ mView.onExpansionChanged(fraction, expanded);
+ updatePauseAuth();
+ }
+ };
}
diff --git a/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsBpViewController.java b/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsBpViewController.java
index 85955e1b5d56..894b29583cc9 100644
--- a/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsBpViewController.java
+++ b/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsBpViewController.java
@@ -20,9 +20,7 @@ import android.annotation.NonNull;
import com.android.systemui.dump.DumpManager;
import com.android.systemui.plugins.statusbar.StatusBarStateController;
-import com.android.systemui.statusbar.phone.StatusBar;
-
-import java.util.Optional;
+import com.android.systemui.statusbar.phone.panelstate.PanelExpansionStateManager;
/**
* Class that coordinates non-HBM animations for biometric prompt.
@@ -31,9 +29,9 @@ class UdfpsBpViewController extends UdfpsAnimationViewController<UdfpsBpView> {
protected UdfpsBpViewController(
@NonNull UdfpsBpView view,
@NonNull StatusBarStateController statusBarStateController,
- @NonNull Optional<StatusBar> statusBarOptional,
+ @NonNull PanelExpansionStateManager panelExpansionStateManager,
@NonNull DumpManager dumpManager) {
- super(view, statusBarStateController, statusBarOptional, dumpManager);
+ super(view, statusBarStateController, panelExpansionStateManager, dumpManager);
}
@Override
diff --git a/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsController.java b/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsController.java
index 3a3f22a4fda8..c5270aa3d274 100644
--- a/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsController.java
+++ b/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsController.java
@@ -69,9 +69,9 @@ import com.android.systemui.plugins.FalsingManager;
import com.android.systemui.plugins.statusbar.StatusBarStateController;
import com.android.systemui.statusbar.LockscreenShadeTransitionController;
import com.android.systemui.statusbar.phone.KeyguardBypassController;
-import com.android.systemui.statusbar.phone.StatusBar;
import com.android.systemui.statusbar.phone.StatusBarKeyguardViewManager;
import com.android.systemui.statusbar.phone.UnlockedScreenOffAnimationController;
+import com.android.systemui.statusbar.phone.panelstate.PanelExpansionStateManager;
import com.android.systemui.statusbar.policy.ConfigurationController;
import com.android.systemui.statusbar.policy.KeyguardStateController;
import com.android.systemui.util.concurrency.DelayableExecutor;
@@ -112,7 +112,7 @@ public class UdfpsController implements DozeReceiver {
@NonNull private final LayoutInflater mInflater;
private final WindowManager mWindowManager;
private final DelayableExecutor mFgExecutor;
- @NonNull private final Optional<StatusBar> mStatusBarOptional;
+ @NonNull private final PanelExpansionStateManager mPanelExpansionStateManager;
@NonNull private final StatusBarStateController mStatusBarStateController;
@NonNull private final KeyguardStateController mKeyguardStateController;
@NonNull private final StatusBarKeyguardViewManager mKeyguardViewManager;
@@ -521,7 +521,7 @@ public class UdfpsController implements DozeReceiver {
@NonNull WindowManager windowManager,
@NonNull StatusBarStateController statusBarStateController,
@Main DelayableExecutor fgExecutor,
- @NonNull Optional<StatusBar> statusBarOptional,
+ @NonNull PanelExpansionStateManager panelExpansionStateManager,
@NonNull StatusBarKeyguardViewManager statusBarKeyguardViewManager,
@NonNull DumpManager dumpManager,
@NonNull KeyguardUpdateMonitor keyguardUpdateMonitor,
@@ -550,7 +550,7 @@ public class UdfpsController implements DozeReceiver {
mFingerprintManager = checkNotNull(fingerprintManager);
mWindowManager = windowManager;
mFgExecutor = fgExecutor;
- mStatusBarOptional = statusBarOptional;
+ mPanelExpansionStateManager = panelExpansionStateManager;
mStatusBarStateController = statusBarStateController;
mKeyguardStateController = keyguardStateController;
mKeyguardViewManager = statusBarKeyguardViewManager;
@@ -805,7 +805,7 @@ public class UdfpsController implements DozeReceiver {
enrollView,
mServerRequest.mEnrollHelper,
mStatusBarStateController,
- mStatusBarOptional,
+ mPanelExpansionStateManager,
mDumpManager
);
case BiometricOverlayConstants.REASON_AUTH_KEYGUARD:
@@ -815,7 +815,7 @@ public class UdfpsController implements DozeReceiver {
return new UdfpsKeyguardViewController(
keyguardView,
mStatusBarStateController,
- mStatusBarOptional,
+ mPanelExpansionStateManager,
mKeyguardViewManager,
mKeyguardUpdateMonitor,
mDumpManager,
@@ -833,7 +833,7 @@ public class UdfpsController implements DozeReceiver {
return new UdfpsBpViewController(
bpView,
mStatusBarStateController,
- mStatusBarOptional,
+ mPanelExpansionStateManager,
mDumpManager
);
case BiometricOverlayConstants.REASON_AUTH_OTHER:
@@ -843,7 +843,7 @@ public class UdfpsController implements DozeReceiver {
return new UdfpsFpmOtherViewController(
authOtherView,
mStatusBarStateController,
- mStatusBarOptional,
+ mPanelExpansionStateManager,
mDumpManager
);
default:
diff --git a/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsEnrollViewController.java b/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsEnrollViewController.java
index af7c3522dc23..292a904af96e 100644
--- a/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsEnrollViewController.java
+++ b/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsEnrollViewController.java
@@ -22,9 +22,7 @@ import android.graphics.PointF;
import com.android.systemui.R;
import com.android.systemui.dump.DumpManager;
import com.android.systemui.plugins.statusbar.StatusBarStateController;
-import com.android.systemui.statusbar.phone.StatusBar;
-
-import java.util.Optional;
+import com.android.systemui.statusbar.phone.panelstate.PanelExpansionStateManager;
/**
* Class that coordinates non-HBM animations during enrollment.
@@ -55,9 +53,9 @@ public class UdfpsEnrollViewController extends UdfpsAnimationViewController<Udfp
@NonNull UdfpsEnrollView view,
@NonNull UdfpsEnrollHelper enrollHelper,
@NonNull StatusBarStateController statusBarStateController,
- @NonNull Optional<StatusBar> statusBarOptional,
+ @NonNull PanelExpansionStateManager panelExpansionStateManager,
@NonNull DumpManager dumpManager) {
- super(view, statusBarStateController, statusBarOptional, dumpManager);
+ super(view, statusBarStateController, panelExpansionStateManager, dumpManager);
mEnrollProgressBarRadius = getContext().getResources()
.getInteger(R.integer.config_udfpsEnrollProgressBar);
mEnrollHelper = enrollHelper;
diff --git a/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsFpmOtherViewController.java b/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsFpmOtherViewController.java
index dcb5aefc8aa3..619873367ee8 100644
--- a/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsFpmOtherViewController.java
+++ b/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsFpmOtherViewController.java
@@ -20,9 +20,7 @@ import android.annotation.NonNull;
import com.android.systemui.dump.DumpManager;
import com.android.systemui.plugins.statusbar.StatusBarStateController;
-import com.android.systemui.statusbar.phone.StatusBar;
-
-import java.util.Optional;
+import com.android.systemui.statusbar.phone.panelstate.PanelExpansionStateManager;
/**
* Class that coordinates non-HBM animations for non keyguard, enrollment or biometric prompt
@@ -34,9 +32,9 @@ class UdfpsFpmOtherViewController extends UdfpsAnimationViewController<UdfpsFpmO
protected UdfpsFpmOtherViewController(
@NonNull UdfpsFpmOtherView view,
@NonNull StatusBarStateController statusBarStateController,
- @NonNull Optional<StatusBar> statusBarOptional,
+ @NonNull PanelExpansionStateManager panelExpansionStateManager,
@NonNull DumpManager dumpManager) {
- super(view, statusBarStateController, statusBarOptional, dumpManager);
+ super(view, statusBarStateController, panelExpansionStateManager, dumpManager);
}
@Override
diff --git a/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsKeyguardViewController.java b/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsKeyguardViewController.java
index 7a28c9d52260..495366c8f69f 100644
--- a/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsKeyguardViewController.java
+++ b/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsKeyguardViewController.java
@@ -30,16 +30,16 @@ import com.android.systemui.plugins.statusbar.StatusBarStateController;
import com.android.systemui.statusbar.LockscreenShadeTransitionController;
import com.android.systemui.statusbar.StatusBarState;
import com.android.systemui.statusbar.phone.KeyguardBouncer;
-import com.android.systemui.statusbar.phone.StatusBar;
import com.android.systemui.statusbar.phone.StatusBarKeyguardViewManager;
import com.android.systemui.statusbar.phone.UnlockedScreenOffAnimationController;
+import com.android.systemui.statusbar.phone.panelstate.PanelExpansionListener;
+import com.android.systemui.statusbar.phone.panelstate.PanelExpansionStateManager;
import com.android.systemui.statusbar.policy.ConfigurationController;
import com.android.systemui.statusbar.policy.KeyguardStateController;
import com.android.systemui.util.time.SystemClock;
import java.io.FileDescriptor;
import java.io.PrintWriter;
-import java.util.Optional;
/**
* Class that coordinates non-HBM animations during keyguard authentication.
@@ -77,7 +77,7 @@ public class UdfpsKeyguardViewController extends UdfpsAnimationViewController<Ud
protected UdfpsKeyguardViewController(
@NonNull UdfpsKeyguardView view,
@NonNull StatusBarStateController statusBarStateController,
- @NonNull Optional<StatusBar> statusBarOptional,
+ @NonNull PanelExpansionStateManager panelExpansionStateManager,
@NonNull StatusBarKeyguardViewManager statusBarKeyguardViewManager,
@NonNull KeyguardUpdateMonitor keyguardUpdateMonitor,
@NonNull DumpManager dumpManager,
@@ -87,7 +87,7 @@ public class UdfpsKeyguardViewController extends UdfpsAnimationViewController<Ud
@NonNull KeyguardStateController keyguardStateController,
@NonNull UnlockedScreenOffAnimationController unlockedScreenOffAnimationController,
@NonNull UdfpsController udfpsController) {
- super(view, statusBarStateController, statusBarOptional, dumpManager);
+ super(view, statusBarStateController, panelExpansionStateManager, dumpManager);
mKeyguardViewManager = statusBarKeyguardViewManager;
mKeyguardUpdateMonitor = keyguardUpdateMonitor;
mLockScreenShadeTransitionController = transitionController;
@@ -126,9 +126,7 @@ public class UdfpsKeyguardViewController extends UdfpsAnimationViewController<Ud
mInputBouncerHiddenAmount = KeyguardBouncer.EXPANSION_HIDDEN;
mIsBouncerVisible = mKeyguardViewManager.bouncerIsOrWillBeShowing();
mConfigurationController.addCallback(mConfigurationListener);
- mStatusBarOptional.ifPresent(
- statusBar -> statusBar.addExpansionChangedListener(
- mStatusBarExpansionChangedListener));
+ mPanelExpansionStateManager.addListener(mPanelExpansionListener);
updateAlpha();
updatePauseAuth();
@@ -147,9 +145,7 @@ public class UdfpsKeyguardViewController extends UdfpsAnimationViewController<Ud
mKeyguardViewManager.removeAlternateAuthInterceptor(mAlternateAuthInterceptor);
mKeyguardUpdateMonitor.requestFaceAuthOnOccludingApp(false);
mConfigurationController.removeCallback(mConfigurationListener);
- mStatusBarOptional.ifPresent(
- statusBar -> statusBar.removeExpansionChangedListener(
- mStatusBarExpansionChangedListener));
+ mPanelExpansionStateManager.removeListener(mPanelExpansionListener);
if (mLockScreenShadeTransitionController.getUdfpsKeyguardViewController() == this) {
mLockScreenShadeTransitionController.setUdfpsKeyguardViewController(null);
}
@@ -403,14 +399,14 @@ public class UdfpsKeyguardViewController extends UdfpsAnimationViewController<Ud
}
};
- private final StatusBar.ExpansionChangedListener mStatusBarExpansionChangedListener =
- new StatusBar.ExpansionChangedListener() {
- @Override
- public void onExpansionChanged(float expansion, boolean expanded) {
- mStatusBarExpansion = expansion;
- updateAlpha();
- }
- };
+ private final PanelExpansionListener mPanelExpansionListener = new PanelExpansionListener() {
+ @Override
+ public void onPanelExpansionChanged(
+ float fraction, boolean expanded, boolean tracking) {
+ mStatusBarExpansion = fraction;
+ updateAlpha();
+ }
+ };
private final KeyguardStateController.Callback mKeyguardStateControllerCallback =
new KeyguardStateController.Callback() {
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarView.java
index 883313bdc096..b7686989459b 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarView.java
@@ -42,7 +42,6 @@ import com.android.systemui.plugins.DarkIconDispatcher;
import com.android.systemui.plugins.DarkIconDispatcher.DarkReceiver;
import com.android.systemui.util.leak.RotationUtils;
-import java.util.List;
import java.util.Objects;
public class PhoneStatusBarView extends PanelBar {
@@ -65,8 +64,6 @@ public class PhoneStatusBarView extends PanelBar {
private DisplayCutout mDisplayCutout;
private int mStatusBarHeight;
@Nullable
- private List<StatusBar.ExpansionChangedListener> mExpansionChangedListeners;
- @Nullable
private TouchEventHandler mTouchEventHandler;
/**
@@ -83,11 +80,6 @@ public class PhoneStatusBarView extends PanelBar {
mBar = bar;
}
- public void setExpansionChangedListeners(
- @Nullable List<StatusBar.ExpansionChangedListener> listeners) {
- mExpansionChangedListeners = listeners;
- }
-
void setTouchEventHandler(TouchEventHandler handler) {
mTouchEventHandler = handler;
}
@@ -203,16 +195,6 @@ public class PhoneStatusBarView extends PanelBar {
return super.onInterceptTouchEvent(event);
}
- @Override
- public void panelExpansionChanged(float frac, boolean expanded) {
- super.panelExpansionChanged(frac, expanded);
- if (mExpansionChangedListeners != null) {
- for (StatusBar.ExpansionChangedListener listener : mExpansionChangedListeners) {
- listener.onExpansionChanged(frac, expanded);
- }
- }
- }
-
public void updateResources() {
mCutoutSideNudge = getResources().getDimensionPixelSize(
R.dimen.display_cutout_margin_consumption);
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java
index 76790cfd4d68..c25304e1efb3 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java
@@ -248,7 +248,6 @@ import com.android.wm.shell.startingsurface.StartingSurface;
import java.io.FileDescriptor;
import java.io.PrintWriter;
import java.io.StringWriter;
-import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Optional;
@@ -440,10 +439,6 @@ public class StatusBar extends SystemUI implements
mCommandQueueCallbacks.animateCollapsePanels(flags, force);
}
- public interface ExpansionChangedListener {
- void onExpansionChanged(float expansion, boolean expanded);
- }
-
/**
* The {@link StatusBarState} of the status bar.
*/
@@ -556,8 +551,6 @@ public class StatusBar extends SystemUI implements
private final UnlockedScreenOffAnimationController mUnlockedScreenOffAnimationController;
private final TunerService mTunerService;
- private final List<ExpansionChangedListener> mExpansionChangedListeners;
-
// Flags for disabling the status bar
// Two variables becaseu the first one evidently ran out of room for new flags.
private int mDisabled1 = 0;
@@ -905,7 +898,6 @@ public class StatusBar extends SystemUI implements
mStartingSurfaceOptional = startingSurfaceOptional;
lockscreenShadeTransitionController.setStatusbar(this);
- mExpansionChangedListeners = new ArrayList<>();
mPanelExpansionStateManager.addListener(this::onPanelExpansionChanged);
mBubbleExpandListener =
@@ -1171,10 +1163,6 @@ public class StatusBar extends SystemUI implements
mStatusBarView.setPanelStateChangeListener(
mNotificationPanelViewController.getPanelStateChangeListener());
mStatusBarView.setScrimController(mScrimController);
- mStatusBarView.setExpansionChangedListeners(mExpansionChangedListeners);
- for (ExpansionChangedListener listener : mExpansionChangedListeners) {
- sendInitialExpansionAmount(listener);
- }
mNotificationPanelViewController.setBar(mStatusBarView);
@@ -1403,12 +1391,6 @@ public class StatusBar extends SystemUI implements
mDeviceProvisionedController.addCallback(mUserSetupObserver);
mUserSetupObserver.onUserSetupChanged();
- for (ExpansionChangedListener listener : mExpansionChangedListeners) {
- // The initial expansion amount comes from mNotificationPanelViewController, so we
- // should send the amount once we've fully set up that controller.
- sendInitialExpansionAmount(listener);
- }
-
// disable profiling bars, since they overlap and clutter the output on app windows
ThreadedRenderer.overrideProperty("disableProfileBars", "true");
@@ -4247,24 +4229,6 @@ public class StatusBar extends SystemUI implements
return mTransientShown;
}
-
- public void addExpansionChangedListener(@NonNull ExpansionChangedListener listener) {
- mExpansionChangedListeners.add(listener);
- sendInitialExpansionAmount(listener);
- }
-
- private void sendInitialExpansionAmount(ExpansionChangedListener expansionChangedListener) {
- if (mNotificationPanelViewController != null) {
- expansionChangedListener.onExpansionChanged(
- mNotificationPanelViewController.getExpandedFraction(),
- mNotificationPanelViewController.isExpanded());
- }
- }
-
- public void removeExpansionChangedListener(@NonNull ExpansionChangedListener listener) {
- mExpansionChangedListeners.remove(listener);
- }
-
private void updateLightRevealScrimVisibility() {
if (mLightRevealScrim == null) {
// status bar may not be inflated yet
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/panelstate/PanelExpansionStateManager.kt b/packages/SystemUI/src/com/android/systemui/statusbar/phone/panelstate/PanelExpansionStateManager.kt
index 71b706665a77..aa748b00d570 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/panelstate/PanelExpansionStateManager.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/panelstate/PanelExpansionStateManager.kt
@@ -45,6 +45,11 @@ class PanelExpansionStateManager @Inject constructor() {
listener.onPanelExpansionChanged(fraction, expanded, tracking)
}
+ /** Removes a listener. */
+ fun removeListener(listener: PanelExpansionListener) {
+ listeners.remove(listener)
+ }
+
/** Called when the panel expansion has changed. Notifies all listeners of change. */
fun onPanelExpansionChanged(
@FloatRange(from = 0.0, to = 1.0) fraction: Float,
diff --git a/packages/SystemUI/tests/src/com/android/systemui/biometrics/UdfpsControllerTest.java b/packages/SystemUI/tests/src/com/android/systemui/biometrics/UdfpsControllerTest.java
index deabda35aeae..cfac9cb592a0 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/biometrics/UdfpsControllerTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/biometrics/UdfpsControllerTest.java
@@ -66,6 +66,7 @@ import com.android.systemui.statusbar.phone.KeyguardBypassController;
import com.android.systemui.statusbar.phone.StatusBar;
import com.android.systemui.statusbar.phone.StatusBarKeyguardViewManager;
import com.android.systemui.statusbar.phone.UnlockedScreenOffAnimationController;
+import com.android.systemui.statusbar.phone.panelstate.PanelExpansionStateManager;
import com.android.systemui.statusbar.policy.ConfigurationController;
import com.android.systemui.statusbar.policy.KeyguardStateController;
import com.android.systemui.util.concurrency.Execution;
@@ -219,7 +220,7 @@ public class UdfpsControllerTest extends SysuiTestCase {
mWindowManager,
mStatusBarStateController,
mFgExecutor,
- Optional.of(mStatusBar),
+ new PanelExpansionStateManager(),
mStatusBarKeyguardViewManager,
mDumpManager,
mKeyguardUpdateMonitor,
diff --git a/packages/SystemUI/tests/src/com/android/systemui/biometrics/UdfpsKeyguardViewControllerTest.java b/packages/SystemUI/tests/src/com/android/systemui/biometrics/UdfpsKeyguardViewControllerTest.java
index 2821f3d21606..6f0456ef8f5b 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/biometrics/UdfpsKeyguardViewControllerTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/biometrics/UdfpsKeyguardViewControllerTest.java
@@ -41,9 +41,10 @@ import com.android.systemui.keyguard.KeyguardViewMediator;
import com.android.systemui.plugins.statusbar.StatusBarStateController;
import com.android.systemui.statusbar.LockscreenShadeTransitionController;
import com.android.systemui.statusbar.StatusBarState;
-import com.android.systemui.statusbar.phone.StatusBar;
import com.android.systemui.statusbar.phone.StatusBarKeyguardViewManager;
import com.android.systemui.statusbar.phone.UnlockedScreenOffAnimationController;
+import com.android.systemui.statusbar.phone.panelstate.PanelExpansionListener;
+import com.android.systemui.statusbar.phone.panelstate.PanelExpansionStateManager;
import com.android.systemui.statusbar.policy.ConfigurationController;
import com.android.systemui.statusbar.policy.KeyguardStateController;
import com.android.systemui.util.concurrency.DelayableExecutor;
@@ -57,7 +58,6 @@ import org.mockito.Captor;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
-import java.util.Optional;
import java.util.List;
@SmallTest
@@ -72,7 +72,7 @@ public class UdfpsKeyguardViewControllerTest extends SysuiTestCase {
@Mock
private StatusBarStateController mStatusBarStateController;
@Mock
- private StatusBar mStatusBar;
+ private PanelExpansionStateManager mPanelExpansionStateManager;
@Mock
private StatusBarKeyguardViewManager mStatusBarKeyguardViewManager;
@Mock
@@ -101,8 +101,8 @@ public class UdfpsKeyguardViewControllerTest extends SysuiTestCase {
@Captor private ArgumentCaptor<StatusBarStateController.StateListener> mStateListenerCaptor;
private StatusBarStateController.StateListener mStatusBarStateListener;
- @Captor private ArgumentCaptor<StatusBar.ExpansionChangedListener> mExpansionListenerCaptor;
- private List<StatusBar.ExpansionChangedListener> mExpansionListeners;
+ @Captor private ArgumentCaptor<PanelExpansionListener> mExpansionListenerCaptor;
+ private List<PanelExpansionListener> mExpansionListeners;
@Captor private ArgumentCaptor<StatusBarKeyguardViewManager.AlternateAuthInterceptor>
mAltAuthInterceptorCaptor;
@@ -121,7 +121,7 @@ public class UdfpsKeyguardViewControllerTest extends SysuiTestCase {
mController = new UdfpsKeyguardViewController(
mView,
mStatusBarStateController,
- Optional.of(mStatusBar),
+ mPanelExpansionStateManager,
mStatusBarKeyguardViewManager,
mKeyguardUpdateMonitor,
mDumpManager,
@@ -170,8 +170,8 @@ public class UdfpsKeyguardViewControllerTest extends SysuiTestCase {
mController.onViewDetached();
verify(mStatusBarStateController).removeCallback(mStatusBarStateListener);
- for (StatusBar.ExpansionChangedListener listener : mExpansionListeners) {
- verify(mStatusBar).removeExpansionChangedListener(listener);
+ for (PanelExpansionListener listener : mExpansionListeners) {
+ verify(mPanelExpansionStateManager).removeListener(listener);
}
verify(mKeyguardStateController).removeCallback(mKeyguardStateControllerCallback);
}
@@ -434,16 +434,16 @@ public class UdfpsKeyguardViewControllerTest extends SysuiTestCase {
}
private void captureExpansionListeners() {
- verify(mStatusBar, times(2))
- .addExpansionChangedListener(mExpansionListenerCaptor.capture());
+ verify(mPanelExpansionStateManager, times(2))
+ .addListener(mExpansionListenerCaptor.capture());
// first (index=0) is from super class, UdfpsAnimationViewController.
// second (index=1) is from UdfpsKeyguardViewController
mExpansionListeners = mExpansionListenerCaptor.getAllValues();
}
- private void updateStatusBarExpansion(float expansion, boolean expanded) {
- for (StatusBar.ExpansionChangedListener listener : mExpansionListeners) {
- listener.onExpansionChanged(expansion, expanded);
+ private void updateStatusBarExpansion(float fraction, boolean expanded) {
+ for (PanelExpansionListener listener : mExpansionListeners) {
+ listener.onPanelExpansionChanged(fraction, expanded, /* tracking= */ false);
}
}
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/PhoneStatusBarViewTest.kt b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/PhoneStatusBarViewTest.kt
index fe3490399e81..300860ca0a49 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/PhoneStatusBarViewTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/PhoneStatusBarViewTest.kt
@@ -54,25 +54,6 @@ class PhoneStatusBarViewTest : SysuiTestCase() {
}
@Test
- fun panelExpansionChanged_expansionChangeListenerNotified() {
- val listener = TestExpansionChangedListener()
- view.setExpansionChangedListeners(listOf(listener))
- val fraction = 0.4f
- val isExpanded = true
-
- view.panelExpansionChanged(fraction, isExpanded)
-
- assertThat(listener.fraction).isEqualTo(fraction)
- assertThat(listener.isExpanded).isEqualTo(isExpanded)
- }
-
- @Test
- fun panelExpansionChanged_noListeners_noCrash() {
- view.panelExpansionChanged(1f, false)
- // No assert needed, just testing no crash
- }
-
- @Test
fun panelStateChanged_toStateOpening_listenerNotified() {
val listener = TestStateChangedListener()
view.setPanelStateChangeListener(listener)
@@ -145,17 +126,6 @@ class PhoneStatusBarViewTest : SysuiTestCase() {
// No assert needed, just testing no crash
}
- private class TestExpansionChangedListener
- : StatusBar.ExpansionChangedListener {
- var fraction: Float = 0f
- var isExpanded: Boolean = false
-
- override fun onExpansionChanged(expansion: Float, expanded: Boolean) {
- this.fraction = expansion
- this.isExpanded = expanded
- }
- }
-
private class TestStateChangedListener : PanelBar.PanelStateChangeListener {
var state: Int = 0
override fun onStateChanged(state: Int) {