Settings: units, wheel circumference, HR alerts, auto-pause, vibration #44
Labels
No labels
area:companion
area:docs
area:shared
area:tooling
area:watchapp
blocker
kind:chore
kind:feature
kind:spike
kind:test
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Depends on
#14 Android project skeleton and Gradle setup
robert/PedalPebble
Reference
robert/PedalPebble#44
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Goal
The knobs worth exposing, on the phone where there is a real keyboard.
Acceptance criteria
Files
companion/.../settings/Update — 2026-09-01: auto-pause behaviour moves to #69
FR-M8 sat here as "behaviour not yet specified" while #17 in Phase 2 already needed stop detection for
moving time and the moving average. One definition, in Phase 2, in #69 (D35).
HR_ZONEin #65 — unconfigured zones render--, never aguessed default
Update — 2026-09-02: voice announcements setting
(FR-N19, D45)
Closed by PR #91 (merged): RideSettings/SettingsRepository (pure JVM, :companion:core, 16 host tests) over a SharedPreferences-backed storage adapter in a new :companion:settings module. Units, wheel circumference (presets verified via WebSearch against an ETRTO-derived chart), HR zone boundaries + alerts toggle, auto-pause on/off only (behaviour is #69 per the issue's own 2026-09-01 update), vibration intensity, auto-switch-to-nav-view, and voice announcements (default off, #45) are all persisted and validated. Most have no consumer yet \u2014 stated explicitly per-setting in the PR: nothing reads vibration/auto-switch/voice-announcements settings yet, and PROTOCOL.md defines a wire shape for UNITS only, with no AppMessage send path built anywhere in the app yet to push any setting to the watch.\n\nActually build-verified, not just hand-reviewed: Robert set up a local Android SDK tonight; ran a real
./gradlew :companion:assembleDebugagainst this branch and caught one real bug the sandbox couldn't \u2014SettingsScreen'sScaffold/TopAppBarcalls needed@OptIn(ExperimentalMaterial3Api::class), a Kotlin compile error, not a warning (same class of bug as #25/PR #92). Fixed and reverified::companion:assembleDebugsucceeds,:companion:core:testpasses 112/112 for real via the actual Gradle test runner.