element-hq / element-meta

Shared/meta documentation and project artefacts for Element clients
75 stars 12 forks source link

Integrate with the OS/DE contacts storage. #2515

Open RokeJulianLockhart opened 2 months ago

RokeJulianLockhart commented 2 months ago

Your use case

What would you like to do?

I want to see consistent, true information (like photographic avatars and full names) across my communication services, rather than pseudonyms for names, and random pictograms for avatars.

Why would you like to do it?

So that I can easily identify contacts.

How would you like to achieve it?

By integrating with the OS/DE contacts storage, like https://bugzilla.mozilla.org/show_bug.cgi?id=1845008#c0 describes (paraphrased):

1. AOSP 14 provides [Contacts Provider](https://developer.android.com/identity/providers/contacts-provider#:~:text=The%20Contacts%20Provider%20is%20the%20source%20of%20data%20you%20see%20in%20the%20device's%20contacts%20application%2C%20and%20you%20can%20also%20access%20its%20data%20in%20your%20own%20application%20and%20transfer%20data%20between%20the%20device%20and%20online%20services), and https://github.com/alexstyl/contactstore/blob/ee2c5b0bc014b8191783e44e610315c1cc51d896/README.md#does-contact-store-support-all-features-the-default-contacts-api-does:~:text=Does%20Contact%20Store%20support%20all,new%20feature%20request%20on%20Github is available too. 1. Windows 11 provides what https://github.com/Murmele/Gittyup/issues/600#issue-1816800370 describes: > Apps can be allowed access easily using a prompt or manually, per [this](https://www.tenforums.com/tutorials/104644-allow-deny-os-apps-access-contacts-windows-10-a.html#option4:~:text=Code:-,HKEY_CURRENT_USER%5CSoftware%5CMicrosoft%5CWindows%5CCurrentVersion%5CCapabilityAccessManager%5CConsentStore%5Ccontacts,-Value%20string%20value). The API is fairly robust and easy to work with even in legacy software, per https://learn.microsoft.com/en-us/windows/win32/api/_wincontacts/ (see [this reduced permalink](https://github.com/MicrosoftDocs/sdk-api/blob/0d83c209d1151091ec78255fbaab39789e3e5a2d/sdk-api-src/content/_wincontacts/index.md#-description:~:text=overview-,Windows%20Contacts,-%2Ddescription) if unavailable). Although [this](https://learn.microsoft.com/en-us/uwp/api/windows.applicationmodel.contacts?view=winrt-22621#:~:text=Enables%20apps%20to%20select%20and%20acquire%20info%20about%20contacts) is probably the better choice. 1. KDE Plasma 6 provides [Akonadi](https://discuss.kde.org/t/does-kde-plasma-have-a-system-wide-programmatically-accessible-contact-storage/3096/2?u=rokejulianlockhart).

Have you considered any alternatives?

https://github.com/element-hq/element-meta/issues/341#issue-1245585821 suggest that the web client should integrate with contact storage services' APIs.

Additional context

https://github.com/element-hq/element-meta/issues/341#issue-1245585821 appears to suggest what it does for reasons like what https://github.com/element-hq/element-meta/discussions/848#discussioncomment-4275974 describes - an inability to locate acquaintances. I support this too, but consider it less immediately feasible.