Nexconn ChatUI is the Android UI component for building chat experiences with Nexconn Chat. It provides ready-to-use channel and message screens, media workflows, notifications, and user and group management UI. This repository contains only the ChatUI source code and its standalone Gradle build. Nexconn Chat SDK is resolved as a Maven dependency and remains subject to its own license.
Chat Growth Credit — Build with Nexconn Chat and explore full capabilities free up to 10,000 MAU. View the offer details →
- Sign up to create a Nexconn app and obtain an App Key.
- Nexconn documentation
- Release notes
- Nexconn Chat UI
- Source integration
- Version compatibility
- Build direct, group, community, open, and system-channel conversations with configurable channel and message presentation.
- Add image and video selection, media preview, voice messages, mentions, replies, forwarding, message editing, and combined-message preview.
- Customize channel lists, message providers, notifications, images, route destinations, and built-in fragments for an application-specific experience.
Start with the Nexconn documentation. It covers app creation, App Key and token handling, SDK initialization, connection, channels, and messages. Keep App Keys and user tokens in the host application or its server-side token service; do not commit them to this repository.
Together with the matching Nexconn Chat SDK, server-side services, and platform services, ChatUI can be used in chat experiences with the following product capabilities:
- User Management: Manage user profiles and relationships, including blocking and banning workflows.
- User Presence: Track online, offline, and custom user states in real time.
- Message Read Receipts: Synchronize message read status across devices.
- Rich Message Types: Support text, emoji, images, voice, video, files, and custom messages.
- Message Operations: Send, delete, edit, reply to, forward, search, and retrieve message history.
- Real-time Webhooks: Receive message, user, and group events through Nexconn server-side services.
- Broadcast Announcements: Send targeted announcements through Nexconn platform services.
- Moderation & Safety: Review content and identify risks through Nexconn moderation services.
The Android UI layer directly provides:
- AndroidX-based Activities, Fragments, ViewModels, adapters, and configurable UI components.
- Channel list and channel screens backed by Nexconn Chat models and operations.
- Message rendering and input extensions for text, media, voice, mentions, replies, forwarding, retry, editing, and combined messages.
- Image selection, media preview, voice, and short-video components.
- Local notifications plus user, friend, and group management screens.
- Fragment factories, route replacement, resource overrides, and configuration APIs for UI customization.
Requirements:
- JDK 17
- Android SDK 36
- Android minSdk 21 in the host application
git clone https://github.com/NexconnAI-Dev/nexconn-chatui-android.git
cd nexconn-chatui-android
./gradlew :nexconn-chatui:assembleRelease --no-daemonThis repository does not include a sample application or runnable demo. The command above checks that the exported ChatUI source compiles; it does not validate application initialization, connection, messaging, media, runtime permissions, or host integration flows.
The standalone build must not require a private Git repository, private build
credentials, or a private :nexconn-chat project. The required Nexconn Chat
SDK version is recorded in gradle.properties and RELEASE_METADATA.json.
The current ChatUI source includes default, English, and Arabic string resources and declares RTL layout support. Other language coverage is not implied by this repository; verify the host application's locale and merged resources when integrating ChatUI.
Initialize ChatUI once in Application.onCreate, then connect after the host
application obtains a user token.
import android.app.Application;
import ai.nexconn.chat.params.ConnectParams;
import ai.nexconn.chat.params.InitParams;
import ai.nexconn.chatui.NCChatUI;
public final class ChatApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
NCChatUI.initialize(new InitParams(this, "your-app-key"));
}
public void connect(String userToken) {
NCChatUI.connect(new ConnectParams(userToken), (userId, error) -> {
if (error == null) {
// The user is connected.
}
});
}
}Open a channel list or channel after initialization and connection.
import ai.nexconn.chat.channel.ChannelType;
import ai.nexconn.chatui.utils.route.RouteUtils;
RouteUtils.routeToChannelListActivity(context, "Messages");
RouteUtils.routeToChannelActivity(context, ChannelType.DIRECT, targetUserId);Configure NCChatUIConfig before calling NCChatUI.initialize to supply
channel-list data, message providers, interaction rules, notification behavior,
and an image engine. Register a ChatUIFragmentFactory to replace built-in
fragments, or use RouteUtils.registerActivity to replace route destinations.
ChatUI contributes Activities, media and microphone permissions, and two
content providers to the merged application manifest. Verify manifest merging,
request runtime permissions before media or voice operations, and ensure that
${applicationId}.provider and ${applicationId}.nc.EmojiInitProvider do not
conflict with providers in the host application.
Direct source contributions and pull requests are not accepted. Use the GitHub Bug Report template for reproducible ChatUI defects. Feature requests are not accepted in this repository.
Do not report unpatched security vulnerabilities in a public issue. Send a private report to support@nexconn.ai and include the affected version, impact, and reproduction details without production credentials or personal data.
ChatUI source code is licensed under the Apache License 2.0. Nexconn Chat SDK and third-party content retain their independent licenses. See LICENSE and NOTICE.