lightbulb_outline Help shape the future of the Google Play Console, Android Studio, and Firebase. Start survey
added in version 24.1.0
belongs to Maven artifact com.android.support:support-compat:28.0.0-alpha1

NotificationCompat.MessagingStyle

public static class NotificationCompat.MessagingStyle
extends NotificationCompat.Style

java.lang.Object
   ↳ android.support.v4.app.NotificationCompat.Style
     ↳ android.support.v4.app.NotificationCompat.MessagingStyle


Helper class for generating large-format notifications that include multiple back-and-forth messages of varying types between any number of people.
In order to get a backwards compatible behavior, the app needs to use the v7 version of the notification builder together with this style, otherwise the user will see the normal notification view.
Use setConversationTitle(CharSequence) to set a conversation title for group chats with more than two people. This could be the user-created name of the group or, if it doesn't have a specific name, a list of the participants in the conversation. Do not set a conversation title for one-on-one chats, since platforms use the existence of this field as a hint that the conversation is a group.
This class is a "rebuilder": It attaches to a Builder object and modifies its behavior, like so:


 Notification notification = new Notification.Builder()
     .setContentTitle("2 new messages with " + sender.toString())
     .setContentText(subject)
     .setSmallIcon(R.drawable.new_message)
     .setLargeIcon(aBitmap)
     .setStyle(new Notification.MessagingStyle(resources.getString(R.string.reply_name))
         .addMessage(messages[0].getText(), messages[0].getTime(), messages[0].getSender())
         .addMessage(messages[1].getText(), messages[1].getTime(), messages[1].getSender()))
     .build();
 

Summary

Nested classes

class NotificationCompat.MessagingStyle.Message

 

Constants

int MAXIMUM_RETAINED_MESSAGES

The maximum number of messages that will be retained in the Notification itself (the number displayed is up to the platform).

Public constructors

NotificationCompat.MessagingStyle(CharSequence userDisplayName)

Public methods

void addCompatExtras(Bundle extras)
NotificationCompat.MessagingStyle addMessage(CharSequence text, long timestamp, CharSequence sender)

Adds a message for display by this notification.

NotificationCompat.MessagingStyle addMessage(NotificationCompat.MessagingStyle.Message message)

Adds a NotificationCompat.MessagingStyle.Message for display in this notification.

static NotificationCompat.MessagingStyle extractMessagingStyleFromNotification(Notification notification)

Retrieves a NotificationCompat.MessagingStyle from a Notification, enabling an application that has set a NotificationCompat.MessagingStyle using NotificationCompat or Notification.Builder to send messaging information to another application using NotificationCompat, regardless of the API level of the system.

CharSequence getConversationTitle()

Return the title to be displayed on this conversation.

List<NotificationCompat.MessagingStyle.Message> getMessages()

Gets the list of Message objects that represent the notification

CharSequence getUserDisplayName()

Returns the name to be displayed for any replies sent by the user

boolean isGroupConversation()

Returns true if this notification represents a group conversation, otherwise false.

NotificationCompat.MessagingStyle setConversationTitle(CharSequence conversationTitle)

Sets the title to be displayed on this conversation.

NotificationCompat.MessagingStyle setGroupConversation(boolean isGroupConversation)

Sets whether this conversation notification represents a group.

Inherited methods

From class android.support.v4.app.NotificationCompat.Style
From class java.lang.Object

Constants

MAXIMUM_RETAINED_MESSAGES

added in version 24.1.0
int MAXIMUM_RETAINED_MESSAGES

The maximum number of messages that will be retained in the Notification itself (the number displayed is up to the platform).

Constant Value: 25 (0x00000019)

Public constructors

NotificationCompat.MessagingStyle

added in version 24.1.0
NotificationCompat.MessagingStyle (CharSequence userDisplayName)

Parameters
userDisplayName CharSequence: Required - the name to be displayed for any replies sent by the user before the posting app reposts the notification with those messages after they've been actually sent and in previous messages sent by the user added in addMessage(Message)

Public methods

addCompatExtras

added in version 24.1.0
void addCompatExtras (Bundle extras)

Parameters
extras Bundle

addMessage

added in version 24.1.0
NotificationCompat.MessagingStyle addMessage (CharSequence text, 
                long timestamp, 
                CharSequence sender)

Adds a message for display by this notification. Convenience call for a simple NotificationCompat.MessagingStyle.Message in addMessage(Message)

Parameters
text CharSequence: A CharSequence to be displayed as the message content

timestamp long: Time at which the message arrived in ms since Unix epoch

sender CharSequence: A CharSequence to be used for displaying the name of the sender. Should be null for messages by the current user, in which case the platform will insert getUserDisplayName(). Should be unique amongst all individuals in the conversation, and should be consistent during re-posts of the notification.

Returns
NotificationCompat.MessagingStyle this object for method chaining

addMessage

added in version 24.1.0
NotificationCompat.MessagingStyle addMessage (NotificationCompat.MessagingStyle.Message message)

Adds a NotificationCompat.MessagingStyle.Message for display in this notification.

Parameters
message NotificationCompat.MessagingStyle.Message: The NotificationCompat.MessagingStyle.Message to be displayed

Returns
NotificationCompat.MessagingStyle this object for method chaining

extractMessagingStyleFromNotification

added in version 24.1.0
NotificationCompat.MessagingStyle extractMessagingStyleFromNotification (Notification notification)

Retrieves a NotificationCompat.MessagingStyle from a Notification, enabling an application that has set a NotificationCompat.MessagingStyle using NotificationCompat or Notification.Builder to send messaging information to another application using NotificationCompat, regardless of the API level of the system. Returns null if there is no NotificationCompat.MessagingStyle set.

Parameters
notification Notification

Returns
NotificationCompat.MessagingStyle

getConversationTitle

added in version 24.1.0
CharSequence getConversationTitle ()

Return the title to be displayed on this conversation. Can be null.

Returns
CharSequence

getMessages

added in version 24.1.0
List<NotificationCompat.MessagingStyle.Message> getMessages ()

Gets the list of Message objects that represent the notification

Returns
List<NotificationCompat.MessagingStyle.Message>

getUserDisplayName

added in version 24.1.0
CharSequence getUserDisplayName ()

Returns the name to be displayed for any replies sent by the user

Returns
CharSequence

isGroupConversation

boolean isGroupConversation ()

Returns true if this notification represents a group conversation, otherwise false.

If the application that generated this NotificationCompat.MessagingStyle targets an SDK version less than P, this method becomes dependent on whether or not the conversation title is set; returning true if the conversation title is a non-null value, or false otherwise. From P forward, this method returns what's set by setGroupConversation(boolean) allowing for named, non-group conversations.

Returns
boolean

setConversationTitle

added in version 24.1.0
NotificationCompat.MessagingStyle setConversationTitle (CharSequence conversationTitle)

Sets the title to be displayed on this conversation. May be set to null.

This API's behavior was changed in SDK version P. If your application's target version is less than P, setting a conversation title to a non-null value will make isGroupConversation() return true and passing null will make it return false. In P and beyond, use setGroupConversation(boolean) to set group conversation status.

Parameters
conversationTitle CharSequence: Title displayed for this conversation

Returns
NotificationCompat.MessagingStyle this object for method chaining

setGroupConversation

NotificationCompat.MessagingStyle setGroupConversation (boolean isGroupConversation)

Sets whether this conversation notification represents a group.

Parameters
isGroupConversation boolean: true if the conversation represents a group, false otherwise.

Returns
NotificationCompat.MessagingStyle this object for method chaining