summaryrefslogtreecommitdiff
path: root/java/src
diff options
context:
space:
mode:
author Mark Renouf <mrenouf@google.com> 2024-05-29 21:46:09 -0400
committer Mark Renouf <mrenouf@google.com> 2024-05-30 13:18:45 -0400
commit7ba95b9cfbcef84efbcc0ccc3ac596ab08d320e3 (patch)
tree5b17cbb416233f6934cbf7394d733a9ab9f9aa3b /java/src
parent5c9c3a7462dc45907ee30516f43aff68ada3d06d (diff)
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
Diffstat (limited to 'java/src')
-rw-r--r--java/src/com/android/intentresolver/ChooserActionFactory.java4
-rw-r--r--java/src/com/android/intentresolver/ChooserActivity.java6
2 files changed, 8 insertions, 2 deletions
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) {