talk-android/app
Daniel Calviño Sánchez 6e222e7cd2 Create ParticipantDisplayItem when creating the connections
The ParticipantDisplayItem for "video" was created when a participant
joined the room, but the item for "screen" was created when the stream
for the screen was connected. Due to this the item for the remote screen
share just "popped up" once connected, but there was no hint of a
connection being established, like done with the video streams.

Now the ParticipantDisplayItems are created as soon as a
PeerConnectionWrapper is created and then updated as needed (for example
to set the user ID or the stream), which causes the item to immediately
appear and a progress bar to be shown until the connection is
established.

Although the ParticipantDisplayItem may be created on a different thread
(the main thread) than the PeerConnectionWrapper "runOnUiThread"
executes the enqueued messages in order (and it also establishes a
"happens-before" relation with further calls of "runOnUiThread" due to
the internal use of synchronized blocks, although it is not explicitly
documented), so the item will be already created when later updated.

This also holds true when an offer is received even before the
participant is seen as joined (a very rare case that can happen if the
signaling message with the updated participant list is lost for any
reason); the ParticipantDisplayItem is created when the offer is
received and it is later updated with the user ID once a new signaling
message with the updated participant list is received.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2022-12-28 15:48:43 +01:00
..
schemas/com.nextcloud.talk.data.source.local.TalkDatabase Room db schema v8 2022-07-01 08:59:12 +02:00
src Create ParticipantDisplayItem when creating the connections 2022-12-28 15:48:43 +01:00
build.gradle Weekly 15.2.0 Alpha 03 2022-12-26 03:12:55 +00:00
lint.xml Get rid of BaseController, ButterknifeController, and ButterKnife 2022-08-18 17:19:08 +02:00
proguard-rules.pro