How priyankjhajharia/emergencymeshapp works
EmergencyMesh is an offline-first Android emergency messaging app. Users chat with nearby peers over Bluetooth or WiFi Direct; messages can be stored and relayed through intermediate devices. SOS adds location sharing, emergency-contact SMS fallback, and an incoming-SOS alarm/notification path, while a foreground service keeps mesh communication available in the background. The README documents these capabilities, but source excerpts were not provided, so internal call ownership and several wiring details remain uncertain and are not drawn.
Main entry points: SmsHelper.kt SMS helper · MeshService.kt Background mesh service · MainActivity.kt Main screen · ContactsActivity.kt Contacts screen
Components 21
App interface
- Main screen
app/src/main/java/com/example/emergency_app/MainActivity.kt - Contacts screen
app/src/main/java/com/example/emergency_app/ui/ContactsActivity.kt - Profile screen
app/src/main/java/com/example/emergency_app/ui/ProfileActivity.kt - Chat display
app/src/main/java/com/example/emergency_app/ui/ChatAdapter.kt - Contact display
app/src/main/java/com/example/emergency_app/ui/ContactsAdapter.kt
Mesh communication
- Background mesh service
app/src/main/java/com/example/emergency_app/service/MeshService.kt - Mesh router
app/src/main/java/com/example/emergency_app/mesh/MeshRouter.kt - Bluetooth and BLE
app/src/main/java/com/example/emergency_app/bluetooth/BluetoothManager.kt - WiFi Direct
app/src/main/java/com/example/emergency_app/wifi/WifiDirectManager.kt
Local data
- Room database
app/src/main/java/com/example/emergency_app/data/MessageDatabase.kt - Message access
app/src/main/java/com/example/emergency_app/data/MessageDao.kt - Mesh message
app/src/main/java/com/example/emergency_app/data/MeshMessage.kt - Contact access
app/src/main/java/com/example/emergency_app/data/ContactDao.kt - Emergency contact
app/src/main/java/com/example/emergency_app/data/EmergencyContact.kt
Emergency response
- Location helper
app/src/main/java/com/example/emergency_app/mesh/LocationHelper.kt - SMS helper
app/src/main/java/com/example/emergency_app/mesh/SmsHelper.kt - Alarm and notifications
app/src/main/java/com/example/emergency_app/service/NotificationHelper.kt
Other components
- Phone user
- Nearby phones
- Android services
- Cellular SMS
Connections 24
- Phone user → Main screen: uses
- Phone user → Contacts screen: manages contacts
- Phone user → Profile screen: views profile
- Main screen → Chat display: shows conversations
- Contacts screen → Contact display: shows contacts
- Background mesh service → Bluetooth and BLE: maintains mesh
- Background mesh service → WiFi Direct: maintains mesh
- Bluetooth and BLE → Nearby phones: Bluetooth / BLE
- WiFi Direct → Nearby phones: WiFi Direct / TCP
- Nearby phones → Bluetooth and BLE: messages
- Nearby phones → WiFi Direct: messages
- Background mesh service → Mesh router: routes messages
- Mesh router → Message access: stores messages
- Message access → Room database: reads / writes
- Contact access → Room database: reads / writes
- Contacts screen → Contact access: manages contacts
- Main screen → Location helper: SOS location
- Main screen → SMS helper: SOS fallback
- SMS helper → Contact access: uses saved contacts
- SMS helper → Cellular SMS: sends SOS text
- Cellular SMS → SMS helper: incoming SOS text
- SMS helper → Alarm and notifications: triggers alarm
- Background mesh service → Android services: runs in foreground
- Location helper → Android services: gets GPS location