Skip to content

darxfame/rcq-android

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

87 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RCQ Android

Android client for RCQ — privacy-first messenger with 9-digit IDs, no phone, no email, end-to-end encrypted by default.

Status: Pre-alpha, active development Build: ✅ GREEN (assembleDebug passing) DB: v13 | Branch: phase-1-core-messaging | Date: 2026-05-31


Project Status

Milestone Focus Status Date
Phase 0 Critical bug fixes ✅ DONE 2026-05-25
Phase 1 Core messaging + E2EE ✅ DONE 2026-05-26
Build fix 123 compile errors ✅ DONE 2026-05-28
Phase 1 audit WS fixes, runtime bugs ✅ DONE 2026-05-29
Phase 2 Delivery states, typing, reactions, search ✅ DONE 2026-05-30
Stealth ProxyManager, SingBox, PanicPIN ✅ DONE 2026-05-30
JIMM UI Retro JIMM/QIP visual redesign (~46%) 🔄 ACTIVE 2026-05-31
Bug sprint DMs, dark mode, timeouts, groups, navbar ✅ DONE 2026-05-31
Next JIMM P5 sounds, P7 emoticons, statusMessage 📋 NEXT

DB version: 13 · Functional progress: ~75%

Recent fixes (2026-05-31)

Commit What changed
084a836 Navbar hidden under gesture nav buttons → navigationBarsPadding(); all groups now show (removed broken memberIds filter)
933c602 Startup splash: 8-petal ICQ flower + connection probe, auto-enables bypass if server unreachable
0333e30 HTTP timeout 60s→10s; dark mode persisted to DataStore; incoming DMs: TOFU no longer drops silently, fallback placeholder; JIMM toggle restored
0b65680 Full JIMM/QIP redesign: flat 50dp NavBar, compact typography, status-dot list items
763a718 JIMM retro mode, status-grouped contacts, group server-side search with debounce
699c8aa Stealth: BypassMode AUTO/MANUAL/OFF, sing-box persistence across restarts

Architecture

Stack: Kotlin + Jetpack Compose · Hilt DI · Room DB v9 · libsignal-android 0.33.0 · OkHttp WebSocket · Retrofit · Kotlinx Serialization · WebRTC

crypto/     Signal Protocol E2EE (Double Ratchet, X3DH, PersistentSignalProtocolStore)
data/
  api/      Retrofit service + DTOs
  db/       Room v9 (users, contacts, chats, messages, groups, stories, calls, pets, signal_keys)
  ws/       WebSocketManager — exponential backoff, 40+ typed events
  repository/ UserRepository, ChatRepository, GroupRepository, StoryRepository, ...
di/         Hilt AppModule
ui/
  auth/     WelcomeScreen, AccountRecoveryScreen
  chat/     ChatScreen, ChatsScreen + components (MediaMessageBubble, ReplyPreview)
  contacts/ ContactsScreen, AddContactScreen, CreateGroupScreen
  calls/    CallScreen, CallsScreen
  stories/  StoriesScreen, StoryViewerScreen
  profile/  ProfileScreen
  settings/ SettingsScreen
  games/    GamesScreen
  market/   MarketplaceScreen
  audio/    AudioRoomsScreen

Database Schema (v9)

Migration Change
v6→v7 E2EE fields on messages (ciphertext, signalType, isEncrypted)
v7→v8 signal_keys table for persistent Signal Protocol storage
v8→v9 Phase 1 fields on messages (kind, mediaId, reactions, etc.), profile fields on contacts, new chats schema, pets recreated with game fields

Build

export ANDROID_HOME=/opt/android-sdk
./gradlew assembleDebug          # debug APK
./gradlew compileDebugKotlin     # Kotlin only (fast check)
./gradlew kspDebugKotlin         # Room/Hilt annotation processing
./gradlew test                   # unit tests

Security

All messages use Signal Protocol (Double Ratchet + X3DH) via libsignal-android:0.33.0, fully compatible with the iOS RCQ client. Keys are persisted in Room via PersistentSignalProtocolStore. Sessions survive app restarts.

Security issues → security@rcq.app (disclose responsibly before filing a public issue).


Docs

File Content
docs/RCQ_API_SPEC.md Complete API specification
PHASE_1_PLAN.md Phase 1 E2EE plan
DIAGNOSIS.md Known runtime issues
TODO.md Feature checklist
MIGRATION_PLAN.md Full roadmap

License: GNU AGPL-3.0 · See NOTICE for third-party attributions.

About

Android client for RCQ — privacy-first messenger. Pre-alpha.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages

  • Kotlin 76.4%
  • Java 23.6%