replica(telefon): recon, feature matrix, reference screenshots

Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
2026-10-17 16:21:18 +02:00
co-authored by Claude Opus 5.5
parent 5027fbcd85
commit 43030575c4
5 changed files with 132 additions and 0 deletions
+34
View File
@@ -0,0 +1,34 @@
feature,area,priority,original,clone,notes
Become the default phone app (role request),core,must,yes,no,
Call log grouped by day with direction icons,home,must,yes,no,
Call back from the log in one tap,home,must,yes,no,
Missed calls highlighted,home,must,yes,no,
Filter chips All Missed Contacts,home,should,yes,no,
Favourites row (starred contacts),home,must,yes,no,
Search contacts and numbers,search,must,yes,no,
Keypad with letters,keypad,must,yes,no,
T9 contact suggestions on the keypad,keypad,should,yes,no,
Place a call,call,must,yes,no,
Incoming call full screen with slide answer/decline,call,must,yes,no,
Incoming call notification with actions,call,must,yes,no,
In-call screen with timer,call,must,yes,no,
Mute,call,must,yes,no,
Speaker,call,must,yes,no,
In-call keypad (DTMF),call,must,yes,no,
Hold,call,should,yes,no,
Second incoming call (call waiting),call,should,yes,no,
Ongoing call notification,call,must,yes,no,
Proximity sensor screen off at the ear,call,must,yes,no,
Decline with quick reply SMS,call,should,yes,no,
Contact and number details with history,details,should,yes,no,
Toggle favourite,details,could,yes,no,
Open contact in contacts app / add contact,details,should,yes,no,
Call voicemail,voicemail,should,yes,no,
Delete call log entries,home,could,yes,no,
Expressive design (scalloped avatars grouped cards slide pill),design,must,yes,no,
Dynamic colour and dark mode,design,must,yes,no,
Bluetooth audio route,call,should,yes,no,
Spam detection and caller ID,home,could,yes,skip,Google database
Call screening and hold for me,call,could,yes,skip,Google AI
Call recording and live translation,call,could,yes,skip,Google AI; recording blocked for apps
Visual voicemail transcription,voicemail,could,yes,skip,carrier/Google
1 feature area priority original clone notes
2 Become the default phone app (role request) core must yes no
3 Call log grouped by day with direction icons home must yes no
4 Call back from the log in one tap home must yes no
5 Missed calls highlighted home must yes no
6 Filter chips All Missed Contacts home should yes no
7 Favourites row (starred contacts) home must yes no
8 Search contacts and numbers search must yes no
9 Keypad with letters keypad must yes no
10 T9 contact suggestions on the keypad keypad should yes no
11 Place a call call must yes no
12 Incoming call full screen with slide answer/decline call must yes no
13 Incoming call notification with actions call must yes no
14 In-call screen with timer call must yes no
15 Mute call must yes no
16 Speaker call must yes no
17 In-call keypad (DTMF) call must yes no
18 Hold call should yes no
19 Second incoming call (call waiting) call should yes no
20 Ongoing call notification call must yes no
21 Proximity sensor screen off at the ear call must yes no
22 Decline with quick reply SMS call should yes no
23 Contact and number details with history details should yes no
24 Toggle favourite details could yes no
25 Open contact in contacts app / add contact details should yes no
26 Call voicemail voicemail should yes no
27 Delete call log entries home could yes no
28 Expressive design (scalloped avatars grouped cards slide pill) design must yes no
29 Dynamic colour and dark mode design must yes no
30 Bluetooth audio route call should yes no
31 Spam detection and caller ID home could yes skip Google database
32 Call screening and hold for me call could yes skip Google AI
33 Call recording and live translation call could yes skip Google AI; recording blocked for apps
34 Visual voicemail transcription voicemail could yes skip carrier/Google
+98
View File
@@ -0,0 +1,98 @@
# Recon map: Google Phone / Pixel Phone (Android)
Scope: home (search, filter chips, favourites, call log), keypad with contact search, voicemail tab, contact/number details, incoming call, in-call screen, call notifications
For: personal use, a dialer without Google services (project NoGooleApps)
Date: 2026-10-17
## Sources
| # | source | URL | notes |
| --- | --- | --- | --- |
| 1 | screenshots | replica/telefon/screens/ref-01..03.png | supplied by user: home/incoming/in-call (Material 3 Expressive, 2025), older dark in-call with keypad and "More" (hold, video, add call), German call-assist sheet (recording, translation). Reference only |
| 2 | platform docs | https://developer.android.com/reference/android/telecom/InCallService | how a default dialer receives and controls calls |
| 3 | platform docs | https://developer.android.com/reference/android/app/role/RoleManager#ROLE_DIALER | default phone app role |
| 4 | general knowledge as a user | – | filters, favourites, call history grouping, swipe pill answer/decline |
## Core loop
See who called and call back in one tap; answer an incoming call reliably, even on the lock screen.
## Screens
| ID | screen | how to reach | purpose | key components | states seen |
| --- | --- | --- | --- | --- | --- |
| S01 | Home | launch, tab "Start" | favourites + recent calls | search bar with menu, filter chips (Alle, Verpasst, Kontakte), favourites row (round avatars, "Alle ansehen"), call log grouped by day (avatar/initial, name or number, direction icon + type + time, call button), bottom nav | empty, no permission, filled, missed in red (ref-01) |
| S02 | Search | tap the search bar | find contacts and numbers | text field, contact results, "call number" row | empty, results |
| S03 | Keypad | tab "Wähltasten" | dial a number | number field, 12 keys with letters, call FAB, backspace (long = clear), T9 contact suggestions | empty, typing, matches |
| S04 | Voicemail | tab "Mailbox" | reach voicemail | call voicemail button, number from SIM | no number, number set |
| S05 | Contact / number details | tap avatar or row | everything about a person | big avatar, name, numbers with call/SMS, recent calls with that number, favourite star, open in contacts app | contact, unknown number |
| S06 | Incoming call | system, full screen | answer or decline | caller name, number + label, big scalloped avatar, quick actions (Nachricht), slide pill Ablehnen ← ☎ → Annehmen | ringing, locked screen (ref-01) |
| S07 | In call | after answer / outgoing | control the call | status (Wird angerufen…, timer), name, number, avatar, buttons Wähltasten, Stumm, Lautsprecher, Mehr (Halten, Anruf hinzufügen), red hang-up pill; inline DTMF keypad | dialing, active, on hold, ended (ref-01, ref-02) |
| S08 | Call notification | heads-up / ongoing | answer from anywhere, return to call | incoming (Annehmen/Ablehnen), ongoing (Auflegen, timer) | |
| S09 | Settings | menu | options | default app status, quick replies, sounds and vibration (system), blocked numbers (system) | |
## Flows
```
F01 Call back a missed call
S01 → tap call icon on the row → S07
taps: 1
F02 Call a favourite
S01 → tap avatar → S07 (taps: 1)
F03 Dial a number
S03 → digits → call FAB → S07
F04 Answer
S06 slide to "Annehmen" → S07 → hang up
edge: locked phone, second incoming call while in a call, caller hangs up while ringing
F05 Decline with a message
S06 → Nachricht → pick a quick reply → SMS app
F06 Find a contact
S01 search → S02 → tap → S05 → call
F07 Use the keypad during a call (menus, PIN)
S07 → Wähltasten → DTMF
F08 Become the default phone app (first run)
S01 → banner → system role dialog → yes
```
## Components
| component | variants | states | used on |
| --- | --- | --- | --- |
| Search bar | pill with menu + search icon | idle, focused | S01, S02 |
| Filter chip | selected, unselected | | S01 |
| Avatar | photo, initial on colour, unknown (person icon), business (building icon); sizes 48 / 120 / 200 scalloped | | all |
| Call log row | grouped card (large outer, small inner radius), direction icon (incoming, outgoing, missed red), call button | pressed | S01 |
| Dial key | digit + letters | pressed | S03, S07 |
| Call button | green round FAB (keypad), red pill (hang up) | | S03, S07 |
| Slide pill | Ablehnen ← thumb → Annehmen | idle, dragging | S06 |
| Toggle button | round tonal, on = filled | mute, speaker, hold | S07 |
| Bottom nav | Start, Wähltasten, Mailbox | | S01, S03, S04 |
## Inferred data model
The phone app owns almost no data: call history is the system `CallLog`, people are the system `ContactsContract`, voicemail number comes from the SIM.
```
CallEntry (system CallLog) number, name, type (incoming|outgoing|missed|rejected|blocked|voicemail), date, duration, numberLabel
confidence: high
Contact (system Contacts) id, lookupKey, name, photoUri, starred, phones[label, number]
confidence: high
QuickReply own: id, text, position (default set, editable) confidence: high
Settings own: theme confidence: high
```
## Feature matrix
See `features.csv`.
## Out of scope
- Spam detection, caller ID from Google's database, "Non-Spam/Spam" filters: Google service.
- Call screening, hold for me, direct my call, call recording, live translation (ref-03): Google AI services; recording is also blocked for normal apps since Android 10.
- Visual voicemail transcription: carrier/Google service; we only dial voicemail.
- Wi-Fi calling, RTT, video calls: carrier/IMS features the system handles.
- Editing contacts: done by a contacts app; we open it.
## Size
Screens 9, flows 8, entities 2 own. Hard parts: (1) becoming the default dialer and implementing an `InCallService` correctly (call states, audio routing, hold, multiple calls), (2) the incoming call UI over the lock screen with full-screen intent and ringtone handled by the system, (3) fast call log + contacts merging and T9 search. Size: M.
Binary file not shown.

After

Width:  |  Height:  |  Size: 332 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 113 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 420 KiB