Private contact and calendar sync for Android.

Overview

Flock (Discontinued)

A secure contact and calendar syncing application for Android.

Flock is a replacement for the default contact and calendar synchronization services provided by Google. Flock provides end-to-end encryption between multiple Android devices putting the privacy of your contacts and calendars back under your control. To facilitate syncing between multiple devices a "sync service" is required, this can be any standards compliant WebDAV server that conforms to the following RFCs:

  1. RFC 2518 - HTTP Extensions for Distributed Authoring -- WEBDAV
  2. RFC 4918 - HTTP Extensions for Web Distributed Authoring and Versioning (WebDAV)
  3. RFC 6352 - CardDAV: vCard Extensions to Web Distributed Authoring and Versioning (WebDAV)
  4. RFC 4791 - Calendaring Extensions to WebDAV (CalDAV)

The Android app can be downloaded through Google Play or via our alternative distribution channel. Note that the certificate presented by our alternative distribution channel is signed by the same private certificate authority pinned by Flock's trust store.

Play Store Badge

Contributing bug reports

Have a bug? Please create an issue here on GitHub!

https://github.com/WhisperSystems/Flock/issues

Contributing translations

Interested in helping to translate Flock? Contribute here:

https://www.transifex.com/projects/p/flock/

Transifex

Contributing code

Instructions on how to build Flock, as well as on how to setup an IDE to modify it can be found in the BUILDING.md file.

If you're new to the Flock codebase, we recommend going through our issues and picking out a simple bug to fix in order to get yourself familiar.

For larger changes and feature ideas, we ask that you propose it on the mailing list for a high-level discussion before implementation.

This repository is set up with BitHub, so you can make money for committing to Flock. The current BitHub price for an accepted pull request is:

Current BitHub Price

Contributing Ideas

Have something you want to say about Open Whisper Systems projects or want to be part of the conversation? Get involved in the mailing list!

[email protected]

https://lists.riseup.net/www/info/whispersystems

Contributing Funds

Donate

You can add funds to BitHub to directly help further development efforts.

Help

Support

For troubleshooting and questions, please visit our support center!

http://support.whispersystems.org/

Documentation

Looking for documentation? Check out the wiki!

https://github.com/WhisperSystems/Flock/wiki

Legal things

Cryptography Notice

This distribution includes cryptographic software. The country in which you currently reside may have restrictions on the import, possession, use, and/or re-export to another country, of encryption software. BEFORE using any encryption software, please check your country's laws, regulations and policies concerning the import, possession, or use, and re-export of encryption software, to see if this is permitted. See http://www.wassenaar.org/ for more information.

The U.S. Government Department of Commerce, Bureau of Industry and Security (BIS), has classified this software as Export Commodity Control Number (ECCN) 5D002.C.1, which includes information security software using or performing cryptographic functions with asymmetric algorithms. The form and manner of this distribution makes it eligible for export under the License Exception ENC Technology Software Unrestricted (TSU) exception (see the BIS Export Administration Regulations, Section 740.13) for both object code and source code.

License

Copyright 2014 Open Whisper Systems

Licensed under the GPLv3: http://www.gnu.org/licenses/gpl-3.0.html

Comments
  • Unknown cryptography error

    Unknown cryptography error

    When I open the Flock app on my Android device, I tap Begin, select that I want to use Flock Sync, and hit Next. I'm asked whether I have a Flock account. I do, so I tap Yes, log me in and enter my username and (long) password then tap Next. A swirly status indicator appears in the top right corner of the Flock window, then an Android overlay appears, saying

    Unknown cryptography error, please send debug logs.
    

    I'm unable to log into my Flock account using the app on my device. What can I do to log in an try to troubleshoot this issue? Where can I find the debug logs from my client?

    opened by tomlowenthal 11
  • "Migrating to new version" never goes away

    I recently updated my version of Flock, and there's a notification that says "Migrating to new version. Replacing addressbook and calenders..."

    It's been like that for like 12 hours. Doesn't seem to be a problem though.

    bug 
    opened by micahflee 8
  • support all HTTP 3** redirects when dealing with well-known URIs

    support all HTTP 3** redirects when dealing with well-known URIs

    Trying to set up Flock with a CardDav account in Zimbra fails with error message: "Server does not support CarDAV well-known URI or DAV: current-user-principal."

    As agreed, I am filing a bug and I'll try to provide a debug log, when the feature will be available, in order to spot the cause of the issue!

    bug 
    opened by Zeriuno 7
  • Flock <-> CardDAV/CalDAV bridge (for Desktop clients)

    Flock <-> CardDAV/CalDAV bridge (for Desktop clients)

    I think Flock is nice and all, but for my particular use case it's rather useless because I need to sync my Calendars with the desktop (Windows and Linux, in my case) and apps that are supported there (e.g. Thunderbird with Lightning).

    I think changing lots of Desktop clients and creating plugins for them might be way too much work. Therefore I propose that a bridging app should be written. It could simply be a local CardDAV/CalDAV server that is only available locally (and with user/password additionally to protect data from other accounts on the same machine). The local storage could then be synced with Flock.

    opened by Natanji 7
  • META: Pilot alternative app distribution platform

    META: Pilot alternative app distribution platform

    Flock struck me as the best app to consider for distribution via F-Droid. (Please call me out if you disagree.) Reasons:

    • small install base
    • no GCM requirements

    These are the main places where Moxie has explained what he would need to see to be comfortable with alternative distribution:

    1. github.com/WhisperSystems/TextSecure/issues/127#issuecomment-13335689
    2. github.com/WhisperSystems/TextSecure/issues/281#issuecomment-21762482
    3. github.com/WhisperSystems/RedPhone/issues/143#issuecomment-19152664

    Summarized:

    • [ ] built-in crash reporting solution with a web interface (Pending: libsupplychain)
    • [ ] built-in statistics gathering solution with a web interface
    • [ ] built-in auto-update or "pester" feature in app (Pending: libsupplychain)
    • [ ] build toggle for above features (Pending)
    • [x] ~~server-side APK scanning (?)~~
    • [x] server-side APK signature validation: developer's signatures and keys are preserved through reproducible builds
    • [x] F-Droid should not expect users to enable "Settings > Security > Unknown sources"

    (Unhyperlinked so the back-references don't overtly attract superfluous comment.)

    Hopefully this repo won't get inundated with peanut gallerians like the other issues :)

    cc: @mikeperry-tor @mvdan

    opened by patcon 6
  • Cannot import local contacts

    Cannot import local contacts

    Right now all of the contacts on my phone are stored locally and are not part of any remote account, but Flock's options for importing contacts only lets you import from remote accounts so I can't auto-import them all.

    I can easily export all my contacts from the Contacts app into a .vcf file, but I can't open that file with Flock to import them either. I think allowing importing local contacts and allowing importing from .vcf files would both be useful for people moving to Flock who have just been managing contacts locally in the past.

    bug 
    opened by micahflee 6
  • Contact sync fails on nexus7 with slimkat ROM

    Contact sync fails on nexus7 with slimkat ROM

    Hello,

    Seems I'm unable to retrieve my contacts using latest Flock version (available on f-droid). Logs doesn't help much so far:

    08-03 15:17:46.221  23302-23660/org.anhonesteffort.flock:flock D/org.anhonesteffort.flock.sync.AbstractDavSyncWorker﹕ pullRemotelyChangedComponents()
    08-03 15:17:47.573  23302-23660/org.anhonesteffort.flock:flock D/org.anhonesteffort.flock.sync.AbstractDavSyncWorker﹕ found + 130 remote components
    08-03 15:17:48.624  23302-23660/org.anhonesteffort.flock:flock D/org.anhonesteffort.flock.sync.AbstractDavSyncWorker﹕ pullRemotelyDeletedComponents()
    08-03 15:17:49.835  23302-23660/org.anhonesteffort.flock:flock D/org.anhonesteffort.flock.sync.AbstractDavSyncWorker﹕ found 130 remote components
    08-03 15:17:49.835  23302-23660/org.anhonesteffort.flock:flock D/org.anhonesteffort.flock.sync.AbstractDavSyncWorker﹕ found 0 local components
    08-03 15:17:49.835  23302-23660/org.anhonesteffort.flock:flock D/org.anhonesteffort.flock.sync.AbstractDavSyncWorker﹕ remote ctag post pull remote: 317905_346204
    08-03 15:17:49.835  23302-23660/org.anhonesteffort.flock:flock W/org.anhonesteffort.flock.sync.AbstractDavSyncWorker﹕ sync result has errors, will not save remote CTag to local collection
    

    I'll try to add some more debug in the app in order to get some more information…

    opened by cjeanneret 5
  • [bug] Imported all-day events created as 24 hour events.

    [bug] Imported all-day events created as 24 hour events.

    My all-day events are all synced as two day events now - '23rd of july 1:00am to 24rd of july 1:00am'.

    The all-day toggle is selected on my google calendar and not on my newly created synced copy.

    timezone or not accepting the allday flag?

    opened by cybershambles 5
  • Nginx proxy seems to break Flock

    Nginx proxy seems to break Flock

    Running calendarserver (3.2+dfsg-4+deb7u1) on Debian (wheezy), I was able to run through the tests across the local network over HTTP.

    Rather than manage SSL directly in calendarserver, I added an Nginx proxy like so:

    upstream calendar {
        server 127.0.0.1:8008;
    }
    
    server {
        listen 443 ssl;
        ssl on;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_ciphers "EECDH:EDH:!MEDIUM:!LOW:!EXP:!DSS:!aNULL:!eNULL:!RC4:!3DES:!SEED:!MD5";
        ssl_certificate /etc/ssl/certs/public.pem;
        ssl_certificate_key /etc/ssl/private/private.key;
    
        server_name myserver.name;
        root /var/www;
    
        location / {
            proxy_set_header   X-Real-IP        $remote_addr;
            proxy_buffering off;
            proxy_pass http://calendar/;
        }
    }
    

    Flock now fails with "Connection error, please check internet connection."

    My initial thought was perhaps the DNS hasn't propagated. (I created a new record for this server.) Adding a hosts file entry does not resolve the issue.

    I also considered that perhaps SNI is unsupported or the SSL parameters were invalid. Flock happily connected to another, similarly configured server with Nginx ngx_http_dav_module entry (though of course failed it on CardDAV/CalDAV).

    All that remains seems to be the proxying, but it's entirely unclear what parameters should be changed. The same server can be used with Thunderbird/Lightning, so the proxy at least works to the satisfaction of some clients.

    opened by effigies 4
  • Merged Contacts

    Merged Contacts

    After Merging/Joining contacts and then syncing again using Flock the contacts are un-merged into two separate contacts again. This issue occurs on the Nexus 5 Flock version 0.8.7. Correct action is for merged/joined contacts to remain linked after sync.

    bug 
    opened by Ste4thOverride 4
  • Flock pulls in

    Flock pulls in "Other Contacts" from Google

    If I configure flock and wait for it to sync, I immediately notice many new entries in my phone's address book. These new contacts represent people I have emailed in the past without adding to my contact list. Google shows these on the Contacts pane of the Gmail web interface under "Other Contacts". Google contacts sync omits them, but Flock seems to grab all of these and insert them into my local contacts. I don't want that!

    Flock 0.7.7 on Nexus 5 / CyanogenMod 11 / Android 4.4.4

    bug 
    opened by phipolis 4
  • Should Flock assume all rows in raw_contacts are syncable?

    Should Flock assume all rows in raw_contacts are syncable?

    I somehow got into a state where I had a bunch of raw contacts, but they weren't real contacts (ie. not showing up in "People" app. Anyhow, Flock was trying to sync them all. Not sure how normal that is, but i resolved it by manually deleting all the raw_contacts from the sqlite db.

    Anyhow, just a data point.

    opened by patcon 0
  • Crashes on nexus 7 (grouper) due to fragment intro layout

    Crashes on nexus 7 (grouper) due to fragment intro layout

    Heyo! Loaded up flock onto my grouper wifi tablet (no gapps), and it closes on first boot.

    Looking at the catlog, a NullPointerException was raised at <etc>IntroductionFragment.initDescription(IntroductionFragment.java:76): https://github.com/WhisperSystems/Flock/blob/33fe753b91f2526ab578af71d5faafb137a5ea40/flock/src/main/java/org/anhonesteffort/flock/IntroductionFragment.java#L76

    I was able to fix it by setting the screen dimensions manually:

    ~/repos/chef-textsecure (master ✘)✹✭ ᐅ adb shell wm size reset   
    ~/repos/chef-textsecure (master ✘)✹✭ ᐅ adb shell wm density reset # crashes
    ~/repos/chef-textsecure (master ✘)✹✭ ᐅ adb shell wm density      
    Physical density: 213
    ~/repos/chef-textsecure (master ✘)✹✭ ᐅ adb shell wm size         
    Physical size: 800x1280
    ~/repos/chef-textsecure (master ✘)✹✭ ᐅ adb shell wm size 798x1280 # doesn't crash
    ~/repos/chef-textsecure (master ✘)✹✭ ᐅ adb shell wm size 799x1280 # crashes
    

    So yeah, seems it crashes only when the minimum width is around 800 (and for some reason that includes 799..?)

    Anyhow, might mess around later and submit a PR if I fix it

    opened by patcon 1
  • Registration on bad signal keeps notification alive

    Registration on bad signal keeps notification alive

    Had bad signal, when registering. Registration succeeded and Flock is working since.

    But the create user notification refuses to go home. Not sure if the log I took today is still helpful...

    https://gist.github.com/0813373ee61797d1b8e7

    Registered on 18th screenshot_2015-06-25-19-25-18

    opened by McLoo 0
  • Issue when taking picture for a new contact before adding other information

    Issue when taking picture for a new contact before adding other information

    Sorry for cross-posting, I also just posted this on your website but I'm not sure where you'd look at it first...

    Got a weird bug on my xperia Z1, running android 5. If I create a new Flock contact and first add a picture before doing anything else, it does not store the name and leaves the contact in a weird, basically un-editable state.

    See a video of the issue here: https://youtu.be/IN-0LnRC1Yk

    opened by Aruee 1
  • jackrabbit-webdav version is outdated

    jackrabbit-webdav version is outdated

    The current version of jackrabbit-webdav is 2.10.1. Flock uses version 2.3.7. Shouldn't the library be updated? Perhaps this might help with issues #83 and #95.

    opened by nysatrok 0
  • Error with recent certificate

    Error with recent certificate

    I face a error when connected to a self-hosted DAV server. See:

    My certificate hosted and certified by Gandi has been generated by the following command:

    openssl req -new -newkey rsa:2048 -sha512 -nodes [...]
    

    Everything works perfectly with DAVdroid and pass CAdroid tests

    opened by LeoColomb 0
Releases(v0.8.7)
  • v0.8.7(Oct 8, 2014)

  • v0.8.6(Oct 8, 2014)

  • v0.8.5(Sep 23, 2014)

  • v0.8.4(Sep 18, 2014)

  • v0.8(Aug 23, 2014)

    • fixed bug in KeyHelper where cipher key bytes where sometimes used as mac key bytes
    • added versioning to all ciphertext
    • created MigrationService with logic to automatically migrate all ciphertext to the new format
    Source code(tar.gz)
    Source code(zip)
  • v0.7.7(Aug 8, 2014)

  • v0.7.6(Aug 3, 2014)

  • v0.75(Aug 2, 2014)

  • v0.70(Jul 31, 2014)

    • Fixed bug related to display of all day events
    • Better handling of postal addresses in contacts
    • Added support for "aCalendar" third party calendar app
    Source code(tar.gz)
    Source code(zip)
  • 0.60(Jul 22, 2014)

    Imported calendars (the calendar source) are now set to be invisible within the Calendar app after being imported to Flock. Removed the option for Flock Sync users to selectively sync calendars, all are synced. Flock users running their own sync service are still allowed the option to sync calendars and address books selectively.

    Source code(tar.gz)
    Source code(zip)
  • 0.51(Jul 21, 2014)

    Bumping to version 0.51, new release is necessary to help users identify that imported events failed so we can work out bugs in the coming days. Please see issue #12 for context.

    Source code(tar.gz)
    Source code(zip)
  • 0.5(Jul 21, 2014)

CalEF (Calendar Entry Formatter) : Select an entry in Android-Kalender and send/share the entry's content as human readable text.

CalEF (Calendar Entry Formatter) Select an entry in Android-Kalender and send/share the entry's content as human readable text. Usually calendar entri

k3b 6 Aug 17, 2022
Standalone Android widget for picking a single date from a calendar view.

TimesSquare for Android Standalone Android widget for picking a single date from a calendar view. Usage Include CalendarPickerView in your layout XML.

Square 4.4k Dec 20, 2022
A better calendar for Android

Caldroid Caldroid is a fragment that display calendar with dates in a month. Caldroid can be used as embedded fragment, or as dialog fragment. User ca

Roomorama 1.4k Jan 5, 2023
An android library which provides a compact calendar view much like the one used in google calenders.

CompactCalendarView CompactCalendarView is a simple calendar view which provides scrolling between months. It's based on Java's Date and Calendar clas

SundeepK 1.5k Dec 9, 2022
Android calendar view (like card)

android-calendar-card (Google Play Demo) Android calendar view (like card) Simple and easy to modify Author: Michał Szwarc #CalendarCardPager License

Michał Szwarc 473 Nov 10, 2022
A lightweight monthly calendar view for Android, fully written in Kotlin. Designed to meet the minimum demands for typical calendars.

Light Calendar View A lightweight monthly calendar view for Android, fully written in Kotlin. Designed to meet the minimum demands for typical calenda

Recruit Marketing Partners Co.,Ltd 444 Dec 9, 2022
Fully customizable Calendar/DatePicker for Android/Kotlin

AMCalendar - Android Date (Range) Picker AMCalendar is a fully customisable widget for picking dates and ranges based on the native Calendar. It's an

null 6 Oct 18, 2022
📅 Material Design Calendar compatible with API 11+

> Prettier and simpler Material Design CalendarView MaterialCalendarView is a prettier and simpler, material design calendar that allows full customiz

BlackBox Vision 365 Nov 21, 2022
📅 Material Design Calendar compatible with API 11+

> Prettier and simpler Material Design CalendarView MaterialCalendarView is a prettier and simpler, material design calendar that allows full customiz

BlackBox Vision 366 Jan 1, 2023
A TimelineView that will help you create event timelines in apps just like the Google Calendar DayView

TimelineView A TimelineView that will help you create event timelines in apps just like the Google Calendar DayView A library that allows you to creat

Amit Krishna A 10 May 12, 2022
JetCalendarView - A calendar library for Jetpack Compose

JetCalendar WIP 2022 Hit Refresh! Calendar view ❤️ Jetpack Compose License Copyr

Anmol Verma 8 Aug 17, 2022
A customizable, easy-to-use, and functional circular time range picker library for Android

A customizable, easy-to-use, and functional circular time range picker library for Android. Use this library to mimic Apple's iOS or Samsung's bedtime picker.

Joery Droppers 251 Dec 30, 2022
Android interval timer app using compose + compose navigation, dagger hilt, room, kotlin coroutines + flow and mvvm design pattern.

What's InTime? ⏳ InTime is an interval timer application using android jetpack components and a long running service. The purpose of this project is t

P. 46 Oct 10, 2022
Android DatePicker with month and year build with Compose UI

Compose Date Picker - Select month and year Compose Date Picker tries to offer you the year and month pickers which you can customize for your require

Doğuş Teknoloji 48 Jan 7, 2023
Appleader707 1 Aug 9, 2022
Android Compose wheel picker library based on LazyColumn in vertical and LazyRow in horizontal.

About Android Compose wheel picker library based on LazyColumn in vertical and LazyRow in horizontal. Gradle Sample Default Item size Unfocused count

null 6 Dec 22, 2022
Nepali Date Picker library in Jetpack compose for android with Date conversion from BS to AD and vice-versa

Nepali Date picker Converter - Re in Compose This is a re-work of Nepali Date Picker Converter in jetpack compose and kotlin. English Locale Nepali Lo

Kiran Gyawali 4 Dec 23, 2022
Amazing Dynamic Time UI :clock1030: :hourglass: and More

FlatTimeCollection Amazing Dynamic Time UI ?? ⌛ for Android To help you design your Layout. it is Not just a UI, But it contains a CountDownTimer with

Anas Altair 72 Apr 28, 2022
Android Week View is an android library to display calendars (week view or day view) within the app. It supports custom styling.

Android Week View Android Week View is an android library to display calendars (week view or day view) within the app. It supports custom styling. Fea

Raquib-ul Alam (Kanak) 3.4k Jan 3, 2023