turt2live / evelium

A matrix chat client to facilitate communication amoung communities, organizations, and individuals
https://evelium.io
GNU General Public License v3.0
7 stars 2 forks source link

Contact lists #92

Open turt2live opened 6 years ago

turt2live commented 6 years ago

Many people want contact lists so they can easily find people they care about more, such as friends, family, or coworkers. Contacts are not part of the spec (yet: https://github.com/matrix-org/matrix-doc/issues/556), however we could be a pioneer in this space.

The proposal would be to have an m.contacts event on the user's account data with a structure similar to this:

{
  "content": {
    "contacts": {
      "@joe:domain.com": {},
      "@jane:example.org": {}
    }
  },
  "type": "m.contacts"
}

The empty objects are for future expansion (and to follow suite with some of the other account data events, such as ignored users). There's probably some argument to be made for custom list titles, however for a proof of concept that is out of scope.

Clients, like Evelium, should show contact lists with presence. UI-wise, this may look like this: image

The client should create 1:1 rooms for contacts when clicked if one doesn't already exist. It's arguable if the "Contacts" list should replace the "Direct chats" list, although if it were to replace the list then how would existing 1:1 chats be handled?

Clients should of course provide a way to manage the contacts list. This could be done in a number of ways: commands, a button on the user's profile, context menu on the room tiles, etc.

Some related issues for consideration:

turt2live commented 6 years ago

Labeled as "Question" for this:

It's arguable if the "Contacts" list should replace the "Direct chats" list, although if it were to replace the list then how would existing 1:1 chats be handled?

DiThi commented 5 years ago

I'd say there are two straightforward answers:

The latter sounds less disruptive.

MurzNN commented 5 years ago

I think Contacts list must be displayed separately from rooms (private chats) list, because it will show many duplicated data. Good example is Telegram Desktop UI, that shows popup window with list of user contacts and UI for add/edit/remove them. In new Riot design good place might be menu item Contacts in user menu, near to Settings and Sign out.