Coder Social home page Coder Social logo

39aldo39 / decsynccc Goto Github PK

View Code? Open in Web Editor NEW
230.0 15.0 10.0 1.71 MB

Android app to sync contacts, calendars and tasks without a server using DecSync

License: GNU General Public License v3.0

Java 0.56% Kotlin 99.44%
decsync android contacts calendars tasks synchronization syncthing p2p

decsynccc's People

Contributors

39aldo39 avatar sguinetti avatar sr093906 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

decsynccc's Issues

Crash when modifying a reccuring event

steps to reproduce

  1. setup a decsync calendar
  2. create a recurring event
  3. delete one occurence from the middle
  4. synchronize with decsync
java.io.FileNotFoundException: Couldn't find event 10
	at at.bitfire.ical4android.AndroidEvent.getEvent(AndroidEvent.kt:151)
	at org.decsync.cc.calendars.LocalEvent.writeUpdateAction(LocalEvent.kt:54)
	at org.decsync.cc.calendars.CalendarsService$CalendarsSyncAdapter.onPerformSync(CalendarsService.kt:121)
	at android.content.AbstractThreadedSyncAdapter$SyncThread.run(AbstractThreadedSyncAdapter.java:334)

App force closes on launch after trying tasks

My decsync is broken D:
When I launch it, I briefly see a white screen, then it's gone and Android says the app was repeatedly closed.

I wanted to try the new tasks feature so I tried to add a task element called "decsync tasks". Nothing appeared below my calendar and contacts. Tried to add one called "tesz" (or something similar, I typoed). Nothing appeared. I decided it was a good moment to rename my address book "decsync" to "decsync addresses". Then went to settings to see if there was anything about tasks. I saw the tasks app setting and opened it. Saw opentasks and selected it. Then the app crashed (I think immediately, not sure though). Now it crashes every time I try to open it.

When this happened I had no lists in opentasks at all. I later tried to add one (local one) and a task to it. This did not stop DecSyncCC from crashing.

There is a directory tasks with two collection subdirectories in my DecSyncCC directory.

DecSyncCC 1.5.0 from fdroid.

Agenda not writing in android 7.1 lineage os

The problem is a bit weird because it was working before and suddently it's not working anymore...
The problem occurs with a tablet LG-V500. When I add entries in the calendar from the phone, and reset the calendar in the tablet app, in this way the sync works.
But when I create an entry from the tablet, it appears in my agenda but does not sync. And if I reboot the tablet, the calendars in decsync are unchecked, and if I check them, the entries I created before does not appear.
I wiped cache and dalvik cache and reinstalled the app but I can't find where does the problem come from...

Here are some adb logs, may be it can be useful :


04-03 06:56:18.542 26533 26568 W aCalendar: unknown calendar type org.decsync.calendars DecSync Calendars lecec DecSync Calendars
04-03 06:56:18.546 26533 26568 W aCalendar: unknown calendar type org.decsync.calendars DecSync Calendars agenda DecSync Calendars
04-03 06:56:18.678 26533 26533 E PhoneWindow: Circular progress bar not located in current window decor
04-03 06:56:18.982 26154 26154 I CalendarProvider2: Sending notification intent: Intent { act=android.intent.action.PROVIDER_CHANGED dat=content://com.android.calendar flg=0x20000000 }
04-03 06:56:18.987 26154 26154 W ContentResolver: Failed to get type for: content://com.android.calendar (Unknown URL content://com.android.calendar)
04-03 06:56:19.012 26127 26127 D AlertReceiver: onReceive: a=android.intent.action.PROVIDER_CHANGED Intent { act=android.intent.action.PROVIDER_CHANGED dat=content://com.android.calendar flg=0x20000010 cmp=com.android.calendar/.alerts.AlertReceiver }
 

VCF or vcard export

The current design has one flaw:
If your android phone breaks, you cannot convert the data of DecSync to a vcf without another working android phone. Therefore, it would be nice if you would either ...

  1. Change decsync to use vcards instead of the current file format (you would have to put the timestamps into a seperate file)
  2. Keep the current file system, but also write the contacts into a seperate vcf file
  3. Write a python script that can convert decsyncs format to a vcf.

Sync Delays

Hours can pass before a calendar event is picked up by DecSyncCC. Checking 'Last synced' times in Settings>Accounts seems to confirm my observation; for example, yesterday I noticed that one of my devices (SM-P900, Lineage 13) hadn't synced in more than 6 hours.

Is this expected behavior? Are you planning to add a 'sync frequency' setting?

Can't set custom color to individual events

When creating an event with Samsung calendar, strange things happen when trying to set a color other than the calendar's default:

  • If the event is new and I try changing the color, the app discards the event because "no information was introduced". There are no problems if I leave the default one.
  • If I try changing the color of any prexisting event, the app discards any changes made at the same time because "no information was introduced". Again, no problems if I leave the default one.

There are no problems if I use Etar Calendar, but I'd prefer to avoid having two calendar apps. Is this just a problem with the Samsung one?

Support for older Android versions

I am sorry if the issue tracker is not the right place to ask this question, but is there any chance to support older versions of Android than 4.4?

I am asking, because I have at least 2 devices, where the last official version of Android is 4.1. Does DecSync CC use any specific features that are only available in Android 4.4 and later?

Choose root folder

Hello

First, so much thanks for this app, this is an app I was waiting for so long :)

I couldn't find a way to configure the root folder, ie where files are stored (default is ~/DecSync)
The idea would be to use a folder I already sync with syncthing, not to create a new shared one.

Thanks

Option for choosing a color for a calendar

First things first: Thank you for this great app :-)

It would be great to have an option for choosing a color for the calendars so you can easily see which entry came from which calendar.

FC on sync - DecSyncCC v1.3.0

Firstly thanks for this app - I use it with Syncthing between android & your Radicale-DecSync on my laptop with linux & from there its synced via Radicale to Calcurse.

My phone is antiquated Moto G (first gen) with a Lineage OS 14.1 based ROM (up to date).

Had been using using DecSyncCC since v1.2.0 without issue but this latest version (1.3.0) flags up a message to close the app. when it syncs of its own accord or whether I sync it manually. I've try to install several times, after reverting back to v1.2.3 each time (which is where I am now). One of the times I reinstalled it I thought I would re-sync to the database by un-checking & then re-checking the collections box but it ended up permently running so I had to Force Stop the app.
I notice this version is using kotlin, at least in part & I had been having issues on this phone with the latest release of the Transistor app by y20k https://github.com/y20k/transistor/issues/274#issuecomment-656244775 which he has totally rewritten in kotlin - possible link ??

Invite participants via email address to events

When I use Thunderbird+Lightning+Radicale+DecSync-plugin, it is no problem to invite other people using their email address such that they receive the event and are able to confirm their participation. This can be done by choosing an own sender email address in the CalDAV settings of the calendar in Thunderbird.

When I invite people to events from a DecSync CC calendar on Android 8.1 (Samsung Galaxy A70), I see them as invited participants as part of the event. This information is synchronized successfully. However, they do not receive any invitation email. I tried multiple calendar apps, namely aCalendar, the pre-installed Android calendar app, and Simple Calendar Pro. On my other CalDAV or Exchange ActiveSync calendars this works.

Which steps would be necessary to provide this functionality?

Tasks with DecSyncCC to Radicale Decsync with TB-78

If a task is created in Tasks and synced with DecSyncCC via Syncthing to Radicale Decsync the to Thunderbird it shows up, but it does not work the other way round.

Tasks >>> DecSyncCC >>> Syncthing >>> Radicale Decsync >>> Radicale >>> Thunderbird = Task visible

Thunderbird >>> Radicale >>> Radicale Decsync >>> Syncthing >>> DecSyncCC >>> Tasks = Task is not visible

Does not synchronize automatically?

Hello, I love having my stuff with local copies, in open source and DecSync is perfect between Evolution in Linux and Android.

But I have the problem that doesn't sync to the Android calendar (Etar or Simple calendar)

I am using Syncthing.

When I create a new contact or calendar appointment:

From Android Calendar to Evolution linux (It works, synchronizes automatically)

From Evolution Linux to Android (does not automatically synchronize)
Files with Syncthing if synchronized
When I update the calendar manually it doesn't work.
When I update DecSync manually if I synchronize the calendar and contacts
But it doesn't do it automatically, it only works manually on android when it receives.

The calendar and DecSyn have all phone permissions, automatic started on startup, calendar and contact permissions, total battery usage and everything else

It can be fixed?

Thank you very much for the help.

OpenTasks

This app has the necessary permission for OpenTasks. However, it doesn't add a "tasks" subfolder in the "DecSync" folder, nor an account on the OpenTasks app.

Noob question?

Sorry because this is might not be an issue per se, but I'm having trouble understanding how this app works.

I made a new collection and a .mwbs file got created in the directory. But the entries count still shows 0.

So I'd like to ask:

  1. How does this work? Like this simply backsup contacts locally to a file or something. If so, is it readable in any document readers ?

Because this file is just 41kb whereas the .vcf backup I usually take is about 250kb.

  1. How can I restore the backed up file if I want to restore the contacts?

Thanks in advance.

DecSync directory in hidden folder

I have set up Syncthing to using hidden folders.
How can i pick a hidden folder as DecSync directory?

As a workaround i have been able to set up a hidden folder with the integrated file browser. Then I instruct syncthing to use that folder.
So far it works.

Choose color for task lists

Tasks.org allows users to change task list colors, but disables this functionality for OpenTask lists because it cannot modify the color in the content provider

This is similar to #3, but unfortunately can't be solved by a third party app

Thousands of "null,null" files in contacts folder

I was looking in my DecSync/contacts folder and was surprised to see that it contains exactly 15000 files, especially given I only have 78 contacts. Looking in stored-entries there are two folders, one for each phone that used DecSyncCC, each about 3700 files in resources.

3620 of those files are exactly 34 bytes long and look like:

["2019-12-16T12:37:44",null,null]

The other 80 are sized a few hundred bytes each and look OK.

What's with all the 34-byte "null,null" files, and is there a proper way to clear them?

Many thanks for this app.

Looking for .ics or .vcf under DecSync directory but only found files that I don't understand. Where are the files with the contacts and calendars?

I thought I would find .ics and .vcf files under DecSync directory but couldn't find any file with a contact actually...

All i've found is files with:

{"version":1}

["2020-07-22T22:17:45","name","AddressBookDecSync "]
["2020-07-22T22:17:52","name","AddressBookDecSync"]

How does this work?
I'm really not understanding this type of storage and how I could restore my contacts later with an .vcf for example.

Thanks.

syncthing conflicts when modifying calendar on different devices

Hi,
I am trying yo use DecSyncCC and Syncthing to share a calendar for several people.
It seems everything is fine if one adds a calendar entry, then sync with the other devices.
The problem seems to be when adding an entry in one device that is offline, and the calendar is modified in a second device before the first device could go online and sync.
From that time, there are conflict files in DecSyncCC folder created by syncthing, and calendars couldn't be merged.
At first glance I thought it was a Syncthing issue, so I searched in its GitHub page.
I found a similar issue and the answer was that Syncthing will never manage a merge strategy
I wonder if someone found this issue as well and if there is any way to get this working....

Thanks!

Read bytes entries are not produced

The read bytes folders for calendars and contacts are not produced as described by the file internals.md.
Is this a design feature or are those files optional.

I'm planning to write a port in python so a clear description of the algorithm would be great.

Anyway, great idea. This was very much needed.

message "Adding events of <calendar name>" for hours

I finally got it running so far that calendar entries are transferred from Evolution to Decsync CC on my Android phone (Entries count shows a reasonable number). Then above message appeared and I thought "nice - now I will see the entries soon". This was 12 hours ago, the message is still there and the "busy" line below is still running.

The calendar is marked to be synchronized in the calendar app.

Ah yes, and everytime I try to get DecSync CC to do anything, like synchronizing, the message (freely translated) "DecSync CC was stopped" or "...was repeatedly stopped" shows. But the app is still open... ?

Did I miss anything?

Best regards,
Wolfgang

Contact Syncing was off by default (had to turn on manually)

Hi, this is a great little app but I noticed that after creating a new Address book under "Address books" in the DecSyncCC app, and adding contacts to that new address book, they wouldn't sync properly with my computer (Evolution-DecSync plugin).

Turns out I had to go into the settings under "Users & accounts" to the "DecSync Contacts" item that had been created there and turn on sync manually. This is on Android 8.1.0 with no Google Apps.

is this intended behavior or a bug?

Events created/modifyied on tablet dont sync with evolution

So my tablet (samsung galaxy tab A sm-t290 running android 9) is air-gapped and only connects via wifi to a local network of computers which also never touches the internet. Please dont suggest a solution involving connecting the tablet or my home server to the wider internet. This is both not possible, and not wanted.

I installed decsync CC and Syncthing, and both work for syncing regular files. When I add an event in evolution, it shows up on my tablet after I uncheck and recheck the calander in DecSync CC. A bit annoying but whatever.

The problem is that new events I make in my android calander dont sync to evolution. Any changes I make locally on my android tablet get reset after I uncheck and recheck the calander in DecSync CC.

I know that davx5 relies on the android sync framework or whatever for syncing, and that that framework breaks without an internet connection. Is DecSyn CC similar?

I am pretty sure the issue is with tablet and not with my server, as it can sync events just fine between my raspberry pi and my laptop.

Is there some setting I need to change in order to make DecSync CC share changes I make to events and new events sync with evolution?

Thank You.

Very cool app. This is THE missing link for P2P sync.

Thank you very much for doing this.

Error on calendar sync: Multiple lines read as text: [1, 4]

Just installed this and added years of calendar entries using Calendar Import-Export. All seemed to be going well (contacts synced without problems), but it looks like it's stuck on some calendar entry. The error that pops up as a notification after having it sync is Multiple lines read as text: [1, 4].
I can't find (grep) [1, 4] or parts of that in my imported .ics or the synced DecSync dir.

The entry count is:
Android entries: 2695
Processed entries: 2246
DecSync entries: 1357

I am only using it on Android, and use Syncthing to synchronize.

How will I be able to find the culprit? I don't mind deleting a broken entry.

Thanks!

What is this App doing, how is it working?

Hello,

I'm using Syncthing and found your app on f-droid for sync of calender entries and contacts.
There is no description about the workflow of the app, what is happening there?
A folder is created, with subdirectories info, new-entries and stored entries.
One of the files only contains: "["2019-03-01T10:13:16","name","AdreddCollention1"]

I don't see any contacts or calender entries.
Do I have to do something to get it work?

Do I have to create contacts and calender entries in the App? There is just a way to create a list nothing else.

Auto suggest a new name for a collection

When the user clicks the + to create a new collection, the name is blank so they have to type in a new name from scratch. I think it would be good if there could be a pre-filled suggested collection name, e.g. DecSync, so the user could just click OK in many cases. Bonus points for detecting if there is already a collection of the same name, and offering, e.g. "DecSync 2" in that case.

no automatic synchronization on incoming file changes

I have two mobiles, both with DecSync CC and Syncthing. They both use the same DecSync calendar account. Also, they both synchronize on a common server.
Any time I change any item in one of the two calendars it gets synced to my server after some seconds, so this part (automatic sync on outgoing calendar changes) is fine.

However, the calendar of the other mobile doesn't get updated automatically; I have to force it by manually pressing the "refresh" button in DecSync.

Export .vcf and .ics

Just a feature suggestion. Maybe for greater app interoperability DecSync should also save compiled vcf and ics files ?

Importing existing Calendar collection as Tasks collection??

Good Afternoon
Have just upgraded to v.1.5.2 via F-Droid, thank you, & am looking to try to incorporate the new facility for Open Tasks.
I am going to make the assumption that Open Tasks will look at *.ics files & will filter out only incorporate those that are configured as "VTODO" (I shall endeavour to confirm this with the Open Tasks dev).
Assuming that this is the case can DecSyncCC be configured so that it uses the existing Calendar collection as the Tasks collection?
Regards

Select cloud storage as directory

It appears that many/most/all cloud storage solutions are embedded into the file browser in Android. (?) (for example pcloud) This allows you to browse and use the cloud storage like a regular folder on your device.

It would be great if I could set my cloud storage as DecSync directory. This would eliminate the need for a separate sync app for many users, as most cloud storage apps don't allow for mobile sync and in many cases not even backup besides photos and videos.

The password manager Keepass2Android supports this for its password database, if you need a code example https://github.com/PhilippC/keepass2android . I don't know anything about Android development, but it appears one only has to adjust the folder picker code?

Thanks for this app. It's much better than running a separate CardDAV/CalDAV server just to sync a few bits of text.

SD Card Support

Support for saving and changing files on the sdcard. Even changing the data directory in the app can not save or change data

App crashes after latest update

FATAL EXCEPTION: main Process: org.decsync.cc, PID: 16492 java.lang.RuntimeException: Unable to start activity ComponentInfo{org.decsync.cc/org.decsync.cc.MainActivity}: java.io.FileNotFoundException: /storage/emulated/10/DecSync/.decsync-info (No such file or directory) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2951) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3086) at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78) at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108) at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1816) at android.os.Handler.dispatchMessage(Handler.java:106) at android.os.Looper.loop(Looper.java:193) at android.app.ActivityThread.main(ActivityThread.java:6718) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858) Caused by: java.io.FileNotFoundException: /storage/emulated/10/DecSync/.decsync-info (No such file or directory) at java.io.FileOutputStream.open0(Native Method) at java.io.FileOutputStream.open(FileOutputStream.java:308) at java.io.FileOutputStream.<init>(FileOutputStream.java:238) at java.io.FileOutputStream.<init>(FileOutputStream.java:180) at kotlin.io.FilesKt__FileReadWriteKt.writeBytes(FileReadWrite.kt:84) at kotlin.io.FilesKt__FileReadWriteKt.writeText(FileReadWrite.kt:110) at kotlin.io.FilesKt__FileReadWriteKt.writeText$default(FileReadWrite.kt:110) at org.decsync.library.DecsyncKt.checkDecsyncInfo(Decsync.kt:560) at org.decsync.cc.MainActivity.onCreate(MainActivity.kt:60) at android.app.Activity.performCreate(Activity.java:7144) at android.app.Activity.performCreate(Activity.java:7135) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1271) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2931) ... 11 more

Changelog

Please can you add a changelog file, that could be linked to from F-Droid for example?

Can't modify an event created in evolution

If I want to modify an event created or modified in evolution it's impossible to modify it in etar (default calendar) on lineageos. Only allowed to delete or share it. Don't know if it's a problem of evolution-decsync or decsynccc. Or maybe I'm doing something wrong.
Using evolution-decsync 1.3 with libdecsync 1.8.3 in evolution 3.38 on debian testing

Android App Not Picking Up Data

It seems that the Android app is not picking up any contacts whatsoever on my device to sync to the folder in storage.

I have tested using contacts on device and that have previously been synced via other services to my device.

Running EMUI 10.1.0.171

Does not write to file

Hi, everytime I add a contact or an event in Android, it does not get written to file (and therefore not synced).
If I hide and show a contact book / calendar in the DecSync app, the contacts/events I added via Android disappear, only the ones synced from laptop stay.

I am running the newest LineageOS, and installed from fdroid.

Provide information on required Android versions

DecSync CC 1.2.2 and older supports Android 4.4+, while DecSync CC 1.2.3+ supports Android 5.0+.

However, right now, this information is not provided anywhere explicitly. The only way to find the required Android version seems to be either going through the commit history and looking for the minimum supported SDK changes, or using the F-Droid application and checking the version history there. Even the F-Droid website lists only the last three versions, which is not very useful.

I think that it would be helpful to have this information included here on GitHub, either in the readme, or next to each release, especially when the Android version requirements have been increased.

Entries count?

Calendar import/export has a text field that reports the number of events per calendar file.

Similarly, when you import/export contacts you can see the number of contacts being backed up.

It would be helpful, for debugging purposes, to have DecSyncCC report how many entries it has so you'd be able to tell if it picked up a newly created entry. Especially when people would notice it takes a while for entries to sync but won't be sure if it's Android not syncing fast enough, DecSyncCC not coming out off Battery Saving suspension to write the files, or Syncthing taking its sweet time to negotiate...

Anyhow, thanks for DecSyncCC! My uni's wifi firewall is blocking me from reaching to my OwnCloud service but Syncthing works fine so no more manual import/exports for me! :)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.