Android 12 Developer Preview is here! Try it out, and give us your feedback!

MessagingStyle

open class MessagingStyle : NotificationCompat.Style
kotlin.Any
   ↳ androidx.core.app.NotificationCompat.Style
   ↳ androidx.core.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 MessagingStyle#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

Constants
static Int

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

Public constructors
<init>(@NonNull userDisplayName: CharSequence)

<init>(@NonNull user: Person)

Creates a new MessagingStyle object.

Public methods
open Unit
addCompatExtras(@NonNull extras: Bundle)

open NotificationCompat.MessagingStyle

Adds a Message for historic context in this notification.

open NotificationCompat.MessagingStyle
addMessage(@Nullable text: CharSequence?, timestamp: Long, @Nullable sender: CharSequence?)

Adds a message for display by this notification.

open NotificationCompat.MessagingStyle
addMessage(@Nullable text: CharSequence?, timestamp: Long, @Nullable person: Person?)

Adds a message for display by this notification.

open NotificationCompat.MessagingStyle

Adds a Message for display in this notification.

open static NotificationCompat.MessagingStyle?

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

open CharSequence?

Return the title to be displayed on this conversation.

open MutableList<NotificationCompat.MessagingStyle.Message!>

Gets the list of historic Messages in the notification.

open MutableList<NotificationCompat.MessagingStyle.Message!>

Gets the list of Message objects that represent the notification

open Person

Returns the person to be used for any replies sent by the user.

open CharSequence?

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

open Boolean

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

open NotificationCompat.MessagingStyle
setConversationTitle(@Nullable conversationTitle: CharSequence?)

Sets the title to be displayed on this conversation.

open NotificationCompat.MessagingStyle
setGroupConversation(isGroupConversation: Boolean)

Sets whether this conversation notification represents a group.

Inherited functions

Constants

MAXIMUM_RETAINED_MESSAGES

static val MAXIMUM_RETAINED_MESSAGES: Int

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

Value: 25

Public constructors

<init>

MessagingStyle(@NonNull userDisplayName: CharSequence)

Deprecated: Use MessagingStyle(Person) instead.

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