2.4 KiB
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 placeholderChatsscreen after successful auth. - Implemented automatic session restore on app start using stored tokens.
Step 4 - Unit tests
- Added
DataStoreTokenRepositoryTestfor token save/read and clear behavior. - Added
NetworkAuthRepositoryTestfor login success path and 401 ->InvalidCredentialserror mapping.
Step 5 - Chat Room models and persistence core
- Added domain chat model (
ChatItem) for chat list rendering concerns. - Added Room entities:
chats,users_shortwith sort-friendly indices. - Added
ChatDaowithobserveChats(),upsertChats(), and transactionalclearAndReplaceChats(). - Added
MessengerDatabaseand Hilt database wiring (DatabaseModule).
Step 6 - Chat API and repository sync
- Added chat REST API client for
/api/v1/chatsand/api/v1/chats/{chat_id}. - Added chat DTOs and remote/local mappers (
ChatReadDto -> ChatEntity/UserShortEntity -> ChatItem). - Implemented
NetworkChatRepositorywith 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.