diff options
author | 2024-02-20 09:49:03 -0500 | |
---|---|---|
committer | 2024-02-20 15:36:42 +0000 | |
commit | 0511077086852d8b987e70eb57ab30dfc0148a7b (patch) | |
tree | d8e9f33eff023cbf6bc1aa032a4f5ab336e78c2a /java | |
parent | cb295796fbbcb96686475f7631a029209d2d9474 (diff) |
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
Diffstat (limited to 'java')
-rw-r--r-- | java/src/com/android/intentresolver/ChooserRequestParameters.java | 14 |
1 files changed, 12 insertions, 2 deletions
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); |