- Persist the entire CellGuardState (serving, neighbors, PLMN, frames,
alerts) to disk and reload on start; carry forward last-known values so
no field blanks on a transient poll miss and the app never opens empty.
- Log every observed tower with GPS position, timestamp and signal to a
framework-SQLite database (SurveyDb), clustering sightings into 2.5-mile
areas; travelling past 2.5 mi starts a new area. Framework LocationManager
only (no Google Play Services); GPS speed drives a 'traveling' indicator.
- New SURVEY LOG tab lists areas and the towers seen in each. Declare the
location foreground-service type, claimed only when the permission is held.