Integration: wire 3 new P2 screens into App.kt nav + HapticsInit bootstrap

Navigation wiring (per follow-ups flagged by Streams G/H/I):
- Add TaskTemplatesBrowserRoute (new) + App.kt composable<TaskTemplatesBrowserRoute>
- Wire composable<TaskSuggestionsRoute> (declared by Stream H but unwired)
- Wire composable<AddTaskWithResidenceRoute> (declared by Stream I but unwired)

MainActivity.onCreate now calls HapticsInit.install(applicationContext) so the
Vibrator fallback path works on non-View call-sites (flagged by Stream S).

Deferred cleanup (tracked, not done here):
- Port push-token registration from legacy MyFirebaseMessagingService.kt to
  new FcmService (Stream N TODO).
- Remove legacy WidgetTaskActionReceiver + manifest entry (Stream M flag).
- Residence invite accept/decline APILayer methods (Stream O TODO).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Trey T
2026-04-18 13:28:06 -05:00
parent 65af40ed73
commit 1ba95db629
3 changed files with 45 additions and 0 deletions
@@ -172,3 +172,13 @@ data class TaskSuggestionsRoute(val residenceId: Int)
// AddTaskWithResidenceView). Residence is pre-selected via residenceId.
@Serializable
data class AddTaskWithResidenceRoute(val residenceId: Int)
// Task Templates Browser Route (P2 Stream G — full-screen browse/preview/
// bulk-apply of the server-driven template catalog). residenceId scopes
// which residence tasks get created against; fromOnboarding switches
// analytics event names.
@Serializable
data class TaskTemplatesBrowserRoute(
val residenceId: Int,
val fromOnboarding: Boolean = false,
)