Status Types
| Status | Indicator | Meaning |
|---|---|---|
| Transmitting | Pulsing / channel shown | Currently speaking on PTT |
| Online | Green dot | Connected and available |
| Away | Yellow dot | App is backgrounded |
| In Whisper | Phone icon | On a private voice call |
| In Live-Sight | Video icon | On a video call |
| Offline | Gray dot | Not connected |
How Presence Works
CrewTalk uses Firebase Realtime Database for presence management:
- App opens — Status set to "Online"
- App backgrounds — Status changes to "Away"
- App foregrounds — Status returns to "Online"
- PTT pressed — Status shows "Transmitting" with channel number
- Call starts — Status shows "In Whisper" or "In Live-Sight"
- App closes / disconnects — Firebase
onDisconnecthandler sets status to "Offline" with a timestamp
The onDisconnect handler is crucial — it runs on the server side, so even if your app crashes or loses connection suddenly, your status will correctly update to Offline.
Last Seen
For offline members, the roster shows a last seen time:
| Time Since | Display |
|---|---|
| < 60 minutes | "5m ago", "30m ago" |
| 1-23 hours | "2h ago", "12h ago" |
| 1-6 days | "Yesterday", "3d ago" |
| 7+ days | "Last week", date |
This helps you gauge whether a crew member recently disconnected (might be back soon) or hasn't been active in a while.
Roster Grouping
The Members Drawer groups members by status in this order:
- Transmitting — Most prominent, shows who's currently on air
- Online — Available team members
- Away — Backgrounded but still connected
- In Call — On Whisper or Live-Sight
- Offline — Not connected, with last seen times
This ordering puts the most actionable information at the top — you can immediately see who's talking and who's available.
Glance at the Members Drawer before important announcements to verify key team members are online. If someone critical is offline or away, you might want to wait or contact them directly.
Presence and Calls
When you're on a Whisper or Live-Sight call:
- Your status shows the call type
- The roster shows who you're in a call with
- This prevents other members from trying to call you
- Quick-action call icons are hidden for members already in a call
