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

Commit a39f426d authored by Nick Chameyev's avatar Nick Chameyev
Browse files

[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
parent 5351ad5b
Loading
Loading
Loading
Loading
+7 −5
Original line number Diff line number Diff line
@@ -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,10 +284,11 @@ public class MediaProjectionPermissionActivity extends Activity
        return intent;
    }

    @Override
    public void onCancel(DialogInterface dialog) {
    private void onDialogDismissedOrCancelled(DialogInterface dialogInterface) {
        if (!isFinishing()) {
            finish();
        }
    }

    private boolean isPartialScreenSharingEnabled() {
        return mFeatureFlags.isEnabled(Flags.WM_ENABLE_PARTIAL_SCREEN_SHARING);