How imtigger/sms2telegram works
SMS2Telegram is an Android app that forwards received SMS messages to a user-configured Telegram bot and chat. The main workflow receives an SMS, formats and queues it, then schedules background delivery; the worker sends queued messages and records delivery status. The setup UI also fetches chat choices and validates bot configuration. The graph reflects the sampled receiver, worker, repositories, and UI excerpts; manifest wiring and unsampled UI behavior are not inferred.
Main entry points: TelegramDeliveryWorker.kt Delivery worker · MainActivity.kt Setup UI · SmsReceiver.kt SMS receiver · SettingsRepository.kt Settings store
Components 11
Setup and controls
- Setup UI
app/src/main/java/com/tigerworkshop/sms2telegram/ui/MainActivity.kt
SMS intake
- SMS receiver
app/src/main/java/com/tigerworkshop/sms2telegram/sms/SmsReceiver.kt
Delivery
- Delivery worker
app/src/main/java/com/tigerworkshop/sms2telegram/data/TelegramDeliveryWorker.kt - Telegram client
app/src/main/java/com/tigerworkshop/sms2telegram/data/TelegramForwarder.kt
Local state
- Settings store
app/src/main/java/com/tigerworkshop/sms2telegram/data/SettingsRepository.kt - Pending outbox
app/src/main/java/com/tigerworkshop/sms2telegram/data/PendingMessageOutbox.kt - Status updates
app/src/main/java/com/tigerworkshop/sms2telegram/data/StatusUpdateBus.kt
Other components
- User
- Telegram Bot API
- Android SMS broadcast
- Android WorkManager
Connections 21
- User → Setup UI: configures
- Setup UI → Settings store: reads/writes
- Setup UI → Telegram client: validates/fetches
- Telegram client → Telegram Bot API: HTTP requests
- Setup UI → Pending outbox: checks/clears
- Setup UI → Status updates: observes
- Status updates → Setup UI: emits updates
- Android SMS broadcast → SMS receiver: delivers SMS
- SMS receiver → Settings store: checks options
- SMS receiver → Pending outbox: queues message
- SMS receiver → Settings store: saves status
- SMS receiver → Status updates: notifies
- SMS receiver → Delivery worker: enqueues work
- Setup UI → Delivery worker: enqueues work
- Setup UI → Delivery worker: cancels work
- Delivery worker → Settings store: reads settings
- Delivery worker → Settings store: saves status
- Delivery worker → Pending outbox: reads/removes
- Delivery worker → Telegram client: sends message
- Delivery worker → Status updates: notifies
- Android WorkManager → Delivery worker: runs scheduled work