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

Commit 4d95b49c authored by Fedor Kudasov's avatar Fedor Kudasov
Browse files

Decrease the scope of mDialog

Bug: 209459024
Test: m SystemUI-core
Change-Id: Ic45f7c885104ea8d0718b194014b9aba1ef99caa
parent 9e699657
Loading
Loading
Loading
Loading
+19 −8
Original line number Diff line number Diff line
@@ -78,7 +78,6 @@ public class CastTile extends QSTileImpl<BooleanState> {
    private final NetworkController mNetworkController;
    private final DialogLaunchAnimator mDialogLaunchAnimator;
    private final Callback mCallback = new Callback();
    private Dialog mDialog;
    private boolean mWifiConnected;
    private boolean mHotspotConnected;

@@ -196,24 +195,36 @@ public class CastTile extends QSTileImpl<BooleanState> {
        showDetail(null /* view */);
    }

    private static class DialogHolder {
        private Dialog mDialog;

        private void init(Dialog dialog) {
            mDialog = dialog;
        }
    }

    private void showDetail(@Nullable View view) {
        mUiHandler.post(() -> {
            mDialog = MediaRouteDialogPresenter.createDialog(mContext, ROUTE_TYPE_REMOTE_DISPLAY,
            final DialogHolder holder = new DialogHolder();
            final Dialog dialog = MediaRouteDialogPresenter.createDialog(
                    mContext,
                    ROUTE_TYPE_REMOTE_DISPLAY,
                    v -> {
                        mDialogLaunchAnimator.disableAllCurrentDialogsExitAnimations();
                        mDialog.dismiss();
                        holder.mDialog.dismiss();
                        mActivityStarter
                                .postStartActivityDismissingKeyguard(getLongClickIntent(), 0);
                    });
            SystemUIDialog.setShowForAllUsers(mDialog, true);
            SystemUIDialog.registerDismissListener(mDialog);
            SystemUIDialog.setWindowOnTop(mDialog);
            holder.init(dialog);
            SystemUIDialog.setShowForAllUsers(dialog, true);
            SystemUIDialog.registerDismissListener(dialog);
            SystemUIDialog.setWindowOnTop(dialog);

            mUiHandler.post(() -> {
                if (view != null) {
                    mDialogLaunchAnimator.showFromView(mDialog, view);
                    mDialogLaunchAnimator.showFromView(dialog, view);
                } else {
                    mDialog.show();
                    dialog.show();
                }
            });
        });