From c0662f6b855dd661dc12ee50a50031c88aac2997 Mon Sep 17 00:00:00 2001 From: Andrey Epin Date: Wed, 22 Feb 2023 22:19:57 -0800 Subject: Fix alternate intents in the intent refinement call. Add test to validate that getParcelableArrayExtra() works with the Intent that is sent. Bug: 270552026 Test: atest ChooserRefinementManagerTest Change-Id: Id1a6b374c36b11334278eeee35dcec4bec240101 --- java/src/com/android/intentresolver/ChooserRefinementManager.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'java/src') diff --git a/java/src/com/android/intentresolver/ChooserRefinementManager.java b/java/src/com/android/intentresolver/ChooserRefinementManager.java index 98c6bddc..5b5c1d32 100644 --- a/java/src/com/android/intentresolver/ChooserRefinementManager.java +++ b/java/src/com/android/intentresolver/ChooserRefinementManager.java @@ -121,10 +121,13 @@ public final class ChooserRefinementManager { final Intent fillIn = new Intent(); final List sourceIntents = originalTarget.getAllSourceIntents(); fillIn.putExtra(Intent.EXTRA_INTENT, sourceIntents.get(0)); - if (sourceIntents.size() > 1) { + final int sourceIntentCount = sourceIntents.size(); + if (sourceIntentCount > 1) { fillIn.putExtra( Intent.EXTRA_ALTERNATE_INTENTS, - sourceIntents.subList(1, sourceIntents.size()).toArray()); + sourceIntents + .subList(1, sourceIntentCount) + .toArray(new Intent[sourceIntentCount - 1])); } fillIn.putExtra(Intent.EXTRA_RESULT_RECEIVER, resultReceiver.copyForSending()); return fillIn; -- cgit v1.2.3-59-g8ed1b