This is the TODO file for the OSCAR plugin.

====== Possible refactorings =====

- Unify status handling for ICQ and AIM? I like the ICQ::Presence thing, that's cool
- Do delayed contact creation like on MSN so that when we actually get a good status
  code back from the SSI manipulation, we create the contact then rather than hoping
  it all works out.
- serialize all the ssi information, either via properties for via the
  Contact::serialize() method. We need to load it back to support proper auth handling


====== Catching up to OscarSocket =====

- Fill in all the ICQ user info
- Add preferences for "Requires Auth", "Web Aware", etc.


====== Adding new features not in oscarsocket ======

Support direct connections
Support file transfers
A bunch of other stuff i'm probably forgetting.

Add support for the many privacy options OSCAR has


====== Left Over from the previous TODO ======
There is some overlap here, and this is some of the stuff
that was done in oscarsocket, that will need redoing in liboscar

- general support for SNAC (0x15, *)
- fix adding contacts for both addcontactwizard and serverside list
- support encoding-settings for RTF-messages
- use RTF in outgoing messages
- keepalive for connection to server (icq has ping packets)
- Keep users from adding their own UIN to their userlist
- honor encodings for both sides (I need more knowledge about this!)
- Option: Allow access from contacts on my contact list only
- group handling in general
- error handling on channel 0x04 messages. properly disconnect and emit a
  signal in oscarsocket.
- save groupID in KopeteGroups
- somehow sync server and local list, this is not as trivial as everybody
  always thinks it is because you cannot sure if local changes or
  serverside-changes caused the difference (think about two clients being used
  for the same account, one at home and one at work).
- make renaming serverside contacts possible (function is there but fails due
  to massive contactlist bugs caused by above mentioned classes)
- support logging in with something different than "online" status for AIM
- finish icq userinfo dialog and sending your own icq userinfo to the server,
  it's easy to do but because of the mass of items takes lots of time
  and is extremely boring. (requires snac 0x15, * parsing)
