NotePad icon indicating copy to clipboard operation
NotePad copied to clipboard

Android calendar synchronization

Open CampelloManuel opened this issue 1 year ago • 0 comments

This issue tracks all progress related to our interface to synchronize with the android calendar:

  • this app has a synchronization infrastructure that supports many backends
  • as of now, only SD card sync is implemented. There used to be Dropbox and Goole tasks backends, but they are deprecated

#120 tracks a discarded attempt at implementing CalDAV sync. However, we need to interface with the android calendar provider, which will save our notes to/from a calendar.

This calendar will be visible to all calendar apps, including:

  • Google calendar https://play.google.com/store/apps/details?id=com.google.android.calendar
  • Fossify calendar https://f-droid.org/it/packages/org.fossify.calendar/
  • Etar https://f-droid.org/en/packages/ws.xsoh.etar/
  • Simple Calendar https://f-droid.org/en/packages/com.simplemobiletools.calendar.pro/
  • Persian Calendar https://f-droid.org/en/packages/com.byagowi.persiancalendar/

This accomplishes 2 goals:

  • have a system to exchange data with an android calendar, so that our app can work with other calendar apps
  • allow users of apps like DAVx5 to synchronize our notes to a server by synchronizing the calendar

[!WARNING] As of now we are not working on this feature, since nobody has shown any interest in it.

Resources

  • Simple Calendar source code: https://github.com/SimpleMobileTools/Simple-Calendar
  • Calendar provider documentation: https://developer.android.com/guide/topics/providers/calendar-provider?hl=en
  • a 2 part tutorial https://github.com/hanmajid/modern-android-samples/tree/master/calender-provider

Possibile implementation roadmap:

  • [ ] install Etar, create an offiline calendar, and fill it with events and reminders
  • [ ] install another calendar app and confirm that the events and reminders can be viewed with that app, too
  • [ ] implement, in this repository, a client for the android calendar provider. Start by reading the 3 links above
  • [ ] choose how to map the domain concepts of our app into the calendar
  • [ ] try to read calendar events and save them as notes in our app. For example, can our app read holidays dates from a calendar and show them as notes ?
  • [ ] try to send our notes (with due dates) and reminders to the calendar
  • [ ] write a sync adapter, similar to the SD sync adapter, that uses an user-chosen calendar as backend
  • [ ] test all corner cases
  • [ ] release the finished feature

CampelloManuel avatar Jan 13 '24 14:01 CampelloManuel