- Module structure mirrors location pattern (core/data, core/domain, core/providers, features) - Supports text, emoji, image and audio messages over POST /chat-messages multipart - Optimistic UI with status reconciliation via 4s polling and circuit breaker after 3 errors - Offline queue persisted in SharedPreferences, drained on conversation re-open - WhatsApp-style audio recorder with long-press, slide-to-cancel, haptics and animated overlay - Image picker (camera/gallery) with on-device 1024px JPEG compression - Single-audio playback coordinator across bubbles - Family group fan-out: N parallel POSTs sharing chatId, members derived from delegationId - Reuses LegacyOptionCard extracted from videocall idle screen - Tracking events legacy_chat_opened, message_sent, image_sent, audio_sent, permission_denied (no PII) - WebSocket ChatMessageEvent parser added for future backend support - Push command CHAT_MESSAGE handled in notifications_init for deep-linking - 15 unit tests covering id resolver, file url builder and repository Pending backend coordination: GET /chat-messages 500 (parseQueryParams), push routing heuristic, file size/mime limits.
3.2 KiB
3.2 KiB