CardDAV - Which contacts list?

I started using K9 Mail for the first time today. I’ve searched for items about K9 and CardDAV and found nothing so I’m guessing it doesn’t do it yet, is that right ?

When I go to write an email, Android prompts me to allow access to contacts, I have not yet allowed that access.

Since Thunderbird gained the ability to access a contacts list using CardDAV (TB version 91) I have got used to having my contacts list reside on the servers of my chosen hosting company rather than Google. I’m trying to reduce my dependence on Google, this is why I installed K9 rather than use the Gmail client.

If K9 had a CardDAV plugin, my searches would probably have found it by now. What does everybody else do ?

Is CardDAV on a list of developments expected to happen ?

1 Like

No clue if it’s planned, but I currently use DAVx5 for CardDav (in my case from F-Droid)

1 Like

@TheLastProject Thank you, Sorry, I am completely clueless regarding Android contacts. Does your setup give you a contacts list in K9 that is independent and completely divorced from Google ?

DAVx5 allows you to sync with any CardDav server and will add an “Account” to your device that provides contacts (similarly as to how, at least on my device, if I add a new contact I can choose to save it to Google or to Device).

So, your contacts will appear in Android’s Contacts app, but not in your Google account. And if you allow K-9 Mail access to your contacts you should be able to select them when choosing a recipient for your emails.

2 Likes

Slowly I think I’m gaining a clue. I will have a go at itemising the different contact lists that we are talking about here:

a) The list I want to use which is on a CardDAV service
b) The list I want to avoid like the plague - Gmail
c) An Android Contacts list that is closely linked to and usually identical to the Gmail list.
d) A K9 contacts list.

As I understand it @TheLastProject 's suggestion is:

  1. Use DACx5 to synchronise my CardDAV list with the Android list.
  2. Let K9 synchronise its list with the Android list.

I don’t doubt this could work but I would be a lot happier if I could find a way to do this without my contacts passing through any Google managed list. i.e. a CardDAV import direct to K9’s contact list.

Am I talking sense or is my ignorance all too obvious ?

Android’s contact list is not directly Google managed. Calendar and contacts work a bit differently on Android than on the PC (eg Thunderbird). On Android, you can have contact provider apps that synchronize the contacts and then also apps that display the contacts. These are separate, e.g. you can use an open-source app to display your Google contacts but you can also use the Google Contacts app to display contacts from an open-source provider. I, personally, use an open-source contacts app to display contacts from an open-source provider :wink:

That synchronization system in Android makes it very flexible how you want to manage your contacts. That’s why I am actually against implementing an integrated contacts list in K-9 that basically re-implements the structure that the Android system already provides. An integrated list in K-9 would restrict your choice of provider+display apps. With respect to contacts/calendars, Android is pretty different to a normal PC and should be used like it is designed to be used :slight_smile:

3 Likes

Basically what ByteHamster said. Just like you can have multiple accounts in K-9 Mail, you can have multiple “Accounts” in the Contacts app. Only the contacts in the Google account will be synced to the Google server, just like your non-Google mail accounts in K-9 Mail also won’t send any data to Google servers.

2 Likes

Thank you both very much for helping me towards a better understanding of how a contacts list (the contacts list) works on Android.

@TheLastProject: Hi and sorry for this late reply post. I do not want to hijack the thread, but I could not find a repo to add to my F-droid app so I could download the DAVx5 app (https://f-droid.org/repo/at.bitfire.davdroid_402030402.apk) using the F-droid package manager…

(I am new to all this -not a mobile app guy-, so this actually will be my first apk install… Thank you for any apk-noob-proof pointers you might have…

It’s part of the main repo, you won’t need to add any repo for it.

Searching for “dav” in the F-Droid app works fine for me, but clicking DAVx⁵ | F-Droid - Free and Open Source Android App Repository on your phone should open it too.

1 Like

Thank you @TheLastProject. The link you provide gives me access to the apk package, I mentioned in my post, but if I click on that, I imagine that the install will proceed outside the F-droid package manager (if I grokked that well) and that is what I would like to avoid if possible. I come from the Linux admin world so this definitely taints my world view. I kinda have a doubt about how exactly f-droid operates. The FAQs I read do not actually enlighten the reader about that.

As for typing dav or davx or davx5 in F-droid, I tried repeatedly by first selecting the small magnifying-glass icon at bottom right in F-droid. Doing so returns zilch and I think I’m missing something very basic…

Ah, no, Android works different. It’s not about the source, but about the signature. Any app can update an app as long as the signature is the same as that of the installed .apk.

Because the .apk files on F-Droid’s website use the same signature as the apps you install through F-Droid, F-Droid will be able to update apps from f-droid.org installed outside of F-Droid.

I’m not sure why davx5 isn’t showing up in F-Droid for you. Maybe your phone is too old (DAVx5 requires at least Android 5) or you somehow disabled F-Droid from Settings → Repositories

2 Likes

Thank you, @TheLastProject.

I finally got it and so did F-droid apparently. This morning F-droid had had the time to sync with its main repo: I found DAVx5 in no time. Before I only drew blanks. Now installed and fine.

Many thanks for your hand-holding and explanation. ;-))

PS: My Android version is EOL or almost, I think, and I’m stuck at 8.1.0 (My terminal manufacturer is derelict in updating to a more recent version.)

Unfortunately, K-9 Mail itself doesn’t have built-in CardDAV support. This means it can’t directly access and manage your contacts after stored on a CardDAV server. While not directly within K-9 Mail, there’s an external app called DAVx5 that enables CardDAV and CalDAV (calendar) synchronization with various Android apps, including K-9 Mail. It bridges the gap and acts as a middle layer, allowing K-9 Mail to access your CardDAV contacts. You could use K-9 Mail for emails and a separate app for contacts that supports CardDAV, like DAVdroid or OpenContacts. This way, you’d have separate apps for emails and contacts but both with CardDAV support.

The Android Contacts (com.android.contacts) app and ETAR Calendar app (the built-in app in LineageOS and other custom ROMs) both work fine with data synced using DAVx5. The same should be true for most contacts and calendar apps.

This is because Calendar and Contacts are stored centrally in the Contacts storage and Calendar storage system apps: DAVx5 writes the data to the central storage, client apps (most Calendar and Contacts apps, K-9) access that data from the central storage.