How beldex-coin/bchat-android works
BChat is an Android decentralized messaging app on the Beldex network. Its main user workflow is composing a conversation message, scheduling send work, and transferring message or attachment data through the messaging/network layers; persistence supports that flow. The tree and excerpts also show distinct social-group, contact, backup, and WebRTC calling capabilities. Several central messaging modules are named in the SOURCE INDEX but were not excerpted, so their uncertain runtime connections are omitted; the graph includes those documented modules without asserting unshown calls.
Main entry points: Storage.kt App storage · CallManager.kt Call manager · StorageProtocol.kt Storage protocol · ApplicationContext.kt Application context
Components 20
Android client
- Application context
app/src/main/java/io/beldex/bchat/ApplicationContext.kt - Conversation UI
app/src/main/java/io/beldex/bchat/conversation/v2/ConversationActivityV2.kt
Messaging
- Message sender
libsession/src/main/java/com/beldex/libbchat/messaging/sending_receiving/MessageSender.kt - Message send job
libsession/src/main/java/com/beldex/libbchat/messaging/jobs/MessageSendJob.kt - Attachment upload job
libsession/src/main/java/com/beldex/libbchat/messaging/jobs/AttachmentUploadJob.kt - Message model
libsession/src/main/java/com/beldex/libbchat/messaging/messages/Message.kt - Visible message
libsession/src/main/java/com/beldex/libbchat/messaging/messages/visible/VisibleMessage.kt - Beldex node API
libsession/src/main/java/com/beldex/libbchat/mnode/MnodeAPI.kt
Data and groups
- Storage protocol
libsession/src/main/java/com/beldex/libbchat/database/StorageProtocol.kt - App storage
app/src/main/java/io/beldex/bchat/database/Storage.kt - Message database
app/src/main/java/io/beldex/bchat/database/BeldexMessageDatabase.kt - Thread database
app/src/main/java/io/beldex/bchat/database/BeldexThreadDatabase.kt - Contact management
app/src/main/java/io/beldex/bchat/database/BchatContactDatabase.kt - Open groups
app/src/main/java/io/beldex/bchat/groups/OpenGroupManager.kt - Backup export
app/src/main/java/io/beldex/bchat/backup/FullBackupExporter.kt - Backup import
app/src/main/java/io/beldex/bchat/backup/FullBackupImporter.kt
Calling
- Call service
app/src/main/java/io/beldex/bchat/service/WebRtcCallService.kt - Call manager
app/src/main/java/io/beldex/bchat/webrtc/CallManager.kt - WebRTC call screen
app/src/main/java/io/beldex/bchat/calls/WebRtcCallActivity.kt
Other components
- BChat user
Connections 8
- BChat user → Conversation UI: composes in
README.md - Application context → App storage: injects
app/src/main/java/io/beldex/bchat/ApplicationContext.kt - App storage → Storage protocol: implements
app/src/main/java/io/beldex/bchat/database/Storage.kt - App storage → Thread database: updates
app/src/main/java/io/beldex/bchat/database/Storage.kt - App storage → Open groups: delegates group add
app/src/main/java/io/beldex/bchat/database/Storage.kt - Call service → Call manager: routes call events
app/src/main/java/io/beldex/bchat/service/WebRtcCallService.kt - Call manager → Storage protocol: imports
app/src/main/java/io/beldex/bchat/webrtc/CallManager.kt - Attachment upload job → Message model: uses message data
libsession/src/main/java/com/beldex/libbchat/messaging/jobs/AttachmentUploadJob.kt