mirror of
https://github.com/nextcloud/talk-android.git
synced 2024-11-23 13:35:33 +03:00
3278829dba
The new sessions are computed by substracting the old sessions (those for which a PeerConnectionWrapper exists) from the sessions currently in the call. However, when "oldSessions" was used for that it no longer contained the old sessions, it only contained the sessions which were no longer in the call. As those sessions are mutually exclusive with the sessions currently in the call nothing was substracted from "newSessions", and it ended being the sessions currently in the call instead. When the HPB is not used the list of participants in the conversation is periodically updated every 30 seconds if no other signaling message was received in the meantime. As the layout for a participant overrides any previous layout for that participant this periodically reset the layout of all participants in the call, as they were all treated as new sessions. When the HPB is used the list of participants in the conversation is updated only when something changed. However, similarly to the previous case, when that happens the layout of all participants in the call is also reset for the same reason. To solve that now "oldSessions" is not modified, so it contains the sessions for which a PeerConnectionWrapper exists, and substracting it from "newSessions" now gives only the new sessions. The other usages of "newSessions" besides creating the connection and setting up the layout, that is, getting the peers in the call and changing the call status to "In conversation", should be safe if executed only when there are new sessions rather than when there are participants in the call but they did not change. Resolves: #2486 Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com> |
||
---|---|---|
.. | ||
schemas/com.nextcloud.talk.data.source.local.TalkDatabase | ||
src | ||
build.gradle | ||
lint.xml | ||
proguard-rules.pro |