Background scanning: honour "Update interval" as the Android scan cadence#133
Merged
Merged
Conversation
…ence The background "Update interval" setting (updateIntervalBackground, 5-360 min) was exposed in the UI as if it governed how often sensor values refresh, but it only drove the AndroidService work-timer's DeviceManager rebuild + MQTT reconnect. Actual background scanning ran on a self-restarting 60s listen loop (deviceDiscoveryFinished -> listenDevices_start), so the setting had no effect on scan/publish frequency (device-measured: continuous ~60s regardless). Make the setting real on Android: in the background service (daemon mode) stop self-restarting the listen loop; AndroidService::gotowork() already fires every updateIntervalBackground minutes and starts one ~60s listen window, so the radio now idles between windows. The foreground UI manager (m_daemonMode == false, on mobile and desktop) keeps re-arming, so the live view and continuous system-tray scanning are unchanged. HIL_BENCH_MODE keeps its continuous active scan. Desktop never reads this value (it scans continuously on mains power), so hide the interval picker on desktop and reword the desktop legend to stop implying an interval. Device-verified (LG V30 / Android 9 and S10e / Android 12): background scanning is one ~60s window per interval (5 min -> ~4 min idle; 10 min -> ~9 min idle), foreground stays continuous. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1technophile
added a commit
that referenced
this pull request
Jun 2, 2026
Documentation fell behind the 1.5.0 release train after PR #130. Fold the four user-facing PRs that landed since into the existing 1.5.0 section of the changelog and refresh the affected pages on the doc site. - use.md: note the new MQTT-down banner in the device list; replace the manual "Permissions/Battery/Unrestricted" walkthrough with the consolidated in-app Background updates screen (background location + exact alarms + battery-optimisation rows); document that the "Update interval" setting now actually drives the Android background scan cadence (one ~60 s window per interval, idle in between). - build.md: require libsecret-1-dev on Linux; add the new ENABLE_SECURE_STORAGE CMake option for QtKeychain-backed credential storage. - privacy.md: bump the last-updated date; note that broker credentials are persisted in the OS-managed secure store rather than plaintext settings. - CHANGELOG.md: under the existing [1.5.0] entry, add the MQTT-down banner, consolidated Background updates page, and AllowWhileIdle exact-alarm scheduler to Added; the scan-cadence fix and the ENABLE_MBEDTLS=OFF guard to Fixed; and credential storage to Security. PRs covered: #131 (MQTT sentinels), #132 (credential secure storage), #133 (background scan cadence), #135 (background-alarm-doze train, including the consolidated Background updates page and the exact AllowWhileIdle scheduler). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1technophile
added a commit
that referenced
this pull request
Jun 6, 2026
Bump the 1.5.0 release date to 2026-06-06 and fold in the user-facing changes that landed between #130 and the cut: TheengsDecoder v2.3.0 (#137), MQTT sentinels + sampling caption (#131), credential secure storage (#132), background-update scheduling and consolidated permissions UI (#133, #135), the About-screen decoder version and build number (#139), the iOS mbedTLS static-link fix (#138), and the device_bm26 ENABLE_MBEDTLS guard (#134). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
3 tasks
1technophile
added a commit
that referenced
this pull request
Jun 6, 2026
Bump the 1.5.0 release date to 2026-06-06 and fold in the user-facing changes that landed between #130 and the cut: TheengsDecoder v2.3.0 (#137), MQTT sentinels + sampling caption (#131), credential secure storage (#132), background-update scheduling and consolidated permissions UI (#133, #135), the About-screen decoder version and build number (#139), the iOS mbedTLS static-link fix (#138), and the device_bm26 ENABLE_MBEDTLS guard (#134). Co-authored-by: Florian <1technophile@users.noreply.github.com> Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description:
The background "Update interval" setting (updateIntervalBackground, 5-360 min) was exposed in the UI as if it governed how often sensor values refresh, but it only drove the AndroidService work-timer's DeviceManager rebuild + MQTT reconnect. Actual background scanning ran on a self-restarting 60s listen loop (deviceDiscoveryFinished -> listenDevices_start), so the setting had no effect on scan/publish frequency (device-measured: continuous ~60s regardless).
Make the setting real on Android: in the background service (daemon mode) stop self-restarting the listen loop; AndroidService::gotowork() already fires every updateIntervalBackground minutes and starts one ~60s listen window, so the radio now idles between windows. The foreground UI manager (m_daemonMode == false, on mobile and desktop) keeps re-arming, so the live view and continuous system-tray scanning are unchanged. HIL_BENCH_MODE keeps its continuous active scan.
Desktop never reads this value (it scans continuously on mains power), so hide the interval picker on desktop and reword the desktop legend to stop implying an interval.
Checklist: