spacecowboy / NotePad

Now under new management
GNU General Public License v3.0
382 stars 158 forks source link

DAVdroid support #361

Closed ksokol closed 7 years ago

ksokol commented 8 years ago

DAVdroid allows you to sync calendar and contact items with a remote server that supports calendar (VEVENT/VTODO RFC 4791) and contact (VCARD RFC 6352) items. Additionally, RFC 4791 includes means of handling VJOURNAL items. Imho a perfect fit for NotPad as an alternative sync option.

The DAVdroid team is eager to support VJOURNAL in the future. Your app seems to be a perfect companion for DAVdroid to support notes items.

I would like to ask you whether you are interested in adding support for DAVdroid. If you wish I can help you.

spacecowboy commented 8 years ago

I'm certainly open to the idea if you're willing to lend a hand. I am not 100% clear on the relation to DAVdroid though. Would DAVdroid handle the synchronization and Notes only act like a viewer/editor? What would the respective implementation requirements be for both apps?

ksokol commented 8 years ago

DAVdroid acts as a synchronization backend. It gets its data through Android's content provider system. It doesn't provide UI elements except for account management. Everything else is done through the various apps for contacts, calendar or in case of Tasks OpenTasks.

DAVdroid integrates with OpenTasks in order to sync VTODO items. OpenTask itself does not depend on DAVdroid. It provides its data through its own content provider and, of course, to any other app that is interested in that data. In fact, you can use OpenTasks without DAVdroid.

Something similar must be done for NotePad too. One can use NotePad as usual but behind the scenes transformation into VJOURNAL items and synchronization would be handled by DAVdroid.

The DAVdroid developers said that there is no note app that supports "note books" (folders which contains notes). Unfortunately, my linux desktop system is down right know. So I can't elaborate possible impact on NotePad with Evolution (a Gnome Mail client that supports VJOURNAL out of the box). I will ask the DAVdroid developers whether note books are really necessary.

Right now, I'm looking for an open source project that is willing to support such a feature in the long term because it puts some burden on the DAVdroid team.

If you are willing to add a content provider to your app just ping me. I would be glad to help you. If you need more information don't bother to ask me.

spacecowboy commented 8 years ago

NotePad also has a publicly available Content Provider and multiple "Note books" are of course available (in the form of "lists" as they are called).

And I am working on the next iteration of the app which will feature multiple content providers, and the ability to access external ones. Much like DAVDroid, but instead providing a common UI instead of the common synchronization you could say. Having a component specifically to support DAVDROID synchronization of VJOURNAL items would be very apt in that case.

Looking at the spec it seems to have many components to it. Are DAVDROID looking at having complete support or are they fine with only partial support? e.g., leaving out certain of the fields specified in the spec. I have a hard time picturing a good UI for all of them.

ksokol commented 8 years ago

This is good news. Thank you for your answer!

I don't know if the DAVdroid is willing to support a subset of VJOURNAL calendar components. I think, the best approach is to start with the fields NotePad already maintains. New fields would be added in subsequent releases. But that is just my personal opinion. The DAVdroid team may clarify this. I will ask them on the DAVdroid forum thread.

Regarding VJOURNAL calendar components you mentioned in your last reply, I think NotePad already has good support for a minimal VJOURNAL calendar item with the components UID and DESCRIPTION.

DTSTAMP is somehow unclear to me. Looking at MyContentProvider I don't see a creation time attached to a task item. But DTSTAMP is mandatory for a VJOURNAL calendar item.

In addition, there is no notion of a Due date in the spec for a VJOURNAL item. This may be problematic in respect to users who already working with this field in NotePad.

What do you think? Is there a realistic chance to declare NotePad as a content provider for VJOURNAL items in DAVdroid?

spacecowboy commented 8 years ago

Only llmitations are in terms of UI, which I don't want to add complexity to. But syncing a subset of what the UI provides has a precedent in the google tasks sync, which does not support reminders. So essentially, it's a lossy sync. This could worst case be the same.

ksokol commented 8 years ago

If you will, you can add more fields on subsequent releases. But I don't think this is necessary. After playing with Google Task sync and NotePad today, I came to the conclusion that there is no need for more fields. Basically, Gnome's Evolution doesn't support other fields either. Due date would be left out during sync.

I think, NotePad just needs to persist updated field as descibed in the Google Task API in the local database in order to provided a DTSTAMP for a VJOURNAL item on the DAVdroid side.

I will now ask the DAVdroid team if they are interested in integrating NotePad as a content provider for VJOURNAL items into their application. I will come back with their answer. Maybe they will answer on this thread, too.

Zulgrib commented 7 years ago

Are there any news on this ? Syncing notes is really missing on Android, and Evernote isn't doing it right.

spacecowboy commented 7 years ago

The app is already fulfilling my needs in terms of syncing. Pull requests are welcome.

ksokol commented 7 years ago

No one respond to my request. I think there is no demand for such a feature. I'm closing this issue.