- FirestoreQuestionThreadDataSource: sendImageMessage encrypts bytes with couple key, uploads to Storage, stores URL in Firestore; loadDecryptedMedia downloads + decrypts - QuestionMessage: type field (text/image), mediaUrl, isImage helper - QuestionDiscussionThread: image picker (gallery + camera), encrypted image rendering with produceState, messenger-style avatars on consecutive bubbles - QuestionThreadViewModel: sendImage, loadDecryptedMedia, dailyRevealed skip for already-revealed daily questions, partner photo loading - MainActivity: deepLinkRouteFromIntent resolves FCM data extras to navigation routes; pendingDeepLink state for onNewIntent - AppNavigation: LaunchedEffect waits for HOME route before navigating deep link (fixes race with onboarding) - PartnerHomeScreen: partner photoUrl loaded and displayed in identity card - NotificationRateLimiter: 20 partner/day, 100/week (was 2/4 — too tight for game activity) - MessageBubbleOverlay: drag-to-dismiss zone at bottom, no auto-timeout (persists until read) - ActiveThreadMonitor: dismisses bubble when entering conversation - onMessageWritten: includes author name + photo URL in notification payload - firestore.rules: messages create allows type=image with mediaUrl or type=text with ciphertext - storage.rules: chat_media path with 15MB cap - file_paths.xml: cache-path for camera capture |
||
|---|---|---|
| .. | ||
| assignDailyQuestion.js | ||
| assignDailyQuestion.js.map | ||
| onAnswerWritten.js | ||
| onAnswerWritten.js.map | ||
| onMessageWritten.js | ||
| onMessageWritten.js.map | ||