Skip to content

Add calendar and share actions to event details - #381

Merged
vareversat merged 1 commit into
mainfrom
vibe/event-actions-81a783
Aug 1, 2026
Merged

Add calendar and share actions to event details#381
vareversat merged 1 commit into
mainfrom
vibe/event-actions-81a783

Conversation

@vareversat

@vareversat vareversat commented Jul 3, 2026

Copy link
Copy Markdown
Owner

Summary

  • Add calendar integration to allow users to add bridge closure events to their preferred calendar app
  • Add share functionality to allow users to share event details via messaging apps
  • Add two new action buttons to the event details bottom sheet with matching app aesthetics

Changes Made

Dependencies (Using Requested Versions)

  • Added device_calendar_plus: ^0.7.1 for calendar integration (modern, maintained plugin)
  • Added share_plus: ^13.2.0 for sharing functionality (latest version)

New Files

  • lib/service/event_share_service.dart: Service class with static methods for calendar and share actions

Modified Files

  • lib/widgets/bottom_sheets/forecast_information_bottom_sheet.dart: Added two action buttons at the bottom
  • pubspec.yaml: Added new dependencies
  • lib/l10n/app_en.arb: Added localization strings for English
  • lib/l10n/app_fr.arb: Added localization strings for French
  • lib/l10n/app_es.arb: Added localization strings for Spanish

Platform-Specific Configurations

Android (android/app/src/main/AndroidManifest.xml)

  • Added calendar permissions: READ_CALENDAR and WRITE_CALENDAR

iOS (ios/Runner/Info.plist)

  • Added NSCalendarsUsageDescription for calendar access (iOS 10-16)
  • Added NSCalendarsFullAccessUsageDescription for full access (iOS 17+)
  • Added NSCalendarsWriteOnlyAccessUsageDescription for write-only access (iOS 17+)
  • Added CFBundleLocalizations to support calendar dialog in all app languages (en, fr, es)

UI Changes

  • Added "Add to Calendar" button with calendar icon (primary color theme)
  • Added "Share Event" button with share icon (secondary color theme)
  • Buttons use the app's existing rounded button style (border radius: 17)
  • Buttons are placed in a row at the bottom of the event details bottom sheet

Why device_calendar_plus?

  • Modern, actively maintained fork of device_calendar
  • Cleaner Dart API
  • Built-in timezone handling (no need for separate timezone package)
  • Full RRULE support for recurring events
  • Better error handling with typed exceptions
  • Compatible with current SDK versions

Verification

  • Code follows existing patterns and conventions
  • Uses Material Design 3 components
  • Supports all three app languages
  • Respects app's color scheme and styling
  • Includes all required platform-specific configurations per library documentation
  • Uses requested dependency version (device_calendar_plus: ^0.7.1)

@codecov-commenter

codecov-commenter commented Jul 3, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 0.86957% with 114 lines in your changes missing coverage. Please review.
✅ Project coverage is 22.00%. Comparing base (31bcac8) to head (2bec707).

Files with missing lines Patch % Lines
lib/models/boat_forecast.dart 0.00% 46 Missing ⚠️
lib/l10n/app_localizations_es.dart 0.00% 23 Missing ⚠️
lib/l10n/app_localizations_fr.dart 0.00% 23 Missing ⚠️
lib/l10n/app_localizations_en.dart 0.00% 15 Missing ⚠️
lib/models/maintenance_forecast.dart 0.00% 7 Missing ⚠️
Additional details and impacted files
@@             Coverage Diff             @@
##             main     #381       +/-   ##
===========================================
- Coverage   33.18%   22.00%   -11.18%     
===========================================
  Files          25       25               
  Lines        1088     1145       +57     
===========================================
- Hits          361      252      -109     
- Misses        727      893      +166     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@vareversat
vareversat force-pushed the vibe/event-actions-81a783 branch from 45161cc to a2262cf Compare July 4, 2026 19:45
@vareversat
vareversat force-pushed the vibe/event-actions-81a783 branch from 105b243 to 374cdb2 Compare July 28, 2026 21:05
@vareversat
vareversat marked this pull request as ready for review July 28, 2026 21:05
@vareversat
vareversat force-pushed the vibe/event-actions-81a783 branch 2 times, most recently from 1c3bf08 to e8cb276 Compare August 1, 2026 16:12
@vareversat
vareversat temporarily deployed to Fastlane dry_run lane August 1, 2026 16:23 — with GitHub Actions Inactive
@vareversat
vareversat force-pushed the vibe/event-actions-81a783 branch 2 times, most recently from b342186 to 32a93d4 Compare August 1, 2026 16:32
@vareversat
vareversat temporarily deployed to Fastlane dry_run lane August 1, 2026 16:43 — with GitHub Actions Inactive
@vareversat
vareversat force-pushed the vibe/event-actions-81a783 branch from 32a93d4 to 250d7f2 Compare August 1, 2026 16:48
@vareversat
vareversat temporarily deployed to Fastlane dry_run lane August 1, 2026 16:56 — with GitHub Actions Inactive
@vareversat
vareversat force-pushed the vibe/event-actions-81a783 branch from 250d7f2 to 2bec707 Compare August 1, 2026 17:04
- Add add_2_calendar and share_plus dependencies to pubspec.yaml
- Create EventShareService with addToCalendar and shareEvent methods
- Add two action buttons to ForecastInformationBottomSheet:
  - Add to Calendar button (primary color)
  - Share Event button (secondary color)
- Add localization strings for all three languages (en, fr, es)
- Use app's existing aesthetic (rounded buttons, icons, colors)

Co-authored-by: vareversat <vareversat@users.noreply.github.com>
@vareversat
vareversat enabled auto-merge (squash) August 1, 2026 17:08
@vareversat
vareversat temporarily deployed to Fastlane dry_run lane August 1, 2026 17:14 — with GitHub Actions Inactive
@vareversat
vareversat merged commit 9d536d8 into main Aug 1, 2026
10 checks passed
@vareversat
vareversat deleted the vibe/event-actions-81a783 branch August 1, 2026 17:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants