Commit Graph

66 Commits

Author SHA1 Message Date
Daniel Calviño Sánchez
f112e26d25
Fix SDP constraints used by PeerConnectionWrapper
The SDP constraints for publisher connections when the MCU is used were
set for all connections. Those constraints set "OfferToReceiveAudio" and
"OfferToReceiveVideo" to false, which disables receiving audio and video
when the local participant is the one sending the offer. Therefore,
audio and video was not received when the MCU was not used and the local
participant was the one initiating the connection.

The "OfferToReceiveXXX" configurations have no effect when set on an
answer (and thus are not even set, an empty MediaConstraints is used in
that case). However, when "OfferToReceiveVideo = false" is set the video
transceiver is explicitly stopped (which is used to avoid receiving
video when joining a call with audio only). Therefore, as
"OfferToReceiveVideo = false" was always set, video was never received
in subscriber connections when the MCU is used, or connections initiated
by the other peer when the MCU is not used.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2025-01-03 13:26:43 +01:00
Daniel Calviño Sánchez
94257da123
Rename attribute to a more accurate name
The SDP constraints should be set when the MCU is used, but only for
publisher connections; receiver connections should use the general SDP
constraints.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2025-01-03 13:26:42 +01:00
Daniel Calviño Sánchez
a4cce0581c
Rename "sendChannelData" to "send"
The legacy name was a bit strange, so now it is renamed to just "send"
as the parameter type ("DataChannelMessage") gives enough context.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2025-01-03 10:52:41 +01:00
Andy Scherzinger
12620a5c3e
style(detekt): shorten long methods
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2024-12-10 09:00:47 +01:00
Andy Scherzinger
751cd3f4ea
style(detekt): Shorten complex conditions
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2024-12-10 08:59:26 +01:00
Andy Scherzinger
f820277779
style(detekt): Accept current use of TooGenericExceptionCaught cases
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2024-12-06 11:11:24 +01:00
Andy Scherzinger
eb890cfbd3
style(detekt): Replace MagicNumbers with constants
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2024-12-06 11:11:02 +01:00
Andy Scherzinger
77d2632513
style(detekt): Improve score
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2024-12-02 10:40:00 +01:00
sowjanyakch
9b3a11569a
bump minSdkVersion to 26 and remove old checks
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
2024-11-21 11:34:23 +01:00
Marcel Hibbe
79a8c16758
rename variables and methods
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2024-11-12 12:11:10 +01:00
sowjanyakch
37c3f35f7a
suppress warning string format invalid
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
2024-11-12 12:11:09 +01:00
sowjanyakch
4705d1f7b0
use proper names for popup menu
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
2024-11-12 12:11:09 +01:00
sowjanyakch
121e77b753
use white background for popup button and formatting
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
2024-11-12 12:11:09 +01:00
sowjanyakch
eda9b94182
use touch listeners for hiding popup button
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
2024-11-12 12:11:09 +01:00
sowjanyakch
0920029183
show popup for leaving call in 1:1
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
2024-11-12 12:11:08 +01:00
sowjanyakch
90628c34ce
set "all" parameter to false and set to null only before API call
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
2024-11-12 12:11:08 +01:00
sowjanyakch
d09b7b5a07
remove isGroupConversation variable
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
2024-11-12 12:11:08 +01:00
sowjanyakch
cfe83dd027
remove isGroupConversation variable
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
2024-11-12 12:11:08 +01:00
sowjanyakch
de637871a6
ktlintFormat
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
2024-11-12 12:11:07 +01:00
sowjanyakch
e5789c0cf6
set bundle keys in CallNotificationActivity
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
2024-11-12 12:11:07 +01:00
sowjanyakch
be9bda7f04
ktlintFormat
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
2024-11-12 12:11:06 +01:00
sowjanyakch
bf3ed0ed42
handle end call button
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
2024-11-12 12:11:06 +01:00
sowjanyakch
3d536c2af4
add short press and long press options to 1:1 conversation
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
2024-11-12 12:11:06 +01:00
sowjanyakch
3a6a1edad4
add short press and long press options to group conversation
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
2024-11-12 12:11:06 +01:00
sowjanyakch
6e2fdcb255
git bundle keys for group conversation
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
2024-11-12 12:11:05 +01:00
sowjanyakch
ca0533a686
add button for end call for everyone
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
2024-11-12 12:11:05 +01:00
sowjanyakch
ed9fc185bf
implement long click and short click on hangup button
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
2024-11-12 12:11:05 +01:00
sowjanyakch
52fd3f9002
Add support for all parameter in leave call endpoint
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
2024-11-12 12:11:05 +01:00
Daniel Calviño Sánchez
fdb8692b59
Remove dead code to set the call state
"IN_CONVERSATION" was set when the activity was created and "state" in
the intent extras had the value "resume". However, there is no "state"
extra set by default in Android intents, it should be explicitly set,
but as it is not set anywhere in Talk Android code that would make it
dead code and safe to remove.

Moreover, the connection to the call should be initialized again in any
case rather than resumed when "onCreate" is called, as it is likely that
any previous connection would have been ended if the previous activity
instance was destroyed.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2024-10-22 16:51:10 +02:00
rapterjet2004
b192e0ec60
linter
Signed-off-by: rapterjet2004 <juliuslinus1@gmail.com>
2024-10-22 10:51:08 +02:00
Marcel Hibbe
ebc2fd2702
Add test for conversation conversion
This test respects different API versions and checks if default values are set as expected.

- remove deprecated+unused methods
- remove comments
- remove unnecessary double-bang operator

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2024-09-26 13:27:44 +02:00
sowjanyakch
384ba6945f
ktlint format
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
2024-09-23 16:40:06 +02:00
Marcel Hibbe
3f06801e59
fix to load chat for old server version
With server version 23.0.12 it happened that the chat did not load because values were null. Now default values in json model are set (because that's easier than changing the entity).
Additionally a check was added in CallActivity that a callStartTime of 0 would not be used (but it should not be used anyway if it would be 0 because then capability should also not be available).

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2024-09-16 17:29:08 +02:00
Marcel Hibbe
033e3e86c1
reformat code
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2024-09-13 16:56:46 +02:00
Daniel Calviño Sánchez
18a0394d3b
fixup! Provide federation values when joining a room in the external signaling
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2024-09-13 15:51:20 +02:00
Daniel Calviño Sánchez
0ff783ef0b
Show proper avatar for federated users in calls
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2024-09-13 15:51:20 +02:00
Daniel Calviño Sánchez
3b7c5e1d27
Store actor data from signaling messages with participant updates
Starting with Talk 20 the signaling messages that provide updates to the
participants ("participants->update" in the external signaling server,
"usersInRoom" in the internal signaling server) now include "actorType"
and "actorId" properties for each participant.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2024-09-13 15:51:20 +02:00
Daniel Calviño Sánchez
86b06488c3
Provide federation values when joining a room in the external signaling
The "federation" values are used by the external signaling server to
establish a connection with the remote signaling server in a federated
room.

For now this is applied only in calls; when the room is joined in the
chat view again after a call it will still join it in the old way,
without federation properties, which will cause the connection with the
remote signaling server to be closed.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2024-09-13 15:51:20 +02:00
Daniel Calviño Sánchez
f3c7913f16
Get signaling settings by room when starting a call
This is necessary to get the specific federation properties for the
room.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2024-09-13 15:51:20 +02:00
Daniel Calviño Sánchez
6706bc2790
Store federation properties in signaling settings
Starting with Talk 20 the signaling settings include a "federation"
property that provide the values needed to join a federated room in the
external signaling settings. The "federation" property is specific to
each conversation, and it will be returned although empty for
non-federated conversations.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2024-09-13 15:51:19 +02:00
Marcel Hibbe
a632765cce
set values to not nullable in ConversationEntity.kt wherever this makes sense
remove roomId from Conversation (deprecated. only token should be used)

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2024-08-12 16:47:06 +02:00
Marcel Hibbe
8876718677
open links for files app from any screen.
With this change, all links that target files in the same nextcloud instance will be opened in the files app, no matter on which screen the link was.

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2024-05-24 15:38:53 +02:00
Andy Scherzinger
c2683e0ed0
Add SPDX header
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2024-03-23 17:18:18 +01:00
Marcel Hibbe
754b825096
pass spreedCapabilities instead user to CapabilitiesUtil
To support federated rooms, capabilities have to be checked from the room which now also has capabilities.
If room is not federated, capabilities fromuser are still checked.
This is why CapabilitiesUtil had to be refactored to accept SpreedCapabilities which can come from room or user.

Other than that, many other changes were made as a result of this change.

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2024-03-01 11:25:11 +01:00
Marcel Hibbe
a3ecd82d13
rename MagicWebRTCUtils to WebRTCUtils
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2024-02-27 15:23:11 +01:00
Marcel Hibbe
2a856bc77a
avoid to send "speaking" data channel message when mic is muted
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2024-02-16 13:06:56 +01:00
Andy Scherzinger
7fe6dd066b Register ReceiverFlags when registering receivers for Android 13+
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2024-01-30 14:26:08 +01:00
Marcel Hibbe
8507e96bc5
Merge pull request #3502 from nextcloud/bugfix/3491/fixErrorWhenDecliningRecConsent
avoid error when declining recording consent
2023-12-05 18:57:35 +01:00
Marcel Hibbe
6ac9fa5fff
avoid error when declining recording consent
When declining recording consent, 404 might be returned when leaving the call (because the call was not joined before).
It might not be the best option to handle this via onError, but for the moment (18.0.0 release) it's the most robust/lowest-risk solution without to change some state handling to check if the call was joined).
finish was added which makes sense anyway, but for declining recording consent the error snackbar was removed.

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-12-05 16:20:28 +01:00
Andy Scherzinger
627e9d5c20
ktlint: No whitespace expected between opening parenthesis and first parameter name
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2023-12-05 16:17:31 +01:00