summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packages/SystemUI/src/com/android/systemui/qs/tiles/CastTile.java27
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();
}
});
});