Phase 15: Settings Integration for Voice Announcements (Issue #132) #132
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
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
robert/PedalPebble#132
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?
Add announcement toggle to Settings and wire Announcer into navigation pipeline.
Requirements:
Blockers: None - Phase 13 Announcer.kt complete, Phase 14 BRouter UI complete
Dependencies: #71 (Phase 13 Announcer), #44 (Settings)
Priority: HIGH - required for Phase 13 to be usable
Related: Phase 13 (#71), Phase 12 sensor status, Phase 14 BRouter
Phase 15 Implementation Complete
Commit:
ae18564Delivered:
What works:
✅ Read announcement_enabled and locale from Settings
✅ Initialize Announcer only when enabled
✅ Suppress when ride stopped (paused)
✅ Delegate all announcements to Phase 13 Announcer.kt
✅ Error handling (TTS exceptions dont crash ride)
✅ Settings changes reinitialize with new locale
✅ Lifecycle management (initialize/shutdown)
Integration:
Next: Wire into NavigationPipeline, add Settings UI, integration testing
PIPELINE FIX: Moved AnnouncerIntegration.kt to companion/ride (Android module)
Commit:
c826662Problem: AnnouncerIntegration was placed in companion/core (pure JVM module) but uses Android classes (Context, SharedPreferences). The fast-lane pipeline was failing because companion/core forbids Android dependencies.
Solution:
Why: companion/core is pure JVM (no Android deps), companion/ride is Android library. Android-specific integration code must go in Android modules.
Status: Pipeline should now pass fast-lane :companion:core:test
ADDITIONAL PIPELINE FIX: Moved Announcer.kt to companion/ride (Android module)
Commits:
02cab83,4973fd0Root Cause: Announcer.kt (Phase 13) itself uses Android classes (TextToSpeech, AudioManager, Context, etc.) but was in companion/core (pure JVM module). This was THE cause of pipeline failure.
Solution:
Module Structure After Fix:
Status: Pipeline should now pass - all Android code removed from pure JVM module