summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Matt Casey <mrcasey@google.com> 2024-02-01 19:12:48 +0000
committer Matt Casey <mrcasey@google.com> 2024-02-07 15:53:40 +0000
commite6753e245adabd9610c8d9564b77cb2944ded361 (patch)
tree70471a62911ebd60a5949a3567e3e613e65db1c5
parent1e5c0ca65d0f9c21a0f2148892693f1c4c224a1e (diff)
Add API for sharesheet text album hint
An integer extra for ACTION_CHOOSER intents that can tell sharesheets that display a headline to describe the text being shared as an album (with potential to add other types in future releases). Test: CTS Verifier Bug: 323380224 Change-Id: Ia758c28dcdde13c2a0f67ec00cc7f7c9bf99baa3
-rw-r--r--core/api/current.txt2
-rw-r--r--core/java/android/content/Intent.java30
-rw-r--r--core/java/android/service/chooser/flags.aconfig7
3 files changed, 39 insertions, 0 deletions
diff --git a/core/api/current.txt b/core/api/current.txt
index aec284287020..286fe86b4895 100644
--- a/core/api/current.txt
+++ b/core/api/current.txt
@@ -11233,6 +11233,7 @@ package android.content {
field public static final String CATEGORY_UNIT_TEST = "android.intent.category.UNIT_TEST";
field public static final String CATEGORY_VOICE = "android.intent.category.VOICE";
field public static final String CATEGORY_VR_HOME = "android.intent.category.VR_HOME";
+ field @FlaggedApi("android.service.chooser.chooser_album_text") public static final int CHOOSER_CONTENT_TYPE_ALBUM = 1; // 0x1
field @NonNull public static final android.os.Parcelable.Creator<android.content.Intent> CREATOR;
field public static final String EXTRA_ALARM_COUNT = "android.intent.extra.ALARM_COUNT";
field public static final String EXTRA_ALLOW_MULTIPLE = "android.intent.extra.ALLOW_MULTIPLE";
@@ -11254,6 +11255,7 @@ package android.content {
field public static final String EXTRA_CHANGED_COMPONENT_NAME_LIST = "android.intent.extra.changed_component_name_list";
field public static final String EXTRA_CHANGED_PACKAGE_LIST = "android.intent.extra.changed_package_list";
field public static final String EXTRA_CHANGED_UID_LIST = "android.intent.extra.changed_uid_list";
+ field @FlaggedApi("android.service.chooser.chooser_album_text") public static final String EXTRA_CHOOSER_CONTENT_TYPE_HINT = "android.intent.extra.CHOOSER_CONTENT_TYPE_HINT";
field public static final String EXTRA_CHOOSER_CUSTOM_ACTIONS = "android.intent.extra.CHOOSER_CUSTOM_ACTIONS";
field public static final String EXTRA_CHOOSER_MODIFY_SHARE_ACTION = "android.intent.extra.CHOOSER_MODIFY_SHARE_ACTION";
field public static final String EXTRA_CHOOSER_REFINEMENT_INTENT_SENDER = "android.intent.extra.CHOOSER_REFINEMENT_INTENT_SENDER";
diff --git a/core/java/android/content/Intent.java b/core/java/android/content/Intent.java
index d5eee63fee12..08871d4644c0 100644
--- a/core/java/android/content/Intent.java
+++ b/core/java/android/content/Intent.java
@@ -6034,6 +6034,36 @@ public class Intent implements Parcelable, Cloneable {
"android.intent.extra.CHOOSER_MODIFY_SHARE_ACTION";
/**
+ * Optional integer extra to be used with {@link #ACTION_CHOOSER} to describe conteng being
+ * shared.
+ * <p>
+ * If provided, sharesheets may customize their UI presentation to include a more precise
+ * description of the content being shared.
+ *
+ * @see #CHOOSER_CONTENT_TYPE_ALBUM
+ * @see #createChooser(Intent, CharSequence)
+ */
+ @FlaggedApi(android.service.chooser.Flags.FLAG_CHOOSER_ALBUM_TEXT)
+ public static final String EXTRA_CHOOSER_CONTENT_TYPE_HINT =
+ "android.intent.extra.CHOOSER_CONTENT_TYPE_HINT";
+
+ /** @hide */
+ @IntDef(prefix = {"CHOOSER_CONTENT_TYPE_"}, value = {
+ CHOOSER_CONTENT_TYPE_ALBUM,
+ })
+ @Retention(RetentionPolicy.SOURCE)
+ public @interface ChooserContentType {}
+
+ /**
+ * Indicates that the content being shared with {@link #ACTION_SEND} represents an album
+ * (e.g. containing photos).
+ *
+ * @see #EXTRA_CHOOSER_CONTENT_TYPE_HINT
+ */
+ @FlaggedApi(android.service.chooser.Flags.FLAG_CHOOSER_ALBUM_TEXT)
+ public static final int CHOOSER_CONTENT_TYPE_ALBUM = 1;
+
+ /**
* An {@code ArrayList} of {@code String} annotations describing content for
* {@link #ACTION_CHOOSER}.
*
diff --git a/core/java/android/service/chooser/flags.aconfig b/core/java/android/service/chooser/flags.aconfig
index 597838305a91..d655920bbc03 100644
--- a/core/java/android/service/chooser/flags.aconfig
+++ b/core/java/android/service/chooser/flags.aconfig
@@ -1,6 +1,13 @@
package: "android.service.chooser"
flag {
+ name: "chooser_album_text"
+ namespace: "intentresolver"
+ description: "Flag controlling the album text subtype hint for sharesheet"
+ bug: "323380224"
+}
+
+flag {
name: "support_nfc_resolver"
namespace: "systemui"
description: "This flag controls the new NFC 'resolver' activity"