diff options
| -rw-r--r-- | packages/SystemUI/src/com/android/systemui/qs/tiles/CastTile.java | 27 |
1 files changed, 19 insertions, 8 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/qs/tiles/CastTile.java b/packages/SystemUI/src/com/android/systemui/qs/tiles/CastTile.java index 1fb608a3c7db..6e0ae29630bc 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/tiles/CastTile.java +++ b/packages/SystemUI/src/com/android/systemui/qs/tiles/CastTile.java @@ -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(); } }); }); |