|
The new roster was temporarily resetting the model every
time there was a change, this patch sets it up properly
to use beginXxxRows, endXxxRows and dataChanged instead.
Test-Information:
Unit test created to check the onBeginAdd and onAdded signals
get called at the correct time and that data is stored
properly when a JID is added. Also tested live on test server,
checked what happens when the user first logs in, and when
contacts log on and off.
There was some concern over the new setState function, and
its impact on populating the new roster on login. I ran
multiple tests, swift-4 vs swift-5 with the new roster,
I tested having 3000 users with and without presence in the
roster, 100 users and 3000 users split into 30 groups of 100.
We tested both the time to populate the roster (pre presence)
and the time from login until the roster become responsive
and usable. The results weren't terribly different between
swift-4 and swift-5 with the new roster, and swift-5 was
populating both the old and new rosters, therefore we concluded
that the new roster is not causing a significant slowing down
during login.
Change-Id: I2aba5cbcd81296b49d36c54ee7f07453f1b2db08
|
|
This is hidden behind the FUTURE flag, and is not ready for release yet,
but is pretty usable. The three top filters (all/people/rooms) aren't
plumbed in yet, recents need to be reinstated, and a favourites
system would be very desirable.
The code for the existing roster/chatlist is largely unchanged and with
FUTURE disabled behaviour should not have changed. Lots of this code has
now been put inside #ifndef NOT_YET blocks, to make it easy to find
and remove later.
When making this default later, all instances of NOT_YET should be
inspected, unit tests should be added, and use of RECENT should be
inspected - those related to this patch should be removed. Not all
code is behind NOT_YET, so references to the old recents and chat lists
will need to be manually checked and removed.
Test-Information:
Existing unit tests pass. New unit tests have not been added yet, and
need to be before it's removed from FUTURE guards. Firing up Swift with
future enabled shows the new view, and disabled doesn't. In both cases
clicking around various things in the rosters opens the expected chats.
Change-Id: I0e1ce98e4c644fa5b09ef65986cc826b6b564a7b
|