• Kvaesitso 1.40.2 type-to-search and agenda (build 9)
    Build Nightly APK / build (push) Has been cancelled
    Trigger F-Droid repository rebuild / trigger (release) Has been cancelled
    Stable

    jonas released this 2026-09-12 15:47:27 +02:00 | 2 commits to main since this release

    Second attempt at the weather/location battery drain. The first one (typing.8) keyed the skip
    on WeatherSettingsData.managedLocation, which only exists once "managed location" has been
    picked explicitly for the provider — so with an empty weatherProviderSettings the guard never
    fired and the worker kept requesting a location and retrying every 30 seconds.

    With a push-based weather provider (Breezy Weather), the worker only checked autoLocation and
    therefore requested a location even though the provider resolves its own. getWeatherData() is a
    noop that always returns null, so the worker then returned Result.retry() forever and never
    set lastUpdate — which also meant the update interval check could never short-circuit it.

    Every attempt called getLastKnownLocation(), which registers GPS and network listeners at a
    one second interval and held them for up to ten minutes, so the location stack never idled. On
    the device this showed up as ~46,000 delivered fixes, *location* wakelocks held ~99% of the
    time, and Doze never engaging at all.

    • Add WeatherProvider.isPushBased and set it on BreezyWeatherProvider, so the check no longer
      depends on any user setting.
    • Skip and cancel the weather work entirely for push-based providers.
    • A managed location now takes the WeatherLocation path instead of the auto-location one, so
      managed-location plugins still get their data without a location request.
    • Give up on a location fix after two minutes instead of ten.
    • LocationsRepository: don't collect the location flow when location search is off or not
      permitted. As a combineTransform argument it was always collected, so every search query
      registered GPS and network listeners for up to 30 seconds.
    Downloads