note that this is very dirty and will break many things! basically video from camera was replaced by screen stream
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
Now that "newSessions" only contains remote participants it is no longer
needed to check if the participant is an MCU publisher or not, as it
will never be.
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
When processing the participants in a room the signaling sessions of the
participants were compared against the Nextcloud session of the local
participant to find out which were the remote sessions. However, when
the HPB is used the signaling session is not the same as the Nextcloud
session, so the signaling session of the local participant never matched
her Nextcloud session, so it was always seen as a remote participant.
This caused the call state to be changed to "in conversation" (which,
for example, stopped the calling sound), when only the local participant
was in the call.
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
"hasMCU" was used before being updated, so this caused an unneeded call
to "getPeersForCall" when processing the users in the room for the first
time even if the MCU is actually used.
A better fix might be moving "hasMCU" to a method instead of relying on
the cached value, but just moving the update to the top of the method
should have no side effects (as calling "getPeersForCall" just updates
"participantMap", which is unused when the MCU is used, and sets the
avatars, which has no effect until the peer layout is set, which also
sets the avatar), so this is good enough for now.
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
- temporarily comment out setOnTouchListener for grid (disables toggle of controls for now)
- set android:scrollbars="vertical" for gridview
- add callControlsHeight for item height calculation
- add fake height to item that scrolling is testable
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
...since grid initialization is called in various places throughout the lifecycle
Fixes#1233
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
The avatar of guests is based on their display name/nick.
When the HPB is not used the nick is provided in the offer/answer
signaling messages, and later updated through data channel messages when
it changes. When the HPB is used the nick is periodically sent through
data channel messages. Therefore the avatar is based on the nick set in
the peer connection and reloaded when the nick changes (although it is
currently a bit hacky and brittle, as it is based on whether the nick
shown in the text view changed rather than whether the nick itself
changed, but it works nevertheless).
Note that currently it is required that the guest has a peer connection
to know its nick and, therefore, its avatar; some changes would be
needed in the clients to also send the nick when there is no peer
connection.
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
Before the NICK_CHANGE event include either the session id or the user
id, depending on whether the participant was a guest or a user. However,
as the session id is also known for users the event can be unified to
always include the session id only.
This also fixes an exception when handling the "NICK_CHANGE" event, as
the session id was got from the user id given in the event, but if the
event already included the session id the look up failed and the session
id was replaced with an empty value. This in turn caused an exception
when trying to use the view for the now invalid session id. Now the
session id provided in the event is always directly used.
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>