Merge "[Status Bar Refactor] 2.3/N Migrate Udfps classes to the correct listener interface." into sc-v2-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
adabd84fb7
@@ -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();
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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() {
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -53,25 +53,6 @@ class PhoneStatusBarViewTest : SysuiTestCase() {
|
||||
view.setBar(statusBar)
|
||||
}
|
||||
|
||||
@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()
|
||||
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user