[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