[Feature request] Client-side contact information
The problem
I usually set my contact nickname to their real name for convient. But in the meantime, I don't want server to know my address book / contacts' name.
XEP-0172: User Nickname is a server-side standard, and since it's the only supported way to define a nickname in Gajim client, that leaves me no choice but to either ditch the use of nickname in Gajim, or to embrace the leakage of address book and use it whatsoever.
Internet services running on cloud platform is commonly seen these days, and while the server owner can be trusted, the cloud platform provider usually cannot. With the server-side contact information plus all the metadata being completely accessible by the platform, this could be seen as a huge privacy concern.
A peak at related project
Conversations on Android can be used as a reference to what extent this functionality should be implemented:
- By default, without local address book, the use of server-side nickname is preferred:
- Server-side nickname is displayed in contacts list, conversation view as well as contact detail view
- In contact detail view, the edit button modifies server-side nickname
- Contact picture is provided by server (usually your contact uploaded one). Tapping on it brings up the confirmation "Add to address book"
- However, if corresponding contact exists in local address book, it acts as an override to the server-side contact information:
- Display name set by local address book is shown instead
- In contact detail view, the edit button redirects to "Edit contact" in Android default contact app
- Contact picture is provided by the local address book. Tapping on it brings up the contact view in Android default contact app
However, the problem is that, Conversations runs on Android, while Gajim runs on Desktop, and is cross-platform. There is no such thing as a standard address book across different platforms.
Description of the new feature
To be honest, I hadn't thought about one... Because all the ideas that I came into mind are either impractical, or are too complicated to implement:
- Allow Gajim to set client-side nickname for contacts
- Problem: you have to change all the nicknames manually, one by one. If you have a lot of contacts that would be very time-wasting
- Sync with Thunderbird address book
- Problem: Is there any way to do that, without relying on an extension?
- Sync with external provider (CalDAV, CardDAV, DecSync)
- Problem: Too complicated for a messenger, you have to reinvent the wheels
- Define a new "Muti-End compatible encrypted contact information" XEP standard, and use it
- Problem: Too complicated for a simple task
So.... the issue is there, the privacy concern. But I'm yet to decide a solution here. Discussions are welcome below.