From a39f426df047fd69af7d4c8fa2ac598ee1939188 Mon Sep 17 00:00:00 2001 From: Nick Chameyev Date: Wed, 5 Apr 2023 18:05:16 +0100 Subject: [PATCH] [MediaProjection] Finish permission activity if dialog dismissed or cancelled Currently, when turning off/turning on the screen the activity still stays visible. We handle the dialog cancellation case by finishing the activity in onCancel callback but we don't do this for dismissing. Bug: 276431368 Test: open media projection dialog, turn off the screen, turn on the screen => check that dialog and activity are dismissed and closed Change-Id: I17b8a26e0285fab7b99871290a1588a5b6b13cfa --- .../media/MediaProjectionPermissionActivity.java | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/packages/SystemUI/src/com/android/systemui/media/MediaProjectionPermissionActivity.java b/packages/SystemUI/src/com/android/systemui/media/MediaProjectionPermissionActivity.java index c4e76b203f195..ccddd1d359b77 100644 --- a/packages/SystemUI/src/com/android/systemui/media/MediaProjectionPermissionActivity.java +++ b/packages/SystemUI/src/com/android/systemui/media/MediaProjectionPermissionActivity.java @@ -60,7 +60,7 @@ import javax.inject.Inject; import dagger.Lazy; public class MediaProjectionPermissionActivity extends Activity - implements DialogInterface.OnClickListener, DialogInterface.OnCancelListener { + implements DialogInterface.OnClickListener { private static final String TAG = "MediaProjectionPermissionActivity"; private static final float MAX_APP_NAME_SIZE_PX = 500f; private static final String ELLIPSIS = "\u2026"; @@ -215,7 +215,8 @@ public class MediaProjectionPermissionActivity extends Activity SystemUIDialog.applyFlags(dialog); SystemUIDialog.setDialogSize(dialog); - dialog.setOnCancelListener(this); + dialog.setOnCancelListener(this::onDialogDismissedOrCancelled); + dialog.setOnDismissListener(this::onDialogDismissedOrCancelled); dialog.create(); dialog.getButton(DialogInterface.BUTTON_POSITIVE).setFilterTouchesWhenObscured(true); @@ -283,9 +284,10 @@ public class MediaProjectionPermissionActivity extends Activity return intent; } - @Override - public void onCancel(DialogInterface dialog) { - finish(); + private void onDialogDismissedOrCancelled(DialogInterface dialogInterface) { + if (!isFinishing()) { + finish(); + } } private boolean isPartialScreenSharingEnabled() {