@@ -421,10 +421,13 @@ objc_autoreleasePoolPop(pool); } - (void)processRoomsSync: (OFDictionary *)rooms { + [self processJoinedRooms: rooms[@"join"]]; + [self processInvitedRooms: rooms[@"invite"]]; + [self processLeftRooms: rooms[@"leave"]]; } - (void)processPresenceSync: (OFDictionary *)presence { } @@ -434,6 +437,32 @@ } - (void)processToDeviceSync: (OFDictionary *)toDevice { } + +- (void)processJoinedRooms: (OFDictionary *)rooms +{ + if (rooms == nil) + return; + + for (OFString *roomID in rooms) + [_storage addJoinedRoom: roomID + forUser: _userID]; +} + +- (void)processInvitedRooms: (OFDictionary *)rooms +{ + if (rooms == nil) + return; +} + +- (void)processLeftRooms: (OFDictionary *)rooms +{ + if (rooms == nil) + return; + + for (OFString *roomID in rooms) + [_storage removeJoinedRoom: roomID + forUser: _userID]; +} @end