summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packages/SystemUI/src/com/android/systemui/media/MediaProjectionPermissionActivity.java11
1 files changed, 9 insertions, 2 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/media/MediaProjectionPermissionActivity.java b/packages/SystemUI/src/com/android/systemui/media/MediaProjectionPermissionActivity.java
index 28adfbba1103..c9c2ea27e5f4 100644
--- a/packages/SystemUI/src/com/android/systemui/media/MediaProjectionPermissionActivity.java
+++ b/packages/SystemUI/src/com/android/systemui/media/MediaProjectionPermissionActivity.java
@@ -79,6 +79,9 @@ public class MediaProjectionPermissionActivity extends Activity
// Indicates if user must review already-granted consent that the MediaProjection app is
// attempting to re-use.
private boolean mReviewGrantedConsentRequired = false;
+ // Indicates if the user has consented to record, but is continuing in another activity to
+ // select a particular task to capture.
+ private boolean mUserSelectingTask = false;
@Inject
public MediaProjectionPermissionActivity(FeatureFlags featureFlags,
@@ -296,6 +299,7 @@ public class MediaProjectionPermissionActivity extends Activity
// Start activity from the current foreground user to avoid creating a separate
// SystemUI process without access to recent tasks because it won't have
// WM Shell running inside.
+ mUserSelectingTask = true;
startActivityAsUser(intent, UserHandle.of(ActivityManager.getCurrentUser()));
}
} catch (RemoteException e) {
@@ -316,7 +320,10 @@ public class MediaProjectionPermissionActivity extends Activity
@Override
public void finish() {
// Default to cancelling recording when user needs to review consent.
- finish(RECORD_CANCEL, /* projection= */ null);
+ // Don't send cancel if the user has moved on to the next activity.
+ if (!mUserSelectingTask) {
+ finish(RECORD_CANCEL, /* projection= */ null);
+ }
}
private void finish(@ReviewGrantedConsentResult int consentResult,
@@ -328,7 +335,7 @@ public class MediaProjectionPermissionActivity extends Activity
private void onDialogDismissedOrCancelled(DialogInterface dialogInterface) {
if (!isFinishing()) {
- finish(RECORD_CANCEL, /* projection= */ null);
+ finish();
}
}