Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e12375e4 authored by Beverly's avatar Beverly
Browse files

DO NOT MERGE Hide UDFPS affordance when some dialogs show

- Add SystemUIDialogManager which tracks dialogs
and will send signals to listeners to hide affordances
when their managed dialogs are showing
- This CL hooks up SystemUIDialogManager to the showing
of the media output switcher and the global actions menu.
- If future dialogs should hide the udfps affordace,
it should pass the SystemUIDialogManager to the constructor
of the SystemUIDialog.

Fixes: 209042127
Fixes: 193517370
Test: atest SystemUITests
Test: manual test
  1. Enroll UDFPS, set power button => power dialog
  2. On the lock screen, long press power button
  Observe: udfps affordance disappears
Test: manual test
  1. Enroll UDFPS, play media so that a notification shows
  2. On LS, change the media output from the notification
    Observe: media output dialog appears and the udfps affordance
    disappears
  3. Tap on "Pair new device"
    Observe: UDFPS reappears to authenticate
Change-Id: Ia53ad92375a534bacd8956350ae3a31660e9c703
parent aebceb03
Loading
Loading
Loading
Loading
+11 −1
Original line number Diff line number Diff line
@@ -23,6 +23,7 @@ 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.SystemUIDialogManager;
import com.android.systemui.statusbar.phone.panelstate.PanelExpansionListener;
import com.android.systemui.statusbar.phone.panelstate.PanelExpansionStateManager;
import com.android.systemui.util.ViewController;
@@ -44,6 +45,7 @@ abstract class UdfpsAnimationViewController<T extends UdfpsAnimationView>
        extends ViewController<T> implements Dumpable {
    @NonNull final StatusBarStateController mStatusBarStateController;
    @NonNull final PanelExpansionStateManager mPanelExpansionStateManager;
    @NonNull final SystemUIDialogManager mDialogManager;
    @NonNull final DumpManager mDumpManger;

    boolean mNotificationShadeVisible;
@@ -52,10 +54,12 @@ abstract class UdfpsAnimationViewController<T extends UdfpsAnimationView>
            T view,
            @NonNull StatusBarStateController statusBarStateController,
            @NonNull PanelExpansionStateManager panelExpansionStateManager,
            @NonNull SystemUIDialogManager dialogManager,
            @NonNull DumpManager dumpManager) {
        super(view);
        mStatusBarStateController = statusBarStateController;
        mPanelExpansionStateManager = panelExpansionStateManager;
        mDialogManager = dialogManager;
        mDumpManger = dumpManager;
    }

@@ -64,12 +68,14 @@ abstract class UdfpsAnimationViewController<T extends UdfpsAnimationView>
    @Override
    protected void onViewAttached() {
        mPanelExpansionStateManager.addExpansionListener(mPanelExpansionListener);
        mDialogManager.registerListener(mDialogListener);
        mDumpManger.registerDumpable(getDumpTag(), this);
    }

    @Override
    protected void onViewDetached() {
        mPanelExpansionStateManager.removeExpansionListener(mPanelExpansionListener);
        mDialogManager.registerListener(mDialogListener);
        mDumpManger.unregisterDumpable(getDumpTag());
    }

@@ -95,7 +101,8 @@ abstract class UdfpsAnimationViewController<T extends UdfpsAnimationView>
     * authentication.
     */
    boolean shouldPauseAuth() {
        return mNotificationShadeVisible;
        return mNotificationShadeVisible
                || mDialogManager.shouldHideAffordance();
    }

    /**
@@ -189,4 +196,7 @@ abstract class UdfpsAnimationViewController<T extends UdfpsAnimationView>
            updatePauseAuth();
        }
    };

    private final SystemUIDialogManager.Listener mDialogListener =
            (shouldHide) -> updatePauseAuth();
}
+4 −1
Original line number Diff line number Diff line
@@ -20,6 +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.SystemUIDialogManager;
import com.android.systemui.statusbar.phone.panelstate.PanelExpansionStateManager;

/**
@@ -30,8 +31,10 @@ class UdfpsBpViewController extends UdfpsAnimationViewController<UdfpsBpView> {
            @NonNull UdfpsBpView view,
            @NonNull StatusBarStateController statusBarStateController,
            @NonNull PanelExpansionStateManager panelExpansionStateManager,
            @NonNull SystemUIDialogManager systemUIDialogManager,
            @NonNull DumpManager dumpManager) {
        super(view, statusBarStateController, panelExpansionStateManager, dumpManager);
        super(view, statusBarStateController, panelExpansionStateManager,
                systemUIDialogManager, dumpManager);
    }

    @Override
+9 −1
Original line number Diff line number Diff line
@@ -70,6 +70,7 @@ 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.StatusBarKeyguardViewManager;
import com.android.systemui.statusbar.phone.SystemUIDialogManager;
import com.android.systemui.statusbar.phone.UnlockedScreenOffAnimationController;
import com.android.systemui.statusbar.phone.panelstate.PanelExpansionStateManager;
import com.android.systemui.statusbar.policy.ConfigurationController;
@@ -118,6 +119,7 @@ public class UdfpsController implements DozeReceiver {
    @NonNull private final KeyguardStateController mKeyguardStateController;
    @NonNull private final StatusBarKeyguardViewManager mKeyguardViewManager;
    @NonNull private final DumpManager mDumpManager;
    @NonNull private final SystemUIDialogManager mDialogManager;
    @NonNull private final KeyguardUpdateMonitor mKeyguardUpdateMonitor;
    @Nullable private final Vibrator mVibrator;
    @NonNull private final FalsingManager mFalsingManager;
@@ -552,7 +554,8 @@ public class UdfpsController implements DozeReceiver {
            @Main Handler mainHandler,
            @NonNull ConfigurationController configurationController,
            @NonNull SystemClock systemClock,
            @NonNull UnlockedScreenOffAnimationController unlockedScreenOffAnimationController) {
            @NonNull UnlockedScreenOffAnimationController unlockedScreenOffAnimationController,
            @NonNull SystemUIDialogManager dialogManager) {
        mContext = context;
        mExecution = execution;
        mVibrator = vibrator;
@@ -567,6 +570,7 @@ public class UdfpsController implements DozeReceiver {
        mKeyguardStateController = keyguardStateController;
        mKeyguardViewManager = statusBarKeyguardViewManager;
        mDumpManager = dumpManager;
        mDialogManager = dialogManager;
        mKeyguardUpdateMonitor = keyguardUpdateMonitor;
        mFalsingManager = falsingManager;
        mPowerManager = powerManager;
@@ -815,6 +819,7 @@ public class UdfpsController implements DozeReceiver {
                        mServerRequest.mEnrollHelper,
                        mStatusBarStateController,
                        mPanelExpansionStateManager,
                        mDialogManager,
                        mDumpManager
                );
            case BiometricOverlayConstants.REASON_AUTH_KEYGUARD:
@@ -833,6 +838,7 @@ public class UdfpsController implements DozeReceiver {
                        mSystemClock,
                        mKeyguardStateController,
                        mUnlockedScreenOffAnimationController,
                        mDialogManager,
                        this
                );
            case BiometricOverlayConstants.REASON_AUTH_BP:
@@ -843,6 +849,7 @@ public class UdfpsController implements DozeReceiver {
                        bpView,
                        mStatusBarStateController,
                        mPanelExpansionStateManager,
                        mDialogManager,
                        mDumpManager
                );
            case BiometricOverlayConstants.REASON_AUTH_OTHER:
@@ -854,6 +861,7 @@ public class UdfpsController implements DozeReceiver {
                        authOtherView,
                        mStatusBarStateController,
                        mPanelExpansionStateManager,
                        mDialogManager,
                        mDumpManager
                );
            default:
+4 −1
Original line number Diff line number Diff line
@@ -22,6 +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.SystemUIDialogManager;
import com.android.systemui.statusbar.phone.panelstate.PanelExpansionStateManager;

/**
@@ -54,8 +55,10 @@ public class UdfpsEnrollViewController extends UdfpsAnimationViewController<Udfp
            @NonNull UdfpsEnrollHelper enrollHelper,
            @NonNull StatusBarStateController statusBarStateController,
            @NonNull PanelExpansionStateManager panelExpansionStateManager,
            @NonNull SystemUIDialogManager systemUIDialogManager,
            @NonNull DumpManager dumpManager) {
        super(view, statusBarStateController, panelExpansionStateManager, dumpManager);
        super(view, statusBarStateController, panelExpansionStateManager, systemUIDialogManager,
                dumpManager);
        mEnrollProgressBarRadius = getContext().getResources()
                .getInteger(R.integer.config_udfpsEnrollProgressBar);
        mEnrollHelper = enrollHelper;
+4 −1
Original line number Diff line number Diff line
@@ -20,6 +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.SystemUIDialogManager;
import com.android.systemui.statusbar.phone.panelstate.PanelExpansionStateManager;

/**
@@ -33,8 +34,10 @@ class UdfpsFpmOtherViewController extends UdfpsAnimationViewController<UdfpsFpmO
            @NonNull UdfpsFpmOtherView view,
            @NonNull StatusBarStateController statusBarStateController,
            @NonNull PanelExpansionStateManager panelExpansionStateManager,
            @NonNull SystemUIDialogManager systemUIDialogManager,
            @NonNull DumpManager dumpManager) {
        super(view, statusBarStateController, panelExpansionStateManager, dumpManager);
        super(view, statusBarStateController, panelExpansionStateManager, systemUIDialogManager,
                dumpManager);
    }

    @Override
Loading