replica(messages): recon, features, architecture, tokens
Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
@@ -0,0 +1,64 @@
|
||||
# Recon map: Google Messages (Android)
|
||||
|
||||
Scope: conversation list, conversation with bubbles, compose/new chat, SMS send/receive/delivery, notifications with reply, search, archive/delete, contacts integration
|
||||
For: personal use, an SMS app without Google services (project NoGooleApps)
|
||||
Date: 2026-10-17
|
||||
|
||||
## Sources
|
||||
|
||||
| # | source | URL | notes |
|
||||
| --- | --- | --- | --- |
|
||||
| 1 | screenshots | replica/messages/screens/ref-01..05.png | supplied by user: launcher icon, RCS group chat with reactions, list (store art), list on a phone (older), chat with image. Reference only |
|
||||
| 2 | platform docs | https://developer.android.com/reference/android/provider/Telephony | SMS/MMS provider, default SMS app duties |
|
||||
| 3 | platform docs | https://developer.android.com/reference/android/app/role/RoleManager#ROLE_SMS | default SMS app role requirements |
|
||||
|
||||
## Core loop
|
||||
|
||||
See new texts at a glance and answer in two taps, from the list or straight from the notification.
|
||||
|
||||
## Screens
|
||||
|
||||
| ID | screen | how | purpose | components | states |
|
||||
| --- | --- | --- | --- | --- | --- |
|
||||
| S01 | Conversations | launch | all threads | top bar (title, search, menu), rows (avatar, name or number, snippet with "Du: ", time, unread bold + dot), FAB "Chat starten" | empty, no role, filled, unread |
|
||||
| S02 | Conversation | tap a row | read and reply | top bar (back, avatar, name, call, menu), bubbles (incoming left surface, outgoing right primary), day separators, time + delivery status, composer pill (attach, field, send) | sending, sent, delivered, failed (tap to retry), long text, links |
|
||||
| S03 | New chat | FAB | pick a recipient | "An:" field, contact suggestions, type a number | empty, matches |
|
||||
| S04 | Search | search icon | find messages | field, results with highlighted match | |
|
||||
| S05 | Archived | menu | archived threads | list | empty |
|
||||
| S06 | Settings | menu | options | default app, notifications (system), delivery reports, theme | |
|
||||
| S07 | Notification | system | read and reply without opening | MessagingStyle with sender, direct reply, mark as read | |
|
||||
|
||||
## Flows
|
||||
|
||||
```
|
||||
F01 Reply to a new text: notification → reply inline → sent (taps: 2)
|
||||
F02 Read and answer in the app: S01 → S02 → type → send
|
||||
F03 Start a chat: S01 FAB → S03 pick contact → S02 → send
|
||||
F04 Delete / archive a thread: long press in S01 → action
|
||||
F05 Become the default SMS app: first start → system dialog
|
||||
edge: long messages (multipart), no signal (failed, retry), dual SIM, unknown sender, short codes, delivery report
|
||||
```
|
||||
|
||||
## Components
|
||||
|
||||
Avatar (photo, initial, unknown) · ConversationRow · Bubble (in, out; first/middle/last grouping radius) · DaySeparator · Composer pill · Status line (Wird gesendet, Gesendet, Zugestellt, Fehler) · FAB extended "Chat starten" · Selection top bar.
|
||||
|
||||
## Data model
|
||||
|
||||
Messages and threads live in the system provider (`Telephony.Sms`, `Telephony.Threads`); as default SMS app we write incoming messages there ourselves.
|
||||
|
||||
```
|
||||
Thread (system) thread_id, recipients, snippet, date, read, archived (Telephony.Threads.ARCHIVED) confidence: high
|
||||
Sms (system) _id, thread_id, address, body, date, type (inbox|sent|outbox|failed|queued), read, status confidence: high
|
||||
Prefs own: delivery_reports, theme confidence: high
|
||||
```
|
||||
|
||||
## Out of scope
|
||||
|
||||
- RCS (typing indicators, reactions, high-res media, read receipts over data): Google's RCS backend (Jibe) and carrier deals; not open to other apps.
|
||||
- Google account backup, spam protection, Magic Compose/Gemini, "Messages for web": Google services.
|
||||
- MMS (pictures, group MMS): technically possible for a default SMS app but needs carrier MMS settings and PDU handling; planned after SMS works.
|
||||
|
||||
## Size
|
||||
|
||||
Screens 7, flows 5. Hard parts: (1) default-SMS duties (store incoming, mark read, respond-via-message service, sent/delivered intents, multipart), (2) fast thread list with contact names, (3) MMS later. Size: M.
|
||||
Reference in New Issue
Block a user