How mikekuriger/metarmap works
MetarMap is an Android aviation map and flight-planning app. The principal workflow is to view the live map, search or select waypoints, build a flight plan, and consult navigation-log and weather information. Separate capabilities cover chart downloads, airspace overlays, Stratux GPS/traffic, and aircraft profiles. The map activity is a large coordinating surface; the available excerpts do not show all of its wiring, so uncertain relationships are dashed rather than presented as verified calls.
Main entry points: MainActivity.kt Map screen · FlightPlanActivity.kt Flight planner · Endpoints.kt Service endpoints · AircraftListActivity.kt Aircraft list
Components 24
Map and flight
- Map screen
app/src/main/java/com/airportweather/map/MainActivity.kt - Map state
app/src/main/java/com/airportweather/map/MainViewModel.kt - Flight planner
app/src/main/java/com/airportweather/map/FlightPlanActivity.kt - Plan calculations
app/src/main/java/com/airportweather/map/utils/FlightPlanUtils.kt - Navigation log
app/src/main/java/com/airportweather/map/NavLogActivity.kt - User waypoints
app/src/main/java/com/airportweather/map/utils/UserWaypoints.kt
Aviation data
- Airport lookup
app/src/main/java/com/airportweather/map/utils/AirportDatabaseHelper.kt - Weather feeds
app/src/main/java/com/airportweather/map/WeatherRepository.kt - Winds aloft
app/src/main/java/com/airportweather/map/WindsAloftRepository.kt - TFR data
app/src/main/java/com/airportweather/map/TfrRepository.kt - Special-use airspace
app/src/main/java/com/airportweather/map/SuaRepository.kt - Service endpoints
app/src/main/java/com/airportweather/map/Endpoints.kt
Charts and databases
- Chart downloads
app/src/main/java/com/airportweather/map/DownloadActivity.kt - Chart catalog
app/src/main/java/com/airportweather/map/ChartCatalogRepository.kt - Database sync
app/src/main/java/com/airportweather/map/utils/DatabaseSyncUtils.kt - Chart and DB host
Aircraft profiles
- Aircraft list
app/src/main/java/com/airportweather/map/aircraft/AircraftListActivity.kt - Aircraft editor
app/src/main/java/com/airportweather/map/aircraft/AircraftEditActivity.kt - Aircraft records
app/src/main/java/com/airportweather/map/aircraft/AircraftRepository.kt - Active selection
app/src/main/java/com/airportweather/map/aircraft/AircraftSelectionStore.kt
Stratux integration
- Stratux sockets
app/src/main/java/com/airportweather/map/StratuxManager.kt - Traffic repository
app/src/main/java/com/airportweather/map/TrafficRepository.kt
Other components
- Pilot
- Stratux device
Connections 32
- Pilot → Map screen: opens
- Map screen → Map state: observes
app/src/main/java/com/airportweather/map/MainActivity.kt - Pilot → Flight planner: plans route
- Flight planner → Plan calculations: uses calculations
app/src/main/java/com/airportweather/map/FlightPlanActivity.kt - Flight planner → Airport lookup: looks up waypoints
app/src/main/java/com/airportweather/map/FlightPlanActivity.kt - Flight planner → Navigation log: opens
app/src/main/java/com/airportweather/map/FlightPlanActivity.kt - Flight planner → Winds aloft: requests forecast
app/src/main/java/com/airportweather/map/FlightPlanActivity.kt - Map screen → Flight planner: opens
app/src/main/java/com/airportweather/map/MainActivity.kt - Map screen → Airport lookup: queries
app/src/main/java/com/airportweather/map/MainActivity.kt - Map screen → User waypoints: uses waypoints
app/src/main/java/com/airportweather/map/MainActivity.kt - Map screen → Weather feeds: refreshes weather
- Map screen → TFR data: loads overlays
- Map screen → Special-use airspace: loads overlays
- Weather feeds → Service endpoints: uses URLs
app/src/main/java/com/airportweather/map/WeatherRepository.kt - Winds aloft → Service endpoints: uses URL
app/src/main/java/com/airportweather/map/WindsAloftRepository.kt - TFR data → Service endpoints: uses URL
app/src/main/java/com/airportweather/map/TfrRepository.kt - Special-use airspace → Service endpoints: uses URL
app/src/main/java/com/airportweather/map/SuaRepository.kt - Pilot → Chart downloads: downloads charts
- Chart downloads → Chart catalog: loads catalog
app/src/main/java/com/airportweather/map/DownloadActivity.kt - Chart catalog → Service endpoints: uses URL
app/src/main/java/com/airportweather/map/ChartCatalogRepository.kt - Chart downloads → Database sync: syncs databases
app/src/main/java/com/airportweather/map/DownloadActivity.kt - Database sync → Service endpoints: uses manifest URL
app/src/main/java/com/airportweather/map/utils/DatabaseSyncUtils.kt - Service endpoints → Chart and DB host: defines chart and DB URLs
app/src/main/java/com/airportweather/map/Endpoints.kt - Pilot → Aircraft list: manages aircraft
- Aircraft list → Aircraft editor: opens editor
app/src/main/java/com/airportweather/map/aircraft/AircraftListActivity.kt - Aircraft list → Aircraft records: saves aircraft
app/src/main/java/com/airportweather/map/aircraft/AircraftListActivity.kt - Aircraft editor → Aircraft records: updates records
app/src/main/java/com/airportweather/map/aircraft/AircraftEditActivity.kt - Aircraft list → Active selection: sets active profile
app/src/main/java/com/airportweather/map/aircraft/AircraftListActivity.kt - Flight planner → Active selection: resolves active aircraft
app/src/main/java/com/airportweather/map/FlightPlanActivity.kt - Map screen → Stratux sockets: connects
app/src/main/java/com/airportweather/map/MainActivity.kt - Stratux sockets → Stratux device: exchanges GPS and traffic
- Traffic repository → Stratux sockets: reads targets
app/src/main/java/com/airportweather/map/TrafficRepository.kt