From 42b0c4dcf0e8e61280143a9056a81235f587d82f Mon Sep 17 00:00:00 2001 From: Alex Hills Date: Tue, 26 Apr 2016 13:35:36 -0400 Subject: [PATCH] Move allowGeneratedReplies to Action Bug:28044251 Change-Id: If25d63a32f82537432858b1a31e78292638631b7 --- api/current.txt | 5 +- api/system-current.txt | 5 +- api/test-current.txt | 5 +- core/java/android/app/Notification.java | 68 ++++++++++++------------- 4 files changed, 39 insertions(+), 44 deletions(-) diff --git a/api/current.txt b/api/current.txt index 1810d7802e4f9..727bea41204d6 100644 --- a/api/current.txt +++ b/api/current.txt @@ -4924,7 +4924,6 @@ package android.app { field public static final int DEFAULT_LIGHTS = 4; // 0x4 field public static final int DEFAULT_SOUND = 1; // 0x1 field public static final int DEFAULT_VIBRATE = 2; // 0x2 - field public static final java.lang.String EXTRA_ALLOW_GENERATED_REPLIES = "android.allowGeneratedReplies"; field public static final java.lang.String EXTRA_BACKGROUND_IMAGE_URI = "android.backgroundImageUri"; field public static final java.lang.String EXTRA_BIG_TEXT = "android.bigText"; field public static final java.lang.String EXTRA_CHRONOMETER_COUNTS_DOWN = "android.chronometerCountsDown"; @@ -5007,6 +5006,7 @@ package android.app { ctor public deprecated Notification.Action(int, java.lang.CharSequence, android.app.PendingIntent); method public android.app.Notification.Action clone(); method public int describeContents(); + method public boolean getAllowGeneratedReplies(); method public android.os.Bundle getExtras(); method public android.graphics.drawable.Icon getIcon(); method public android.app.RemoteInput[] getRemoteInputs(); @@ -5026,6 +5026,7 @@ package android.app { method public android.app.Notification.Action build(); method public android.app.Notification.Action.Builder extend(android.app.Notification.Action.Extender); method public android.os.Bundle getExtras(); + method public android.app.Notification.Action.Builder setAllowGeneratedReplies(boolean); } public static abstract interface Notification.Action.Extender { @@ -5193,11 +5194,9 @@ package android.app { ctor public Notification.MessagingStyle(java.lang.CharSequence); method public android.app.Notification.MessagingStyle addMessage(java.lang.CharSequence, long, java.lang.CharSequence); method public android.app.Notification.MessagingStyle addMessage(android.app.Notification.MessagingStyle.Message); - method public boolean getAllowGeneratedReplies(); method public java.lang.CharSequence getConversationTitle(); method public java.util.List getMessages(); method public java.lang.CharSequence getUserDisplayName(); - method public android.app.Notification.MessagingStyle setAllowGeneratedReplies(boolean); method public android.app.Notification.MessagingStyle setConversationTitle(java.lang.CharSequence); field public static final int MAXIMUM_RETAINED_MESSAGES = 25; // 0x19 } diff --git a/api/system-current.txt b/api/system-current.txt index 3fe962efff7c8..998878df9ac96 100644 --- a/api/system-current.txt +++ b/api/system-current.txt @@ -5067,7 +5067,6 @@ package android.app { field public static final int DEFAULT_LIGHTS = 4; // 0x4 field public static final int DEFAULT_SOUND = 1; // 0x1 field public static final int DEFAULT_VIBRATE = 2; // 0x2 - field public static final java.lang.String EXTRA_ALLOW_GENERATED_REPLIES = "android.allowGeneratedReplies"; field public static final java.lang.String EXTRA_BACKGROUND_IMAGE_URI = "android.backgroundImageUri"; field public static final java.lang.String EXTRA_BIG_TEXT = "android.bigText"; field public static final java.lang.String EXTRA_CHRONOMETER_COUNTS_DOWN = "android.chronometerCountsDown"; @@ -5152,6 +5151,7 @@ package android.app { ctor public deprecated Notification.Action(int, java.lang.CharSequence, android.app.PendingIntent); method public android.app.Notification.Action clone(); method public int describeContents(); + method public boolean getAllowGeneratedReplies(); method public android.os.Bundle getExtras(); method public android.graphics.drawable.Icon getIcon(); method public android.app.RemoteInput[] getRemoteInputs(); @@ -5171,6 +5171,7 @@ package android.app { method public android.app.Notification.Action build(); method public android.app.Notification.Action.Builder extend(android.app.Notification.Action.Extender); method public android.os.Bundle getExtras(); + method public android.app.Notification.Action.Builder setAllowGeneratedReplies(boolean); } public static abstract interface Notification.Action.Extender { @@ -5338,11 +5339,9 @@ package android.app { ctor public Notification.MessagingStyle(java.lang.CharSequence); method public android.app.Notification.MessagingStyle addMessage(java.lang.CharSequence, long, java.lang.CharSequence); method public android.app.Notification.MessagingStyle addMessage(android.app.Notification.MessagingStyle.Message); - method public boolean getAllowGeneratedReplies(); method public java.lang.CharSequence getConversationTitle(); method public java.util.List getMessages(); method public java.lang.CharSequence getUserDisplayName(); - method public android.app.Notification.MessagingStyle setAllowGeneratedReplies(boolean); method public android.app.Notification.MessagingStyle setConversationTitle(java.lang.CharSequence); field public static final int MAXIMUM_RETAINED_MESSAGES = 25; // 0x19 } diff --git a/api/test-current.txt b/api/test-current.txt index e5e84e7b3373f..ff17712e9fa03 100644 --- a/api/test-current.txt +++ b/api/test-current.txt @@ -4924,7 +4924,6 @@ package android.app { field public static final int DEFAULT_LIGHTS = 4; // 0x4 field public static final int DEFAULT_SOUND = 1; // 0x1 field public static final int DEFAULT_VIBRATE = 2; // 0x2 - field public static final java.lang.String EXTRA_ALLOW_GENERATED_REPLIES = "android.allowGeneratedReplies"; field public static final java.lang.String EXTRA_BACKGROUND_IMAGE_URI = "android.backgroundImageUri"; field public static final java.lang.String EXTRA_BIG_TEXT = "android.bigText"; field public static final java.lang.String EXTRA_CHRONOMETER_COUNTS_DOWN = "android.chronometerCountsDown"; @@ -5007,6 +5006,7 @@ package android.app { ctor public deprecated Notification.Action(int, java.lang.CharSequence, android.app.PendingIntent); method public android.app.Notification.Action clone(); method public int describeContents(); + method public boolean getAllowGeneratedReplies(); method public android.os.Bundle getExtras(); method public android.graphics.drawable.Icon getIcon(); method public android.app.RemoteInput[] getRemoteInputs(); @@ -5026,6 +5026,7 @@ package android.app { method public android.app.Notification.Action build(); method public android.app.Notification.Action.Builder extend(android.app.Notification.Action.Extender); method public android.os.Bundle getExtras(); + method public android.app.Notification.Action.Builder setAllowGeneratedReplies(boolean); } public static abstract interface Notification.Action.Extender { @@ -5193,11 +5194,9 @@ package android.app { ctor public Notification.MessagingStyle(java.lang.CharSequence); method public android.app.Notification.MessagingStyle addMessage(java.lang.CharSequence, long, java.lang.CharSequence); method public android.app.Notification.MessagingStyle addMessage(android.app.Notification.MessagingStyle.Message); - method public boolean getAllowGeneratedReplies(); method public java.lang.CharSequence getConversationTitle(); method public java.util.List getMessages(); method public java.lang.CharSequence getUserDisplayName(); - method public android.app.Notification.MessagingStyle setAllowGeneratedReplies(boolean); method public android.app.Notification.MessagingStyle setConversationTitle(java.lang.CharSequence); field public static final int MAXIMUM_RETAINED_MESSAGES = 25; // 0x19 } diff --git a/core/java/android/app/Notification.java b/core/java/android/app/Notification.java index d7705b9ca830e..bef25c2080ce5 100644 --- a/core/java/android/app/Notification.java +++ b/core/java/android/app/Notification.java @@ -938,14 +938,6 @@ public class Notification implements Parcelable */ public static final String EXTRA_SELF_DISPLAY_NAME = "android.selfDisplayName"; - /** - * {@link #extras} key: a boolean describing whether the platform should automatically - * generate possible replies to - * {@link android.app.Notification.MessagingStyle.Message} objects provided by a - * {@link android.app.Notification.MessagingStyle} notification. - */ - public static final String EXTRA_ALLOW_GENERATED_REPLIES = "android.allowGeneratedReplies"; - /** * {@link #extras} key: a {@link String} to be displayed as the title to a conversation * represented by a {@link android.app.Notification.MessagingStyle} @@ -996,6 +988,7 @@ public class Notification implements Parcelable private final Bundle mExtras; private Icon mIcon; private final RemoteInput[] mRemoteInputs; + private boolean mAllowGeneratedReplies = false; /** * Small icon representing the action. @@ -1029,6 +1022,7 @@ public class Notification implements Parcelable } mExtras = Bundle.setDefusable(in.readBundle(), true); mRemoteInputs = in.createTypedArray(RemoteInput.CREATOR); + mAllowGeneratedReplies = in.readInt() == 1; } /** @@ -1036,11 +1030,11 @@ public class Notification implements Parcelable */ @Deprecated public Action(int icon, CharSequence title, PendingIntent intent) { - this(Icon.createWithResource("", icon), title, intent, new Bundle(), null); + this(Icon.createWithResource("", icon), title, intent, new Bundle(), null, false); } private Action(Icon icon, CharSequence title, PendingIntent intent, Bundle extras, - RemoteInput[] remoteInputs) { + RemoteInput[] remoteInputs, boolean allowGeneratedReplies) { this.mIcon = icon; if (icon != null && icon.getType() == Icon.TYPE_RESOURCE) { this.icon = icon.getResId(); @@ -1049,6 +1043,7 @@ public class Notification implements Parcelable this.actionIntent = intent; this.mExtras = extras != null ? extras : new Bundle(); this.mRemoteInputs = remoteInputs; + this.mAllowGeneratedReplies = allowGeneratedReplies; } /** @@ -1069,6 +1064,14 @@ public class Notification implements Parcelable return mExtras; } + /** + * Return whether the platform should automatically generate possible replies for this + * {@link Action} + */ + public boolean getAllowGeneratedReplies() { + return mAllowGeneratedReplies; + } + /** * Get the list of inputs to be collected from the user when this action is sent. * May return null if no remote inputs were added. @@ -1084,6 +1087,7 @@ public class Notification implements Parcelable private final Icon mIcon; private final CharSequence mTitle; private final PendingIntent mIntent; + private boolean mAllowGeneratedReplies; private final Bundle mExtras; private ArrayList mRemoteInputs; @@ -1168,6 +1172,20 @@ public class Notification implements Parcelable return this; } + /** + * Set whether the platform should automatically generate possible replies to add to + * {@link RemoteInput#getChoices()}. If the {@link Action} doesn't have a + * {@link RemoteInput}, this has no effect. + * @param allowGeneratedReplies {@code true} to allow generated replies, {@code false} + * otherwise + * @return this object for method chaining + * The default value is {@code false} + */ + public Builder setAllowGeneratedReplies(boolean allowGeneratedReplies) { + mAllowGeneratedReplies = allowGeneratedReplies; + return this; + } + /** * Apply an extender to this action builder. Extenders may be used to add * metadata or change options on this builder. @@ -1185,7 +1203,8 @@ public class Notification implements Parcelable public Action build() { RemoteInput[] remoteInputs = mRemoteInputs != null ? mRemoteInputs.toArray(new RemoteInput[mRemoteInputs.size()]) : null; - return new Action(mIcon, mTitle, mIntent, mExtras, remoteInputs); + return new Action(mIcon, mTitle, mIntent, mExtras, remoteInputs, + mAllowGeneratedReplies); } } @@ -1196,7 +1215,8 @@ public class Notification implements Parcelable title, actionIntent, // safe to alias new Bundle(mExtras), - getRemoteInputs()); + getRemoteInputs(), + getAllowGeneratedReplies()); } @Override public int describeContents() { @@ -1220,6 +1240,7 @@ public class Notification implements Parcelable } out.writeBundle(mExtras); out.writeTypedArray(mRemoteInputs, flags); + out.writeInt(mAllowGeneratedReplies ? 1 : 0); } public static final Parcelable.Creator CREATOR = new Parcelable.Creator() { @@ -4326,7 +4347,6 @@ public class Notification implements Parcelable CharSequence mUserDisplayName; CharSequence mConversationTitle; - boolean mAllowGeneratedReplies = true; List mMessages = new ArrayList<>(); MessagingStyle() { @@ -4349,25 +4369,6 @@ public class Notification implements Parcelable return mUserDisplayName; } - /** - * Set whether the platform should automatically generate possible replies from messages. - * @param allowGeneratedReplies {@code true} to allow generated replies, {@code false} - * otherwise - * @return this object for method chaining - * The default value is {@code true} - */ - public MessagingStyle setAllowGeneratedReplies(boolean allowGeneratedReplies) { - mAllowGeneratedReplies = allowGeneratedReplies; - return this; - } - - /** - * Return whether the platform should automatically generate possible replies from messages. - */ - public boolean getAllowGeneratedReplies() { - return mAllowGeneratedReplies; - } - /** * Sets the title to be displayed on this conversation. This should only be used for * group messaging and left unset for one-on-one conversations. @@ -4442,7 +4443,6 @@ public class Notification implements Parcelable if (mConversationTitle != null) { extras.putCharSequence(EXTRA_CONVERSATION_TITLE, mConversationTitle); } - extras.putBoolean(EXTRA_ALLOW_GENERATED_REPLIES, mAllowGeneratedReplies); if (!mMessages.isEmpty()) { extras.putParcelableArray(EXTRA_MESSAGES, Message.getBundleArrayForMessages(mMessages)); } @@ -4458,8 +4458,6 @@ public class Notification implements Parcelable mMessages.clear(); mUserDisplayName = extras.getString(EXTRA_SELF_DISPLAY_NAME); mConversationTitle = extras.getString(EXTRA_CONVERSATION_TITLE); - mAllowGeneratedReplies = extras.getBoolean(EXTRA_ALLOW_GENERATED_REPLIES, - mAllowGeneratedReplies); Parcelable[] parcelables = extras.getParcelableArray(EXTRA_MESSAGES); if (parcelables != null && parcelables instanceof Bundle[]) { mMessages = Message.getMessagesFromBundleArray((Bundle[]) parcelables);