Skip to content

feat: implement live service notes, horizontal swipe navigation, and real-time annotation sync - #31

Merged
Apoll011 merged 16 commits into
masterfrom
develop
Sep 29, 2026
Merged

Apoll011 merged 16 commits into
masterfrom
develop

Conversation

@Apoll011

Copy link
Copy Markdown
Owner

Summary

Introduces real-time service notes and stage management suggestions, horizontal swipe navigation across all service elements (songs and non-song items), live elapsed service timing, and Firestore-backed real-time synchronization for song annotations. In addition, adds a tablet-optimized service order side panel layout tailored for worship leaders, stage managers, and AV technicians.

Changes

  • Live Service Notes & Stage Communication:

    • Implemented full CRUD operations for service notes via ServiceNotesPanel, ServiceNote, and ServiceNoteAuthor.
    • Added element-specific note filtering and metadata tags via ServiceElementMeta.
    • Integrated real-time polling and update listeners for instant team communication during services.
    • Added quick-send suggestions for stage readiness and flow coordination.
  • Service Order & Navigation:

    • Built HorizontalSwipeNavigator to enable smooth swiping between service elements, supporting both songs and non-song items (e.g., prayers, readings, announcements).
    • Added element completion status tracking and position badges within ServiceDetailPage and ServiceOrderPage.
    • Implemented a live elapsed clock on ServiceOrderPage to track service timing.
  • Real-Time Song Annotation Sync:

    • Implemented real-time synchronization for song annotations during services using Firestore.
    • Refactored annotation state management with AnnotationSyncHandle for remote change handling and conflict prevention.
    • Optimized song reader state to maintain smooth rendering during background annotation updates.
  • Tablet Layouts & Settings:

    • Added a configurable side panel setting on tablets for viewing the service order alongside active content, designed for non-musician and technical roles.
  • Internationalization & Maintenance:

    • Added English, Spanish, and Portuguese localizations for service notes, stage suggestions, empty states, and layout settings.
    • Bumped version to 1.3.0.

Performance / UX

  • Seamless gesture-based navigation through entire service setlists without returning to the main menu.
  • Immediate visual delivery of stage cues, reminders, and element-specific notes.
  • Low-latency remote updates for team-wide song annotations during live rehearsals and services.
  • Dedicated multi-pane tablet experience for production and stage management teams.

Technical Details

  • HorizontalSwipeNavigator unifies page controllers for heterogeneous element types (songs and non-song structural items).
  • Real-time annotation synchronization coordinates through AnnotationSyncHandle, managing polling intervals, cache invalidation, and incoming remote patches.
  • Notes architecture supports stream watching and low-interval polling with cache busting to guarantee message freshness.

Notes

  • Version bumped to 1.3.0.
  • Supported languages for all new workflows: English (en), Spanish (es), and Portuguese (pt).

- Introduced ServiceNote and ServiceNoteAuthor classes for managing notes related to worship services.
- Implemented ServiceNotesPanel widget to display, create, edit, and delete notes.
- Added ServiceOrderPage to manage the service order and display notes in a structured manner.
- Created ServiceElementMeta for handling different service element types with associated metadata.
- Developed a detailed view for service elements, including notes and duration management.
- Integrated error handling and loading states for fetching service notes.
- Added HorizontalSwipeNavigator widget to facilitate horizontal navigation between service elements (songs and non-songs).
- Updated ServiceDetailPage and ServiceOrderPage to utilize the new swipe navigation.
- Refactored element navigation logic to support both song and non-song elements.
- Enhanced UI to display position labels and navigation buttons for better user experience.
- Improved localization strings for empty service elements in English, Spanish, and Portuguese.
…e languages

- Added new localization strings for quick send, readiness, and various stage management suggestions in Portuguese, English, and Spanish.
- Updated existing localization files to include translations for new service notes and suggestions.
@Apoll011
Apoll011 merged commit 105fa82 into master Sep 29, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant