[Adium-devl] Metacontact Plans for Adium 1.1

Peter Hosey prh at boredzo.org
Fri Sep 29 11:18:28 UTC 2006


On Sep 29, 2006, at 04:02:31, Andrew Harvey wrote:
> The question then arises …, how do we deal with addresses …  
> which are in multiple groups?

Since an AIContact represents a person, I think an AIContact should  
enforce all of its AIAddresses' presence in *all* groups (or the  
first group, if a protocol doesn't support multi-group contacts). You  
wouldn't remove an AIContact from the whole list anymore; you'd  
remove it from a group. The AIContact is only removed from the whole  
list when you remove it from the last group.

Thus it wouldn't be possible to have a contact in group A with  
addresses A, B, and C, and another contact in group B with addresses  
C, D, and E; contacts would be uniquified by addresses in common, and  
each uniquified contact's addresses would then be enforced in all of  
the groups that any address of the contact is in. So there would be  
*one* contact with addresses A, B, C, D, and E, and it would be in  
both groups A and B.

You couldn't move any one address into only one group or into another  
group that the other addresses aren't in; if you did it in the  
official client, they would snap back.

We then have the question of whether the snapping-back is evil. It  
certainly fits with the every-contact-is-one-person-(implicitly,-with- 
all-of-that-person's-addresses) model, but maybe the user doesn't  
want to adopt that model. Should we force it on them?

The alternative is to have non-unquified AIContacts; this would make  
preventing duplicate chats *very* hairy. My suggestion for that: if  
the contact that was double-clicked has any addresses in common with  
any other contact, then that chat is reused (but switched to the  
preferred address of the newly-double-clicked contact).

Aside from that issue, its benefit is that it makes us less rude in  
dealing with changes in official clients.

Or maybe instead of snapping back (returning to the uniquified- 
contact model), we should notice any differences in one address and  
apply that to all other addresses of the contact. Then, if the user  
removes address C from group B in the official client for the Popcorn  
Messenger service, we apply that same change to all other addresses  
of the same contact when the user comes back to Adium.

↑
Brain-dump. My raw thoughts on the matter as they came to me.

I'm inclined toward the last idea. It's simpler and less rude.
________________________________
\ Peter Hosey / prh at boredzo.org
PGP public key ID: 7AB26BAD (since 2006-01-01)

-------------- next part --------------
A non-text attachment was scrubbed...
Name: PGP.sig
Type: application/pgp-signature
Size: 186 bytes
Desc: This is a digitally signed message part
URL: <http://adium.im/pipermail/devel_adium.im/attachments/20060929/fe55cf2c/attachment.sig>


More information about the devel mailing list