How covaimetertaxi-byte/covai-meter-taxi-app works
Covai Meter Taxi is an Android driver app for recording metered rides and handling dispatched bookings. Drivers configure their profile, start or resume a meter, track trip location and fare, then complete a ride for local history, receipt generation, and cloud/spreadsheet synchronization. A separate dispatch workflow discovers nearby open trips, supports OTP verification and acceptance, and tracks active bookings. The excerpts show the main activity wiring the repository and ViewModel, and the dispatch service fetching trips through Supabase; unsampled UI and service details limit further call-level links.
Main entry points: TaxiMeterViewModel.kt Meter ViewModel · MainActivity.kt App entry and UI · GoogleSheetsSyncManager.kt Sheets sync · TripRepository.kt Trip repository
Components 23
Driver experience
- App entry and UI
app/src/main/java/com/covaimetertaxi/driver/MainActivity.kt - Dispatch screen
app/src/main/java/com/covaimetertaxi/driver/ui/DispatchScreen.kt - Meter ViewModel
app/src/main/java/com/covaimetertaxi/driver/ui/TaxiMeterViewModel.kt
Ride execution
- Trip dispatch
app/src/main/java/com/covaimetertaxi/driver/service/TaxiDispatchService.kt - Meter service
app/src/main/java/com/covaimetertaxi/driver/service/TaxiMeterService.kt - Location engine
app/src/main/java/com/covaimetertaxi/driver/service/LocationEngine.kt
Trip records
- Trip record
app/src/main/java/com/covaimetertaxi/driver/data/Trip.kt - Trip repository
app/src/main/java/com/covaimetertaxi/driver/data/TripRepository.kt - Local trip database
app/src/main/java/com/covaimetertaxi/driver/data/AppDatabase.kt
Sync and services
- Firebase manager
app/src/main/java/com/covaimetertaxi/driver/network/FirebaseManager.kt - Sheets sync
app/src/main/java/com/covaimetertaxi/driver/network/GoogleSheetsSyncManager.kt - Supabase manager
app/src/main/java/com/covaimetertaxi/driver/network/SupabaseManager.kt - PDF receipts
app/src/main/java/com/covaimetertaxi/driver/util/PdfReceiptGenerator.kt
Shared utilities
- Ride OTP
app/src/main/java/com/covaimetertaxi/driver/util/RideOtpManager.kt - Address lookup
app/src/main/java/com/covaimetertaxi/driver/util/GeocoderHelper.kt - Network time
app/src/main/java/com/covaimetertaxi/driver/util/NetworkTimeHelper.kt - Credential obfuscation
app/src/main/java/com/covaimetertaxi/driver/util/SecurityObfuscator.kt - Language manager
app/src/main/java/com/covaimetertaxi/driver/util/LanguageManager.kt - Voice announcements
app/src/main/java/com/covaimetertaxi/driver/util/TtsAnnouncer.kt
Other components
- Driver
- Google Sheets
- Firebase
- Supabase
Connections 23
- Driver → App entry and UI: uses
- App entry and UI → Trip repository: creates
app/src/main/java/com/covaimetertaxi/driver/MainActivity.kt - App entry and UI → Meter ViewModel: creates
app/src/main/java/com/covaimetertaxi/driver/MainActivity.kt - App entry and UI → Language manager: initializes
app/src/main/java/com/covaimetertaxi/driver/MainActivity.kt - App entry and UI → Network time: initializes
app/src/main/java/com/covaimetertaxi/driver/MainActivity.kt - Meter ViewModel → Meter service: starts trip
app/src/main/java/com/covaimetertaxi/driver/ui/TaxiMeterViewModel.kt - Meter ViewModel → Trip repository: uses
app/src/main/java/com/covaimetertaxi/driver/ui/TaxiMeterViewModel.kt - Meter ViewModel → Sheets sync: syncs profile
app/src/main/java/com/covaimetertaxi/driver/ui/TaxiMeterViewModel.kt - Meter ViewModel → Address lookup: resolves address
app/src/main/java/com/covaimetertaxi/driver/ui/TaxiMeterViewModel.kt - Meter ViewModel → Voice announcements: uses
app/src/main/java/com/covaimetertaxi/driver/ui/TaxiMeterViewModel.kt - Meter service → Trip record: builds trip state
app/src/main/java/com/covaimetertaxi/driver/service/TaxiMeterService.kt - Dispatch screen → Trip dispatch: uses
app/src/main/java/com/covaimetertaxi/driver/ui/DispatchScreen.kt - Dispatch screen → Ride OTP: uses
app/src/main/java/com/covaimetertaxi/driver/ui/DispatchScreen.kt - Trip dispatch → Supabase manager: fetches trips
app/src/main/java/com/covaimetertaxi/driver/service/TaxiDispatchService.kt - Trip dispatch → Meter service: checks meter status
app/src/main/java/com/covaimetertaxi/driver/service/TaxiDispatchService.kt - Trip repository → Local trip database: persists trips
- Sheets sync → Google Sheets: uploads trips
app/src/main/java/com/covaimetertaxi/driver/network/GoogleSheetsSyncManager.kt - Sheets sync → Trip repository: marks synced
app/src/main/java/com/covaimetertaxi/driver/network/GoogleSheetsSyncManager.kt - Firebase manager → Firebase: updates driver data
app/src/main/java/com/covaimetertaxi/driver/network/FirebaseManager.kt - Supabase manager → Supabase: requests trip data
app/src/main/java/com/covaimetertaxi/driver/network/SupabaseManager.kt - PDF receipts → Trip record: formats receipt
app/src/main/java/com/covaimetertaxi/driver/util/PdfReceiptGenerator.kt - Ride OTP → Network time: gets IST hour
app/src/main/java/com/covaimetertaxi/driver/util/RideOtpManager.kt - Sheets sync → Credential obfuscation: gets sync URL
app/src/main/java/com/covaimetertaxi/driver/network/GoogleSheetsSyncManager.kt