With essential messaging functionalities such as typing indicators, unread messages, file sharing etc., users can engage in more interactive conversations.Supported features by dialog types
Group dialog
Private dialog
File sharing
✓
✓
Voice message
✓
✓
Typing indicator
✓
✓
Delivery receipt
✓
✓
Read receipt
✓
✓
Unread message count
✓
✓
Highlight URLs
✓
✓
Public dialogs are not currently supported but will be added in the upcoming releases.
QuickBlox UIKit provides support for three types of dialogs: public dialog, group dialog, and private dialog.Public dialogA public dialog is an open chat that is shown to everyone in the app and anyone can join it. Public dialogs can host more participants compared to group dialogs, but does not have a list of participants and their online statuses within dialog.Group dialogA group dialog is a chat between closed group of people. New participant can be added either by dialog owner or any other participant of the group dialog.Private dialogA private dialog is a direct chat between two people, it can’t be extended to host more people.
QuickBlox provides file sharing functionality that enables users to effortlessly send various types of files while engaged in a chat session, such as images, audio files, or videos. File sharing appears on SendMessageComponent.
You can customize the UI for file sharing using string resource and icon resource.String resourceThe string resource is a set of strings used to compose the screen. It’s a res/strings.xml file containing UIKit-defined string values.
xml
<resources> <string name="send_attachment">Send attachment</string> <string name="take_photo">Take photo from camera</string> <string name="take_video">Take video from camera</string> <string name="photo_video">Photo and video</string> <string name="file">File</string></resources>
Icon resourceIcon resources are stored in drawable directory, all icons are vectors in XML file. The following table shows customizable file sharing icon.
Voice messaging is another way for people to communicate without typing text. With voice messages, you can express yourself better by using tone and intention. It’s also quicker to record a voice message than to write a long text, which makes it more efficient for the sender. The receiver can listen to the message whenever it’s convenient for them, even while doing other tasks. To send a voice message in a dialog, you just need to press and hold the mic icon. Then, the message will appear in the chat, and the receiver can play it.
In order to send a voice message, users have to record a message first. By default, a voice message icon is visible on the right side of the input field. While the icon is pressed, the voice recorder appears and recording the sound from microphone. The voice message icon appears only when input text form is empty. When the icon unpressed the voice message will send automatically.
You can customize the UI for voice message recorder using icon resource.Icon resourceIcon resources are stored in drawable directory, all icons are vectors in XML file. The following table shows customizable file sharing icon.
The typing indicator is a useful feature that provides users with a visual signal when someone else in the dialog is typing a message. This feature is implemented in the PrivateChatViewModel of the PrivateChatFragment and GroupChatViewModel of the GroupChatFragment. The indicator remains visible until the user sends the message or clears the text. If the user stops typing for more than 10 seconds, the indicator will also disappear.
The delivery receipt is a feature that informs a user if their messages have been successfully delivered to other users in the dialog. When message reaches server, it is marked as sent, a single-tick icon appears next to the message’s timestamp. Once message reaches receiver device, it is marked as delivered. If the sender’s message has been delivered to any recipient in the dialog, a double-tick icon appears next to the message’s timestamp. The delivery receipt can only be seen by the sender of the message. It appears on the MessagesComponent.
You can customize the UI for delivery receipt using icon resource.Icon resourceIcon resources are stored in drawable directory, all icons are vectors in XML file. The following table shows customizable file sharing icon.
Icon name
Image
Description
sent
An icon for sent.
delivered
An icon for delivery.
The default delivery receipt color uses the tertiary elements color, it can be changed in the theme with setTertiaryElementsColor() (see Theme colors)
The read receipt feature allows users to determine whether their messages have been read by others in the dialog. When any recipient in the dialog have read the sender’s message, a colored double-tick icon is displayed next to the message’s timestamp. The read receipts are only visible to the sender of the message. It appears on the MessagesComponent.
You can customize the UI for read receipt using icon resource.Icon resourceIcon resources are stored in drawable directory, all icons are vectors in XML file. The following table shows customizable file sharing icon.
Icon name
Image
Description
read
An icon for read.
The default read receipt color uses the main elements color, it can be changed in the theme with setMainElementsColor() (see Theme colors)
Unread message count is a feature that informs users of the number of messages they haven’t read in each dialog. The number of unread messages per dialog is displayed below the timestamp. If the number of messages is more than 100, it will be displayed as 99+. The unread message count appears on the DialogsComponent.
The highlighting URLs is a feature that refers to displaying clickable links in a chat message, where the URL is visually distinguished and can be interacted with the user.
Modern messengers and chat platforms offer various functional features, among the most useful of which are message forwarding and reply options. Let’s take a closer look at them.By default, these functions are enabled, but if necessary, they can be disabled and enabled using special methods:
Forwarding is the capability to transfer messages from one chat participant to another, similar to email forwarding. It enables efficient exchange and discussion of information within the context of chats and messengers.Once you’ve selected the dialogue to which you want to forward the message, the forwarded message will be displayed in the selected dialogue like this.
Replying is the ability to respond to a specific message, establishing a connection between the reply and the original message. It enhances the structure of communication in a chat, making conversations more clear and organized.After choosing the message to which you’ve decided to reply, your response to the message will be displayed like this.
You can customize the UI for file sharing using string resources and icon resources.String resourceThe string resource is a set of strings used to compose the screen. It’s a res/strings.xml file containing UIKit-defined string values.
xml
<resources> <string name="forward">Forward</string> <string name="forwarded_from_with_name">Forwarded from %s</string> <string name="replied_to_with_name">Replied to %s</string> <string name="replied_to">Replied to</string> <string name="forwarded_from">Forwarded from</string> <string name="message_forwarded_to">Message forwarded to %s</string> <string name="reply">Reply</string></resources>
Icon resourceIcon resources are stored in drawable directory, all icons are vectors in XML file. The following table shows customizable file sharing icon.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"QuickBlox","colors":{"primary":"#3978fc","light":"#3978fc","dark":"#3978fc"},"logo":{"light":"https://mintcdn.com/quickblox/ZK0J4-dDJuuhpUQu/logo/light.svg?fit=max\u0026auto=format\u0026n=ZK0J4-dDJuuhpUQu\u0026q=85\u0026s=2ca77d61090cf3e9a7512358a3ad30b1","dark":"https://mintcdn.com/quickblox/ZK0J4-dDJuuhpUQu/logo/dark.svg?fit=max\u0026auto=format\u0026n=ZK0J4-dDJuuhpUQu\u0026q=85\u0026s=a8aaf148bf91f6898d03d0d3184114a9"},"favicon":"https://mintcdn.com/quickblox/blsYQNp-sI61UYaV/favicon.png?fit=max\u0026auto=format\u0026n=blsYQNp-sI61UYaV\u0026q=85\u0026s=62ec978bc2dc633ef042e7636c089254","navbar":{"links":[{"href":"https://quickblox.github.io/q-consultation/","label":"Q-Consultation"},{"href":"https://help.quickblox.com/","label":"Support"},{"href":"https://quickblox.com/","label":"quickblox.com"}],"primary":{"type":"button","label":"Dashboard","href":"https://admin.quickblox.com/"}},"footer":{"socials":{"x":"https://x.com/QuickBlox","facebook":"https://www.facebook.com/quickblox","linkedin":"https://www.linkedin.com/company/quickblox","instagram":"https://www.instagram.com/quickblox_official_","medium":"https://medium.com/quickblox-engineering","github":"https://github.com/QuickBlox","discord":"https://bit.ly/quickblox-dev-community"}},"integrations":{"ga4":{"measurementId":"G-CJ7RE2GB2V"}},"contextual":{"options":["chatgpt","claude","copy"],"display":"header"},"styling":{"latex":false},"navigation":{"global":{"anchors":[{"anchor":"SDK Downloads","icon":"webhook","href":"https://github.com/QuickBlox"},{"anchor":"Community","icon":"discord","href":"https://discord.com/invite/ZWZ3WpYZ9q"},{"anchor":"Blog","icon":"newspaper","href":"https://quickblox.com/blog/"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"quickblox","hasAudioNarration":false,"actualSubdomain":"quickblox","customDomains":["docs.quickblox.com"],"gitSource":{"type":"github","owner":"quickblox","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6a8dc27ca93e48aebcc61c6f","collectionId":"6f899a07-3988-43cd-ac6e-7ba934508cca","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6a8dc27ca93e48aebcc61c6f"},"feedback":{"issues":true,"edits":false,"thumbs":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6a8dc27ca93e48aebcc61c6f","clientVersion":"0.0.4076","searchFilterCounts":[{"language":"default","tag":"Server API","count":105},{"language":"default","tag":"REST API","count":105},{"language":"default","tag":"SDKs","count":98},{"language":"default","tag":"Chat","count":57},{"language":"default","tag":"Android","count":26},{"language":"default","tag":"iOS","count":25},{"language":"default","tag":"UIKits","count":23},{"language":"default","tag":"Custom Objects","count":22},{"language":"default","tag":"AI Agent","count":21},{"language":"default","tag":"Flutter","count":20}]},"assistantConfig":{},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[],"googleFontsInlined":false},"customCss":[{"filePath":"styles.css","content":".icon-group{display:flex;gap:10px;flex-wrap:wrap}.custom-icon{width:24px;height:24px}.inline-link{display:inline-flex;align-items:center;color:#007bff;margin-top:10px;text-decoration:none;transition:color 0.3s ease, text-decoration 0.3s ease}.inline-link:hover{color:#030f1c}.centered-image{display:block;margin-left:auto;margin-right:auto;width:500px;height:auto}.centered-video{display:block;margin-left:auto;margin-right:auto;max-width:100%}.inline-link Icon{margin-right:5px}.icon-group .icon{width:20px;height:20px;display:inline-block;vertical-align:middle}.icon-group a{display:inline-block}.icon-group img,.icon-group svg{width:20px;height:20px;cursor:pointer;pointer-events:none}.card{box-shadow:0 4px 6px rgba(0, 0, 0, 0.1);transition:transform 0.3s ease, box-shadow 0.3s ease;background-color:#fff;border-radius:8px;padding:16px}.card:hover{transform:translateY(-5px);box-shadow:0 8px 16px rgba(0, 0, 0, 0.4)}.button{display:inline-block;padding:10px 20px;text-align:center;background-color:#007bff;color:white;border-radius:5px;text-decoration:none;white-space:nowrap}.button:hover{background-color:#0056b3}.warning{background-color:red!important}"}],"page":{"pagePath":"ui-kits/android-uikit-features","slug":"/ui-kits/android-uikit-features","pageMetadata":{"title":"Features","icon":"list","description":"QuickBlox UIKit for Android provides a range of features to enhance the chat experience.","href":"/ui-kits/android-uikit-features"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"QuickBlox UIKit for Android provides a range of features to enhance the chat experience.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,..._provideComponents(),...props.components},{CodeBlock,Frame,Heading,Note,OptimizedImage,Table,Tip}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Frame)_missingMdxReference(`Frame`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Note)_missingMdxReference(`Note`,true);if(!OptimizedImage)_missingMdxReference(`OptimizedImage`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Tip)_missingMdxReference(`Tip`,true);return _jsxs(_Fragment,{children:[_jsx(Heading,{level:`2`,id:`overview`,children:`Overview`}),`\n`,_jsx(_components.p,{children:`With essential messaging functionalities such as typing indicators, unread messages, file sharing etc., users can engage in more interactive conversations.`}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`Supported features by dialog types`})}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{}),_jsx(_components.th,{children:`Group dialog`}),_jsx(_components.th,{children:`Private dialog`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`File sharing`})}),_jsx(_components.td,{children:`✓`}),_jsx(_components.td,{children:`✓`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`Voice message`})}),_jsx(_components.td,{children:`✓`}),_jsx(_components.td,{children:`✓`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`Typing indicator`})}),_jsx(_components.td,{children:`✓`}),_jsx(_components.td,{children:`✓`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`Delivery receipt`})}),_jsx(_components.td,{children:`✓`}),_jsx(_components.td,{children:`✓`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`Read receipt`})}),_jsx(_components.td,{children:`✓`}),_jsx(_components.td,{children:`✓`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`Unread message count`})}),_jsx(_components.td,{children:`✓`}),_jsx(_components.td,{children:`✓`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`Highlight URLs`})}),_jsx(_components.td,{children:`✓`}),_jsx(_components.td,{children:`✓`})]})]})]}),`\n`,_jsx(Note,{children:_jsx(_components.p,{children:`Public dialogs are not currently supported but will be added in the upcoming releases.`})}),`\n`,_jsx(Heading,{level:`3`,id:`dialog-types`,children:`Dialog types`}),`\n`,_jsx(_components.p,{children:`QuickBlox UIKit provides support for three types of dialogs: public dialog, group dialog, and private dialog.`}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`Public dialog`})}),`\n`,_jsx(_components.p,{children:`A public dialog is an open chat that is shown to everyone in the app and anyone can join it. Public dialogs can host more participants compared to group dialogs, but does not have a list of participants and their online statuses within dialog.`}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`Group dialog`})}),`\n`,_jsx(_components.p,{children:`A group dialog is a chat between closed group of people. New participant can be added either by dialog owner or any other participant of the group dialog.`}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`Private dialog`})}),`\n`,_jsx(_components.p,{children:`A private dialog is a direct chat between two people, it can’t be extended to host more people.`}),`\n`,_jsx(Heading,{level:`2`,id:`file-sharing`,children:`File sharing`}),`\n`,_jsxs(_components.p,{children:[`QuickBlox provides file sharing functionality that enables users to effortlessly send various types of files while engaged in a chat session, such as images, audio files, or videos. File sharing appears on `,_jsx(_components.code,{children:`SendMessageComponent`}),`.`]}),`\n`,_jsx(Frame,{children:_jsx(OptimizedImage,{src:`https://mintcdn.com/quickblox/xkS1X1sSZwktmwsY/images/a82106f-android-uikit-share-file.png?fit=max\u0026auto=format\u0026n=xkS1X1sSZwktmwsY\u0026q=85\u0026s=134c739bb7244f6a40cb321ce6e3b1fb`,alt:`Android UIKit Share File`,\"data-og-width\":`1486`,width:`1486`,\"data-og-height\":`1284`,height:`1284`,\"data-path\":`images/a82106f-android-uikit-share-file.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/quickblox/xkS1X1sSZwktmwsY/images/a82106f-android-uikit-share-file.png?w=280\u0026fit=max\u0026auto=format\u0026n=xkS1X1sSZwktmwsY\u0026q=85\u0026s=df4734986c532cad59f6ee2bde9a135e 280w, https://mintcdn.com/quickblox/xkS1X1sSZwktmwsY/images/a82106f-android-uikit-share-file.png?w=560\u0026fit=max\u0026auto=format\u0026n=xkS1X1sSZwktmwsY\u0026q=85\u0026s=f33296f367cb885e0be78bbae2ae6b7b 560w, https://mintcdn.com/quickblox/xkS1X1sSZwktmwsY/images/a82106f-android-uikit-share-file.png?w=840\u0026fit=max\u0026auto=format\u0026n=xkS1X1sSZwktmwsY\u0026q=85\u0026s=dd49e5530e641307d57dbadc922f5df5 840w, https://mintcdn.com/quickblox/xkS1X1sSZwktmwsY/images/a82106f-android-uikit-share-file.png?w=1100\u0026fit=max\u0026auto=format\u0026n=xkS1X1sSZwktmwsY\u0026q=85\u0026s=715c3d0c7cd4d0e2b860fa6d25285e7f 1100w, https://mintcdn.com/quickblox/xkS1X1sSZwktmwsY/images/a82106f-android-uikit-share-file.png?w=1650\u0026fit=max\u0026auto=format\u0026n=xkS1X1sSZwktmwsY\u0026q=85\u0026s=75d733de6165fd19077ae6613302eeb2 1650w, https://mintcdn.com/quickblox/xkS1X1sSZwktmwsY/images/a82106f-android-uikit-share-file.png?w=2500\u0026fit=max\u0026auto=format\u0026n=xkS1X1sSZwktmwsY\u0026q=85\u0026s=4056f7be3598ca613be88cc844ba60d7 2500w`})}),`\n`,_jsx(Heading,{level:`3`,id:`customize-the-ui-for-file-sharing`,children:`Customize the UI for file sharing`}),`\n`,_jsx(_components.p,{children:`You can customize the UI for file sharing using string resource and icon resource.`}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`String resource`})}),`\n`,_jsxs(_components.p,{children:[`The string resource is a set of strings used to compose the screen. It’s a `,_jsx(_components.strong,{children:`res/strings.xml`}),` file containing UIKit-defined string values.`]}),`\n`,_jsx(CodeBlock,{filename:`xml`,numberOfLines:`7`,language:`xml`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`xml`,children:_jsxs(_components.code,{language:`xml`,numberOfLines:`7`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`\u003c`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`resources`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` \t\u003c`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`string`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"send_attachment\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`Send attachment`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`\u003c/`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`string`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` \t\u003c`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`string`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"take_photo\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`Take photo from camera`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`\u003c/`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`string`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` \t\u003c`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`string`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"take_video\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`Take video from camera`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`\u003c/`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`string`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` \u003c`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`string`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"photo_video\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`Photo and video`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`\u003c/`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`string`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` \u003c`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`string`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"file\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`File`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`\u003c/`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`string`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`\u003c/`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`resources`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`})]}),`\n`]})})}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`Icon resource`})}),`\n`,_jsxs(_components.p,{children:[`Icon resources are stored in `,_jsx(_components.strong,{children:`drawable`}),` directory, all icons are vectors in XML file. The following table shows customizable file sharing icon.`]}),`\n`,_jsxs(`table`,{style:{width:`100%`,textAlign:`center`},children:[_jsx(`thead`,{children:_jsxs(`tr`,{children:[_jsx(`th`,{style:{width:`33%`},children:`Icon name`}),_jsx(`th`,{style:{width:`33%`},children:`Image`}),_jsx(`th`,{style:{width:`33%`},children:`Description`})]})}),_jsxs(`tbody`,{children:[_jsxs(`tr`,{children:[_jsx(`td`,{children:`attachment`}),_jsx(`td`,{style:{textAlign:`center`},children:_jsx(OptimizedImage,{src:`https://mintcdn.com/quickblox/xkS1X1sSZwktmwsY/images/attachment.png?fit=max\u0026auto=format\u0026n=xkS1X1sSZwktmwsY\u0026q=85\u0026s=7609cea018eeb99d16163b56c6d39a36`,alt:`attachment`,style:{width:`30px`,height:`30px`,display:`block`,margin:`0 auto`},\"data-og-width\":`1080`,width:`1080`,\"data-og-height\":`1080`,height:`1080`,\"data-path\":`images/attachment.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/quickblox/xkS1X1sSZwktmwsY/images/attachment.png?w=280\u0026fit=max\u0026auto=format\u0026n=xkS1X1sSZwktmwsY\u0026q=85\u0026s=fe336533e1016157ffcd1ced4f2f3664 280w, https://mintcdn.com/quickblox/xkS1X1sSZwktmwsY/images/attachment.png?w=560\u0026fit=max\u0026auto=format\u0026n=xkS1X1sSZwktmwsY\u0026q=85\u0026s=e410b621a579d34755a9a335ff09fe79 560w, https://mintcdn.com/quickblox/xkS1X1sSZwktmwsY/images/attachment.png?w=840\u0026fit=max\u0026auto=format\u0026n=xkS1X1sSZwktmwsY\u0026q=85\u0026s=d0343c975c00aaad09ebbc729d12ab2a 840w, https://mintcdn.com/quickblox/xkS1X1sSZwktmwsY/images/attachment.png?w=1100\u0026fit=max\u0026auto=format\u0026n=xkS1X1sSZwktmwsY\u0026q=85\u0026s=f683185ae264158b824a4d260558e781 1100w, https://mintcdn.com/quickblox/xkS1X1sSZwktmwsY/images/attachment.png?w=1650\u0026fit=max\u0026auto=format\u0026n=xkS1X1sSZwktmwsY\u0026q=85\u0026s=0c75af18f5cb0dc28875935caba26dad 1650w, https://mintcdn.com/quickblox/xkS1X1sSZwktmwsY/images/attachment.png?w=2500\u0026fit=max\u0026auto=format\u0026n=xkS1X1sSZwktmwsY\u0026q=85\u0026s=d7e0b146f9fdf3327fba269159b2fbef 2500w`})}),_jsx(`td`,{children:`An icon used to select and add files.`})]}),_jsxs(`tr`,{children:[_jsx(`td`,{children:`ic_video_placeholder`}),_jsx(`td`,{style:{textAlign:`center`},children:_jsx(OptimizedImage,{src:`https://mintcdn.com/quickblox/e8BObhqG0WJty0gE/images/64f4702-play.png?fit=max\u0026auto=format\u0026n=e8BObhqG0WJty0gE\u0026q=85\u0026s=6d13d9e52f1fdce93e2aeb26c2da90c4`,alt:`video placeholder`,style:{width:`30px`,height:`30px`,display:`block`,margin:`0 auto`},\"data-og-width\":`66`,width:`66`,\"data-og-height\":`68`,height:`68`,\"data-path\":`images/64f4702-play.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/quickblox/e8BObhqG0WJty0gE/images/64f4702-play.png?w=280\u0026fit=max\u0026auto=format\u0026n=e8BObhqG0WJty0gE\u0026q=85\u0026s=f4fe9243904fed5a625408dc16b61d36 280w, https://mintcdn.com/quickblox/e8BObhqG0WJty0gE/images/64f4702-play.png?w=560\u0026fit=max\u0026auto=format\u0026n=e8BObhqG0WJty0gE\u0026q=85\u0026s=c8958f5a69610918266d1d5264b3e8c0 560w, https://mintcdn.com/quickblox/e8BObhqG0WJty0gE/images/64f4702-play.png?w=840\u0026fit=max\u0026auto=format\u0026n=e8BObhqG0WJty0gE\u0026q=85\u0026s=1ac0622ca2bde33cf6c713f7f270064f 840w, https://mintcdn.com/quickblox/e8BObhqG0WJty0gE/images/64f4702-play.png?w=1100\u0026fit=max\u0026auto=format\u0026n=e8BObhqG0WJty0gE\u0026q=85\u0026s=6545ce8d366a58ffbfe22deebbffd784 1100w, https://mintcdn.com/quickblox/e8BObhqG0WJty0gE/images/64f4702-play.png?w=1650\u0026fit=max\u0026auto=format\u0026n=e8BObhqG0WJty0gE\u0026q=85\u0026s=41477af40159ea6c2aa323a3b6b6d4e7 1650w, https://mintcdn.com/quickblox/e8BObhqG0WJty0gE/images/64f4702-play.png?w=2500\u0026fit=max\u0026auto=format\u0026n=e8BObhqG0WJty0gE\u0026q=85\u0026s=fa78f1b918e25df3d4cfb8fb51683858 2500w`})}),_jsx(`td`,{children:`An icon for video placeholder.`})]}),_jsxs(`tr`,{children:[_jsx(`td`,{children:`ic_gif_placeholder`}),_jsx(`td`,{style:{textAlign:`center`},children:_jsx(OptimizedImage,{src:`https://mintcdn.com/quickblox/4gw4x-2IrfN_sgat/images/302ef7e-gif.png?fit=max\u0026auto=format\u0026n=4gw4x-2IrfN_sgat\u0026q=85\u0026s=eb0cb7fd82051c2665fec7dbec9e536e`,alt:`gif placeholder`,style:{width:`30px`,height:`30px`,display:`block`,margin:`0 auto`},\"data-og-width\":`105`,width:`105`,\"data-og-height\":`59`,height:`59`,\"data-path\":`images/302ef7e-gif.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/quickblox/4gw4x-2IrfN_sgat/images/302ef7e-gif.png?w=280\u0026fit=max\u0026auto=format\u0026n=4gw4x-2IrfN_sgat\u0026q=85\u0026s=e05fbe17743fe8e6213bdfb6c9260340 280w, https://mintcdn.com/quickblox/4gw4x-2IrfN_sgat/images/302ef7e-gif.png?w=560\u0026fit=max\u0026auto=format\u0026n=4gw4x-2IrfN_sgat\u0026q=85\u0026s=ee571782197841ad8005912101986116 560w, https://mintcdn.com/quickblox/4gw4x-2IrfN_sgat/images/302ef7e-gif.png?w=840\u0026fit=max\u0026auto=format\u0026n=4gw4x-2IrfN_sgat\u0026q=85\u0026s=34e5a0ee3c6347ed78fbd6fcec0eaf3f 840w, https://mintcdn.com/quickblox/4gw4x-2IrfN_sgat/images/302ef7e-gif.png?w=1100\u0026fit=max\u0026auto=format\u0026n=4gw4x-2IrfN_sgat\u0026q=85\u0026s=942ae2876cbeb5266838ff57fe9dfc44 1100w, https://mintcdn.com/quickblox/4gw4x-2IrfN_sgat/images/302ef7e-gif.png?w=1650\u0026fit=max\u0026auto=format\u0026n=4gw4x-2IrfN_sgat\u0026q=85\u0026s=09b1fc683be73106a3d7a27eaddadade 1650w, https://mintcdn.com/quickblox/4gw4x-2IrfN_sgat/images/302ef7e-gif.png?w=2500\u0026fit=max\u0026auto=format\u0026n=4gw4x-2IrfN_sgat\u0026q=85\u0026s=fbb54ee49c696c13a0ff63f70208e202 2500w`})}),_jsx(`td`,{children:`An icon for gif placeholder.`})]}),_jsxs(`tr`,{children:[_jsx(`td`,{children:`ic_image_placeholder`}),_jsx(`td`,{style:{textAlign:`center`},children:_jsx(OptimizedImage,{src:`https://mintcdn.com/quickblox/Ue7oFsbTxPKULNVC/images/e34dcb4-photo.png?fit=max\u0026auto=format\u0026n=Ue7oFsbTxPKULNVC\u0026q=85\u0026s=1d62f7cf837ed40f4185bd985124152f`,alt:`image placeholder`,style:{width:`30px`,height:`30px`,display:`block`,margin:`0 auto`},\"data-og-width\":`89`,width:`89`,\"data-og-height\":`73`,height:`73`,\"data-path\":`images/e34dcb4-photo.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/quickblox/Ue7oFsbTxPKULNVC/images/e34dcb4-photo.png?w=280\u0026fit=max\u0026auto=format\u0026n=Ue7oFsbTxPKULNVC\u0026q=85\u0026s=45abc16c86a24dedc86d2d2a55d19c93 280w, https://mintcdn.com/quickblox/Ue7oFsbTxPKULNVC/images/e34dcb4-photo.png?w=560\u0026fit=max\u0026auto=format\u0026n=Ue7oFsbTxPKULNVC\u0026q=85\u0026s=bed1437e2b02a92f577fa9619c7b2091 560w, https://mintcdn.com/quickblox/Ue7oFsbTxPKULNVC/images/e34dcb4-photo.png?w=840\u0026fit=max\u0026auto=format\u0026n=Ue7oFsbTxPKULNVC\u0026q=85\u0026s=4daf493785b1562c21436fa184b97611 840w, https://mintcdn.com/quickblox/Ue7oFsbTxPKULNVC/images/e34dcb4-photo.png?w=1100\u0026fit=max\u0026auto=format\u0026n=Ue7oFsbTxPKULNVC\u0026q=85\u0026s=c5172b46f5a29c72049a0ed12201f59d 1100w, https://mintcdn.com/quickblox/Ue7oFsbTxPKULNVC/images/e34dcb4-photo.png?w=1650\u0026fit=max\u0026auto=format\u0026n=Ue7oFsbTxPKULNVC\u0026q=85\u0026s=cfcd2939b4136cfcd0271ac3c2a6095e 1650w, https://mintcdn.com/quickblox/Ue7oFsbTxPKULNVC/images/e34dcb4-photo.png?w=2500\u0026fit=max\u0026auto=format\u0026n=Ue7oFsbTxPKULNVC\u0026q=85\u0026s=3dde675b42e4315572ccc7c043d5f45d 2500w`})}),_jsx(`td`,{children:`An icon for image placeholder.`})]}),_jsxs(`tr`,{children:[_jsx(`td`,{children:`ic_file`}),_jsx(`td`,{style:{textAlign:`center`},children:_jsx(OptimizedImage,{src:`https://mintcdn.com/quickblox/4gw4x-2IrfN_sgat/images/100502d-doctext.png?fit=max\u0026auto=format\u0026n=4gw4x-2IrfN_sgat\u0026q=85\u0026s=e76b8dfd76eb1f1811786921cca459e1`,alt:`file`,style:{width:`30px`,height:`30px`,display:`block`,margin:`0 auto`},\"data-og-width\":`65`,width:`65`,\"data-og-height\":`79`,height:`79`,\"data-path\":`images/100502d-doctext.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/quickblox/4gw4x-2IrfN_sgat/images/100502d-doctext.png?w=280\u0026fit=max\u0026auto=format\u0026n=4gw4x-2IrfN_sgat\u0026q=85\u0026s=941041ea8a61b4882c739bb3959382b7 280w, https://mintcdn.com/quickblox/4gw4x-2IrfN_sgat/images/100502d-doctext.png?w=560\u0026fit=max\u0026auto=format\u0026n=4gw4x-2IrfN_sgat\u0026q=85\u0026s=d6d7b2da7804cf9a938ad7dc36a416e3 560w, https://mintcdn.com/quickblox/4gw4x-2IrfN_sgat/images/100502d-doctext.png?w=840\u0026fit=max\u0026auto=format\u0026n=4gw4x-2IrfN_sgat\u0026q=85\u0026s=dc9301cc7ad91aa6165e6ee2ab35bf37 840w, https://mintcdn.com/quickblox/4gw4x-2IrfN_sgat/images/100502d-doctext.png?w=1100\u0026fit=max\u0026auto=format\u0026n=4gw4x-2IrfN_sgat\u0026q=85\u0026s=f49a1a6d332412fa57e48cdc35057cfd 1100w, https://mintcdn.com/quickblox/4gw4x-2IrfN_sgat/images/100502d-doctext.png?w=1650\u0026fit=max\u0026auto=format\u0026n=4gw4x-2IrfN_sgat\u0026q=85\u0026s=ee2218e21be47e4de7e1f1e850394c70 1650w, https://mintcdn.com/quickblox/4gw4x-2IrfN_sgat/images/100502d-doctext.png?w=2500\u0026fit=max\u0026auto=format\u0026n=4gw4x-2IrfN_sgat\u0026q=85\u0026s=21286a02b3f7d46384ee7a1b623ebf29 2500w`})}),_jsx(`td`,{children:`An icon for file.`})]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`voice-message`,children:`Voice message`}),`\n`,_jsx(_components.p,{children:`Voice messaging is another way for people to communicate without typing text. With voice messages, you can express yourself better by using tone and intention. It’s also quicker to record a voice message than to write a long text, which makes it more efficient for the sender. The receiver can listen to the message whenever it’s convenient for them, even while doing other tasks. To send a voice message in a dialog, you just need to press and hold the mic icon. Then, the message will appear in the chat, and the receiver can play it.`}),`\n`,_jsx(OptimizedImage,{src:`https://mintcdn.com/quickblox/4gw4x-2IrfN_sgat/images/1109705-android-uikit-voice-message.png?fit=max\u0026auto=format\u0026n=4gw4x-2IrfN_sgat\u0026q=85\u0026s=2830c8dff9ea08ae99b5a2f084d74f3e`,alt:``,\"data-og-width\":`1486`,width:`1486`,\"data-og-height\":`1284`,height:`1284`,\"data-path\":`images/1109705-android-uikit-voice-message.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/quickblox/4gw4x-2IrfN_sgat/images/1109705-android-uikit-voice-message.png?w=280\u0026fit=max\u0026auto=format\u0026n=4gw4x-2IrfN_sgat\u0026q=85\u0026s=b6c6215bd6288198b712848a9f49c63f 280w, https://mintcdn.com/quickblox/4gw4x-2IrfN_sgat/images/1109705-android-uikit-voice-message.png?w=560\u0026fit=max\u0026auto=format\u0026n=4gw4x-2IrfN_sgat\u0026q=85\u0026s=f50e30adcd76538f4126e6b3d434d800 560w, https://mintcdn.com/quickblox/4gw4x-2IrfN_sgat/images/1109705-android-uikit-voice-message.png?w=840\u0026fit=max\u0026auto=format\u0026n=4gw4x-2IrfN_sgat\u0026q=85\u0026s=8e7db7acfecea16117cc862c4b14c7be 840w, https://mintcdn.com/quickblox/4gw4x-2IrfN_sgat/images/1109705-android-uikit-voice-message.png?w=1100\u0026fit=max\u0026auto=format\u0026n=4gw4x-2IrfN_sgat\u0026q=85\u0026s=aea282532e455bfd87fd38d8cd11f83b 1100w, https://mintcdn.com/quickblox/4gw4x-2IrfN_sgat/images/1109705-android-uikit-voice-message.png?w=1650\u0026fit=max\u0026auto=format\u0026n=4gw4x-2IrfN_sgat\u0026q=85\u0026s=4e2b611ea8b5d6ecd0815f4134b2c659 1650w, https://mintcdn.com/quickblox/4gw4x-2IrfN_sgat/images/1109705-android-uikit-voice-message.png?w=2500\u0026fit=max\u0026auto=format\u0026n=4gw4x-2IrfN_sgat\u0026q=85\u0026s=5980de06eac21c52aebab15e9b1ee377 2500w`}),`\n`,_jsx(Heading,{level:`3`,id:`send-a-voice-message`,children:`Send a voice message`}),`\n`,_jsx(_components.p,{children:`In order to send a voice message, users have to record a message first. By default, a voice message icon is visible on the right side of the input field. While the icon is pressed, the voice recorder appears and recording the sound from microphone. The voice message icon appears only when input text form is empty. When the icon unpressed the voice message will send automatically.`}),`\n`,_jsx(Heading,{level:`3`,id:`customize-the-ui-for-voice-message-recorder`,children:`Customize the UI for voice message recorder`}),`\n`,_jsx(_components.p,{children:`You can customize the UI for voice message recorder using icon resource.`}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`Icon resource`})}),`\n`,_jsxs(_components.p,{children:[`Icon resources are stored in `,_jsx(_components.strong,{children:`drawable`}),` directory, all icons are vectors in XML file. The following table shows customizable file sharing icon.`]}),`\n`,_jsxs(`table`,{style:{width:`100%`,textAlign:`center`},children:[_jsx(`thead`,{children:_jsxs(`tr`,{children:[_jsx(`th`,{style:{width:`33%`},children:`Icon name`}),_jsx(`th`,{style:{width:`33%`},children:`Image`}),_jsx(`th`,{style:{width:`33%`},children:`Description`})]})}),_jsxs(`tbody`,{children:[_jsxs(`tr`,{children:[_jsx(`td`,{children:`send_voice`}),_jsx(`td`,{style:{textAlign:`center`},children:_jsx(OptimizedImage,{src:`https://mintcdn.com/quickblox/072Z-VRTn8Ddi0dI/images/6ef4140-Vector.svg?fit=max\u0026auto=format\u0026n=072Z-VRTn8Ddi0dI\u0026q=85\u0026s=e7d035e74a6c4094e94a4a55cddbe399`,alt:`send voice`,style:{width:`30px`,height:`30px`,display:`block`,margin:`0 auto`},\"data-og-width\":`14`,width:`14`,\"data-og-height\":`20`,height:`20`,\"data-path\":`images/6ef4140-Vector.svg`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/quickblox/072Z-VRTn8Ddi0dI/images/6ef4140-Vector.svg?w=280\u0026fit=max\u0026auto=format\u0026n=072Z-VRTn8Ddi0dI\u0026q=85\u0026s=d42ec2d3682a41c50c6f55669007068f 280w, https://mintcdn.com/quickblox/072Z-VRTn8Ddi0dI/images/6ef4140-Vector.svg?w=560\u0026fit=max\u0026auto=format\u0026n=072Z-VRTn8Ddi0dI\u0026q=85\u0026s=1e5b1e9d7776564b4518a05d92016294 560w, https://mintcdn.com/quickblox/072Z-VRTn8Ddi0dI/images/6ef4140-Vector.svg?w=840\u0026fit=max\u0026auto=format\u0026n=072Z-VRTn8Ddi0dI\u0026q=85\u0026s=2d83e2815c747c63e53891b3ebd37926 840w, https://mintcdn.com/quickblox/072Z-VRTn8Ddi0dI/images/6ef4140-Vector.svg?w=1100\u0026fit=max\u0026auto=format\u0026n=072Z-VRTn8Ddi0dI\u0026q=85\u0026s=2379af5e4b0ba4d962489b24d4bd2bb3 1100w, https://mintcdn.com/quickblox/072Z-VRTn8Ddi0dI/images/6ef4140-Vector.svg?w=1650\u0026fit=max\u0026auto=format\u0026n=072Z-VRTn8Ddi0dI\u0026q=85\u0026s=5ebf4022a16f5932ecf0a1e80c085b9d 1650w, https://mintcdn.com/quickblox/072Z-VRTn8Ddi0dI/images/6ef4140-Vector.svg?w=2500\u0026fit=max\u0026auto=format\u0026n=072Z-VRTn8Ddi0dI\u0026q=85\u0026s=9e1c7c9409aae3908e3ef548500a1caf 2500w`})}),_jsx(`td`,{children:`An icon for send voice.`})]}),_jsxs(`tr`,{children:[_jsx(`td`,{children:`ic_record`}),_jsx(`td`,{style:{textAlign:`center`},children:_jsx(OptimizedImage,{src:`https://mintcdn.com/quickblox/57Me92sA6TMzAvXh/images/13edbd7-Vector.svg?fit=max\u0026auto=format\u0026n=57Me92sA6TMzAvXh\u0026q=85\u0026s=1e388fdb1ebcb18a24e0edda939c1a23`,alt:`recorder`,style:{width:`30px`,height:`30px`,display:`block`,margin:`0 auto`},\"data-og-width\":`30`,width:`30`,\"data-og-height\":`30`,height:`30`,\"data-path\":`images/13edbd7-Vector.svg`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/quickblox/57Me92sA6TMzAvXh/images/13edbd7-Vector.svg?w=280\u0026fit=max\u0026auto=format\u0026n=57Me92sA6TMzAvXh\u0026q=85\u0026s=ea5d8aa368346fe5484e614bff3533df 280w, https://mintcdn.com/quickblox/57Me92sA6TMzAvXh/images/13edbd7-Vector.svg?w=560\u0026fit=max\u0026auto=format\u0026n=57Me92sA6TMzAvXh\u0026q=85\u0026s=94d411e683eb0990e8eda10b65ec36ac 560w, https://mintcdn.com/quickblox/57Me92sA6TMzAvXh/images/13edbd7-Vector.svg?w=840\u0026fit=max\u0026auto=format\u0026n=57Me92sA6TMzAvXh\u0026q=85\u0026s=1560c05648976598bca56540ff41cb53 840w, https://mintcdn.com/quickblox/57Me92sA6TMzAvXh/images/13edbd7-Vector.svg?w=1100\u0026fit=max\u0026auto=format\u0026n=57Me92sA6TMzAvXh\u0026q=85\u0026s=9c0904d8a3f994dfb9940ab1738658b1 1100w, https://mintcdn.com/quickblox/57Me92sA6TMzAvXh/images/13edbd7-Vector.svg?w=1650\u0026fit=max\u0026auto=format\u0026n=57Me92sA6TMzAvXh\u0026q=85\u0026s=8fe96192cb6e4c5f440604b216c64a06 1650w, https://mintcdn.com/quickblox/57Me92sA6TMzAvXh/images/13edbd7-Vector.svg?w=2500\u0026fit=max\u0026auto=format\u0026n=57Me92sA6TMzAvXh\u0026q=85\u0026s=0743f5935103c1c5d5e0f31f7ac38f72 2500w`})}),_jsx(`td`,{children:`An icon for recorder.`})]})]})]}),`\n`,_jsx(Heading,{level:`3`,id:`customize-the-ui-for-voice-messages`,children:`Customize the UI for voice messages`}),`\n`,_jsx(_components.p,{children:`You can customize the UI for voice messages using icon resource.`}),`\n`,_jsxs(`table`,{style:{width:`100%`,textAlign:`center`},children:[_jsx(`thead`,{children:_jsxs(`tr`,{children:[_jsx(`th`,{style:{width:`33%`},children:`Icon name`}),_jsx(`th`,{style:{width:`33%`},children:`Image`}),_jsx(`th`,{style:{width:`33%`},children:`Description`})]})}),_jsxs(`tbody`,{children:[_jsxs(`tr`,{children:[_jsx(`td`,{children:`ic_play`}),_jsx(`td`,{style:{textAlign:`center`},children:_jsx(OptimizedImage,{src:`https://mintcdn.com/quickblox/794Ng7QgOqNHzAZw/images/d0f933d-Vector.svg?fit=max\u0026auto=format\u0026n=794Ng7QgOqNHzAZw\u0026q=85\u0026s=44a3084d478c96c679c990460c6e7513`,alt:`audio`,style:{width:`30px`,height:`30px`,display:`block`,margin:`0 auto`},\"data-og-width\":`22`,width:`22`,\"data-og-height\":`26`,height:`26`,\"data-path\":`images/d0f933d-Vector.svg`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/quickblox/794Ng7QgOqNHzAZw/images/d0f933d-Vector.svg?w=280\u0026fit=max\u0026auto=format\u0026n=794Ng7QgOqNHzAZw\u0026q=85\u0026s=c9e31948a37a80674715f24860de3769 280w, https://mintcdn.com/quickblox/794Ng7QgOqNHzAZw/images/d0f933d-Vector.svg?w=560\u0026fit=max\u0026auto=format\u0026n=794Ng7QgOqNHzAZw\u0026q=85\u0026s=614b58a0973bea309caf3d2e82b59251 560w, https://mintcdn.com/quickblox/794Ng7QgOqNHzAZw/images/d0f933d-Vector.svg?w=840\u0026fit=max\u0026auto=format\u0026n=794Ng7QgOqNHzAZw\u0026q=85\u0026s=a4b209e77aa2dff446784e9ea91a789a 840w, https://mintcdn.com/quickblox/794Ng7QgOqNHzAZw/images/d0f933d-Vector.svg?w=1100\u0026fit=max\u0026auto=format\u0026n=794Ng7QgOqNHzAZw\u0026q=85\u0026s=40540d52558c7d91e91ae1323f732a48 1100w, https://mintcdn.com/quickblox/794Ng7QgOqNHzAZw/images/d0f933d-Vector.svg?w=1650\u0026fit=max\u0026auto=format\u0026n=794Ng7QgOqNHzAZw\u0026q=85\u0026s=2691d59d95edda8e0291a1bda0938ec3 1650w, https://mintcdn.com/quickblox/794Ng7QgOqNHzAZw/images/d0f933d-Vector.svg?w=2500\u0026fit=max\u0026auto=format\u0026n=794Ng7QgOqNHzAZw\u0026q=85\u0026s=38fe95cbb6d381ea0f18c658f6b093f7 2500w`})}),_jsx(`td`,{children:`An icon for audio.`})]}),_jsxs(`tr`,{children:[_jsx(`td`,{children:`equalizer`}),_jsx(`td`,{style:{textAlign:`center`},children:_jsx(OptimizedImage,{src:`https://mintcdn.com/quickblox/4gw4x-2IrfN_sgat/images/1944db0-Equalizer.png?fit=max\u0026auto=format\u0026n=4gw4x-2IrfN_sgat\u0026q=85\u0026s=4ea45f9961f2b368dc8509f661b37794`,alt:`audio background`,style:{width:`30px`,height:`30px`,display:`block`,margin:`0 auto`},\"data-og-width\":`178`,width:`178`,\"data-og-height\":`12`,height:`12`,\"data-path\":`images/1944db0-Equalizer.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/quickblox/4gw4x-2IrfN_sgat/images/1944db0-Equalizer.png?w=280\u0026fit=max\u0026auto=format\u0026n=4gw4x-2IrfN_sgat\u0026q=85\u0026s=ee19a8d970aa35dc04762fd837e6cdae 280w, https://mintcdn.com/quickblox/4gw4x-2IrfN_sgat/images/1944db0-Equalizer.png?w=560\u0026fit=max\u0026auto=format\u0026n=4gw4x-2IrfN_sgat\u0026q=85\u0026s=0de5d23b64c2b7e4c7a9cd5fbada8640 560w, https://mintcdn.com/quickblox/4gw4x-2IrfN_sgat/images/1944db0-Equalizer.png?w=840\u0026fit=max\u0026auto=format\u0026n=4gw4x-2IrfN_sgat\u0026q=85\u0026s=35440923e0211f2a284d04817acdd117 840w, https://mintcdn.com/quickblox/4gw4x-2IrfN_sgat/images/1944db0-Equalizer.png?w=1100\u0026fit=max\u0026auto=format\u0026n=4gw4x-2IrfN_sgat\u0026q=85\u0026s=8e2b2f7a32271dda28db58ee72e20d9f 1100w, https://mintcdn.com/quickblox/4gw4x-2IrfN_sgat/images/1944db0-Equalizer.png?w=1650\u0026fit=max\u0026auto=format\u0026n=4gw4x-2IrfN_sgat\u0026q=85\u0026s=e23233ae7f18238811c94de300edf55f 1650w, https://mintcdn.com/quickblox/4gw4x-2IrfN_sgat/images/1944db0-Equalizer.png?w=2500\u0026fit=max\u0026auto=format\u0026n=4gw4x-2IrfN_sgat\u0026q=85\u0026s=e757268e757944579f459287f1b1fe59 2500w`})}),_jsx(`td`,{children:`An icon for audio message background.`})]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`typing-indicator`,children:`Typing indicator`}),`\n`,_jsxs(_components.p,{children:[`The typing indicator is a useful feature that provides users with a visual signal when someone else in the dialog is typing a message. This feature is implemented in the `,_jsx(_components.code,{children:`PrivateChatViewModel`}),` of the `,_jsx(_components.code,{children:`PrivateChatFragment`}),` and `,_jsx(_components.code,{children:`GroupChatViewModel`}),` of the `,_jsx(_components.code,{children:`GroupChatFragment`}),`. The indicator remains visible until the user sends the message or clears the text. If the user stops typing for more than 10 seconds, the indicator will also disappear.`]}),`\n`,_jsx(OptimizedImage,{src:`https://mintcdn.com/quickblox/blsYQNp-sI61UYaV/images/0b66716-android-uikit-typing-indicator.png?fit=max\u0026auto=format\u0026n=blsYQNp-sI61UYaV\u0026q=85\u0026s=e7558cb4949c78137c7b5c9750b6ad3b`,alt:``,\"data-og-width\":`1486`,width:`1486`,\"data-og-height\":`1284`,height:`1284`,\"data-path\":`images/0b66716-android-uikit-typing-indicator.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/quickblox/blsYQNp-sI61UYaV/images/0b66716-android-uikit-typing-indicator.png?w=280\u0026fit=max\u0026auto=format\u0026n=blsYQNp-sI61UYaV\u0026q=85\u0026s=fd81c8715a44e2b101df016b80c0c757 280w, https://mintcdn.com/quickblox/blsYQNp-sI61UYaV/images/0b66716-android-uikit-typing-indicator.png?w=560\u0026fit=max\u0026auto=format\u0026n=blsYQNp-sI61UYaV\u0026q=85\u0026s=1b78428a46d6e5acb1919ffee618a86d 560w, https://mintcdn.com/quickblox/blsYQNp-sI61UYaV/images/0b66716-android-uikit-typing-indicator.png?w=840\u0026fit=max\u0026auto=format\u0026n=blsYQNp-sI61UYaV\u0026q=85\u0026s=d96b5c27a2e2958bb7ff9f09dcf2f100 840w, https://mintcdn.com/quickblox/blsYQNp-sI61UYaV/images/0b66716-android-uikit-typing-indicator.png?w=1100\u0026fit=max\u0026auto=format\u0026n=blsYQNp-sI61UYaV\u0026q=85\u0026s=61d6eff73d13537b5089ff30d68f8086 1100w, https://mintcdn.com/quickblox/blsYQNp-sI61UYaV/images/0b66716-android-uikit-typing-indicator.png?w=1650\u0026fit=max\u0026auto=format\u0026n=blsYQNp-sI61UYaV\u0026q=85\u0026s=d0ccdd76ad28c1ae40c8b3a3b716c957 1650w, https://mintcdn.com/quickblox/blsYQNp-sI61UYaV/images/0b66716-android-uikit-typing-indicator.png?w=2500\u0026fit=max\u0026auto=format\u0026n=blsYQNp-sI61UYaV\u0026q=85\u0026s=dd38855c121c7963560841f9c71b2493 2500w`}),`\n`,_jsx(Heading,{level:`2`,id:`delivery-receipt`,children:`Delivery receipt`}),`\n`,_jsxs(_components.p,{children:[`The delivery receipt is a feature that informs a user if their messages have been successfully delivered to other users in the dialog. When message reaches server, it is marked as sent, a single-tick icon appears next to the message’s timestamp. Once message reaches receiver device, it is marked as delivered. If the sender’s message has been delivered to any recipient in the dialog, a double-tick icon appears next to the message’s timestamp. The delivery receipt can only be seen by the sender of the message. It appears on the `,_jsx(_components.code,{children:`MessagesComponent`}),`.`]}),`\n`,_jsx(OptimizedImage,{src:`https://mintcdn.com/quickblox/Ue7oFsbTxPKULNVC/images/fe9764d-android-uikit-delivery-receipt.png?fit=max\u0026auto=format\u0026n=Ue7oFsbTxPKULNVC\u0026q=85\u0026s=8180dcf6e647fc42765cb25acc40293d`,alt:``,\"data-og-width\":`1486`,width:`1486`,\"data-og-height\":`1284`,height:`1284`,\"data-path\":`images/fe9764d-android-uikit-delivery-receipt.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/quickblox/Ue7oFsbTxPKULNVC/images/fe9764d-android-uikit-delivery-receipt.png?w=280\u0026fit=max\u0026auto=format\u0026n=Ue7oFsbTxPKULNVC\u0026q=85\u0026s=f28c2eaae197efdcf8894a7ad7f3b6b3 280w, https://mintcdn.com/quickblox/Ue7oFsbTxPKULNVC/images/fe9764d-android-uikit-delivery-receipt.png?w=560\u0026fit=max\u0026auto=format\u0026n=Ue7oFsbTxPKULNVC\u0026q=85\u0026s=12864e9ceb4c999ef8ca05d3809370f8 560w, https://mintcdn.com/quickblox/Ue7oFsbTxPKULNVC/images/fe9764d-android-uikit-delivery-receipt.png?w=840\u0026fit=max\u0026auto=format\u0026n=Ue7oFsbTxPKULNVC\u0026q=85\u0026s=9c659d60b1104c78f59a2571317a4d40 840w, https://mintcdn.com/quickblox/Ue7oFsbTxPKULNVC/images/fe9764d-android-uikit-delivery-receipt.png?w=1100\u0026fit=max\u0026auto=format\u0026n=Ue7oFsbTxPKULNVC\u0026q=85\u0026s=5e1c076004fd737fc126e4c4bdbdce46 1100w, https://mintcdn.com/quickblox/Ue7oFsbTxPKULNVC/images/fe9764d-android-uikit-delivery-receipt.png?w=1650\u0026fit=max\u0026auto=format\u0026n=Ue7oFsbTxPKULNVC\u0026q=85\u0026s=650484805117b9c4c16ac4b0d906cbe9 1650w, https://mintcdn.com/quickblox/Ue7oFsbTxPKULNVC/images/fe9764d-android-uikit-delivery-receipt.png?w=2500\u0026fit=max\u0026auto=format\u0026n=Ue7oFsbTxPKULNVC\u0026q=85\u0026s=613e39cd670d653bee43c95d8455a6b6 2500w`}),`\n`,_jsx(Heading,{level:`3`,id:`customize-the-ui-for-delivery-receipt`,children:`Customize the UI for delivery receipt`}),`\n`,_jsx(_components.p,{children:`You can customize the UI for delivery receipt using icon resource.`}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`Icon resource`})}),`\n`,_jsxs(_components.p,{children:[`Icon resources are stored in `,_jsx(_components.strong,{children:`drawable`}),` directory, all icons are vectors in XML file. The following table shows customizable file sharing icon.`]}),`\n`,_jsxs(`table`,{style:{width:`100%`,textAlign:`center`},children:[_jsx(`thead`,{children:_jsxs(`tr`,{children:[_jsx(`th`,{style:{width:`33%`},children:`Icon name`}),_jsx(`th`,{style:{width:`33%`},children:`Image`}),_jsx(`th`,{style:{width:`33%`},children:`Description`})]})}),_jsxs(`tbody`,{children:[_jsxs(`tr`,{children:[_jsx(`td`,{children:`sent`}),_jsx(`td`,{style:{textAlign:`center`},children:_jsx(OptimizedImage,{src:`https://mintcdn.com/quickblox/57Me92sA6TMzAvXh/images/51b4690-Vector.svg?fit=max\u0026auto=format\u0026n=57Me92sA6TMzAvXh\u0026q=85\u0026s=a76919064541fe870897a38c9e3f003a`,alt:`sent`,style:{width:`30px`,height:`30px`,display:`block`,margin:`0 auto`},\"data-og-width\":`34`,width:`34`,\"data-og-height\":`26`,height:`26`,\"data-path\":`images/51b4690-Vector.svg`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/quickblox/57Me92sA6TMzAvXh/images/51b4690-Vector.svg?w=280\u0026fit=max\u0026auto=format\u0026n=57Me92sA6TMzAvXh\u0026q=85\u0026s=ed05e7d6bb4cc094afd916f984f53093 280w, https://mintcdn.com/quickblox/57Me92sA6TMzAvXh/images/51b4690-Vector.svg?w=560\u0026fit=max\u0026auto=format\u0026n=57Me92sA6TMzAvXh\u0026q=85\u0026s=6599e0b8bf916ad93ad2e7817e58ff47 560w, https://mintcdn.com/quickblox/57Me92sA6TMzAvXh/images/51b4690-Vector.svg?w=840\u0026fit=max\u0026auto=format\u0026n=57Me92sA6TMzAvXh\u0026q=85\u0026s=8e0dc71424792096def6b429596f5f80 840w, https://mintcdn.com/quickblox/57Me92sA6TMzAvXh/images/51b4690-Vector.svg?w=1100\u0026fit=max\u0026auto=format\u0026n=57Me92sA6TMzAvXh\u0026q=85\u0026s=eaef3d7e7b6bf0d27fe7202905f05b62 1100w, https://mintcdn.com/quickblox/57Me92sA6TMzAvXh/images/51b4690-Vector.svg?w=1650\u0026fit=max\u0026auto=format\u0026n=57Me92sA6TMzAvXh\u0026q=85\u0026s=a46a260aaefcbb2138729a84fdcb9f9b 1650w, https://mintcdn.com/quickblox/57Me92sA6TMzAvXh/images/51b4690-Vector.svg?w=2500\u0026fit=max\u0026auto=format\u0026n=57Me92sA6TMzAvXh\u0026q=85\u0026s=86971b4c75bca759cb3482a080597712 2500w`})}),_jsx(`td`,{children:`An icon for sent.`})]}),_jsxs(`tr`,{children:[_jsx(`td`,{children:`delivered`}),_jsx(`td`,{style:{textAlign:`center`},children:_jsx(OptimizedImage,{src:`https://mintcdn.com/quickblox/072Z-VRTn8Ddi0dI/images/8945fa8-Vector.svg?fit=max\u0026auto=format\u0026n=072Z-VRTn8Ddi0dI\u0026q=85\u0026s=3f1047d80f250d22c3b337c98a316b2d`,alt:`delivery`,style:{width:`30px`,height:`30px`,display:`block`,margin:`0 auto`},\"data-og-width\":`44`,width:`44`,\"data-og-height\":`26`,height:`26`,\"data-path\":`images/8945fa8-Vector.svg`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/quickblox/072Z-VRTn8Ddi0dI/images/8945fa8-Vector.svg?w=280\u0026fit=max\u0026auto=format\u0026n=072Z-VRTn8Ddi0dI\u0026q=85\u0026s=560a5fd9a8193179c06ae61457af37b2 280w, https://mintcdn.com/quickblox/072Z-VRTn8Ddi0dI/images/8945fa8-Vector.svg?w=560\u0026fit=max\u0026auto=format\u0026n=072Z-VRTn8Ddi0dI\u0026q=85\u0026s=f342456cb6e740ee45ba0e9dcdd106f0 560w, https://mintcdn.com/quickblox/072Z-VRTn8Ddi0dI/images/8945fa8-Vector.svg?w=840\u0026fit=max\u0026auto=format\u0026n=072Z-VRTn8Ddi0dI\u0026q=85\u0026s=598a7fcba1a5c2643aab5e388386a4c6 840w, https://mintcdn.com/quickblox/072Z-VRTn8Ddi0dI/images/8945fa8-Vector.svg?w=1100\u0026fit=max\u0026auto=format\u0026n=072Z-VRTn8Ddi0dI\u0026q=85\u0026s=9b8ef511a43e976bec8221bf124db9cc 1100w, https://mintcdn.com/quickblox/072Z-VRTn8Ddi0dI/images/8945fa8-Vector.svg?w=1650\u0026fit=max\u0026auto=format\u0026n=072Z-VRTn8Ddi0dI\u0026q=85\u0026s=09ca1f63de51c406484d297474e35b5f 1650w, https://mintcdn.com/quickblox/072Z-VRTn8Ddi0dI/images/8945fa8-Vector.svg?w=2500\u0026fit=max\u0026auto=format\u0026n=072Z-VRTn8Ddi0dI\u0026q=85\u0026s=bfb7bcf6e57e820d8af06f9dc2ef8fe8 2500w`})}),_jsx(`td`,{children:`An icon for delivery.`})]})]})]}),`\n`,_jsx(Tip,{children:_jsxs(_components.p,{children:[`The default delivery receipt color uses the `,_jsx(_components.strong,{children:`tertiary elements color`}),`, it can be changed in the theme with `,_jsx(_components.code,{children:`setTertiaryElementsColor()`}),` (see `,_jsx(_components.a,{href:`/ui-kits/android-uikit-customization#theme-colors`,children:`Theme colors`}),`)`]})}),`\n`,_jsx(Heading,{level:`2`,id:`read-receipt`,children:`Read receipt`}),`\n`,_jsxs(_components.p,{children:[`The read receipt feature allows users to determine whether their messages have been read by others in the dialog. When any recipient in the dialog have read the sender’s message, a colored double-tick icon is displayed next to the message’s timestamp. The read receipts are only visible to the sender of the message. It appears on the `,_jsx(_components.code,{children:`MessagesComponent`}),`.`]}),`\n`,_jsx(OptimizedImage,{src:`https://mintcdn.com/quickblox/xkS1X1sSZwktmwsY/images/a3a3d73-android-uikit-read-receipt.png?fit=max\u0026auto=format\u0026n=xkS1X1sSZwktmwsY\u0026q=85\u0026s=54b8f83b5f2b7ec3be7a20b69e42f9d1`,alt:``,\"data-og-width\":`1486`,width:`1486`,\"data-og-height\":`1284`,height:`1284`,\"data-path\":`images/a3a3d73-android-uikit-read-receipt.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/quickblox/xkS1X1sSZwktmwsY/images/a3a3d73-android-uikit-read-receipt.png?w=280\u0026fit=max\u0026auto=format\u0026n=xkS1X1sSZwktmwsY\u0026q=85\u0026s=8bdd6d759247b7f27a2d9af4c13a7aba 280w, https://mintcdn.com/quickblox/xkS1X1sSZwktmwsY/images/a3a3d73-android-uikit-read-receipt.png?w=560\u0026fit=max\u0026auto=format\u0026n=xkS1X1sSZwktmwsY\u0026q=85\u0026s=656108ca8bbd25b4ad0f9dc6469ae551 560w, https://mintcdn.com/quickblox/xkS1X1sSZwktmwsY/images/a3a3d73-android-uikit-read-receipt.png?w=840\u0026fit=max\u0026auto=format\u0026n=xkS1X1sSZwktmwsY\u0026q=85\u0026s=97c2684485bcdbc9603c60f8f60fd189 840w, https://mintcdn.com/quickblox/xkS1X1sSZwktmwsY/images/a3a3d73-android-uikit-read-receipt.png?w=1100\u0026fit=max\u0026auto=format\u0026n=xkS1X1sSZwktmwsY\u0026q=85\u0026s=806c23db823e8a8d8557879988fa2639 1100w, https://mintcdn.com/quickblox/xkS1X1sSZwktmwsY/images/a3a3d73-android-uikit-read-receipt.png?w=1650\u0026fit=max\u0026auto=format\u0026n=xkS1X1sSZwktmwsY\u0026q=85\u0026s=69798a6257e3b648d259e07b5b2fa7d9 1650w, https://mintcdn.com/quickblox/xkS1X1sSZwktmwsY/images/a3a3d73-android-uikit-read-receipt.png?w=2500\u0026fit=max\u0026auto=format\u0026n=xkS1X1sSZwktmwsY\u0026q=85\u0026s=749f20caeb31845adb9f80aa8097b3b0 2500w`}),`\n`,_jsx(Heading,{level:`3`,id:`customize-the-ui-for-read-receipt`,children:`Customize the UI for read receipt`}),`\n`,_jsx(_components.p,{children:`You can customize the UI for read receipt using icon resource.`}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`Icon resource`})}),`\n`,_jsxs(_components.p,{children:[`Icon resources are stored in `,_jsx(_components.strong,{children:`drawable`}),` directory, all icons are vectors in XML file. The following table shows customizable file sharing icon.`]}),`\n`,_jsxs(`table`,{style:{width:`100%`,textAlign:`center`},children:[_jsx(`thead`,{children:_jsxs(`tr`,{children:[_jsx(`th`,{style:{width:`33%`},children:`Icon name`}),_jsx(`th`,{style:{width:`33%`},children:`Image`}),_jsx(`th`,{style:{width:`33%`},children:`Description`})]})}),_jsx(`tbody`,{children:_jsxs(`tr`,{children:[_jsx(`td`,{children:`read`}),_jsx(`td`,{style:{textAlign:`center`},children:_jsx(OptimizedImage,{src:`https://mintcdn.com/quickblox/072Z-VRTn8Ddi0dI/images/8945fa8-Vector.svg?fit=max\u0026auto=format\u0026n=072Z-VRTn8Ddi0dI\u0026q=85\u0026s=3f1047d80f250d22c3b337c98a316b2d`,alt:`read`,style:{width:`30px`,height:`30px`,display:`block`,margin:`0 auto`},\"data-og-width\":`44`,width:`44`,\"data-og-height\":`26`,height:`26`,\"data-path\":`images/8945fa8-Vector.svg`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/quickblox/072Z-VRTn8Ddi0dI/images/8945fa8-Vector.svg?w=280\u0026fit=max\u0026auto=format\u0026n=072Z-VRTn8Ddi0dI\u0026q=85\u0026s=560a5fd9a8193179c06ae61457af37b2 280w, https://mintcdn.com/quickblox/072Z-VRTn8Ddi0dI/images/8945fa8-Vector.svg?w=560\u0026fit=max\u0026auto=format\u0026n=072Z-VRTn8Ddi0dI\u0026q=85\u0026s=f342456cb6e740ee45ba0e9dcdd106f0 560w, https://mintcdn.com/quickblox/072Z-VRTn8Ddi0dI/images/8945fa8-Vector.svg?w=840\u0026fit=max\u0026auto=format\u0026n=072Z-VRTn8Ddi0dI\u0026q=85\u0026s=598a7fcba1a5c2643aab5e388386a4c6 840w, https://mintcdn.com/quickblox/072Z-VRTn8Ddi0dI/images/8945fa8-Vector.svg?w=1100\u0026fit=max\u0026auto=format\u0026n=072Z-VRTn8Ddi0dI\u0026q=85\u0026s=9b8ef511a43e976bec8221bf124db9cc 1100w, https://mintcdn.com/quickblox/072Z-VRTn8Ddi0dI/images/8945fa8-Vector.svg?w=1650\u0026fit=max\u0026auto=format\u0026n=072Z-VRTn8Ddi0dI\u0026q=85\u0026s=09ca1f63de51c406484d297474e35b5f 1650w, https://mintcdn.com/quickblox/072Z-VRTn8Ddi0dI/images/8945fa8-Vector.svg?w=2500\u0026fit=max\u0026auto=format\u0026n=072Z-VRTn8Ddi0dI\u0026q=85\u0026s=bfb7bcf6e57e820d8af06f9dc2ef8fe8 2500w`})}),_jsx(`td`,{children:`An icon for read.`})]})})]}),`\n`,_jsx(Tip,{children:_jsxs(_components.p,{children:[`The default read receipt color uses the `,_jsx(_components.strong,{children:`main elements color`}),`, it can be changed in the theme with `,_jsx(_components.code,{children:`setMainElementsColor()`}),` (see `,_jsx(_components.a,{href:`/ui-kits/android-uikit-customization#theme-colors`,children:`Theme colors`}),`)`]})}),`\n`,_jsx(Heading,{level:`2`,id:`unread-message-count`,children:`Unread message count`}),`\n`,_jsxs(_components.p,{children:[`Unread message count is a feature that informs users of the number of messages they haven’t read in each dialog. The number of unread messages per dialog is displayed below the timestamp. If the number of messages is more than 100, it will be displayed as `,_jsx(_components.code,{children:`99+`}),`. The unread message count appears on the `,_jsx(_components.code,{children:`DialogsComponent`}),`.`]}),`\n`,_jsx(OptimizedImage,{src:`https://mintcdn.com/quickblox/Ue7oFsbTxPKULNVC/images/ffc1ef0-android-uikit-unread-message-count.png?fit=max\u0026auto=format\u0026n=Ue7oFsbTxPKULNVC\u0026q=85\u0026s=44ed8194a247ce534650557597cbc59b`,alt:``,\"data-og-width\":`1486`,width:`1486`,\"data-og-height\":`1284`,height:`1284`,\"data-path\":`images/ffc1ef0-android-uikit-unread-message-count.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/quickblox/Ue7oFsbTxPKULNVC/images/ffc1ef0-android-uikit-unread-message-count.png?w=280\u0026fit=max\u0026auto=format\u0026n=Ue7oFsbTxPKULNVC\u0026q=85\u0026s=3d599ffe8dff56a253f1915163e778cb 280w, https://mintcdn.com/quickblox/Ue7oFsbTxPKULNVC/images/ffc1ef0-android-uikit-unread-message-count.png?w=560\u0026fit=max\u0026auto=format\u0026n=Ue7oFsbTxPKULNVC\u0026q=85\u0026s=facb4e4a63749366bd9048444edfea7a 560w, https://mintcdn.com/quickblox/Ue7oFsbTxPKULNVC/images/ffc1ef0-android-uikit-unread-message-count.png?w=840\u0026fit=max\u0026auto=format\u0026n=Ue7oFsbTxPKULNVC\u0026q=85\u0026s=54b12c3056b30d6a3b6a1695699088e6 840w, https://mintcdn.com/quickblox/Ue7oFsbTxPKULNVC/images/ffc1ef0-android-uikit-unread-message-count.png?w=1100\u0026fit=max\u0026auto=format\u0026n=Ue7oFsbTxPKULNVC\u0026q=85\u0026s=1edb7d5e473adcec6a6ab72c9144eec7 1100w, https://mintcdn.com/quickblox/Ue7oFsbTxPKULNVC/images/ffc1ef0-android-uikit-unread-message-count.png?w=1650\u0026fit=max\u0026auto=format\u0026n=Ue7oFsbTxPKULNVC\u0026q=85\u0026s=05a46f10177d54541d57e17506c0b8ae 1650w, https://mintcdn.com/quickblox/Ue7oFsbTxPKULNVC/images/ffc1ef0-android-uikit-unread-message-count.png?w=2500\u0026fit=max\u0026auto=format\u0026n=Ue7oFsbTxPKULNVC\u0026q=85\u0026s=0b1a3a4d566c66555a48873aa1262430 2500w`}),`\n`,_jsx(Heading,{level:`3`,id:`customize-the-ui-for-unread-message-counts`,children:`Customize the UI for unread message counts`}),`\n`,_jsx(_components.p,{children:`You can customize the UI for unread message count using shape resource.`}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`Shape resource`})}),`\n`,_jsxs(_components.p,{children:[`Shape resources are stored in `,_jsx(_components.strong,{children:`drawable`}),` directory.`]}),`\n`,_jsxs(`table`,{style:{width:`100%`,textAlign:`center`},children:[_jsx(`thead`,{children:_jsxs(`tr`,{children:[_jsx(`th`,{style:{width:`50%`},children:`Shape name`}),_jsx(`th`,{style:{width:`50%`},children:`Description`})]})}),_jsx(`tbody`,{children:_jsxs(`tr`,{children:[_jsx(`td`,{children:`bg_dialog_counter`}),_jsx(`td`,{children:`Shape for unread message count`})]})})]}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[`The default shape color uses the `,_jsx(_components.strong,{children:`main elements color`}),`, it can be changed in the theme with `,_jsx(_components.code,{children:`setMainElementsColor()`}),` (see `,_jsx(_components.a,{href:`/ui-kits/android-uikit-customization#theme-colors`,children:`Theme colors`}),`)`]})}),`\n`,_jsx(Heading,{level:`2`,id:`highlight-urls`,children:`Highlight URLs`}),`\n`,_jsx(_components.p,{children:`The highlighting URLs is a feature that refers to displaying clickable links in a chat message, where the URL is visually distinguished and can be interacted with the user.`}),`\n`,_jsx(OptimizedImage,{src:`https://mintcdn.com/quickblox/Ue7oFsbTxPKULNVC/images/e81f639-android-uikit-highlight-urls.png?fit=max\u0026auto=format\u0026n=Ue7oFsbTxPKULNVC\u0026q=85\u0026s=15432936306ebb40282ad7ddece8d553`,alt:``,\"data-og-width\":`1486`,width:`1486`,\"data-og-height\":`1284`,height:`1284`,\"data-path\":`images/e81f639-android-uikit-highlight-urls.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/quickblox/Ue7oFsbTxPKULNVC/images/e81f639-android-uikit-highlight-urls.png?w=280\u0026fit=max\u0026auto=format\u0026n=Ue7oFsbTxPKULNVC\u0026q=85\u0026s=679ae8d909918eaaa04a7003107a4972 280w, https://mintcdn.com/quickblox/Ue7oFsbTxPKULNVC/images/e81f639-android-uikit-highlight-urls.png?w=560\u0026fit=max\u0026auto=format\u0026n=Ue7oFsbTxPKULNVC\u0026q=85\u0026s=2301159c2beccc55b9cfd0fe9be4d7c2 560w, https://mintcdn.com/quickblox/Ue7oFsbTxPKULNVC/images/e81f639-android-uikit-highlight-urls.png?w=840\u0026fit=max\u0026auto=format\u0026n=Ue7oFsbTxPKULNVC\u0026q=85\u0026s=48e512301e2538be9eebebfe77c81298 840w, https://mintcdn.com/quickblox/Ue7oFsbTxPKULNVC/images/e81f639-android-uikit-highlight-urls.png?w=1100\u0026fit=max\u0026auto=format\u0026n=Ue7oFsbTxPKULNVC\u0026q=85\u0026s=962e1d495db1adadd8b8d46ef5746a56 1100w, https://mintcdn.com/quickblox/Ue7oFsbTxPKULNVC/images/e81f639-android-uikit-highlight-urls.png?w=1650\u0026fit=max\u0026auto=format\u0026n=Ue7oFsbTxPKULNVC\u0026q=85\u0026s=a6a1b7173216c02d4368d73e71fe5b20 1650w, https://mintcdn.com/quickblox/Ue7oFsbTxPKULNVC/images/e81f639-android-uikit-highlight-urls.png?w=2500\u0026fit=max\u0026auto=format\u0026n=Ue7oFsbTxPKULNVC\u0026q=85\u0026s=101662dde722bf75d3bc193429d60c9e 2500w`}),`\n`,_jsx(Heading,{level:`2`,id:`forwarding-and-replying-messages`,children:`Forwarding and Replying Messages`}),`\n`,_jsx(_components.p,{children:`Modern messengers and chat platforms offer various functional features, among the most useful of which are message forwarding and reply options. Let’s take a closer look at them.`}),`\n`,_jsx(OptimizedImage,{src:`https://mintcdn.com/quickblox/e8BObhqG0WJty0gE/images/69c623d-Screenshot_20231128_130412_android-ui-kit-sample.jpg?fit=max\u0026auto=format\u0026n=e8BObhqG0WJty0gE\u0026q=85\u0026s=7954c709b2688ec20de257c968460afc`,className:`centered-image`,\"data-og-width\":`1080`,width:`1080`,\"data-og-height\":`651`,height:`651`,\"data-path\":`images/69c623d-Screenshot_20231128_130412_android-ui-kit-sample.jpg`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/quickblox/e8BObhqG0WJty0gE/images/69c623d-Screenshot_20231128_130412_android-ui-kit-sample.jpg?w=280\u0026fit=max\u0026auto=format\u0026n=e8BObhqG0WJty0gE\u0026q=85\u0026s=e8df7570175671fef90d459bcbdcd832 280w, https://mintcdn.com/quickblox/e8BObhqG0WJty0gE/images/69c623d-Screenshot_20231128_130412_android-ui-kit-sample.jpg?w=560\u0026fit=max\u0026auto=format\u0026n=e8BObhqG0WJty0gE\u0026q=85\u0026s=6db8d7153d43ee5ea008539c44f23b47 560w, https://mintcdn.com/quickblox/e8BObhqG0WJty0gE/images/69c623d-Screenshot_20231128_130412_android-ui-kit-sample.jpg?w=840\u0026fit=max\u0026auto=format\u0026n=e8BObhqG0WJty0gE\u0026q=85\u0026s=0a9cd9a80011f03bcc81632ff99c6bbe 840w, https://mintcdn.com/quickblox/e8BObhqG0WJty0gE/images/69c623d-Screenshot_20231128_130412_android-ui-kit-sample.jpg?w=1100\u0026fit=max\u0026auto=format\u0026n=e8BObhqG0WJty0gE\u0026q=85\u0026s=5bdfed11bbe754b5dd0c8b6afe4e3e95 1100w, https://mintcdn.com/quickblox/e8BObhqG0WJty0gE/images/69c623d-Screenshot_20231128_130412_android-ui-kit-sample.jpg?w=1650\u0026fit=max\u0026auto=format\u0026n=e8BObhqG0WJty0gE\u0026q=85\u0026s=6d2d26ecdce93ec512a84a55c7be3627 1650w, https://mintcdn.com/quickblox/e8BObhqG0WJty0gE/images/69c623d-Screenshot_20231128_130412_android-ui-kit-sample.jpg?w=2500\u0026fit=max\u0026auto=format\u0026n=e8BObhqG0WJty0gE\u0026q=85\u0026s=6c891cff40e858e37d5feec2268c2af7 2500w`}),`\n`,_jsx(_components.p,{children:`By default, these functions are enabled, but if necessary, they can be disabled and enabled using special methods:`}),`\n`,_jsx(CodeBlock,{filename:`Kotlin`,numberOfLines:`5`,language:`kotlin`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`kotlin`,children:_jsxs(_components.code,{language:`kotlin`,numberOfLines:`5`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`QuickBloxUiKit.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`enableReply`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`()`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`QuickBloxUiKit.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`disableReply`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`()`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`QuickBloxUiKit.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`enableForward`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`()`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`QuickBloxUiKit.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`disableForward`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`()`})]}),`\n`]})})}),`\n`,_jsx(Heading,{level:`3`,id:`forwarding-messages`,children:`Forwarding Messages:`}),`\n`,_jsx(_components.p,{children:`Forwarding is the capability to transfer messages from one chat participant to another, similar to email forwarding. It enables efficient exchange and discussion of information within the context of chats and messengers.`}),`\n`,_jsx(OptimizedImage,{src:`https://mintcdn.com/quickblox/o2RjBAwC-KBPW1oJ/images/zsyfSAf.png?fit=max\u0026auto=format\u0026n=o2RjBAwC-KBPW1oJ\u0026q=85\u0026s=f79d89269fb09357acd0fbdd0da5fa64`,className:`centered-image`,style:{height:`600px`,width:`600px`},\"data-og-width\":`566`,width:`566`,\"data-og-height\":`568`,height:`568`,\"data-path\":`images/zsyfSAf.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/quickblox/o2RjBAwC-KBPW1oJ/images/zsyfSAf.png?w=280\u0026fit=max\u0026auto=format\u0026n=o2RjBAwC-KBPW1oJ\u0026q=85\u0026s=8680f846b00b6e330a71f4eda701ede6 280w, https://mintcdn.com/quickblox/o2RjBAwC-KBPW1oJ/images/zsyfSAf.png?w=560\u0026fit=max\u0026auto=format\u0026n=o2RjBAwC-KBPW1oJ\u0026q=85\u0026s=4fd497a1ef06d7575e974a6c9aae1c27 560w, https://mintcdn.com/quickblox/o2RjBAwC-KBPW1oJ/images/zsyfSAf.png?w=840\u0026fit=max\u0026auto=format\u0026n=o2RjBAwC-KBPW1oJ\u0026q=85\u0026s=734d4471e976cd96585eea8b87264a80 840w, https://mintcdn.com/quickblox/o2RjBAwC-KBPW1oJ/images/zsyfSAf.png?w=1100\u0026fit=max\u0026auto=format\u0026n=o2RjBAwC-KBPW1oJ\u0026q=85\u0026s=6c60aaf2bc224f4d39d893b0eb663004 1100w, https://mintcdn.com/quickblox/o2RjBAwC-KBPW1oJ/images/zsyfSAf.png?w=1650\u0026fit=max\u0026auto=format\u0026n=o2RjBAwC-KBPW1oJ\u0026q=85\u0026s=914f8dd66e9814dba3c4ec1943b8321c 1650w, https://mintcdn.com/quickblox/o2RjBAwC-KBPW1oJ/images/zsyfSAf.png?w=2500\u0026fit=max\u0026auto=format\u0026n=o2RjBAwC-KBPW1oJ\u0026q=85\u0026s=375c54f5d9d9a7257d31a4d353fb902e 2500w`}),`\n`,_jsx(_components.p,{children:`Once you’ve selected the dialogue to which you want to forward the message, the forwarded message will be displayed in the selected dialogue like this.`}),`\n`,_jsx(OptimizedImage,{src:`https://mintcdn.com/quickblox/e8BObhqG0WJty0gE/images/693a26c-Screenshot_20231128_130722_android-ui-kit-sample.jpg?fit=max\u0026auto=format\u0026n=e8BObhqG0WJty0gE\u0026q=85\u0026s=71a0f20b3d3e06a965a70f9cf9f2ee2e`,className:`centered-image`,\"data-og-width\":`1080`,width:`1080`,\"data-og-height\":`1101`,height:`1101`,\"data-path\":`images/693a26c-Screenshot_20231128_130722_android-ui-kit-sample.jpg`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/quickblox/e8BObhqG0WJty0gE/images/693a26c-Screenshot_20231128_130722_android-ui-kit-sample.jpg?w=280\u0026fit=max\u0026auto=format\u0026n=e8BObhqG0WJty0gE\u0026q=85\u0026s=bf11b81edb28da88bee3dd757371d7ca 280w, https://mintcdn.com/quickblox/e8BObhqG0WJty0gE/images/693a26c-Screenshot_20231128_130722_android-ui-kit-sample.jpg?w=560\u0026fit=max\u0026auto=format\u0026n=e8BObhqG0WJty0gE\u0026q=85\u0026s=2faf5aa424dbce48e81ce8831ff91125 560w, https://mintcdn.com/quickblox/e8BObhqG0WJty0gE/images/693a26c-Screenshot_20231128_130722_android-ui-kit-sample.jpg?w=840\u0026fit=max\u0026auto=format\u0026n=e8BObhqG0WJty0gE\u0026q=85\u0026s=64a7bb5cb6b3433a6b098f9b88c3d4cc 840w, https://mintcdn.com/quickblox/e8BObhqG0WJty0gE/images/693a26c-Screenshot_20231128_130722_android-ui-kit-sample.jpg?w=1100\u0026fit=max\u0026auto=format\u0026n=e8BObhqG0WJty0gE\u0026q=85\u0026s=4c33787c1689ca5d8affe74de4a7a04c 1100w, https://mintcdn.com/quickblox/e8BObhqG0WJty0gE/images/693a26c-Screenshot_20231128_130722_android-ui-kit-sample.jpg?w=1650\u0026fit=max\u0026auto=format\u0026n=e8BObhqG0WJty0gE\u0026q=85\u0026s=db435d87808ec854d1c1cfd1869ff0f3 1650w, https://mintcdn.com/quickblox/e8BObhqG0WJty0gE/images/693a26c-Screenshot_20231128_130722_android-ui-kit-sample.jpg?w=2500\u0026fit=max\u0026auto=format\u0026n=e8BObhqG0WJty0gE\u0026q=85\u0026s=52fea9c84b940673db9170fefe2ee1be 2500w`}),`\n`,_jsx(Heading,{level:`3`,id:`replying-to-messages`,children:`Replying to Messages:`}),`\n`,_jsx(_components.p,{children:`Replying is the ability to respond to a specific message, establishing a connection between the reply and the original message. It enhances the structure of communication in a chat, making conversations more clear and organized.`}),`\n`,_jsx(OptimizedImage,{src:`https://mintcdn.com/quickblox/Ue7oFsbTxPKULNVC/images/eef9361-Screenshot_20231128_133424_android-ui-kit-sample.jpg?fit=max\u0026auto=format\u0026n=Ue7oFsbTxPKULNVC\u0026q=85\u0026s=712d247e464e64304f6fad42d3d447fe`,className:`centered-image`,\"data-og-width\":`1080`,width:`1080`,\"data-og-height\":`1246`,height:`1246`,\"data-path\":`images/eef9361-Screenshot_20231128_133424_android-ui-kit-sample.jpg`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/quickblox/Ue7oFsbTxPKULNVC/images/eef9361-Screenshot_20231128_133424_android-ui-kit-sample.jpg?w=280\u0026fit=max\u0026auto=format\u0026n=Ue7oFsbTxPKULNVC\u0026q=85\u0026s=1f4ec71e94a02ce95026bc9facfa0ec9 280w, https://mintcdn.com/quickblox/Ue7oFsbTxPKULNVC/images/eef9361-Screenshot_20231128_133424_android-ui-kit-sample.jpg?w=560\u0026fit=max\u0026auto=format\u0026n=Ue7oFsbTxPKULNVC\u0026q=85\u0026s=48891b2df5cf09a219db75a8baf9cf14 560w, https://mintcdn.com/quickblox/Ue7oFsbTxPKULNVC/images/eef9361-Screenshot_20231128_133424_android-ui-kit-sample.jpg?w=840\u0026fit=max\u0026auto=format\u0026n=Ue7oFsbTxPKULNVC\u0026q=85\u0026s=2bafc4ebe5910d8aad71fb0f6326b100 840w, https://mintcdn.com/quickblox/Ue7oFsbTxPKULNVC/images/eef9361-Screenshot_20231128_133424_android-ui-kit-sample.jpg?w=1100\u0026fit=max\u0026auto=format\u0026n=Ue7oFsbTxPKULNVC\u0026q=85\u0026s=6e48a0bbb2685204e2acf66023dc8cee 1100w, https://mintcdn.com/quickblox/Ue7oFsbTxPKULNVC/images/eef9361-Screenshot_20231128_133424_android-ui-kit-sample.jpg?w=1650\u0026fit=max\u0026auto=format\u0026n=Ue7oFsbTxPKULNVC\u0026q=85\u0026s=e85f1bf883c825374b80ec2cb21cb36e 1650w, https://mintcdn.com/quickblox/Ue7oFsbTxPKULNVC/images/eef9361-Screenshot_20231128_133424_android-ui-kit-sample.jpg?w=2500\u0026fit=max\u0026auto=format\u0026n=Ue7oFsbTxPKULNVC\u0026q=85\u0026s=076e97b7713777cdfc01de8db472eb2d 2500w`}),`\n`,_jsx(_components.p,{children:`After choosing the message to which you’ve decided to reply, your response to the message will be displayed like this.`}),`\n`,_jsx(OptimizedImage,{src:`https://mintcdn.com/quickblox/4gw4x-2IrfN_sgat/images/30e40aa-Screenshot_20231128_130349_android-ui-kit-sample.jpg?fit=max\u0026auto=format\u0026n=4gw4x-2IrfN_sgat\u0026q=85\u0026s=819a1f16e87332e0c0fc1fbfbaf10ed8`,className:`centered-image`,\"data-og-width\":`1080`,width:`1080`,\"data-og-height\":`1682`,height:`1682`,\"data-path\":`images/30e40aa-Screenshot_20231128_130349_android-ui-kit-sample.jpg`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/quickblox/4gw4x-2IrfN_sgat/images/30e40aa-Screenshot_20231128_130349_android-ui-kit-sample.jpg?w=280\u0026fit=max\u0026auto=format\u0026n=4gw4x-2IrfN_sgat\u0026q=85\u0026s=25ea7fb39875224f8e34c46cab7c9c10 280w, https://mintcdn.com/quickblox/4gw4x-2IrfN_sgat/images/30e40aa-Screenshot_20231128_130349_android-ui-kit-sample.jpg?w=560\u0026fit=max\u0026auto=format\u0026n=4gw4x-2IrfN_sgat\u0026q=85\u0026s=acd8e9944ccaffa5fe8f084c28271376 560w, https://mintcdn.com/quickblox/4gw4x-2IrfN_sgat/images/30e40aa-Screenshot_20231128_130349_android-ui-kit-sample.jpg?w=840\u0026fit=max\u0026auto=format\u0026n=4gw4x-2IrfN_sgat\u0026q=85\u0026s=d438c67bd4cd7971ca3ec62372c46d00 840w, https://mintcdn.com/quickblox/4gw4x-2IrfN_sgat/images/30e40aa-Screenshot_20231128_130349_android-ui-kit-sample.jpg?w=1100\u0026fit=max\u0026auto=format\u0026n=4gw4x-2IrfN_sgat\u0026q=85\u0026s=cba1700157c4df8267e7ee122b1da7b6 1100w, https://mintcdn.com/quickblox/4gw4x-2IrfN_sgat/images/30e40aa-Screenshot_20231128_130349_android-ui-kit-sample.jpg?w=1650\u0026fit=max\u0026auto=format\u0026n=4gw4x-2IrfN_sgat\u0026q=85\u0026s=a03490255f1c74a75a180a923159fd16 1650w, https://mintcdn.com/quickblox/4gw4x-2IrfN_sgat/images/30e40aa-Screenshot_20231128_130349_android-ui-kit-sample.jpg?w=2500\u0026fit=max\u0026auto=format\u0026n=4gw4x-2IrfN_sgat\u0026q=85\u0026s=2188b463f05ee6d82dbcac8b84d21a82 2500w`}),`\n`,_jsx(Heading,{level:`3`,id:`customize-the-ui-for-forwarding-and-replying`,children:`Customize the UI for forwarding and replying:`}),`\n`,_jsx(_components.p,{children:`You can customize the UI for file sharing using string resources and icon resources.`}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`String resource`})}),`\n`,_jsxs(_components.p,{children:[`The string resource is a set of strings used to compose the screen. It’s a `,_jsx(_components.strong,{children:`res/strings.xml`}),` file containing UIKit-defined string values.`]}),`\n`,_jsx(CodeBlock,{filename:`xml`,numberOfLines:`9`,language:`xml`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`xml`,children:_jsxs(_components.code,{language:`xml`,numberOfLines:`9`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`\u003c`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`resources`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` \u003c`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`string`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"forward\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`Forward`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`\u003c/`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`string`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` \u003c`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`string`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"forwarded_from_with_name\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`Forwarded from %s`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`\u003c/`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`string`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` \u003c`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`string`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"replied_to_with_name\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`Replied to %s`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`\u003c/`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`string`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` \u003c`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`string`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"replied_to\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`Replied to`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`\u003c/`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`string`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` \u003c`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`string`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"forwarded_from\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`Forwarded from`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`\u003c/`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`string`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` \u003c`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`string`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"message_forwarded_to\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`Message forwarded to %s`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`\u003c/`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`string`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` \u003c`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`string`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"reply\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`Reply`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`\u003c/`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`string`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`\u003c/`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`resources`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`})]}),`\n`]})})}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`Icon resource`})}),`\n`,_jsxs(_components.p,{children:[`Icon resources are stored in `,_jsx(_components.strong,{children:`drawable`}),` directory, all icons are vectors in XML file. The following table shows customizable file sharing icon.`]}),`\n`,_jsxs(`table`,{style:{width:`100%`,textAlign:`center`},children:[_jsx(`thead`,{children:_jsxs(`tr`,{children:[_jsx(`th`,{style:{width:`30%`},children:`Icon name`}),_jsx(`th`,{style:{width:`40%`},children:`Image`}),_jsx(`th`,{style:{width:`30%`},children:`Description`})]})}),_jsxs(`tbody`,{children:[_jsxs(`tr`,{children:[_jsx(`td`,{children:`ic_forward`}),_jsx(`td`,{style:{textAlign:`center`},children:_jsx(OptimizedImage,{src:`https://mintcdn.com/quickblox/794Ng7QgOqNHzAZw/images/f39b64e-froward.svg?fit=max\u0026auto=format\u0026n=794Ng7QgOqNHzAZw\u0026q=85\u0026s=e34854a7b8078c94deac0f2542983642`,width:`30px`,height:`30px`,style:{display:`block`,margin:`0 auto`},\"data-og-width\":`16`,\"data-og-height\":`16`,\"data-path\":`images/f39b64e-froward.svg`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/quickblox/794Ng7QgOqNHzAZw/images/f39b64e-froward.svg?w=280\u0026fit=max\u0026auto=format\u0026n=794Ng7QgOqNHzAZw\u0026q=85\u0026s=bf5ea9bd2b2d63dc7a577dea3f9000c5 280w, https://mintcdn.com/quickblox/794Ng7QgOqNHzAZw/images/f39b64e-froward.svg?w=560\u0026fit=max\u0026auto=format\u0026n=794Ng7QgOqNHzAZw\u0026q=85\u0026s=4d8269ca8a14907035027eb0ec0e0c8a 560w, https://mintcdn.com/quickblox/794Ng7QgOqNHzAZw/images/f39b64e-froward.svg?w=840\u0026fit=max\u0026auto=format\u0026n=794Ng7QgOqNHzAZw\u0026q=85\u0026s=2e3d07bb86393d6750158cac34eaaf4a 840w, https://mintcdn.com/quickblox/794Ng7QgOqNHzAZw/images/f39b64e-froward.svg?w=1100\u0026fit=max\u0026auto=format\u0026n=794Ng7QgOqNHzAZw\u0026q=85\u0026s=533040bf6197c7c6cad5cb516608275a 1100w, https://mintcdn.com/quickblox/794Ng7QgOqNHzAZw/images/f39b64e-froward.svg?w=1650\u0026fit=max\u0026auto=format\u0026n=794Ng7QgOqNHzAZw\u0026q=85\u0026s=8fcbd0b6020ce3f397c5623cffc705ea 1650w, https://mintcdn.com/quickblox/794Ng7QgOqNHzAZw/images/f39b64e-froward.svg?w=2500\u0026fit=max\u0026auto=format\u0026n=794Ng7QgOqNHzAZw\u0026q=85\u0026s=5ccd29d879b697be6d0c509fa1c48918 2500w`})}),_jsx(`td`,{children:`An icon for forward.`})]}),_jsxs(`tr`,{children:[_jsx(`td`,{children:`ic_reply`}),_jsx(`td`,{style:{textAlign:`center`},children:_jsx(OptimizedImage,{src:`https://mintcdn.com/quickblox/Xw20nWnsGv7XVu2V/images/059748d-reply.svg?fit=max\u0026auto=format\u0026n=Xw20nWnsGv7XVu2V\u0026q=85\u0026s=4bd21addfa0265a5c4b23d682e4e2d76`,width:`30px`,height:`30px`,style:{display:`block`,margin:`0 auto`},\"data-og-width\":`12`,\"data-og-height\":`10`,\"data-path\":`images/059748d-reply.svg`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/quickblox/Xw20nWnsGv7XVu2V/images/059748d-reply.svg?w=280\u0026fit=max\u0026auto=format\u0026n=Xw20nWnsGv7XVu2V\u0026q=85\u0026s=228f82fa35371df3f9e88847a6de9122 280w, https://mintcdn.com/quickblox/Xw20nWnsGv7XVu2V/images/059748d-reply.svg?w=560\u0026fit=max\u0026auto=format\u0026n=Xw20nWnsGv7XVu2V\u0026q=85\u0026s=6ac80103062625f33b5220bb38205ab7 560w, https://mintcdn.com/quickblox/Xw20nWnsGv7XVu2V/images/059748d-reply.svg?w=840\u0026fit=max\u0026auto=format\u0026n=Xw20nWnsGv7XVu2V\u0026q=85\u0026s=13fd081dfe1c5a779aec38f64ca04c31 840w, https://mintcdn.com/quickblox/Xw20nWnsGv7XVu2V/images/059748d-reply.svg?w=1100\u0026fit=max\u0026auto=format\u0026n=Xw20nWnsGv7XVu2V\u0026q=85\u0026s=2f3a8bd096510d373e7c5a5d57409244 1100w, https://mintcdn.com/quickblox/Xw20nWnsGv7XVu2V/images/059748d-reply.svg?w=1650\u0026fit=max\u0026auto=format\u0026n=Xw20nWnsGv7XVu2V\u0026q=85\u0026s=b02ed8240f7a9ab55f1a419bfce719d6 1650w, https://mintcdn.com/quickblox/Xw20nWnsGv7XVu2V/images/059748d-reply.svg?w=2500\u0026fit=max\u0026auto=format\u0026n=Xw20nWnsGv7XVu2V\u0026q=85\u0026s=5d6494064572ad9eb0ad16787787e16b 2500w`})}),_jsx(`td`,{children:`An icon for reply.`})]})]})]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Features","icon":"list","description":"QuickBlox UIKit for Android provides a range of features to enhance the chat experience.","href":"/ui-kits/android-uikit-features"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Overview","slug":"overview","depth":2,"children":[{"title":"Dialog types","slug":"dialog-types","depth":3,"children":[]}]},{"title":"File sharing","slug":"file-sharing","depth":2,"children":[{"title":"Customize the UI for file sharing","slug":"customize-the-ui-for-file-sharing","depth":3,"children":[]}]},{"title":"Voice message","slug":"voice-message","depth":2,"children":[{"title":"Send a voice message","slug":"send-a-voice-message","depth":3,"children":[]},{"title":"Customize the UI for voice message recorder","slug":"customize-the-ui-for-voice-message-recorder","depth":3,"children":[]},{"title":"Customize the UI for voice messages","slug":"customize-the-ui-for-voice-messages","depth":3,"children":[]}]},{"title":"Typing indicator","slug":"typing-indicator","depth":2,"children":[]},{"title":"Delivery receipt","slug":"delivery-receipt","depth":2,"children":[{"title":"Customize the UI for delivery receipt","slug":"customize-the-ui-for-delivery-receipt","depth":3,"children":[]}]},{"title":"Read receipt","slug":"read-receipt","depth":2,"children":[{"title":"Customize the UI for read receipt","slug":"customize-the-ui-for-read-receipt","depth":3,"children":[]}]},{"title":"Unread message count","slug":"unread-message-count","depth":2,"children":[{"title":"Customize the UI for unread message counts","slug":"customize-the-ui-for-unread-message-counts","depth":3,"children":[]}]},{"title":"Highlight URLs","slug":"highlight-urls","depth":2,"children":[]},{"title":"Forwarding and Replying Messages","slug":"forwarding-and-replying-messages","depth":2,"children":[{"title":"Forwarding Messages:","slug":"forwarding-messages","depth":3,"children":[]},{"title":"Replying to Messages:","slug":"replying-to-messages","depth":3,"children":[]},{"title":"Customize the UI for forwarding and replying:","slug":"customize-the-ui-for-forwarding-and-replying","depth":3,"children":[]}]}],"codeExamples":{}},"jsLinks":[],"subdomain":"quickblox","siteName":"QuickBlox","title":"Features - QuickBlox","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-07-03T12:57:57.056Z","originalFileLocation":"ui-kits/android-uikit-features.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"QuickBlox UIKit for Android provides a range of features to enhance the chat experience.\">\u003cmeta data-mint-head name=\"application-name\" content=\"QuickBlox\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/quickblox/xsijdUMkGjrzOYFW/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/quickblox/xsijdUMkGjrzOYFW/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/quickblox/xsijdUMkGjrzOYFW/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/quickblox/xsijdUMkGjrzOYFW/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/quickblox/xsijdUMkGjrzOYFW/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/quickblox/xsijdUMkGjrzOYFW/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/quickblox/xsijdUMkGjrzOYFW/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/quickblox/xsijdUMkGjrzOYFW/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/quickblox/xsijdUMkGjrzOYFW/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Features - QuickBlox\">\u003cmeta data-mint-head property=\"og:description\" content=\"QuickBlox UIKit for Android provides a range of features to enhance the chat experience.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"QuickBlox\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.quickblox.com/ui-kits/android-uikit-features\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://quickblox.mintlify.site/_mintlify/api/og/v2?division=Android\u0026amp;title=Features\u0026amp;description=QuickBlox+UIKit+for+Android+provides+a+range+of+features+to+enhance+the+chat+experience.\u0026amp;theme=5ff450e9301b53695b58d9b0\u0026amp;signature=8eae96ac67df815ed6de59239f78c8dd0e54bf5134106d0694b80088e986149b\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Features - QuickBlox\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"QuickBlox UIKit for Android provides a range of features to enhance the chat experience.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://quickblox.mintlify.site/_mintlify/api/og/v2?division=Android\u0026amp;title=Features\u0026amp;description=QuickBlox+UIKit+for+Android+provides+a+range+of+features+to+enhance+the+chat+experience.\u0026amp;theme=5ff450e9301b53695b58d9b0\u0026amp;signature=8eae96ac67df815ed6de59239f78c8dd0e54bf5134106d0694b80088e986149b\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/quickblox/xsijdUMkGjrzOYFW/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"QuickBlox\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#3978fc\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.quickblox.com/ui-kits/android-uikit-features\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/ui-kits/android-uikit-features.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.quickblox.com/#organization\",\"name\":\"QuickBlox\",\"url\":\"https://docs.quickblox.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/quickblox/ZK0J4-dDJuuhpUQu/logo/light.svg?fit=max\u0026auto=format\u0026n=ZK0J4-dDJuuhpUQu\u0026q=85\u0026s=2ca77d61090cf3e9a7512358a3ad30b1\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.quickblox.com#website\",\"name\":\"QuickBlox\",\"url\":\"https://docs.quickblox.com\",\"publisher\":{\"@id\":\"https://docs.quickblox.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.quickblox.com/ui-kits/android-uikit-features#webpage\",\"url\":\"https://docs.quickblox.com/ui-kits/android-uikit-features\",\"name\":\"Features\",\"description\":\"QuickBlox UIKit for Android provides a range of features to enhance the chat experience.\",\"dateModified\":\"2026-07-03T12:57:57.056Z\",\"isPartOf\":{\"@id\":\"https://docs.quickblox.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.quickblox.com/ui-kits/android-uikit-features#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.quickblox.com/ui-kits/android-uikit-features#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Android\",\"item\":\"https://docs.quickblox.com/ui-kits/android-uikit-overview\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Features\",\"item\":\"https://docs.quickblox.com/ui-kits/android-uikit-features\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.quickblox.com/ui-kits/android-uikit-features#article\",\"headline\":\"Features\",\"name\":\"Features\",\"description\":\"QuickBlox UIKit for Android provides a range of features to enhance the chat experience.\",\"url\":\"https://docs.quickblox.com/ui-kits/android-uikit-features\",\"mainEntityOfPage\":{\"@id\":\"https://docs.quickblox.com/ui-kits/android-uikit-features#webpage\"},\"dateModified\":\"2026-07-03T12:57:57.056Z\",\"publisher\":{\"@id\":\"https://docs.quickblox.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.quickblox.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"QuickBlox\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"QuickBlox","nav":{"global":{"anchors":[{"anchor":"SDK Downloads","icon":"webhook","href":"https://github.com/QuickBlox"},{"anchor":"Community","icon":"discord","href":"https://discord.com/invite/ZWZ3WpYZ9q"},{"anchor":"Blog","icon":"newspaper","href":"https://quickblox.com/blog/"}]},"tabs":[{"tab":"Documentation","pages":[{"title":"Documentation","href":"/docs/quickstart"}]},{"tab":"Server API","pages":[{"title":"Server API","href":"/reference/overview"}]},{"tab":"UIKits","groups":[{"group":"UIKits","pages":[{"title":"Overview","icon":"circle-info","href":"/ui-kits/overview"}]},{"group":"iOS","pages":[{"title":"Overview","icon":"circle-info","href":"/ui-kits/ios-uikit-overview"},{"title":"Send your first message","icon":"paper-plane","href":"/ui-kits/ios-uikit-send-your-first-message"},{"title":"Features","icon":"list","href":"/ui-kits/ios-uikit-features"},{"title":"AI Features","icon":"robot","href":"/ui-kits/ios-uikit-ai-features"},{"title":"Screens","icon":"desktop","href":"/ui-kits/ios-uikit-screens"},{"title":"Customization","icon":"gear","href":"/ui-kits/ios-uikit-customization"}]},{"group":"Android","pages":[{"title":"Overview","icon":"circle-info","href":"/ui-kits/android-uikit-overview"},{"title":"Send your first message","icon":"paper-plane","description":null,"href":"/ui-kits/android-uikit-send-your-first-message"},{"title":"Features","icon":"list","href":"/ui-kits/android-uikit-features"},{"title":"AI Features","icon":"robot","description":"QuickBlox AI for Android provides a range of features to enhance the chat experience.","href":"/ui-kits/android-uikit-ai-features"},{"title":"Screens","icon":"desktop","href":"/ui-kits/android-uikit-screens"},{"title":"Customization","icon":"gear","href":"/ui-kits/android-uikit-customization"}]},{"group":"React","pages":[{"title":"Overview","icon":"circle-info","href":"/ui-kits/react-uikit-overview"},{"title":"Send your first message","icon":"paper-plane","href":"/ui-kits/react-uikit-send-your-first-message"},{"title":"Features","icon":"list","href":"/ui-kits/react-uikit-features"},{"title":"AI Features","icon":"robot","href":"/ui-kits/react-uikit-ai-features"},{"title":"Core components","icon":"cube","href":"/ui-kits/react-uikit-core-components"},{"title":"Screen modules","icon":"desktop","href":"/ui-kits/react-uikit-screen-modules"},{"title":"Customization","icon":"gear","href":"/ui-kits/react-uikit-customization"},{"title":"Storybook","icon":"puzzle-piece","url":"https://quickblox.github.io/react-ui-kit/?path=/docs/%F0%9F%93%95-documentation-introduction--docs","href":"/ui-kits/react-uikit-storybook"}]},{"group":"Flutter","pages":[{"title":"UIKit","icon":"palette","href":"/ui-kits/flutter-uikit"}]}]},{"tab":"SDKs","pages":[{"title":"SDKs","href":"/sdks/sdk-overview"}]},{"tab":"Code Samples","pages":[{"title":"Code Samples","href":"/code-samples/overview"}]},{"tab":"AI Agent","pages":[{"title":"AI Agent","href":"/ai-agent/overview"}]}]},"basePath":"","title":"Features - QuickBlox","buildId":"dpl_8LJbrAiZvr1K98WQNZXCyY5AvT34","deploymentId":"dpl_8LJbrAiZvr1K98WQNZXCyY5AvT34","dynamics":["07c022d89b","a74be98ba7"],"chunks":["Frame-NdetNziF.js","DynamicMarkdown-CD8713Yy.js","zoom-image-lightbox-DMoL6lHz.js","lightbox-handle-r17bVUz3.js"]}