> ## Documentation Index
> Fetch the complete documentation index at: https://www.cometchat.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Directory Structure

> Overview of the CometChat UI Kit Builder directory layout for Android — understand where to find and customize components, settings, and styles.

The exported UI Kit Builder code lives in `chat-builder/src/main/java/com/cometchat/builder/`. This guide helps you navigate the structure so you know exactly where to make changes.

<Tree>
  <Folder name="chat-builder">
    <Folder name="src/main">
      <Folder name="java/com/cometchat/builder">
        <Folder name="data" description="Data models, enums, interfaces, repositories" />

        <Folder name="ui" description="UI components (activities, fragments, adapters)" />

        <Folder name="utils" description="Utility functions and helpers" />

        <Folder name="viewmodels" description="ViewModels for UI components" />

        <File name="AppCredentials.kt" />

        <File name="BuilderSettingsHelper.kt" />

        <File name="CometChatBuilderSettings.kt" />
      </Folder>

      <Folder name="res">
        <Folder name="drawable" description="Icons, shapes, and drawable resources" />

        <Folder name="font" description="Font files (TTF, OTF)" />

        <Folder name="layout" description="XML layout files" />

        <Folder name="menu" description="Menu resource files" />

        <Folder name="values" description="Strings, colors, themes" />

        <Folder name="values-<locale>" description="Localized string resources" />
      </Folder>
    </Folder>

    <File name="build.gradle.kts" />

    <File name="cometchat-builder-settings.json" />
  </Folder>
</Tree>

***

## Root Files

| File                          | Purpose                                                                |
| ----------------------------- | ---------------------------------------------------------------------- |
| `CometChatBuilderSettings.kt` | Auto-generated feature flags and configuration constants from Builder  |
| `BuilderSettingsHelper.kt`    | Utility class for applying Builder settings to CometChat UI components |
| `AppCredentials.kt`           | CometChat app credentials (APP\_ID, AUTH\_KEY, REGION)                 |

***

## Key Folders

### `data/`

Contains data layer components including enums, interfaces, and repositories.

<Tree>
  <Folder name="data">
    <Folder name="enums" description="Enum classes (e.g., GroupAction)" />

    <Folder name="interfaces" description="Callback interfaces (OnBackPress, OnItemClickListener)" />

    <Folder name="repository" description="Data repository classes" />
  </Folder>
</Tree>

### `ui/`

Contains all UI-related components organized by type.

<Tree>
  <Folder name="ui">
    <Folder name="activity" description="Activity classes (HomeActivity, MessagesActivity, LoginActivity)" />

    <Folder name="adapters" description="RecyclerView adapters (BannedMembersAdapter, SampleUsersAdapter)" />

    <Folder name="customviews" description="Custom view components (CometChatBannedMembers)" />

    <Folder name="fragments" description="Fragment classes (ChatsFragment, CallsFragment, UsersFragment)" />
  </Folder>
</Tree>

### `utils/`

Utility functions and application-level helpers.

<Tree>
  <Folder name="utils">
    <File name="AppConstants.kt" description="Application constants" />

    <File name="AppUtils.kt" description="General utility functions" />

    <File name="BuilderApplication.kt" description="Application class" />
  </Folder>
</Tree>

### `viewmodels/`

ViewModels for managing UI state and business logic.

<Tree>
  <Folder name="viewmodels">
    <File name="AppCredentialsViewModel.kt" />

    <File name="CallDetailsViewModel.kt" />

    <File name="GroupDetailsViewModel.kt" />

    <File name="LoginViewModel.kt" />

    <File name="MessagesViewModel.kt" />
  </Folder>
</Tree>

***

## res/ Folder Structure

### `layout/`

XML layout files for activities, fragments, and custom views.

<Tree>
  <Folder name="layout">
    <File name="builder_activity_home.xml" description="Main home screen layout" />

    <File name="builder_activity_messages.xml" description="Messages screen layout" />

    <File name="builder_activity_login.xml" description="Login screen layout" />

    <File name="builder_fragment_chats.xml" description="Chats tab fragment" />

    <File name="builder_fragment_calls.xml" description="Calls tab fragment" />

    <File name="builder_fragment_users.xml" description="Users tab fragment" />

    <File name="builder_fragment_groups.xml" description="Groups tab fragment" />
  </Folder>
</Tree>

### `values/`

Resource values including strings, colors, and themes.

<Tree>
  <Folder name="values">
    <File name="colors.xml" description="Color definitions" />

    <File name="strings.xml" description="String resources" />

    <File name="themes.xml" description="Theme definitions and styles" />
  </Folder>
</Tree>

### `font/`

Font resources for typography customization.

<Tree>
  <Folder name="font">
    <File name="inter_regular.otf" />

    <File name="inter_medium.otf" />

    <File name="inter_bold.otf" />

    <File name="roboto_regular.ttf" />

    <File name="roboto_medium.ttf" />

    <File name="roboto_bold.ttf" />
  </Folder>
</Tree>

### `drawable/`

Drawable resources including icons, shapes, and backgrounds.

<Tree>
  <Folder name="drawable">
    <File name="builder_ic_chats.xml" description="Chat icon" />

    <File name="builder_ic_calls.xml" description="Calls icon" />

    <File name="builder_ic_users.xml" description="Users icon" />

    <File name="builder_ic_bottom_bar_groups.xml" description="Groups icon" />

    <File name="builder_curved_button_drawable.xml" />
  </Folder>
</Tree>

***

## Quick Reference: Where to Customize

| What you want to change      | Where to look                                    |
| ---------------------------- | ------------------------------------------------ |
| Enable/disable features      | `CometChatBuilderSettings.kt`                    |
| Apply settings to components | `BuilderSettingsHelper.kt`                       |
| Theme colors & styles        | `res/values/themes.xml`, `res/values/colors.xml` |
| Typography & fonts           | `res/font/`                                      |
| Screen layouts               | `res/layout/`                                    |
| Text & translations          | `res/values/strings.xml`, `res/values-<locale>/` |
| Activity behavior            | `ui/activity/`                                   |
| Fragment behavior            | `ui/fragments/`                                  |
| App credentials              | `AppCredentials.kt`                              |

<Note>
  Prefer using `CometChatBuilderSettings.kt` for feature toggles and `themes.xml` for styling. For extensive changes, extend existing components instead of modifying core files directly.
</Note>

***

## Next Steps

<CardGroup cols={2}>
  <Card title="UI Kit Builder Settings" href="/chat-builder/android/builder-settings">
    Configure feature toggles and behavior
  </Card>

  <Card title="Customizations" href="/chat-builder/android/builder-customisations">
    Modify component props, styling, and behavior
  </Card>

  <Card title="Theming" href="/ui-kit/android/theme-introduction">
    Customize colors, typography, and styling
  </Card>

  <Card title="Localization" href="/ui-kit/android/localize">
    Add multi-language support
  </Card>
</CardGroup>
