[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
This commit is contained in:
Nick Chameyev
2023-04-05 18:05:16 +01:00
parent 5351ad5ba4
commit a39f426df0

View File

@@ -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() {