Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Sync calendar to the watch #26

Closed
24 tasks done
matejdro opened this issue Oct 19, 2020 · 2 comments · Fixed by #81
Closed
24 tasks done

Sync calendar to the watch #26

matejdro opened this issue Oct 19, 2020 · 2 comments · Fixed by #81
Assignees
Labels
enhancement New feature or request
Projects
Milestone

Comments

@matejdro
Copy link
Collaborator

matejdro commented Oct 19, 2020

App should sync all user's calendar events to the watch's timeline.

  • When event is added or removed from the phone's calendar, watch should be updated as fast as possible.
  • When watch disconnects and then reconnect, all changed events should be synced to the watch upon connecting

User should also be able to select which calendars should be synced.

Depends on #15

It should work somewhat like this:

  1. Android native side detects whenever user's calendar changes
  2. It transmits that to the Flutter side
  3. Flutter merges new events with existing calendar db
  4. Flutter transmits any changes to the watch, if necessary

Actions that should be on timeline pins:

  • Cancel
  • Remove (presumably just hides the event?)
  • Mute Calendar

Sub-tasks (WIP in https://github.com/matejdro/mobile-app/tree/calendar):

  • Allow user to select / deselect calendars to sync
  • Sync calendar to the app's internal database when user presses a button
  • Send app's internal database to the watch
  • Add support for whole day events
  • Sync dynamically when event is added/updated/removed from the calendar
  • Properly load calendar list on background sync
  • Resync every day to capture new events out of 3 day window.
  • Filter out HTML from calendar descriptions
  • Add support for multi-day events
  • Retry watch sync later if blobdb reports error
  • Add Remove and Mute calendar actions
  • Add event participation calendar actions
  • Code quality: rename constants and enums to camelCase to conform to dart guidelines
  • Improve error handling
  • Also sync past events
  • Document isVisible (if pin is visible) and persistQuickView (if quick view is persisted during event duration) timeline flags do
  • Nuke blobdb on the watch whenever watch reconnects and it is unfaithful
  • Nuke blobdb on the watch whenever watch user switches watches
  • Re-sync calendar after user grants calendar permission
  • Re-sync calendar after user selects different calendars
  • Increase timeline sync window so the watch still gets future calendar events even when disconnected
  • Delete pins before adding new ones to make room for new pins in case of full storage
  • Sync older pins first to ensure user gets earliest events first in case of full storage
  • Add checkbox to the app to enable/disable sync completely
@matejdro matejdro added this to the Basics milestone Oct 21, 2020
@matejdro matejdro added the enhancement New feature or request label Oct 21, 2020
@matejdro matejdro self-assigned this Oct 28, 2020
@matejdro
Copy link
Collaborator Author

Example pins by original Pebble app:

image

image

image

That last part is the email/calendar name

(Thanks to UDXS for the pictures)

@matejdro
Copy link
Collaborator Author

Watch displays 3 days of events into the future.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
No open projects
Android
  
Done
Development

Successfully merging a pull request may close this issue.

1 participant