Merge "(4/N)[MediaProjection] Don't send result to server until setup ends" into udc-dev am: 5029af7cf3

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/22822436

Change-Id: I1939813ac918361399f83f1e676c654333f622b8
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Naomi Musgrave
2023-05-03 10:22:37 +00:00
committed by Automerger Merge Worker

View File

@@ -79,6 +79,9 @@ public class MediaProjectionPermissionActivity extends Activity
// Indicates if user must review already-granted consent that the MediaProjection app is // Indicates if user must review already-granted consent that the MediaProjection app is
// attempting to re-use. // attempting to re-use.
private boolean mReviewGrantedConsentRequired = false; 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 @Inject
public MediaProjectionPermissionActivity(FeatureFlags featureFlags, 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 // Start activity from the current foreground user to avoid creating a separate
// SystemUI process without access to recent tasks because it won't have // SystemUI process without access to recent tasks because it won't have
// WM Shell running inside. // WM Shell running inside.
mUserSelectingTask = true;
startActivityAsUser(intent, UserHandle.of(ActivityManager.getCurrentUser())); startActivityAsUser(intent, UserHandle.of(ActivityManager.getCurrentUser()));
} }
} catch (RemoteException e) { } catch (RemoteException e) {
@@ -316,7 +320,10 @@ public class MediaProjectionPermissionActivity extends Activity
@Override @Override
public void finish() { public void finish() {
// Default to cancelling recording when user needs to review consent. // 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, private void finish(@ReviewGrantedConsentResult int consentResult,
@@ -328,7 +335,7 @@ public class MediaProjectionPermissionActivity extends Activity
private void onDialogDismissedOrCancelled(DialogInterface dialogInterface) { private void onDialogDismissedOrCancelled(DialogInterface dialogInterface) {
if (!isFinishing()) { if (!isFinishing()) {
finish(RECORD_CANCEL, /* projection= */ null); finish();
} }
} }