Customize Chat Message Bubble

When TapTalk.io framework is integrated to your app with the UI implementation method, you can add customized chat message bubbles to be used in chat.

Adding a Custom Chat Bubble

You can check the following example to add a custom bubble to your chat.

implementation 'com.android.support:recyclerview-v7:28.0.0'

1. Create an XML layout file for the custom bubble

First, create a new XML layout resource file for your custom bubble, we will name it my_custom_bubble_layout.xml. You are free to customize the custom bubble layout as you wish. In this example, we will be using a simple image and text bubble.

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginStart="16dp"
    android:layout_marginEnd="16dp"
    android:layout_marginBottom="8dp"
    android:background="@color/tapWhite">

    <ImageView
        android:id="@+id/imageView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:adjustViewBounds="true"
        android:src="@mipmap/ic_launcher"
        app:layout_constraintTop_toTopOf="parent" />
    
    <!--We are using TapTalk'io's default message body style for this TextView-->
    <TextView
        android:id="@+id/textView"
        style="@style/tapLeftBubbleMessageBodyStyle"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:padding="8dp"
        app:layout_constraintTop_toBottomOf="@id/imageView"
        tools:text="Message body" />

</android.support.constraint.ConstraintLayout>
my_custom_bubble_layout.xml

Note: TapTalk.io's default message bubble layouts generally have a 8dp bottom margin and no top margin.

2. Create a custom listener

In order to listen to event callbacks that happens in your custom bubble, we will create a custom interface that extends TapTalkBaseCustomInterface. We will name this interface MyCustomBubbleListener.

3. Create a custom bubble ViewHolder

To display your custom bubble layout in a chat room, you will need to create a custom ViewHolder that extends TAPBaseChatViewHolder. We will name this class MyCustomBubbleViewHolder.

4. Create a custom bubble class

Using all the things you have created above, we will create a custom bubble class that extends TAPBaseCustomBubble. This class instance will then be added to the custom bubble list.

5. Add your custom bubble class

To add your custom bubble to TapTalk.io, use the TapUI class and call the addCustomBubble() method. This is typically done in your Application class, after init() has already been called.

After completing all the steps above, your custom bubble will be ready to use.

Showing Your Custom Bubble in Chat

You can use your customized chat bubble in a chat room by constructing a custom TAPMessageModel with constructTapTalkMessageModel() method, then sending the constructed message to the chat room with sendCustomMessage(). Both methods can be accessed from the TapCoreMessageManager class.

To construct a message, you are required to have a TAPRoomModel as a parameter. You can use getPersonalChatRoom() or getGroupChatRoom() method in TapCoreChatRoomManager class to obtain a chat room model.

Below is an example to send a custom message with the steps mentioned above.

Last updated

Was this helpful?