# zelloptt/zello-android-sdk-example architecture

> Architecture diagram of the GitHub repository zelloptt/zello-android-sdk-example, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-26). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/zelloptt/zello-android-sdk-example
- Repository: https://github.com/zelloptt/zello-android-sdk-example

## Overview

This is an Android example app for the Zello SDK. The documented workflow is to grant permissions, connect with Zello Work credentials, then use push-to-talk with direct contacts and channels. The tree also shows channel, user, group-conversation, and recent-activity screens plus shared communication dialogs. Source excerpts do not show their call wiring, so relationships beyond the documented app-to-network workflow are omitted.

Main entry points: [`app/src/main/java/com/zello/sdk/example/app/repositories/ZelloRepository.kt`](https://github.com/zelloptt/zello-android-sdk-example/blob/master/app/src/main/java/com/zello/sdk/example/app/repositories/ZelloRepository.kt) (Zello repository), [`app/src/main/java/com/zello/sdk/example/app/MainActivity.kt`](https://github.com/zelloptt/zello-android-sdk-example/blob/master/app/src/main/java/com/zello/sdk/example/app/MainActivity.kt) (Main activity), [`app/src/main/java/com/zello/sdk/example/app/utils/PermissionsManager.kt`](https://github.com/zelloptt/zello-android-sdk-example/blob/master/app/src/main/java/com/zello/sdk/example/app/utils/PermissionsManager.kt) (Permissions manager), [`app/src/main/java/com/zello/sdk/example/app/ui/channels/ChannelsFragment.kt`](https://github.com/zelloptt/zello-android-sdk-example/blob/master/app/src/main/java/com/zello/sdk/example/app/ui/channels/ChannelsFragment.kt) (Channels screen)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_app["App shell"]
  node_main["Main activity<br/>[MainActivity.kt]"]
  node_permissions["Permissions manager"]
  node_repository["Zello repository<br/>[ZelloRepository.kt]"]
end

subgraph group_messaging["Messaging screens"]
  node_channels["Channels screen"]
  node_channelsvm["Channels state"]
  node_users["Users screen<br/>[UsersFragment.kt]"]
  node_usersvm["Users state<br/>[UsersViewModel.kt]"]
  node_recents["Recent activity<br/>[RecentsFragment.kt]"]
  node_recentsvm["Recent state"]
end

subgraph group_conversations["Conversation features"]
  node_groupscreen["Group conversations"]
  node_groupsvm["Group state"]
  node_groupdialogs["Group dialogs"]
end

subgraph group_shared["Shared interactions"]
  node_sharedui["Communication dialogs"]
  node_incoming["Incoming message states"]
end

node_user(("App user"))
node_network{{"Zello Work"}}

node_user -->|"uses app"| node_main
node_user -->|"grants access"| node_permissions
node_user -->|"connects"| node_repository
node_repository -->|"SDK access"| node_network
node_user -->|"uses channels"| node_channels
node_user -->|"uses contacts"| node_users
node_user -->|"manages groups"| node_groupscreen
node_user -->|"views recents"| node_recents
node_user -->|"uses messaging"| node_sharedui

click node_main "https://github.com/zelloptt/zello-android-sdk-example/blob/master/app/src/main/java/com/zello/sdk/example/app/MainActivity.kt"
click node_permissions "https://github.com/zelloptt/zello-android-sdk-example/blob/master/app/src/main/java/com/zello/sdk/example/app/utils/PermissionsManager.kt"
click node_repository "https://github.com/zelloptt/zello-android-sdk-example/blob/master/app/src/main/java/com/zello/sdk/example/app/repositories/ZelloRepository.kt"
click node_channels "https://github.com/zelloptt/zello-android-sdk-example/blob/master/app/src/main/java/com/zello/sdk/example/app/ui/channels/ChannelsFragment.kt"
click node_channelsvm "https://github.com/zelloptt/zello-android-sdk-example/blob/master/app/src/main/java/com/zello/sdk/example/app/ui/channels/ChannelsViewModel.kt"
click node_users "https://github.com/zelloptt/zello-android-sdk-example/blob/master/app/src/main/java/com/zello/sdk/example/app/ui/users/UsersFragment.kt"
click node_usersvm "https://github.com/zelloptt/zello-android-sdk-example/blob/master/app/src/main/java/com/zello/sdk/example/app/ui/users/UsersViewModel.kt"
click node_recents "https://github.com/zelloptt/zello-android-sdk-example/blob/master/app/src/main/java/com/zello/sdk/example/app/ui/recents/RecentsFragment.kt"
click node_recentsvm "https://github.com/zelloptt/zello-android-sdk-example/blob/master/app/src/main/java/com/zello/sdk/example/app/ui/recents/RecentsViewModel.kt"
click node_groupscreen "https://github.com/zelloptt/zello-android-sdk-example/blob/master/app/src/main/java/com/zello/sdk/example/app/ui/groupconversations/GroupConversationsFragment.kt"
click node_groupsvm "https://github.com/zelloptt/zello-android-sdk-example/blob/master/app/src/main/java/com/zello/sdk/example/app/ui/groupconversations/GroupConversationsViewModel.kt"
click node_groupdialogs "https://github.com/zelloptt/zello-android-sdk-example/tree/master/app/src/main/java/com/zello/sdk/example/app/ui/groupconversations/modals"
click node_sharedui "https://github.com/zelloptt/zello-android-sdk-example/tree/master/app/src/main/java/com/zello/sdk/example/app/ui/shared"
click node_incoming "https://github.com/zelloptt/zello-android-sdk-example/tree/master/app/src/main/java/com/zello/sdk/example/app/ui/shared/types"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_main,node_permissions,node_repository,node_user toneBlue
class node_channels,node_channelsvm,node_users,node_usersvm,node_recents,node_recentsvm toneAmber
class node_groupscreen,node_groupsvm,node_groupdialogs toneMint
class node_sharedui,node_incoming toneRose
class node_network toneIndigo
```

## Components

### App shell

- [Main activity](https://github.com/zelloptt/zello-android-sdk-example/blob/master/app/src/main/java/com/zello/sdk/example/app/MainActivity.kt): `app/src/main/java/com/zello/sdk/example/app/MainActivity.kt`
- [Permissions manager](https://github.com/zelloptt/zello-android-sdk-example/blob/master/app/src/main/java/com/zello/sdk/example/app/utils/PermissionsManager.kt): `app/src/main/java/com/zello/sdk/example/app/utils/PermissionsManager.kt`
- [Zello repository](https://github.com/zelloptt/zello-android-sdk-example/blob/master/app/src/main/java/com/zello/sdk/example/app/repositories/ZelloRepository.kt): `app/src/main/java/com/zello/sdk/example/app/repositories/ZelloRepository.kt`

### Messaging screens

- [Channels screen](https://github.com/zelloptt/zello-android-sdk-example/blob/master/app/src/main/java/com/zello/sdk/example/app/ui/channels/ChannelsFragment.kt): `app/src/main/java/com/zello/sdk/example/app/ui/channels/ChannelsFragment.kt`
- [Channels state](https://github.com/zelloptt/zello-android-sdk-example/blob/master/app/src/main/java/com/zello/sdk/example/app/ui/channels/ChannelsViewModel.kt): `app/src/main/java/com/zello/sdk/example/app/ui/channels/ChannelsViewModel.kt`
- [Users screen](https://github.com/zelloptt/zello-android-sdk-example/blob/master/app/src/main/java/com/zello/sdk/example/app/ui/users/UsersFragment.kt): `app/src/main/java/com/zello/sdk/example/app/ui/users/UsersFragment.kt`
- [Users state](https://github.com/zelloptt/zello-android-sdk-example/blob/master/app/src/main/java/com/zello/sdk/example/app/ui/users/UsersViewModel.kt): `app/src/main/java/com/zello/sdk/example/app/ui/users/UsersViewModel.kt`
- [Recent activity](https://github.com/zelloptt/zello-android-sdk-example/blob/master/app/src/main/java/com/zello/sdk/example/app/ui/recents/RecentsFragment.kt): `app/src/main/java/com/zello/sdk/example/app/ui/recents/RecentsFragment.kt`
- [Recent state](https://github.com/zelloptt/zello-android-sdk-example/blob/master/app/src/main/java/com/zello/sdk/example/app/ui/recents/RecentsViewModel.kt): `app/src/main/java/com/zello/sdk/example/app/ui/recents/RecentsViewModel.kt`

### Conversation features

- [Group conversations](https://github.com/zelloptt/zello-android-sdk-example/blob/master/app/src/main/java/com/zello/sdk/example/app/ui/groupconversations/GroupConversationsFragment.kt): `app/src/main/java/com/zello/sdk/example/app/ui/groupconversations/GroupConversationsFragment.kt`
- [Group state](https://github.com/zelloptt/zello-android-sdk-example/blob/master/app/src/main/java/com/zello/sdk/example/app/ui/groupconversations/GroupConversationsViewModel.kt): `app/src/main/java/com/zello/sdk/example/app/ui/groupconversations/GroupConversationsViewModel.kt`
- [Group dialogs](https://github.com/zelloptt/zello-android-sdk-example/tree/master/app/src/main/java/com/zello/sdk/example/app/ui/groupconversations/modals): `app/src/main/java/com/zello/sdk/example/app/ui/groupconversations/modals`

### Shared interactions

- [Communication dialogs](https://github.com/zelloptt/zello-android-sdk-example/tree/master/app/src/main/java/com/zello/sdk/example/app/ui/shared): `app/src/main/java/com/zello/sdk/example/app/ui/shared`
- [Incoming message states](https://github.com/zelloptt/zello-android-sdk-example/tree/master/app/src/main/java/com/zello/sdk/example/app/ui/shared/types): `app/src/main/java/com/zello/sdk/example/app/ui/shared/types`

### Other components

- **App user**
- **Zello Work**

## Connections

- App user → Main activity: uses app
- App user → Permissions manager: grants access
- App user → Zello repository: connects
- Zello repository → Zello Work: SDK access
- App user → Channels screen: uses channels
- App user → Users screen: uses contacts
- App user → Group conversations: manages groups
- App user → Recent activity: views recents
- App user → Communication dialogs: uses messaging
