From 1aef4a20e650abe4d4314e6b384e8c6206529df1 Mon Sep 17 00:00:00 2001 From: Miranda Kephart Date: Wed, 19 Oct 2022 15:13:01 -0400 Subject: [PATCH] Fix shared transitions from work profile We need to start the fade animation (and prevent the initial ACTION_CLOSE_SYSTEM_DIALOGS broadcast from dismissing the screenshot UI). Flag: SCREENSHOT_WORK_PROFILE_POLICY Bug: 254518387 Test: manual (visual change; observed that UI fades out as expected when SCREENSHOT_WORK_PROFILE_POLICY flag is on) Change-Id: I69e7cd94bf621a28ec2ceb3586db0b80a65278e3 --- .../android/systemui/screenshot/ScreenshotView.java | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/packages/SystemUI/src/com/android/systemui/screenshot/ScreenshotView.java b/packages/SystemUI/src/com/android/systemui/screenshot/ScreenshotView.java index 26cbcbf5214fa..1b9cdd42dbf7a 100644 --- a/packages/SystemUI/src/com/android/systemui/screenshot/ScreenshotView.java +++ b/packages/SystemUI/src/com/android/systemui/screenshot/ScreenshotView.java @@ -767,7 +767,9 @@ public class ScreenshotView extends FrameLayout implements mShareChip.setOnClickListener(v -> { mUiEventLogger.log(ScreenshotEvent.SCREENSHOT_SHARE_TAPPED, 0, mPackageName); if (mFlags.isEnabled(Flags.SCREENSHOT_WORK_PROFILE_POLICY)) { - mActionExecutor.launchIntentAsync(ActionIntentCreator.INSTANCE.createShareIntent( + prepareSharedTransition(); + mActionExecutor.launchIntentAsync( + ActionIntentCreator.INSTANCE.createShareIntent( imageData.uri, imageData.subject), imageData.shareTransition.get().bundle, imageData.owner.getIdentifier(), false); @@ -778,6 +780,7 @@ public class ScreenshotView extends FrameLayout implements mEditChip.setOnClickListener(v -> { mUiEventLogger.log(ScreenshotEvent.SCREENSHOT_EDIT_TAPPED, 0, mPackageName); if (mFlags.isEnabled(Flags.SCREENSHOT_WORK_PROFILE_POLICY)) { + prepareSharedTransition(); mActionExecutor.launchIntentAsync( ActionIntentCreator.INSTANCE.createEditIntent(imageData.uri, mContext), imageData.editTransition.get().bundle, @@ -789,6 +792,7 @@ public class ScreenshotView extends FrameLayout implements mScreenshotPreview.setOnClickListener(v -> { mUiEventLogger.log(ScreenshotEvent.SCREENSHOT_PREVIEW_TAPPED, 0, mPackageName); if (mFlags.isEnabled(Flags.SCREENSHOT_WORK_PROFILE_POLICY)) { + prepareSharedTransition(); mActionExecutor.launchIntentAsync( ActionIntentCreator.INSTANCE.createEditIntent(imageData.uri, mContext), imageData.editTransition.get().bundle, @@ -1064,6 +1068,12 @@ public class ScreenshotView extends FrameLayout implements } } + private void prepareSharedTransition() { + mPendingSharedTransition = true; + // fade out non-preview UI + createScreenshotFadeDismissAnimation().start(); + } + ValueAnimator createScreenshotFadeDismissAnimation() { ValueAnimator alphaAnim = ValueAnimator.ofFloat(0, 1); alphaAnim.addUpdateListener(animation -> {