From 7ba95b9cfbcef84efbcc0ccc3ac596ab08d320e3 Mon Sep 17 00:00:00 2001 From: Mark Renouf Date: Wed, 29 May 2024 21:46:09 -0400 Subject: Suppress ShareResult for launch of Editor component An edit action is reported explicitly as a ShareResult with type=EDIT. This change suppresses dispatch of a ShareResult with type 'COMPONENT_SELECTED' type when launching the editor component. Test: CTS-V Bug: NONE Flag: EXEMPT bugfix Change-Id: Ie13464cba88191dc26d8e5d9758541fd6c75017c --- java/src/com/android/intentresolver/ChooserActionFactory.java | 4 +++- java/src/com/android/intentresolver/ChooserActivity.java | 6 +++++- 2 files changed, 8 insertions(+), 2 deletions(-) (limited to 'java/src') diff --git a/java/src/com/android/intentresolver/ChooserActionFactory.java b/java/src/com/android/intentresolver/ChooserActionFactory.java index 79998fbc..d6153b36 100644 --- a/java/src/com/android/intentresolver/ChooserActionFactory.java +++ b/java/src/com/android/intentresolver/ChooserActionFactory.java @@ -88,7 +88,9 @@ public final class ChooserActionFactory implements ChooserContentPreviewUi.Actio // Boolean extra used to inform the editor that it may want to customize the editing experience // for the sharesheet editing flow. - private static final String EDIT_SOURCE = "edit_source"; + // Note: EDIT_SOURCE is also used as a signal to avoid sending a 'Component Selected' + // ShareResult for this intent when sent via ChooserActivity#safelyStartActivityAsUser + static final String EDIT_SOURCE = "edit_source"; private static final String EDIT_SOURCE_SHARESHEET = "sharesheet"; private static final String CHIP_LABEL_METADATA_KEY = "android.service.chooser.chip_label"; diff --git a/java/src/com/android/intentresolver/ChooserActivity.java b/java/src/com/android/intentresolver/ChooserActivity.java index 9643b9f0..66810187 100644 --- a/java/src/com/android/intentresolver/ChooserActivity.java +++ b/java/src/com/android/intentresolver/ChooserActivity.java @@ -22,6 +22,7 @@ import static android.view.WindowManager.LayoutParams.SYSTEM_FLAG_HIDE_NON_SYSTE import static androidx.lifecycle.LifecycleKt.getCoroutineScope; +import static com.android.intentresolver.ChooserActionFactory.EDIT_SOURCE; import static com.android.intentresolver.ext.CreationExtrasExtKt.addDefaultArgs; import static com.android.intentresolver.profiles.MultiProfilePagerAdapter.PROFILE_PERSONAL; import static com.android.intentresolver.profiles.MultiProfilePagerAdapter.PROFILE_WORK; @@ -1079,7 +1080,10 @@ public class ChooserActivity extends Hilt_ChooserActivity implements } try { if (cti.startAsCaller(this, options, user.getIdentifier())) { - maybeSendShareResult(cti); + // Prevent sending a second chooser result when starting the edit action intent. + if (!cti.getTargetIntent().hasExtra(EDIT_SOURCE)) { + maybeSendShareResult(cti); + } maybeLogCrossProfileTargetLaunch(cti, user); } } catch (RuntimeException e) { -- cgit v1.2.3-59-g8ed1b