reveler-hub f86217bc7b Fix weather staying pinned to the old location after the device moves
updateDeviceLocationPosition() updates the device location's lat/lon
and display name atomically, but never invalidated any per-source
"resolve coordinates once, cache by locationId" layer - NWS's grid
points, and the composite location-key cache several other sources
use (CWA/AEMET/JMA/Gismeteo/IPMA/MetOffice/Accu). Since the device
location keeps the same id forever while its coordinates change, a
big move left the display name/coordinates updating correctly while
the actual weather stayed pinned to wherever it was last resolved -
e.g. still showing the old city's weather under the new city's name
after traveling (closes #1048).

WeatherDataReconcilerRepository.reconcileSourceChange() doesn't cover
this case: it only clears these caches on an explicit source switch
(NWS -> OpenMeteo), not on a coordinate change while staying on the
same source, which is exactly what a moving device location does.

Verified on-device: seeded a real NWS grid-point cache entry for
Pittsburgh, mock-moved to Myrtle Beach, confirmed (pre-fix, by code
reading) the stale grid point would persist; post-fix, confirmed via
a cold start that the cache correctly flips to Myrtle Beach's real
grid point and real weather replaces the stale data.
2026-08-20 17:22:32 +12:00
2026-08-10 13:26:28 +05:30
2026-05-26 20:43:50 +05:30
2026-04-30 13:40:20 +05:30
2026-05-25 09:08:44 +05:30
2026-08-03 20:24:35 +05:30

WeatherMaster

RB Status

WeatherMaster: inspired by the Google Pixel weather app.

GitHub GitHub

app_thumbnail

👁️ Screenshots


🌦️ Supported weather sources

  • Open Meteo
  • Met Norway
  • NWS
  • SMHI
  • DWD
  • Meteo-France
  • FMI
  • ECCC
  • BMKG
  • China
  • AccuWeather
  • Meteo AM
  • IPMA
  • WeatherApi.com
  • Gismeteo
  • Met Office (requires your own API key — sign up here)
  • AEMET (requires your own API key — sign up here)
  • IMD
  • WMO Severe Weather Information Centre
  • FOSS Public Alert Server
  • CWA
  • Pirate Weather
  • JMA
  • And more to be added

Some sources need a free API key from the provider before you can select them — add yours from a location's weather source picker, or from Settings → Weather Sources → API key config.

🌐 Translate the app on Crowdin

Feel free to open an issue if you want to request a language

ar-SA translation az translation bg translation ca translation cs translation de translation el translation es-ES translation fa translation fi translation fil translation fr translation hu translation id translation it translation ja translation ko translation lt translation nl translation pl translation pt-BR translation pt-PT translation ro translation ru translation sl translation sr translation sr-CS translation sv-SE translation th translation tr translation uk translation vi translation zh-CN translation zh-TW translation ar-SA translation lt translation he translation

✉️ Contact

For any questions or feedback, feel free to open an issue on GitHub or contact pranshul.devmain@gmail.com

©️ License

This project is licensed under the GPL-3.0 license. See the LICENSE file for details.

Latest
2026-06-29 23:20:00 -05:00
Languages
Kotlin 100%