Commit Graph

433 Commits

Author SHA1 Message Date
Tim Krüger
5bbd26028f
Merge pull request #2392 from nextcloud/fix-disposing-local-stream-when-the-call-activity-is-not-being-left
Fix disposing local stream when the call activity is not being left
2022-09-19 15:17:59 +02:00
Tim Krüger
e47de0afc9
Merge pull request #2390 from nextcloud/provide-visual-feeback-when-a-participant-is-not-connected
Provide visual feeback when a participant is not connected
2022-09-19 13:56:07 +02:00
Tim Krüger
eb18231e25
Merge pull request #2389 from nextcloud/fix-self-video-size-after-coming-back-from-pip-mode
Fix self video size after coming back from pip mode
2022-09-19 11:05:51 +02:00
Tim Krüger
9712d05843
Merge pull request #2394 from nextcloud/fix-call-not-joined-again-if-reconnecting-while-in-pip-mode
Fix call not joined again if reconnecting while in PiP mode
2022-09-19 10:48:57 +02:00
Tim Krüger
615e67296d
Merge pull request #2388 from nextcloud/fix-issues-when-leaving-calls
Fix issues when leaving calls
2022-09-19 10:25:38 +02:00
Andy Scherzinger
679b601844
Merge pull request #2387 from nextcloud/fix-crash-after-hangup-due-to-modifying-a-list-while-iterating-over-it
Fix crash after hangup due to modifying a list while iterating over it
2022-09-19 09:33:44 +02:00
Daniel Calviño Sánchez
8364877f38
Fix crash after hangup due to modifying a list while iterating over it
"endPeerConnection()" removes the item from the list, so neither a
for-each loop nor an iterator can be used to traverse the list (as a
"ConcurrentModificationException" would be thrown). To solve that now
the list of connections is first traversed to get all the sessions, and
then the list of sessions is traversed to end the connections.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2022-09-19 09:17:12 +02:00
Daniel Calviño Sánchez
13a04808d9 Ignore signaling messages when the call activity is closing
The call activity unregisters from the event bus events when stopped.
However, when the call activity is being closed the new activity can
start before the call activity is stopped; if the new activity causes
new signaling messages to be sent those messages were handled by the
call activity too.

The chat controller joins the conversation again when it is attached,
and the call activity automatically joins the call when it receives a
"roomJoined" event. Due to all that, when the call activity was closed
and the chat controller was opened the call was joined again (and then
left once the call activity was finally destroyed).

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2022-09-19 05:52:34 +02:00
Daniel Calviño Sánchez
fdbcc3b16d Close the call activity when leaving the call only if remotely triggered
If the local participant leaves the call the participant list will be
updated with the new call flags. However, that does not necessarily mean
that a moderator ended the call; the call could have been left too by
the Android app due to a forced reconnection or a time out when starting
the call. In those cases the call activity should be kept open, and only
when the local participant left the call due to a remote action the call
activity should be closed.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2022-09-19 04:29:04 +02:00
Daniel Calviño Sánchez
f94db44b4d Enforce leaving state when shutting down the activity
When the view is shutting down the call is always left, so the status
should be accordingly set.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2022-09-19 04:27:03 +02:00
Daniel Calviño Sánchez
c3f1f6c3a8 Show participant as soon as found rather than once connected
As the participants that are not connected yet are clearly marked as
such now the participants are shown as soon as they are found rather
than waiting for a connection to be established.

There is a drawback, however; if a participant will never have a
connection (for example, if the HPB is used and that participant does
not have publishing permissions) the participant will be endlessly shown
with the progress bar. Nevertheless, before they were not shown at all,
which was probably even more puzzling.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2022-09-19 01:46:41 +02:00
Daniel Calviño Sánchez
2f44e6fd19 Show progress bar on local participant when not connected
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2022-09-18 23:26:26 +02:00
Daniel Calviño Sánchez
c2ef651ce3 Store whether a participant is connected or not
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2022-09-18 23:26:26 +02:00
Daniel Calviño Sánchez
719797b1d1 Notify a data set change only if the properties are set
Note that this still notifies a data set change if the properties are
set to the same value that they had already, but at least it is not
notified when no data was actually changed.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2022-09-18 23:26:26 +02:00
Daniel Calviño Sánchez
6481399293 Fix disposing local stream when the call activity is not being left
The local stream is set only when the activity is created. However, it
was disposed when hanging up, which happens not only when closing the
activity, but also in cases in which the call activity is kept open and
the participant reconnects to the call (for example, when starting the
call times out), which caused the local stream to freeze. Now the local
stream is disposed only when the call activity is destroyed.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2022-09-18 14:26:58 +02:00
Daniel Calviño Sánchez
c01c052181 Fix call not joined again if reconnecting while in pip mode
When a publisher fails during a call a reconnection is triggered, which
first leaves the call and then initiates it again. Initiating a video
call first request the permissions, but it seems that the request hangs
when done while in PiP mode. Due to this if the publisher fails while in
PiP mode and the call is initiated again the call will be simply left,
without reconnecting to it.

The problem is specific to video calls, as in voice only calls
"onMicrophoneClick" is used instead, and it explicitly checks if the
permissions are already granted. Checking if the permissions are already
granted before requesting them is also recommended in the Android
developer guide, and as the permissions are requested during the
original call initialization it is expected that they will be already
granted if the call is changed to PiP mode, so the problem is work
arounded that way (but if the permissions are not granted when the
publisher fails in PiP mode the problem would still happen, although
that should be quite uncommon).

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2022-09-18 14:25:23 +02:00
Daniel Calviño Sánchez
892ffe87dd Fix self video size after coming back from PiP mode
When coming back from PiP mode the self video occupied the full height
of the window. Now the height is set to the default value set in the
layout, so it matches the size used when starting the call activity.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2022-09-15 23:41:24 +02:00
Daniel Calviño Sánchez
a605c5df9f Rename dimension to better describe its purpose
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2022-09-15 23:34:49 +02:00
Marcel Hibbe
d230d0faf2
add chunked upload for files
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-09-15 16:22:59 +02:00
Álvaro Brey
704df25a6d
Refactor and extract ViewThemeUtils to common library
Signed-off-by: Álvaro Brey <alvaro.brey@nextcloud.com>
2022-08-31 19:54:05 +02:00
Álvaro Brey
d18fc7c9f8
Use common library for theming
Signed-off-by: Álvaro Brey <alvaro.brey@nextcloud.com>
2022-08-31 19:54:02 +02:00
Tim Krüger
f10d74f0ed
Replace 'List.get(i)' with iterator to loop over list
Signed-off-by: Tim Krüger <t@timkrueger.me>
2022-08-29 19:30:01 +02:00
Andy Scherzinger
9298de0d43
replace lovelyDialog with MaterialAlert
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-08-11 16:31:05 +02:00
Andy Scherzinger
006c893318
Theme call spotlight based on server theme / material 3
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-08-11 09:50:56 +02:00
Andy Scherzinger
34d6da68a1
properly theme adapter filter highlighting
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-08-11 09:50:55 +02:00
Andy Scherzinger
c10a0a7c65
make filled buttons Material 3
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-08-11 09:50:48 +02:00
Andy Scherzinger
4d93a2099f
Move theme utils reference to base class and use new status bar coloring in all relevant places
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-08-11 09:50:48 +02:00
Álvaro Brey
94479d0943
Theme TakePhotoActivity
Signed-off-by: Álvaro Brey <alvaro.brey@nextcloud.com>
2022-08-10 19:17:36 +02:00
Andy Scherzinger
66b2d44739
finish migration to room: remove requery
Resolves #2244

Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-07-26 21:16:38 +02:00
Andy Scherzinger
9ab4c58b41
remove all legacy code except basic requery implementation still needed for the cypher upgrade
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-07-24 14:19:20 +02:00
Andy Scherzinger
4bdc2c1081
Migrate recieving calls from requery to room
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-07-16 14:51:07 +02:00
Andy Scherzinger
cbe4658632
add method to update external signaling information
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-07-16 14:39:18 +02:00
Andy Scherzinger
fde2667fe7
Migrate Call Activity and used classes/methods from requery to room
Resolves #2216

Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-07-14 18:19:43 +02:00
Andy Scherzinger
7230f81cf5
Migrate conversations list and next hop controllers to use the room user entity
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-07-13 00:22:03 +02:00
Álvaro Brey
e7222529c1
Make private broadcast permission depend on applicationId
Otherwise we can't install QA and normal app side by side

Signed-off-by: Álvaro Brey <alvaro.brey@nextcloud.com>
2022-07-12 13:16:35 +02:00
Andy Scherzinger
6497c2d9b1
fix crash when navigating back from chat to conversation list
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-07-01 08:59:19 +02:00
Andy Scherzinger
74fc56fa7e
Replace Observable with Single, let Repositories serve Models
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-07-01 08:59:14 +02:00
Álvaro Brey
afbec06ad3
WIP improvements during pair programming call
Signed-off-by: Álvaro Brey <alvaro.brey@nextcloud.com>
2022-07-01 08:59:13 +02:00
Andy Scherzinger
565903b956
remove flow and use rx
...to stay in line with currently used concepts

Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-07-01 08:59:11 +02:00
Andy Scherzinger
f7ca1ec804
DB version switcher for requery
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-07-01 08:59:10 +02:00
Andy Scherzinger
8c27b54377
move everything to flows
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-07-01 08:59:09 +02:00
Andy Scherzinger
5ffa3c44fd
create new capabilities util add license header and format kotlin code
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-07-01 08:59:08 +02:00
Andy Scherzinger
75c8625aee
run user repo call in coroutine
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-07-01 08:59:08 +02:00
Andy Scherzinger
05db482d06
adding arbitrary storage implementation, initial steps towards new util classes
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-07-01 08:59:07 +02:00
Tim Krüger
f87e0a2d85
Set PendingIntent flag immutable
Signed-off-by: Tim Krüger <t@timkrueger.me>
2022-06-23 15:34:11 +02:00
Tim Krüger
174a7e53d8
Remove unneeded '@SuppressLint("InlinedApi")'
The annotation '@RequiresApi' was already set correctly.

Signed-off-by: Tim Krüger <t@timkrueger.me>
2022-06-23 15:24:28 +02:00
Tim Krüger
10a4521af9
Rename 'WebRtcAudioManger' to 'WebRtcAudioManager'
Signed-off-by: Tim Krüger <t@timkrueger.me>
2022-06-23 15:20:32 +02:00
drone
272f2e839c Merge commit '58c40e6ee244e6b78cc8754e8cc621e8400507d7' 2022-06-23 08:59:34 +00:00
Andy Scherzinger
331309405d
Set intent flag required by Android 12 (SDK 31)
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-06-23 10:21:03 +02:00
Álvaro Brey
c4d9105613
Merge pull request #2148 from nextcloud/fix/callactivity-receiver
Use custom permission for unfiltered broadcast receiver in CallActivity
2022-06-23 09:36:00 +02:00