Merge "Add explicit SystemUIDialog dependencies as parameters" into tm-qpr-dev

This commit is contained in:
Jordan Demeulenaere
2022-06-25 07:33:30 +00:00
committed by Android (Google) Code Review

View File

@@ -93,6 +93,17 @@ public class SystemUIDialog extends AlertDialog implements ViewRootImpl.ConfigCh
} }
public SystemUIDialog(Context context, int theme, boolean dismissOnDeviceLock) { 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); super(context, theme);
mContext = context; mContext = context;
@@ -101,13 +112,10 @@ public class SystemUIDialog extends AlertDialog implements ViewRootImpl.ConfigCh
attrs.setTitle(getClass().getSimpleName()); attrs.setTitle(getClass().getSimpleName());
getWindow().setAttributes(attrs); getWindow().setAttributes(attrs);
mDismissReceiver = dismissOnDeviceLock ? new DismissReceiver(this) : null; mDismissReceiver = dismissOnDeviceLock ? new DismissReceiver(this, broadcastDispatcher,
dialogLaunchAnimator) : null;
// TODO(b/219008720): Remove those calls to Dependency.get by introducing a mDialogManager = dialogManager;
// SystemUIDialogFactory and make all other dialogs create a SystemUIDialog to which we set mSysUiState = sysUiState;
// the content and attach listeners.
mDialogManager = Dependency.get(SystemUIDialogManager.class);
mSysUiState = Dependency.get(SysUiState.class);
} }
@Override @Override
@@ -326,7 +334,10 @@ public class SystemUIDialog extends AlertDialog implements ViewRootImpl.ConfigCh
* @param dismissAction An action to run when the dialog is dismissed. * @param dismissAction An action to run when the dialog is dismissed.
*/ */
public static void registerDismissListener(Dialog dialog, @Nullable Runnable dismissAction) { 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 -> { dialog.setOnDismissListener(d -> {
dismissReceiver.unregister(); dismissReceiver.unregister();
if (dismissAction != null) dismissAction.run(); if (dismissAction != null) dismissAction.run();
@@ -408,11 +419,11 @@ public class SystemUIDialog extends AlertDialog implements ViewRootImpl.ConfigCh
private final BroadcastDispatcher mBroadcastDispatcher; private final BroadcastDispatcher mBroadcastDispatcher;
private final DialogLaunchAnimator mDialogLaunchAnimator; private final DialogLaunchAnimator mDialogLaunchAnimator;
DismissReceiver(Dialog dialog) { DismissReceiver(Dialog dialog, BroadcastDispatcher broadcastDispatcher,
DialogLaunchAnimator dialogLaunchAnimator) {
mDialog = dialog; mDialog = dialog;
// TODO(b/219008720): Remove those calls to Dependency.get. mBroadcastDispatcher = broadcastDispatcher;
mBroadcastDispatcher = Dependency.get(BroadcastDispatcher.class); mDialogLaunchAnimator = dialogLaunchAnimator;
mDialogLaunchAnimator = Dependency.get(DialogLaunchAnimator.class);
} }
void register() { void register() {