From 0511077086852d8b987e70eb57ab30dfc0148a7b Mon Sep 17 00:00:00 2001 From: Mark Renouf Date: Tue, 20 Feb 2024 09:49:03 -0500 Subject: Check for EXTRA_CHOOSER_RESULT for backcompat until V2 is released This keeps the existing functionality working in V1, with the flag enabled for apps using Intent.createChooser which will begin sending the new extra value. The extra used has no bearing on functionality. With the feature flag disabled, the same functionality continues while also accepting the the extra name from Intent.createChooser. Without this, apps using Intent.createChooser will stop receiving results with the flag[1] disabled. [1] intentresolver/com.android.intentresolver.modular_framework Bug: 325545074 Test: atest android.content.cts.IntentTest#testCreateChooser Change-Id: Id25de6410835a85e71cb58277015d8ede51f4e4d --- .../android/intentresolver/ChooserRequestParameters.java | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) (limited to 'java') diff --git a/java/src/com/android/intentresolver/ChooserRequestParameters.java b/java/src/com/android/intentresolver/ChooserRequestParameters.java index 968aee2e..6c7f8264 100644 --- a/java/src/com/android/intentresolver/ChooserRequestParameters.java +++ b/java/src/com/android/intentresolver/ChooserRequestParameters.java @@ -16,6 +16,8 @@ package com.android.intentresolver; +import static java.util.Objects.requireNonNullElse; + import android.content.ComponentName; import android.content.Intent; import android.content.IntentFilter; @@ -41,6 +43,8 @@ import java.net.URISyntaxException; import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import java.util.Objects; +import java.util.Optional; import java.util.stream.Collector; import java.util.stream.Collectors; import java.util.stream.Stream; @@ -128,8 +132,14 @@ public class ChooserRequestParameters { mReferrerFillInIntent = new Intent().putExtra(Intent.EXTRA_REFERRER, referrer); - mChosenComponentSender = clientIntent.getParcelableExtra( - Intent.EXTRA_CHOSEN_COMPONENT_INTENT_SENDER); + mChosenComponentSender = + Optional.ofNullable( + clientIntent.getParcelableExtra(Intent.EXTRA_CHOSEN_COMPONENT_INTENT_SENDER, + IntentSender.class)) + .orElse(clientIntent.getParcelableExtra( + Intent.EXTRA_CHOOSER_RESULT_INTENT_SENDER, + IntentSender.class)); + mRefinementIntentSender = clientIntent.getParcelableExtra( Intent.EXTRA_CHOOSER_REFINEMENT_INTENT_SENDER); -- cgit v1.2.3-59-g8ed1b