Files

6.0 KiB
Raw Permalink Blame History

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.