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

Commit bab6d2d2 authored by Jordan Demeulenaere's avatar Jordan Demeulenaere Committed by Automerger Merge Worker
Browse files

Merge "Add explicit SystemUIDialog dependencies as parameters" into tm-qpr-dev am: 6d6a373d

parents 887f5260 6d6a373d
Loading
Loading
Loading
Loading
+23 −12
Original line number Diff line number Diff line
@@ -93,6 +93,17 @@ public class SystemUIDialog extends AlertDialog implements ViewRootImpl.ConfigCh
    }

    public SystemUIDialog(Context context, int theme, boolean dismissOnDeviceLock) {
        // TODO(b/219008720): Remove those calls to Dependency.get by introducing a
        // SystemUIDialogFactory and make all other dialogs create a SystemUIDialog to which we set
        // the content and attach listeners.
        this(context, theme, dismissOnDeviceLock, Dependency.get(SystemUIDialogManager.class),
                Dependency.get(SysUiState.class), Dependency.get(BroadcastDispatcher.class),
                Dependency.get(DialogLaunchAnimator.class));
    }

    public SystemUIDialog(Context context, int theme, boolean dismissOnDeviceLock,
            SystemUIDialogManager dialogManager, SysUiState sysUiState,
            BroadcastDispatcher broadcastDispatcher, DialogLaunchAnimator dialogLaunchAnimator) {
        super(context, theme);
        mContext = context;

@@ -101,13 +112,10 @@ public class SystemUIDialog extends AlertDialog implements ViewRootImpl.ConfigCh
        attrs.setTitle(getClass().getSimpleName());
        getWindow().setAttributes(attrs);

        mDismissReceiver = dismissOnDeviceLock ? new DismissReceiver(this) : null;

        // TODO(b/219008720): Remove those calls to Dependency.get by introducing a
        // SystemUIDialogFactory and make all other dialogs create a SystemUIDialog to which we set
        // the content and attach listeners.
        mDialogManager = Dependency.get(SystemUIDialogManager.class);
        mSysUiState = Dependency.get(SysUiState.class);
        mDismissReceiver = dismissOnDeviceLock ? new DismissReceiver(this, broadcastDispatcher,
                dialogLaunchAnimator) : null;
        mDialogManager = dialogManager;
        mSysUiState = sysUiState;
    }

    @Override
@@ -326,7 +334,10 @@ public class SystemUIDialog extends AlertDialog implements ViewRootImpl.ConfigCh
     * @param dismissAction An action to run when the dialog is dismissed.
     */
    public static void registerDismissListener(Dialog dialog, @Nullable Runnable dismissAction) {
        DismissReceiver dismissReceiver = new DismissReceiver(dialog);
        // TODO(b/219008720): Remove those calls to Dependency.get.
        DismissReceiver dismissReceiver = new DismissReceiver(dialog,
                Dependency.get(BroadcastDispatcher.class),
                Dependency.get(DialogLaunchAnimator.class));
        dialog.setOnDismissListener(d -> {
            dismissReceiver.unregister();
            if (dismissAction != null) dismissAction.run();
@@ -408,11 +419,11 @@ public class SystemUIDialog extends AlertDialog implements ViewRootImpl.ConfigCh
        private final BroadcastDispatcher mBroadcastDispatcher;
        private final DialogLaunchAnimator mDialogLaunchAnimator;

        DismissReceiver(Dialog dialog) {
        DismissReceiver(Dialog dialog, BroadcastDispatcher broadcastDispatcher,
                DialogLaunchAnimator dialogLaunchAnimator) {
            mDialog = dialog;
            // TODO(b/219008720): Remove those calls to Dependency.get.
            mBroadcastDispatcher = Dependency.get(BroadcastDispatcher.class);
            mDialogLaunchAnimator = Dependency.get(DialogLaunchAnimator.class);
            mBroadcastDispatcher = broadcastDispatcher;
            mDialogLaunchAnimator = dialogLaunchAnimator;
        }

        void register() {