ChatKaroUI is a customizable advance chat component extension text, images, reply, star, HTML/Markdown, export/import and more.
🔎 Use Place: An extension for MIT App Inventor 2, Kodular, Niotron, Android Builder.
👤 Author: Created by: Prem_Gupta
📦 Package: com.prem.chatkaroui
💾 Size: 80 KB
⚙️ Version: 3.2
📱 Minimum API Level: 14
📅 Built On: [date=2025-09-02 timezone="Asia/Kolkata"]
📅 Updated On: [date=2026-03-30 timezone="Asia/Kolkata"]
🔗 Help URL: Telegram
💻 Built & documented using: FAST v5.7.1
⬇️ Aix: Download Link
ChatKaroUI has total 24 events.
Fired when a message is starred or unstarred.
| Parameter | Type |
|---|---|
| messageId | number |
| isStarred | boolean |
Fired when a message is swiped or reply menu item is clicked.
| Parameter | Type |
|---|---|
| messageId | number |
| messageText | text |
| replyToSender | text |
| avatarUrl | text |
| imageUrl | text |
| isSent | boolean |
Fired when the user taps the reply-quote strip inside a message to scroll to the original.
| Parameter | Type |
|---|---|
| originalMessageId | number |
Fired when a link preview has been successfully loaded for a message.
| Parameter | Type |
|---|---|
| messageId | number |
| title | text |
| url | text |
Fired after SaveExportToFile succeeds.
| Parameter | Type |
|---|---|
| filePath | text |
Fired if SaveExportToFile fails.
| Parameter | Type |
|---|---|
| error | text |
Fired when ImportChatFromJson finishes successfully.
| Parameter | Type |
|---|---|
| messageCount | number |
Fired if ImportChatFromJson fails.
| Parameter | Type |
|---|---|
| error | text |
Called when image already exists and was not re-saved.
| Parameter | Type |
|---|---|
| absolutePath | text |
| fileName | text |
Called when an image is saved successfully.
| Parameter | Type |
|---|---|
| absolutePath | text |
| fileName | text |
Called when saving an image fails.
| Parameter | Type |
|---|---|
| errorMessage | text |
Triggered when a profile picture is clicked.
| Parameter | Type |
|---|---|
| name | text |
| avatarUrl | text |
Triggered when a message is selected.
| Parameter | Type |
|---|---|
| message | text |
| messageId | number |
Triggered when a message is updated.
| Parameter | Type |
|---|---|
| messageId | number |
| newMessage | text |
Triggered when scroll to message completes.
| Parameter | Type |
|---|---|
| messageId | number |
Triggered when a text menu item is clicked.
| Parameter | Type |
|---|---|
| itemText | text |
| message | text |
| messageId | number |
Triggered when an image menu item is clicked.
| Parameter | Type |
|---|---|
| itemText | text |
| imageUrl | text |
| messageId | number |
Fired when text is successfully copied to clipboard.
| Parameter | Type |
|---|---|
| copiedText | text |
Fired when copying to clipboard fails.
| Parameter | Type |
|---|---|
| error | text |
Triggered when selection is cleared.
Triggered when text menu items are added.
| Parameter | Type |
|---|---|
| count | number |
Triggered when image menu items are added.
| Parameter | Type |
|---|---|
| count | number |
Fired when the user taps Forward in the context menu.
| Parameter | Type |
|---|---|
| messageId | number |
| message | text |
Fired when the user taps Edit in the context menu (sent messages only).
| Parameter | Type |
|---|---|
| messageId | number |
| currentMessage | text |
ChatKaroUI has total 64 methods.
Initialize the chat UI in a VerticalArrangement. Must be called before adding messages.
| Parameter | Type |
|---|---|
| arrangement | component |
Call when screen orientation changes to reflow message bubbles.
Send a simple message without avatar or name.
| Parameter | Type |
|---|---|
| message | text |
| timestamp | text |
Receive a simple message without avatar or name.
| Parameter | Type |
|---|---|
| message | text |
| timestamp | text |
Send a message with avatar and sender name.
| Parameter | Type |
|---|---|
| message | text |
| avatarUrl | text |
| senderName | text |
| timestamp | text |
Receive a message with avatar and sender name.
| Parameter | Type |
|---|---|
| message | text |
| avatarUrl | text |
| receiverName | text |
| timestamp | text |
Send a message with both text and image.
| Parameter | Type |
|---|---|
| message | text |
| imageUrl | text |
| avatarUrl | text |
| senderName | text |
| timestamp | text |
| messageOnTop | boolean |
Receive a message with both text and image.
| Parameter | Type |
|---|---|
| message | text |
| imageUrl | text |
| avatarUrl | text |
| receiverName | text |
| timestamp | text |
| messageOnTop | boolean |
Send a simple message as a reply WITHOUT avatar or name.
| Parameter | Type |
|---|---|
| message | text |
| timestamp | text |
| replyToId | number |
| replyToText | text |
| replyToSender | text |
| replyToIsSent | boolean |
Send a message as a reply WITH avatar and sender name (and optional image).
| Parameter | Type |
|---|---|
| message | text |
| avatarUrl | text |
| imageUrl | text |
| senderName | text |
| timestamp | text |
| replyToId | number |
| replyToText | text |
| replyToSender | text |
| replyToIsSent | boolean |
Receive a simple message as a reply WITHOUT avatar or name.
| Parameter | Type |
|---|---|
| message | text |
| timestamp | text |
| replyToId | number |
| replyToText | text |
| replyToSender | text |
| replyToIsSent | boolean |
Receive a message as a reply WITH avatar and sender name (and optional image).
| Parameter | Type |
|---|---|
| message | text |
| avatarUrl | text |
| imageUrl | text |
| senderName | text |
| timestamp | text |
| replyToId | number |
| replyToText | text |
| replyToSender | text |
| replyToIsSent | boolean |
Add a system message (e.g., 'User joined').
| Parameter | Type |
|---|---|
| message | text |
Star (bookmark) a message by its ID.
| Parameter | Type |
|---|---|
| messageId | number |
Unstar a previously starred message by its ID.
| Parameter | Type |
|---|---|
| messageId | number |
Toggle the starred state of a message. Returns the new state.
- Return type:
boolean
| Parameter | Type |
|---|---|
| messageId | number |
Returns true if the message with the given ID is starred.
- Return type:
boolean
| Parameter | Type |
|---|---|
| messageId | number |
Returns a list of all currently starred message IDs.
- Return type:
list
Export all chat messages as a JSON string. Store this string in a database or file to restore the chat later.
- Return type:
text
Export the chat as a plain-text transcript (human-readable).
- Return type:
text
Save exported JSON to a file in the chat-exports folder under ASD. Fires ExportSaved or ExportFailed.
| Parameter | Type |
|---|---|
| json | text |
| fileName | text |
Load a previously exported JSON string and restore all messages.
| Parameter | Type |
|---|---|
| json | text |
Delete a message by its ID.
| Parameter | Type |
|---|---|
| messageId | number |
Update an existing message's text by ID. Marks it as edited.
| Parameter | Type |
|---|---|
| messageId | number |
| newMessage | text |
Get the text of a message by its ID.
- Return type:
text
| Parameter | Type |
|---|---|
| messageId | number |
Smooth-scroll to a message by its ID.
| Parameter | Type |
|---|---|
| messageId | number |
Returns true if a message with the given ID exists.
- Return type:
boolean
| Parameter | Type |
|---|---|
| messageId | number |
Get all active message IDs (excludes date headers and system messages).
- Return type:
list
Returns true if the message was sent (false = received).
- Return type:
boolean
| Parameter | Type |
|---|---|
| messageId | number |
Returns true if a message has been edited.
- Return type:
boolean
| Parameter | Type |
|---|---|
| messageId | number |
Manually mark a message as edited without changing its content.
| Parameter | Type |
|---|---|
| messageId | number |
Clean up internal ID tracking. Call after ClearAllMessages.
Clear all chat messages.
Get the total count of chat messages (excluding system/date rows).
- Return type:
number
Get the first (oldest) active message ID. Returns 0 if none.
- Return type:
number
Get the last (newest) active message ID. Returns 0 if none.
- Return type:
number
Clear all message selections.
Get a list of all currently selected message IDs.
- Return type:
list
Star/Unstar all currently selected messages.
| Parameter | Type |
|---|---|
| isStarred | boolean |
Get the number of selected messages.
- Return type:
number
Delete all currently selected messages.
Returns true if multi-selection mode is active.
- Return type:
boolean
Show typing indicator.
Hide typing indicator.
Download an image from URL and save to chat-images folder. Fires ImageSaved, ImageAlreadyExists, or ImageSaveFailed.
| Parameter | Type |
|---|---|
| imageUrl | text |
| format | text |
Copy text to clipboard.
| Parameter | Type |
|---|---|
| text | text |
Get current time formatted as hh:mm a.
- Return type:
text
Get current date formatted as dd-MM-yyyy.
- Return type:
text
Get YouTube thumbnail URL from a YouTube URL or video ID.
- Return type:
text
| Parameter | Type |
|---|---|
| youTubeURL | text |
Add a reaction emoji to a message.
| Parameter | Type |
|---|---|
| messageId | number |
| emoji | text |
Insert an 'Unread messages' separator at current position.
Search messages containing query text. Returns list of matching IDs.
- Return type:
list
| Parameter | Type |
|---|---|
| query | text |
Returns the width in pixels of the VerticalArrangement (or screen width).
- Return type:
number
Returns the screen width in pixels.
- Return type:
number
Reset max width to 80% of screen width.
Reset date-header tracking (useful when starting a fresh conversation).
Add custom text menu items (replaces existing custom items).
| Parameter | Type |
|---|---|
| menuItems | list |
Add custom image menu items (replaces existing custom items).
| Parameter | Type |
|---|---|
| menuItems | list |
Clear custom text menu items.
Clear custom image menu items.
Get current text menu items as a list.
- Return type:
list
Get current image menu items as a list.
- Return type:
list
Get count of custom text menu items.
- Return type:
number
Get count of custom image menu items.
- Return type:
number
ChatKaroUI has total 52 designer properties.
- Input type:
non_negative_integer - Default value:
40
- Input type:
non_negative_integer - Default value:
0
- Input type:
non_negative_integer - Default value:
0
- Input type:
color - Default value:
0C0C0C
- Input type:
color - Default value:
DDDDDD
- Input type:
color - Default value:
FFFFFF
- Input type:
color - Default value:
000000
- Input type:
color - Default value:
0084FF
- Input type:
color - Default value:
F0F0F0
- Input type:
non_negative_integer - Default value:
16
- Input type:
non_negative_integer - Default value:
14
- Input type:
color - Default value:
888888
- Input type:
color - Default value:
F9D3FF
- Input type:
color - Default value:
888888
- Input type:
non_negative_integer - Default value:
12
- Input type:
color - Default value:
888888
- Input type:
color - Default value:
0000FF
- Input type:
color - Default value:
FF00FF
- Input type:
string - Default value:
✓✓
- Input type:
string - Default value:
🚀
- Input type:
color - Default value:
000000
- Input type:
color - Default value:
000000
- Input type:
non_negative_integer - Default value:
12
- Input type:
float - Default value:
20.0
- Input type:
non_negative_integer - Default value:
16
- Input type:
non_negative_integer - Default value:
12
- Input type:
boolean - Default value:
True
- Input type:
boolean - Default value:
True
- Input type:
boolean - Default value:
True
- Input type:
boolean - Default value:
False
- Input type:
boolean - Default value:
True
- Input type:
asset
- Input type:
string - Default value:
Typing
- Input type:
boolean - Default value:
False
- Input type:
float - Default value:
8.0
- Input type:
boolean - Default value:
False
- Input type:
boolean - Default value:
False
- Input type:
boolean - Default value:
True
- Input type:
color - Default value:
F5F5F5
- Input type:
color - Default value:
0084FF
- Input type:
boolean - Default value:
True
- Input type:
string - Default value:
edited
- Input type:
color - Default value:
888888
- Input type:
color - Default value:
FFD700
- Input type:
string - Default value:
★
- Input type:
color - Default value:
FFFFFF
- Input type:
color - Default value:
0084FF
- Input type:
color - Default value:
0084FF
- Input type:
color - Default value:
444444
- Input type:
boolean - Default value:
True
- Input type:
boolean - Default value:
True
- Input type:
boolean - Default value:
True
ChatKaroUI has total 52 setter properties.
Get avatar size in DP.
- Input type:
number
Get max width for text messages in DP.
- Input type:
number
Get max width for image messages in DP.
- Input type:
number
Sets or gets FullscreenImageBGColor.
- Input type:
number
Sets or gets AvatarBackgroundColor.
- Input type:
number
Sets or gets SentMessageTextColor.
- Input type:
number
Sets or gets ReceivedMessageTextColor.
- Input type:
number
Sets or gets SentMessageBackgroundColor.
- Input type:
number
Sets or gets ReceivedMessageBackgroundColor.
- Input type:
number
Sets or gets MessageFontSize.
- Input type:
number
Sets or gets SystemMessageFontSize.
- Input type:
number
Sets or gets SystemMessageTextColor.
- Input type:
number
Sets or gets SelectedMessageBgColor.
- Input type:
number
Sets or gets TypingIndicatorTextColor.
- Input type:
number
Sets or gets TimestampFontSize.
- Input type:
number
Sets or gets TimestampTextColor.
- Input type:
number
Sets or gets SentStatusTextColor.
- Input type:
number
Sets or gets ReceivedStatusTextColor.
- Input type:
number
Sets or gets SentStatusText.
- Input type:
text
Sets or gets ReceivedStatusText.
- Input type:
text
Sets or gets SentNameTextColor.
- Input type:
number
Sets or gets ReceivedNameTextColor.
- Input type:
number
Sets or gets NameFontSize.
- Input type:
number
Sets or gets MessageCornerRadius.
- Input type:
number
Sets or gets MessageHorizontalPadding.
- Input type:
number
Sets or gets MessageVerticalPadding.
- Input type:
number
Sets or gets ShowTimestamp.
- Input type:
boolean
Sets or gets ShowReadStatus.
- Input type:
boolean
Sets or gets AutoLinkEnabledInChat.
- Input type:
boolean
Sets or gets ShowMetadataInsideBubble.
- Input type:
boolean
Sets or gets ImageWidthFixInTextImageMessage.
- Input type:
boolean
Sets or gets CustomFontFamily.
- Input type:
text
Sets or gets TypingIndicatorText.
- Input type:
text
Sets or gets SquareBubbleEdge.
- Input type:
boolean
Sets or gets SquareEdgeCornerRadius.
- Input type:
number
Enable rendering of HTML tags in message text.
- Input type:
boolean
Enable Markdown rendering in message text (bold, italic, code, links, etc.).
- Input type:
boolean
Enable automatic link-preview cards for URLs in messages.
- Input type:
boolean
Background color for link-preview cards.
- Input type:
number
Accent color for link-preview cards (top bar and site name).
- Input type:
number
Show or hide the 'edited' label on updated messages.
- Input type:
boolean
Text used for the edited label (default: 'edited').
- Input type:
text
Color for the edited label.
- Input type:
number
Color of the star indicator shown in the metadata row.
- Input type:
number
Text/emoji shown as the star indicator (default: ★).
- Input type:
text
Background color of the reply-quote strip on SENT messages.
- Input type:
number
Background color of the reply-quote strip on RECEIVED messages.
- Input type:
number
Accent color of the reply-quote left border.
- Input type:
number
The color of the text preview inside the reply-quote.
- Input type:
number
Enable or disable swipe-to-reply gesture.
- Input type:
boolean
Show or hide default context-menu items (Reply, Star, Copy, Delete, Forward, Edit).
- Input type:
boolean
Whether to show date headers in the chat.
- Input type:
boolean
ChatKaroUI has total 52 getter properties.
Get avatar size in DP.
- Return type:
number
Get max width for text messages in DP.
- Return type:
number
Get max width for image messages in DP.
- Return type:
number
Sets or gets FullscreenImageBGColor.
- Return type:
number
Sets or gets AvatarBackgroundColor.
- Return type:
number
Sets or gets SentMessageTextColor.
- Return type:
number
Sets or gets ReceivedMessageTextColor.
- Return type:
number
Sets or gets SentMessageBackgroundColor.
- Return type:
number
Sets or gets ReceivedMessageBackgroundColor.
- Return type:
number
Sets or gets MessageFontSize.
- Return type:
number
Sets or gets SystemMessageFontSize.
- Return type:
number
Sets or gets SystemMessageTextColor.
- Return type:
number
Sets or gets SelectedMessageBgColor.
- Return type:
number
Sets or gets TypingIndicatorTextColor.
- Return type:
number
Sets or gets TimestampFontSize.
- Return type:
number
Sets or gets TimestampTextColor.
- Return type:
number
Sets or gets SentStatusTextColor.
- Return type:
number
Sets or gets ReceivedStatusTextColor.
- Return type:
number
Sets or gets SentStatusText.
- Return type:
text
Sets or gets ReceivedStatusText.
- Return type:
text
Sets or gets SentNameTextColor.
- Return type:
number
Sets or gets ReceivedNameTextColor.
- Return type:
number
Sets or gets NameFontSize.
- Return type:
number
Sets or gets MessageCornerRadius.
- Return type:
number
Sets or gets MessageHorizontalPadding.
- Return type:
number
Sets or gets MessageVerticalPadding.
- Return type:
number
Sets or gets ShowTimestamp.
- Return type:
boolean
Sets or gets ShowReadStatus.
- Return type:
boolean
Sets or gets AutoLinkEnabledInChat.
- Return type:
boolean
Sets or gets ShowMetadataInsideBubble.
- Return type:
boolean
Sets or gets ImageWidthFixInTextImageMessage.
- Return type:
boolean
Sets or gets CustomFontFamily.
- Return type:
text
Sets or gets TypingIndicatorText.
- Return type:
text
Sets or gets SquareBubbleEdge.
- Return type:
boolean
Sets or gets SquareEdgeCornerRadius.
- Return type:
number
Enable rendering of HTML tags in message text.
- Return type:
boolean
Enable Markdown rendering in message text (bold, italic, code, links, etc.).
- Return type:
boolean
Enable automatic link-preview cards for URLs in messages.
- Return type:
boolean
Background color for link-preview cards.
- Return type:
number
Accent color for link-preview cards (top bar and site name).
- Return type:
number
Show or hide the 'edited' label on updated messages.
- Return type:
boolean
Text used for the edited label (default: 'edited').
- Return type:
text
Color for the edited label.
- Return type:
number
Color of the star indicator shown in the metadata row.
- Return type:
number
Text/emoji shown as the star indicator (default: ★).
- Return type:
text
Background color of the reply-quote strip on SENT messages.
- Return type:
number
Background color of the reply-quote strip on RECEIVED messages.
- Return type:
number
Accent color of the reply-quote left border.
- Return type:
number
The color of the text preview inside the reply-quote.
- Return type:
number
Enable or disable swipe-to-reply gesture.
- Return type:
boolean
Show or hide default context-menu items (Reply, Star, Copy, Delete, Forward, Edit).
- Return type:
boolean
Whether to show date headers in the chat.
- Return type:
boolean
