From 03efadfcfb83baa597e48c9e99dfb5ae56e28bf6 Mon Sep 17 00:00:00 2001 From: Jon Moeller Date: Tue, 29 Mar 2022 02:04:29 +0000 Subject: [PATCH] Add Extra to mark ClipData items as "sensitive". This extra enables applications to mark ClipData items as sensitive, indicating that the data within should not ordinarily be displayed. Applications (e.g. IMEs that store clipboard history) can use this flag to prevent sensitive data from being unintentionally displayed on screen. Bug: 195554988 Test: N/A Change-Id: Ibccd3944842a40d3e5afec2dd99f32eb7a3564db --- core/api/current.txt | 1 + .../java/android/content/ClipDescription.java | 20 +++++++++++++++++++ 2 files changed, 21 insertions(+) diff --git a/core/api/current.txt b/core/api/current.txt index 92c2636245273..c33ee6563a970 100644 --- a/core/api/current.txt +++ b/core/api/current.txt @@ -9225,6 +9225,7 @@ package android.content { field public static final int CLASSIFICATION_NOT_COMPLETE = 1; // 0x1 field public static final int CLASSIFICATION_NOT_PERFORMED = 2; // 0x2 field @NonNull public static final android.os.Parcelable.Creator CREATOR; + field public static final String EXTRA_IS_SENSITIVE = "android.content.extra.IS_SENSITIVE"; field public static final String MIMETYPE_TEXT_HTML = "text/html"; field public static final String MIMETYPE_TEXT_INTENT = "text/vnd.android.intent"; field public static final String MIMETYPE_TEXT_PLAIN = "text/plain"; diff --git a/core/java/android/content/ClipDescription.java b/core/java/android/content/ClipDescription.java index 2ecd71bc1f06b..bf466116009b0 100644 --- a/core/java/android/content/ClipDescription.java +++ b/core/java/android/content/ClipDescription.java @@ -134,6 +134,26 @@ public class ClipDescription implements Parcelable { public static final String EXTRA_LOGGING_INSTANCE_ID = "android.intent.extra.LOGGING_INSTANCE_ID"; + /** + * Indicates that a ClipData contains potentially sensitive information, such as a + * password or credit card number. + *

+ * Type: boolean + *

+ *

+ * This extra can be used to indicate that a ClipData contains sensitive information that + * should be redacted or hidden from view until a user takes explicit action to reveal it + * (e.g., by pasting). + *

+ *

+ * Adding this extra does not change clipboard behavior or add additional security to + * the ClipData. Its purpose is essentially a rendering hint from the source application, + * asking that the data within be obfuscated or redacted, unless the user has taken action + * to make it visible. + *

+ */ + public static final String EXTRA_IS_SENSITIVE = "android.content.extra.IS_SENSITIVE"; + /** @hide */ @Retention(RetentionPolicy.SOURCE) @IntDef(value =