15:09 < Kaffeine> We need 1) a list of contacts; roster.
15:09 < Kaffeine> 2) a list of rooms ("that the user is "watching"")
15:12 < Kaffeine> 3) A list of dialogs. List of peers in order of last message timestamp. The important thing is that this list can contain contacts, not listed in the ContactList.
15:12 < gkiagia> Kaffeine: right, I was just going to say that... also, the user may want to remove some of those dialogs without actually deleting either the contact or the dialog history
To make this more clear, most modern protocols have a way of storing recent chats on the server side. These can be:
1) one-to-one chats with a contact from the roster
2) one-to-one chats with a contact outside the roster
3) a group chat
These chats come with a server-side history (see issue #1) and usually also have a "mute" property (see issue #4), which means that the user should not be notified of any activity in them. Additionally, these chats may be "archived", i.e. they can be removed from the main list but the logs remain and can be retrieved.
All this needs to be crafted into an API.
In relation with Channel.Type.RoomList1:
Chan.Type.RoomList1 is about listing rooms that can be joined (irc/xmpp style), not about rooms that have already been joined. I feel it is much like Chan.Type.ContactSearch1, which is about listing contacts that can be added in your roster.
Chan.Type.RoomList1 could co-exist with the new interface(s). In IRC for example, you could have a way to list available rooms (Chan.Type.RoomList1) and a way to list rooms that you have joined (the new interface). Right now, the list of active rooms is not stored anywhere, they are active only for as long as the client is keeping the channels open. As soon as you close the channel, you also leave the room (maybe not the best behaviour...).
15:09 < Kaffeine> We need 1) a list of contacts; roster. 15:09 < Kaffeine> 2) a list of rooms ("that the user is "watching"") 15:12 < Kaffeine> 3) A list of dialogs. List of peers in order of last message timestamp. The important thing is that this list can contain contacts, not listed in the ContactList. 15:12 < gkiagia> Kaffeine: right, I was just going to say that... also, the user may want to remove some of those dialogs without actually deleting either the contact or the dialog history
To make this more clear, most modern protocols have a way of storing recent chats on the server side. These can be: 1) one-to-one chats with a contact from the roster 2) one-to-one chats with a contact outside the roster 3) a group chat
These chats come with a server-side history (see issue #1) and usually also have a "mute" property (see issue #4), which means that the user should not be notified of any activity in them. Additionally, these chats may be "archived", i.e. they can be removed from the main list but the logs remain and can be retrieved.
All this needs to be crafted into an API.
In relation with Channel.Type.RoomList1: