Files
Messenger/android/CHANGELOG.md

2.4 KiB

Android Changelog

2026-03-08

Step 1 - Build and app wiring

  • Added Android project plugin configuration for Hilt and Kotlin serialization.
  • Added dependency repositories and explicit app module include in settings.
  • Added app dependencies for Retrofit/OkHttp, DataStore, coroutines, Hilt, and unit testing.
  • Enabled INTERNET permission and registered MessengerApplication in manifest.
  • Added MessengerApplication with HiltAndroidApp.

Step 2 - Network/data core + DI

  • Fixed DTO/Auth API serialization annotations and endpoint declarations for /api/v1/auth/login, /api/v1/auth/refresh, /api/v1/auth/me.
  • Implemented DataStore-based token persistence with a corrected getTokens() read path.
  • Added auth network stack: bearer interceptor, 401 authenticator with refresh flow and retry guard.
  • Added clean-layer contracts and implementations: domain/common, domain/auth, data/auth/repository.
  • Wired dependencies with Hilt modules for DataStore, OkHttp/Retrofit, and repository bindings.

Step 3 - Minimal auth UI and navigation

  • Replaced Phase 0 placeholder UI with Compose auth flow (AuthViewModel + login screen).
  • Added loading/error states for login and startup session restore.
  • Added navigation graph: AuthGraph (login) to placeholder Chats screen after successful auth.
  • Implemented automatic session restore on app start using stored tokens.

Step 4 - Unit tests

  • Added DataStoreTokenRepositoryTest for token save/read and clear behavior.
  • Added NetworkAuthRepositoryTest for login success path and 401 -> InvalidCredentials error mapping.

Step 5 - Chat Room models and persistence core

  • Added domain chat model (ChatItem) for chat list rendering concerns.
  • Added Room entities: chats, users_short with sort-friendly indices.
  • Added ChatDao with observeChats(), upsertChats(), and transactional clearAndReplaceChats().
  • Added MessengerDatabase and Hilt database wiring (DatabaseModule).

Step 6 - Chat API and repository sync

  • Added chat REST API client for /api/v1/chats and /api/v1/chats/{chat_id}.
  • Added chat DTOs and remote/local mappers (ChatReadDto -> ChatEntity/UserShortEntity -> ChatItem).
  • Implemented NetworkChatRepository with cache-first flow strategy (Room first, then server sync).
  • Added chat domain contracts/use-cases (ChatRepository, observe/refresh use-cases).
  • Wired chat API/repository via Hilt modules.