Commit graph

5378 commits

Author SHA1 Message Date
Nextcloud bot
4a3b37e908
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-02-14 03:45:13 +00:00
Nextcloud bot
d873a9cecb
Fix(l10n): 🛠️ Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-02-14 03:44:54 +00:00
Nextcloud bot
d9087ba813
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-02-13 03:47:54 +00:00
Nextcloud bot
070e150b53
Fix(l10n): 🛠️ Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-02-13 03:47:36 +00:00
Nextcloud bot
1a2e1a6402
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-02-12 03:44:14 +00:00
Nextcloud bot
41765deb9c
Fix(l10n): 🛠️ Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-02-12 03:43:55 +00:00
Nextcloud bot
70bbfeda2c
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-02-11 03:43:23 +00:00
Nextcloud bot
29b7e6a169
Fix(l10n): 🛠️ Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-02-11 03:43:05 +00:00
Marcel Hibbe
28fcd585c7
Fix to show back button when message opened by notification
Before this fix, it was not possible to go to conversation list when a message was opened by notification

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-02-10 17:18:57 +01:00
Marcel Hibbe
fcb4ee0430
Switch to active user in CallNotificationActivity
There are no known bugs that were caused by not setting the active user here, but this should be done.

See fb7ea25b for reference

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-02-10 16:16:27 +01:00
Marcel Hibbe
fb7ea25b9d
Fix to switch active user when opening talk from notification
When two or more users were setup, the active user was not updated when opening the app from notification. As a result, it was not possible to send files, mention people...

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-02-10 16:13:46 +01:00
Marcel Hibbe
4bca10a5fa
fix to not replace folder with some thumbnail from files
fix #2757

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-02-10 13:01:50 +01:00
Marcel Hibbe
29a9b0e381
use class variable fileIcon instead binding.fileIcon
this shouldn't make a difference. class variable was unused before..

Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-02-10 13:01:50 +01:00
Marcel Hibbe
5d83ff8c98
Fix to show thumbnails in FileBrowser
without this fix following Exception occurred:

I/RealImageLoader: 🚨 Failed - https://sermo.nextcloud.com/index.php/core/preview.png?file=%2F2022-09-12_163513.jpg&x=90&y=90&a=1&mode=cover&forceIcon=1 - coil.network.HttpException: HTTP 401:
E/RealImageLoader: coil.network.HttpException: HTTP 401:
        at coil.fetch.HttpUriFetcher.executeNetworkRequest(HttpUriFetcher.kt:227)
        at coil.fetch.HttpUriFetcher.access$executeNetworkRequest(HttpUriFetcher.kt:30)
        at coil.fetch.HttpUriFetcher$executeNetworkRequest$1.invokeSuspend(Unknown Source:15)
        at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
        at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
        at kotlinx.coroutines.internal.LimitedDispatcher.run(LimitedDispatcher.kt:42)
        at kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:95)
        at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:570)
        at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:750)
        at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:677)
        at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:664)

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-02-10 13:01:49 +01:00
Andy Scherzinger
163883181a
hide scroll-to-bottom upon click
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-02-10 10:56:39 +01:00
Nextcloud bot
5b4d0d16af
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-02-10 03:50:15 +00:00
Nextcloud bot
fcd73b4034
Fix(l10n): 🛠️ Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-02-10 03:49:56 +00:00
Marcel Hibbe
1bad35488c
avoid NPE for PeerConnectionWrapper#sendChannelData
E/AndroidRuntime: FATAL EXCEPTION: RxCachedThreadScheduler-6
    Process: com.nextcloud.talk2, PID: 25086
    java.lang.NullPointerException: Attempt to invoke virtual method 'boolean org.webrtc.DataChannel.send(org.webrtc.DataChannel$Buffer)' on a null object reference
        at com.nextcloud.talk.webrtc.PeerConnectionWrapper.sendChannelData(PeerConnectionWrapper.java:275)
        at com.nextcloud.talk.activities.CallActivity$17.onNext(CallActivity.java:2311)
        at com.nextcloud.talk.activities.CallActivity$17.onNext(CallActivity.java:2303)
        at io.reactivex.internal.operators.observable.ObservableObserveOn$ObserveOnObserver.drainNormal(ObservableObserveOn.java:201)
        at io.reactivex.internal.operators.observable.ObservableObserveOn$ObserveOnObserver.run(ObservableObserveOn.java:255)
        at io.reactivex.internal.schedulers.ScheduledRunnable.run(ScheduledRunnable.java:66)
        at io.reactivex.internal.schedulers.ScheduledRunnable.call(ScheduledRunnable.java:57)
        at java.util.concurrent.FutureTask.run(FutureTask.java:264)

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-02-09 14:00:16 +01:00
Marcel Hibbe
332b856cfe
avoid IOException for ChatController#initMediaPlayer
Exception java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:558)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:936)
Caused by java.lang.reflect.InvocationTargetException:
  at java.lang.reflect.Method.invoke
  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:548)
Caused by java.io.IOException: Prepare failed.: status=0x1
  at android.media.MediaPlayer._prepare
  at android.media.MediaPlayer.prepare (MediaPlayer.java:1309)
  at com.nextcloud.talk.controllers.ChatController.initMediaPlayer (ChatController.kt:1023)
  at com.nextcloud.talk.controllers.ChatController.startPlayback (ChatController.kt:981)
  at com.nextcloud.talk.controllers.ChatController.access$startPlayback (ChatController.kt:219)
  at com.nextcloud.talk.controllers.ChatController$downloadFileToCache$1.invoke (ChatController.kt:1111)
  at com.nextcloud.talk.controllers.ChatController$downloadFileToCache$1.invoke (ChatController.kt:1109)
  at com.nextcloud.talk.controllers.ChatController.downloadFileToCache$lambda$18 (ChatController.kt:1109)
  at com.nextcloud.talk.controllers.ChatController.$r8$lambda$6crsUAwqqfwhlukFd40yEwEwluI
  at com.nextcloud.talk.controllers.ChatController$$ExternalSyntheticLambda9.onChanged
  at androidx.lifecycle.LiveData.considerNotify (LiveData.java:133)
  at androidx.lifecycle.LiveData.dispatchingValue (LiveData.java:151)
  at androidx.lifecycle.LiveData.setValue (LiveData.java:309)
  at androidx.lifecycle.MutableLiveData.setValue (MutableLiveData.java:50)
  at androidx.lifecycle.LiveData$1.run (LiveData.java:93)
  at android.os.Handler.handleCallback (Handler.java:942)
  at android.os.Handler.dispatchMessage (Handler.java:99)
  at android.os.Looper.loopOnce (Looper.java:201)
  at android.os.Looper.loop (Looper.java:288)
  at android.app.ActivityThread.main (ActivityThread.java:7872)

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-02-09 14:00:15 +01:00
Marcel Hibbe
be5a60dc77
avoid IllegalStateException for ChatController#stopMediaPlayer
didn't see this crash here, but it might have happened similar to b29fccac where it happened.

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-02-09 14:00:15 +01:00
Marcel Hibbe
bad8e2a705
avoid IllegalStateException for CallActivity#stopCallingSound
This might happen sometimes. For now it's a try-catch instead trying to control the state of the mediaPlayer which could be quite difficult.

this will avoid the following exception:

    java.lang.IllegalStateException
    	at android.media.MediaPlayer.isPlaying(Native Method)
    	at com.nextcloud.talk.activities.CallActivity.stopCallingSound(CallActivity.java:2640)
    	at com.nextcloud.talk.activities.CallActivity.lambda$setCallState$31$com-nextcloud-talk-activities-CallActivity(CallActivity.java:2583)
    	at com.nextcloud.talk.activities.CallActivity$$ExternalSyntheticLambda7.run(Unknown Source:2)
    	at android.os.Handler.handleCallback(Handler.java:883)
    	at android.os.Handler.dispatchMessage(Handler.java:100)
    	at android.os.Looper.loop(Looper.java:237)
    	at android.app.ActivityThread.main(ActivityThread.java:8167)
    	at java.lang.reflect.Method.invoke(Native Method)
    	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:496)
    	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1100)

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-02-09 14:00:15 +01:00
Marcel Hibbe
a8225bfd27
avoid NPE in ChatController#determinePreviousMessageIds
W/System.err: java.lang.NullPointerException
W/System.err:     at com.nextcloud.talk.controllers.ChatController.determinePreviousMessageIds(ChatController.kt:2498)
W/System.err:     at com.nextcloud.talk.controllers.ChatController.processMessagesNotFromTheFuture(ChatController.kt:2463)
W/System.err:     at com.nextcloud.talk.controllers.ChatController.processMessages(ChatController.kt:2355)
W/System.err:     at com.nextcloud.talk.controllers.ChatController.processMessagesResponse(ChatController.kt:2314)
W/System.err:     at com.nextcloud.talk.controllers.ChatController.access$processMessagesResponse(ChatController.kt:219)
W/System.err:     at com.nextcloud.talk.controllers.ChatController$pullChatMessages$3.onNext(ChatController.kt:2260)
W/System.err:     at com.nextcloud.talk.controllers.ChatController$pullChatMessages$3.onNext(ChatController.kt:2248)
W/System.err:     at io.reactivex.internal.operators.observable.ObservableObserveOn$ObserveOnObserver.drainNormal(ObservableObserveOn.java:201)
W/System.err:     at io.reactivex.internal.operators.observable.ObservableObserveOn$ObserveOnObserver.run(ObservableObserveOn.java:255)
W/System.err:     at io.reactivex.android.schedulers.HandlerScheduler$ScheduledRunnable.run(HandlerScheduler.java:124)
W/System.err:     at android.os.Handler.handleCallback(Handler.java:883)
W/System.err:     at android.os.Handler.dispatchMessage(Handler.java:100)
W/System.err:     at android.os.Looper.loop(Looper.java:224)
W/System.err:     at android.app.ActivityThread.main(ActivityThread.java:7590)
W/System.err:     at java.lang.reflect.Method.invoke(Native Method)
W/System.err:     at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:539)
W/System.err:     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:950)

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-02-09 14:00:15 +01:00
Marcel Hibbe
0ce5e81577
avoid IllegalArgumentException in ConversationInfoController#leaveConversation
instead popToRoot, which should be the ConversationsListController for most cases.

Exception java.lang.IllegalArgumentException: fromIndex(0) > toIndex(-1)
  at java.util.ArrayList.subListRangeCheck (ArrayList.java:1018)
  at java.util.ArrayList.subList (ArrayList.java:1008)
  at com.nextcloud.talk.controllers.ConversationInfoController.popTwoLastControllers (ConversationInfoController.kt:628)
  at com.nextcloud.talk.controllers.ConversationInfoController.leaveConversation (ConversationInfoController.kt:552)
  at com.nextcloud.talk.controllers.ConversationInfoController.onAttach$lambda$1 (ConversationInfoController.kt:181)
  at com.nextcloud.talk.controllers.ConversationInfoController.$r8$lambda$VRoZoNH5wtuepilLynILWSZOZYA
  at com.nextcloud.talk.controllers.ConversationInfoController$$ExternalSyntheticLambda8.onClick
  at com.yarolegovich.mp.util.CompositeClickListener.onClick (CompositeClickListener.java:22)
  at android.view.View.performClick (View.java:7455)
  at android.view.View.performClickInternal (View.java:7428)
  at android.view.View.access$3600 (View.java:813)
  at android.view.View$PerformClick.run (View.java:28495)
  at android.os.Handler.handleCallback (Handler.java:938)
  at android.os.Handler.dispatchMessage (Handler.java:99)
  at android.os.Looper.loop (Looper.java:223)
  at android.app.ActivityThread.main (ActivityThread.java:7700)
  at java.lang.reflect.Method.invoke
  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:612)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:997)

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-02-09 14:00:15 +01:00
Marcel Hibbe
c261e526fc
try to avoid IllegalStateException in LockedController
this commit tries to avoid the IllegalStateException in stacktrace below.

I'm not sure how this happened. It came from LockedController#unlock (--> binding?.unlockContainer?.setOnClickListener) which should only be visible when somehow it's "failed" to show the keyguard lockscreen. And somehow for this case the router backstack must have been empty.

Instead to dismiss the current controller, popToRoot() should avoid trying to pop the last remaining controller.

Exception java.lang.IllegalStateException: Trying to pop the current controller when there are none on the backstack.
  at com.bluelinelabs.conductor.Router.popCurrentController (Router.java:118)
  at com.nextcloud.talk.controllers.LockedController.checkIfWeAreSecure (LockedController.kt:147)
  at com.nextcloud.talk.controllers.LockedController.unlock (LockedController.kt:90)
  at com.nextcloud.talk.controllers.LockedController.onViewBound$lambda$0 (LockedController.kt:64)
  at com.nextcloud.talk.controllers.LockedController.$r8$lambda$sNoJ_x5yMnHnIHeqt2umoDILkpk
  at com.nextcloud.talk.controllers.LockedController$$ExternalSyntheticLambda0.onClick
  at android.view.View.performClick (View.java:7745)
  at android.view.View.performClickInternal (View.java:7722)
  at android.view.View.access$3700 (View.java:854)
  at android.view.View$PerformClick.run (View.java:29111)
  at android.os.Handler.handleCallback (Handler.java:938)
  at android.os.Handler.dispatchMessage (Handler.java:99)
  at android.os.Looper.loopOnce (Looper.java:210)
  at android.os.Looper.loop (Looper.java:299)
  at android.app.ActivityThread.main (ActivityThread.java:8319)
  at java.lang.reflect.Method.invoke
  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:556)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1038)

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-02-09 14:00:15 +01:00
Marcel Hibbe
25a53f4b2c
avoid NPE for voice recording slider
Exception java.lang.NullPointerException:
  at com.nextcloud.talk.controllers.ChatController$onViewBound$11.onTouch (ChatController.kt:858)
  at android.view.View.dispatchTouchEvent (View.java:15072)
  at android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:3923)
  at android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:3597)
  at android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:3923)
  at android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:3597)
  at android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:3923)
  at android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:3597)
  at android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:3923)
  at android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:3597)
  at android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:3923)
  at android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:3597)
  at android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:3923)
  at android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:3597)
  at android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:3923)
  at android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:3597)
  at android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:3923)
  at android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:3597)
  at android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:3923)
  at android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:3597)
  at android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:3923)
  at android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:3597)
  at android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:3923)
  at android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:3597)
  at com.android.internal.policy.DecorView.superDispatchTouchEvent (DecorView.java:1016)
  at com.android.internal.policy.PhoneWindow.superDispatchTouchEvent (PhoneWindow.java:1962)
  at android.app.Activity.dispatchTouchEvent (Activity.java:4265)
  at androidx.appcompat.view.WindowCallbackWrapper.dispatchTouchEvent (WindowCallbackWrapper.java:70)
  at com.android.internal.policy.DecorView.dispatchTouchEvent (DecorView.java:974)
  at android.view.View.dispatchPointerEvent (View.java:15335)
  at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent (ViewRootImpl.java:7820)
  at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess (ViewRootImpl.java:7593)
  at android.view.ViewRootImpl$InputStage.deliver (ViewRootImpl.java:6927)
  at android.view.ViewRootImpl$InputStage.onDeliverToNext (ViewRootImpl.java:6984)
  at android.view.ViewRootImpl$InputStage.forward (ViewRootImpl.java:6950)
  at android.view.ViewRootImpl$AsyncInputStage.forward (ViewRootImpl.java:7148)
  at android.view.ViewRootImpl$InputStage.apply (ViewRootImpl.java:6958)
  at android.view.ViewRootImpl$AsyncInputStage.apply (ViewRootImpl.java:7205)
  at android.view.ViewRootImpl$InputStage.deliver (ViewRootImpl.java:6931)
  at android.view.ViewRootImpl$InputStage.onDeliverToNext (ViewRootImpl.java:6984)
  at android.view.ViewRootImpl$InputStage.forward (ViewRootImpl.java:6950)
  at android.view.ViewRootImpl$InputStage.apply (ViewRootImpl.java:6958)
  at android.view.ViewRootImpl$InputStage.deliver (ViewRootImpl.java:6931)
  at android.view.ViewRootImpl.deliverInputEvent (ViewRootImpl.java:10422)
  at android.view.ViewRootImpl.doProcessInputEvents (ViewRootImpl.java:10270)
  at android.view.ViewRootImpl.enqueueInputEvent (ViewRootImpl.java:10226)
  at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent (ViewRootImpl.java:10554)
  at android.view.InputEventReceiver.dispatchInputEvent (InputEventReceiver.java:259)
  at android.os.MessageQueue.nativePollOnce
  at android.os.MessageQueue.next (MessageQueue.java:335)
  at android.os.Looper.loopOnce (Looper.java:186)
  at android.os.Looper.loop (Looper.java:313)
  at android.app.ActivityThread.main (ActivityThread.java:8751)
  at java.lang.reflect.Method.invoke
  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:571)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1135)

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-02-09 14:00:14 +01:00
Marcel Hibbe
dcc323f0a8
avoid NPE in CallActivity#onDestroy
Exception java.lang.RuntimeException:
  at android.app.ActivityThread.performDestroyActivity (ActivityThread.java:6032)
  at android.app.ActivityThread.handleDestroyActivity (ActivityThread.java:6077)
  at android.app.servertransaction.DestroyActivityItem.execute (DestroyActivityItem.java:47)
  at android.app.servertransaction.ActivityTransactionItem.execute (ActivityTransactionItem.java:45)
  at android.app.servertransaction.TransactionExecutor.executeLifecycleState (TransactionExecutor.java:176)
  at android.app.servertransaction.TransactionExecutor.execute (TransactionExecutor.java:97)
  at android.app.ActivityThread$H.handleMessage (ActivityThread.java:2443)
  at android.os.Handler.dispatchMessage (Handler.java:106)
  at android.os.Looper.loopOnce (Looper.java:226)
  at android.os.Looper.loop (Looper.java:313)
  at android.app.ActivityThread.main (ActivityThread.java:8751)
  at java.lang.reflect.Method.invoke
  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:571)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1135)
Caused by java.lang.NullPointerException:
  at com.nextcloud.talk.activities.CallActivity.onDestroy (CallActivity.java:1244)
  at android.app.Activity.performDestroy (Activity.java:8571)
  at android.app.Instrumentation.callActivityOnDestroy (Instrumentation.java:1364)
  at android.app.ActivityThread.performDestroyActivity (ActivityThread.java:6019)

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-02-09 14:00:14 +01:00
Nextcloud bot
5ab9ffbb71
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-02-09 03:53:21 +00:00
Nextcloud bot
2454efc47b
Fix(l10n): 🛠️ Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-02-09 03:53:03 +00:00
Andy Scherzinger
45f6e3b474
switch scrolling style to jump straight to "0"
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2023-02-08 12:30:21 +01:00
Andy Scherzinger
5dfbb83375
ensure buttons won't overlap
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2023-02-08 10:59:45 +01:00
Andy Scherzinger
ddc5c06d71
optimize elevation button
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2023-02-08 09:39:41 +01:00
Andy Scherzinger
d34ba85461
Replace imageButton with MaterialButton and apply primary tonal dynamic coloring
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2023-02-08 09:00:13 +01:00
Andy Scherzinger
5cda8fc50d
Add ability to mark a room as unread which marked the last message of the room as unread on server-side
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2023-02-07 22:39:27 +01:00
Andy Scherzinger
f173cacf0b
Activate mark-as-unread on message level for everyone
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2023-02-07 11:47:44 +01:00
Nextcloud bot
b0402e0ef6
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-02-07 03:44:00 +00:00
Nextcloud bot
179711e207
Fix(l10n): 🛠️ Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-02-07 03:43:42 +00:00
Andy Scherzinger
85ad4d499e
optimize for rtl/ltr and improve a11y
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2023-02-06 17:56:05 +01:00
rapterjet2004
df3a27a8aa
Implemented scroll suggestions from marcel
Signed-off-by: Julius Linus <juliuslinus1@gmail.com>
2023-02-06 17:56:05 +01:00
rapterjet2004
7ad16c22eb
forgot to add the copyright text that nobody reads in the icon file
Signed-off-by: Julius Linus <juliuslinus1@gmail.com>
2023-02-06 17:55:59 +01:00
rapterjet2004
7da9c475e3
Added A scroll down button + new icon + new styles for that button
Signed-off-by: Julius Linus <juliuslinus1@gmail.com>
2023-02-06 17:55:51 +01:00
Nextcloud bot
47ec695c29
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-02-06 03:39:33 +00:00
Nextcloud bot
d1fa1e75bd
Fix(l10n): 🛠️ Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-02-06 03:39:15 +00:00
Nextcloud bot
a517622252
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-02-05 03:40:31 +00:00
Nextcloud bot
c76f5e879d
Fix(l10n): 🛠️ Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-02-05 03:40:12 +00:00
Nextcloud bot
b8a1de2d09
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-02-04 03:44:13 +00:00
Nextcloud bot
c360de3b91
Fix(l10n): 🛠️ Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-02-04 03:43:55 +00:00
Nextcloud bot
bf5e63cb71
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-02-03 03:45:21 +00:00
Nextcloud bot
51952e0916
Fix(l10n): 🛠️ Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-02-03 03:45:03 +00:00
Nextcloud bot
5bde11cbaa
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-02-02 03:45:24 +00:00
Nextcloud bot
958fd20d8b
Fix(l10n): 🛠️ Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-02-02 03:45:05 +00:00
Marcel Hibbe
91f0634c74
Fix CI warnings
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-02-01 16:29:50 +01:00
Marcel Hibbe
6109496ab9
Show toast whenever someone raised the hand
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-02-01 16:05:04 +01:00
Marcel Hibbe
7e3161e7f8
Add raise hand icon to participant in call screen
introduce linear layout for name/audio-off/raise-hand to avoid gaps

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-02-01 14:00:09 +01:00
Andy Scherzinger
48f531459c
Add raise(d)-hand icon
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2023-02-01 12:57:42 +01:00
Daniel Calviño Sánchez
4bd3cc826c
Keep track of raised hands by remote participants
Note the slight difference in naming between the signaling message
("raiseHand", the action) and the stored data ("RaisedHand", the record
of the action).

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2023-02-01 12:57:41 +01:00
Daniel Calviño Sánchez
de44370710
Add listener for "raiseHand" signaling message
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2023-02-01 12:57:40 +01:00
Nextcloud bot
fd8f3a21c2
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-02-01 03:48:19 +00:00
Nextcloud bot
d778424036
Fix(l10n): 🛠️ Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-02-01 03:48:01 +00:00
Marcel Hibbe
22db09d721
move initFeaturesVisibility to onStart
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-01-31 15:55:13 +01:00
Marcel Hibbe
eca05a434a
fix strings
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-01-31 15:55:13 +01:00
Marcel Hibbe
4957e1f5da
add system messages for audio_recording_*
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-01-31 15:55:12 +01:00
Marcel Hibbe
401bb6e2cf
Fix to check value for "recording"
with this fix it's also not necessary to check for HPB in the app. The "recording" value from capabilities is set accordingly on server side.

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-01-31 15:55:12 +01:00
Marcel Hibbe
5cc2a6d531
Don't show toast when dismiss the recording stop dialog
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-01-31 15:55:12 +01:00
Marcel Hibbe
869dc86757
add tests for CallRecordingViewModel
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-01-31 15:55:11 +01:00
Marcel Hibbe
4fee81c460
WIP. add test for CallRecordingViewModel
fails for now...

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-01-31 15:55:11 +01:00
Marcel Hibbe
97298c8169
Avoid to set RecordingStartedState twice
RecordingStartedState is set when the signaling message is received. There is no need to set this by CallStartRecordingObserver. Otherwise the toast "The call is being recorded" would have been shown twice when starting the recording.

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-01-31 15:55:10 +01:00
Marcel Hibbe
39882e6325
Use constant for normal closure
regarding the name and code, see https://www.rfc-editor.org/rfc/rfc6455#section-7.4

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-01-31 15:55:10 +01:00
Marcel Hibbe
bcf9f25596
Vibrate and show info when call recording starts
...or when entering a call where recording is in progress.

+ extract vibration handling to util

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-01-31 15:55:10 +01:00
Marcel Hibbe
9f5c85cd2e
Fix spotbugs + codacy warnings
will be reverted for raise hands feature when multiple conditions are checks..

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-01-31 15:55:10 +01:00
Marcel Hibbe
707901479b
Add "This call is being recorded" hint
...when participant has no permissions to stop the recording but clicks on the recording icon.

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-01-31 15:55:10 +01:00
Marcel Hibbe
a029530eda
Remove animation for call recording icon
because it's not done on web and iOS.

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-01-31 15:55:09 +01:00
Marcel Hibbe
bef19a31fb
remove unused code
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-01-31 15:55:09 +01:00
Marcel Hibbe
7c3faa658d
fix to keep sound output icons white
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-01-31 15:55:09 +01:00
Marcel Hibbe
a37edc4421
MagicWebSocketInstance.java -> WebSocketInstance.kt
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-01-31 15:55:09 +01:00
Marcel Hibbe
690a174f64
resolve lint warnings
unused resource

Redundant label on activity

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-01-31 15:55:09 +01:00
Marcel Hibbe
a8a9d6f25e
show recording controls depending on moderator state
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-01-31 15:55:08 +01:00
Marcel Hibbe
1aafc9989d
get recording status by signaling
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-01-31 15:55:08 +01:00
Marcel Hibbe
4834afaf7e
read recording state when enter call.
prepare to set recording state by signaling message (waiting for PRs from Daniel)

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-01-31 15:55:08 +01:00
Marcel Hibbe
1d002b6a4d
use real endpoints instead faked ones
- fix api
- add error state for recording model

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-01-31 15:55:08 +01:00
Marcel Hibbe
cdf70282e4
fix call recording design
fix call recording design after merge of fresco->coil migration

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-01-31 15:55:08 +01:00
Marcel Hibbe
0a3b4492ef
fix to show more call options without in full saturation
delete unnecessary setTint for audioOutputButton

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-01-31 15:55:07 +01:00
Marcel Hibbe
e1cca6de00
fix to show stop recording confirm dialog
fix to show stop recording confirm dialog if it was dismissed without a click action beforehand

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-01-31 15:55:07 +01:00
Marcel Hibbe
7b48b8fc1f
set more call actions visibility depending on available features
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-01-31 15:55:07 +01:00
Marcel Hibbe
c77013bb75
set recording icons depending on state
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-01-31 15:55:07 +01:00
Marcel Hibbe
fcef4b9c9b
add call recording animation
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-01-31 15:55:06 +01:00
Marcel Hibbe
bafe9198eb
add ViewModel to start/stop recording
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-01-31 15:55:06 +01:00
Marcel Hibbe
bb53982dd1
use CallRecordingRepository
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-01-31 15:55:06 +01:00
Marcel Hibbe
6365554692
add isCallRecordingAvailable
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-01-31 15:55:06 +01:00
Marcel Hibbe
17f8144dc7
add system messages for call recording
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-01-31 15:55:06 +01:00
Marcel Hibbe
c663035080
add recording related buttons to call screen
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-01-31 15:55:05 +01:00
Nextcloud bot
f742e7e6f1
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-01-31 03:52:34 +00:00
Nextcloud bot
69504dc112
Fix(l10n): 🛠️ Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-01-31 03:52:15 +00:00
Nextcloud bot
5bc0fe4105
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-01-30 03:48:53 +00:00
Nextcloud bot
20a408411a
Fix(l10n): 🛠️ Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-01-30 03:48:34 +00:00
Nextcloud bot
aded623d46
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-01-29 03:43:25 +00:00
Nextcloud bot
864db21c75
Fix(l10n): 🛠️ Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-01-29 03:43:05 +00:00
Nextcloud bot
4301f50850
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-01-28 03:46:00 +00:00
Nextcloud bot
7cefe47b01
Fix(l10n): 🛠️ Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-01-28 03:45:39 +00:00
Nextcloud bot
54fa76da4b
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-01-27 06:50:33 +00:00
Nextcloud bot
10d0c89073
Fix(l10n): 🛠️ Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-01-27 03:52:42 +00:00
Nextcloud bot
343d8a37f8
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-01-26 04:01:45 +00:00
Nextcloud bot
bd964825b6
Fix(l10n): 🛠️ Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-01-26 04:01:26 +00:00
Marcel Hibbe
86290d8f80
improve voice message quality
first it was tried with sampling rate 44100 but this showed an error on safari when try to playback.

by direct comparison to 44100, 22050 has lower quality but it's totally okay compared to the quality before when no sampling rate was set. I'm not sure why it failed on safari, because the iOS app also uses 44100.

see https://github.com/nextcloud/talk-android/pull/2714

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-01-25 11:42:56 +01:00
Nextcloud bot
e6757f397e
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-01-25 03:59:24 +00:00
Nextcloud bot
3d307f861e
Fix(l10n): 🛠️ Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-01-25 03:59:05 +00:00
Nextcloud bot
eca47b8bc7
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-01-24 03:41:19 +00:00
Nextcloud bot
5f78eb5fc0
Fix(l10n): 🛠️ Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-01-24 03:41:00 +00:00
Nextcloud bot
7d893cdbb9
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-01-23 03:44:13 +00:00
Nextcloud bot
72ecd9b8bd
Fix(l10n): 🛠️ Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-01-23 03:43:54 +00:00
Nextcloud bot
db5e26d7d5
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-01-22 03:39:57 +00:00
Nextcloud bot
6ab03e469a
Fix(l10n): 🛠️ Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-01-22 03:39:39 +00:00
Nextcloud bot
c57265ccfa
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-01-21 04:03:49 +00:00
Nextcloud bot
0717133653
Fix(l10n): 🛠️ Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-01-21 04:03:30 +00:00
Marcel Hibbe
11d089485e
avoid NPE when answering call
this could happen very rarely when clicking very fast to accept the call before the conversation was set.

Exception java.lang.NullPointerException:
  at com.nextcloud.talk.activities.CallNotificationActivity.proceedToCall (CallNotificationActivity.kt:156)
  at com.nextcloud.talk.activities.CallNotificationActivity.initClickListeners$lambda$0 (CallNotificationActivity.kt:126)
  at com.nextcloud.talk.activities.CallNotificationActivity.$r8$lambda$0cnB_UmYcTD4PyxIBSZCZs1m_6s
  at com.nextcloud.talk.activities.CallNotificationActivity$$ExternalSyntheticLambda0.onClick
  at android.view.View.performClick (View.java:6612)
  at android.view.View.performClickInternal (View.java:6581)
  at android.view.View.access$3100 (View.java:785)
  at android.view.View$PerformClick.run (View.java:25904)
  at android.os.Handler.handleCallback (Handler.java:873)
  at android.os.Handler.dispatchMessage (Handler.java:99)
  at android.os.Looper.loop (Looper.java:280)
  at android.app.ActivityThread.main (ActivityThread.java:6706)
  at java.lang.reflect.Method.invoke
  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:493)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:858)

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-01-20 09:31:44 +01:00
Marcel Hibbe
aec1f63da2 avoid NPE on hangup
Exception java.lang.NullPointerException:
  at com.nextcloud.talk.activities.CallActivity.hangupNetworkCalls (CallActivity.java:1749)
  at com.nextcloud.talk.activities.CallActivity.hangup (CallActivity.java:1741)
  at com.nextcloud.talk.activities.CallActivity.lambda$initClickListeners$8$com-nextcloud-talk-activities-CallActivity (CallActivity.java:465)
  at com.nextcloud.talk.activities.CallActivity$$ExternalSyntheticLambda16.onClick
  at android.view.View.performClick (View.java:7792)
  at android.view.View.performClickInternal (View.java:7769)
  at android.view.View.access$3800 (View.java:910)
  at android.view.View$PerformClick.run (View.java:30218)
  at android.os.Handler.handleCallback (Handler.java:938)
  at android.os.Handler.dispatchMessage (Handler.java:99)
  at android.os.Looper.loopOnce (Looper.java:226)
  at android.os.Looper.loop (Looper.java:313)
  at android.app.ActivityThread.main (ActivityThread.java:8751)
  at java.lang.reflect.Method.invoke
  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:571)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1135)

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-01-20 08:10:05 +00:00
Nextcloud bot
7b60780ec5
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-01-20 03:43:15 +00:00
Nextcloud bot
7db09f5b2d
Fix(l10n): 🛠️ Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-01-20 03:42:57 +00:00
Nextcloud bot
495e5aed2d
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-01-20 02:32:39 +00:00
Nextcloud bot
11d79737de
Fix(l10n): 🛠️ Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-01-20 02:32:19 +00:00
Marcel Hibbe
002aeb0b9d
fix to show author above location map
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-01-19 11:10:58 +01:00
Marcel Hibbe
3e0026d49d
fix to always show author name in group conversations
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-01-19 11:10:18 +01:00
Daniel Calviño Sánchez
53c9c1cf8c Do not create offer for received screen share
When the HPB is not used and a PeerConnectionWrapper is created it
always sent an offer if the local session ID is higher than the remote
session ID. However, in the case of screen shares the participant
sharing the screen always sends an offer, no matter the session ID.
Therefore, when that offer was received the new PeerConnectionWrapper
object sent a new offer, which in turn created an extra connection in
the browser.

Although the screen share connection happens to work the underlying
behaviour was wrong, so now no offer is sent for received screen share
connections and it is always waited until the offer is sent by the other
participant.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2023-01-18 15:16:53 +00:00
Marcel Hibbe
4ccf8ac5a2
move logic to getPayloadForImageLoader
logic for setting the placeholder was moved to getPayloadForImageLoader.
This is a better solution than in commit
9557bec9 where the onBind method had to be called in between other code.

This is still not the best solution because getPayloadForImageLoader now contains more logic than it should (which is also not only responsible for the placeholder). Anyway as this is a hotfix it's the best solution for the moment.

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-01-18 10:18:29 +01:00
Marcel Hibbe
ffcd56375e
fix to hide avatars in one to one conversations.
follow up to commit 7464e6994b673d2b575903a76752bf39bed9d622

the problem was that the "super" methods also contain logic to show/hide the avatar. So this result must be overwritten again after calling the super method.

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-01-18 10:18:28 +01:00
Marcel Hibbe
90d3d7d217
fix to show placeholder image if vcf contact has no photo
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-01-18 10:18:28 +01:00
Marcel Hibbe
99c6d77b17
set fallback placeholder for loadImage
set fallback placeholder if somehow null was passed as a placeholder

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-01-18 10:18:28 +01:00
Marcel Hibbe
5ba6148273
fix to immediately view placeholder + set min height
without this fix, "getPayloadForImageLoader" was called before the placeholder was set (so it was null until getPayloadForImageLoader was called again after ~30seconds.). This is fixed by calling the super method at the end of "onBind".

min height was set to avoid very tiny previews (like for the placeholders)

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-01-18 10:18:28 +01:00
Marcel Hibbe
2ddb0782f3
fix to set placeholder images in chat
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-01-18 10:18:28 +01:00
Nextcloud bot
1a334c8861
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-01-18 03:39:04 +00:00
Nextcloud bot
e5f5e4bbaa
Fix(l10n): 🛠️ Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-01-18 03:38:46 +00:00
Marcel Hibbe
1d9868daa6
remove try-catch for NPEs for bindings
since null checks are done for the nullable bindings by PR #2694, the try-catch blocks arent necessary anymore.

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-01-17 08:37:42 +01:00
Marcel Hibbe
b95399750d
simplify ControllerViewBindingDelegate
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-01-17 08:12:18 +01:00
Marcel Hibbe
b45794b0ca
remove withNullableControllerViewBinding
it seems async calls are not cancelled reliable so it was decided to always check for null bindings to avoid NPEs

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-01-17 08:12:18 +01:00
Marcel Hibbe
4124a65c7a
make ControllerViewBindingDelegate nullable
check nullable bindings in all controllers

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-01-17 08:12:17 +01:00
Nextcloud bot
08d64c7298
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-01-17 03:39:13 +00:00
Nextcloud bot
9dbe452304
Fix(l10n): 🛠️ Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-01-17 03:38:55 +00:00
Daniel Calviño Sánchez
67e259f792 Simplify ending the peer connections
The peer connections will be of either "video" or "screen" type, so they
can be simply removed based on the session id and an explicit type.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2023-01-16 09:05:51 +00:00
Daniel Calviño Sánchez
9ae969b0f8 Split call participants and peer connections
Instead of trying to create a video peer connection for any joined
participant now only a call participant is created for any joined
participant, and a video peer connection is created only for those
participants that are publishing audio or video.

If a call participants does not have a video peer connection the call
participant is now seen as "connected" from the UI, as there is no need
to show a progress bar for that participant.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2023-01-16 09:05:51 +00:00
Daniel Calviño Sánchez
2cb7572dbc Extract methods to add and remove call participants
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2023-01-16 09:05:51 +00:00
Daniel Calviño Sánchez
ed5e8fc82e Use helper class to keep track of the participants in a call
As CallParticipantList starts listening on the signaling messages as
soon as it is created it needs to be created and destroyed right before
entering and exiting a call. Otherwise it could receive messages on
other states (for example, while the "connection timeout" message is
shown) and thus once the local participant joined the event would not
include the other participants already in the call as joined (although
they would be anyway reported as unchanged).

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2023-01-16 09:05:51 +00:00
Daniel Calviño Sánchez
ab72db7a10 Add helper class to keep track of the participants in a call
For now only the same signaling messages that were already handled are
still handled; in the future it could be extended to handle other
messages, like the one sent by the external signaling server when a
participant leaves the room (in some cases no participants update
message is sent if the participant leaves the call and room at the same
time, which causes the participants to still be seen as in call until a
new update is received).

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2023-01-16 09:05:51 +00:00
Daniel Calviño Sánchez
0a3f515bb6 Observe only the self peer connection
The observers were created for any peer connection, but after recent
changes they ignored all changes but those from the self peer
connection. Therefore it is enough to just add an explicit listener on
that peer connection rather than on all of them.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2023-01-16 09:05:51 +00:00
Daniel Calviño Sánchez
6728e3f063 Do not handle connection state changes to "closed"
The connection state changes to "closed" only when the connection is
closed. However, closing a connection does not fire any event (not even
the "iceConnectionStateChanged" event), so the event handler can be
removed as it will never be executed.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2023-01-16 09:05:51 +00:00
Daniel Calviño Sánchez
534bbddc88 Create and destroy ParticipantDisplayItems based on call participants
The ParticipantDisplayItems were created and destroyed based on the peer
connections. Now a ParticipantDisplayItem of "video" type is associated
to a call participant, while an additional item is created and destroyed
depending on the state of the screen peer connection of the call
participant.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2023-01-16 09:05:51 +00:00
Daniel Calviño Sánchez
e17a999812 Rename methods to add and remove ParticipantDisplayItems
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2023-01-16 09:05:51 +00:00
Daniel Calviño Sánchez
5681084a14 Create and destroy helper listeners based on call participants
The listeners for call participant messages and for the call participant
nick provided by offers / answers were created and destroyed based on
the peer connections, although they were implicitly associated to a call
participant. Now they are explicitly created and destroyed based on its
associated call participant.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2023-01-16 09:05:51 +00:00
Daniel Calviño Sánchez
175944e932 Move handling of call participants to its own class
CallParticipant provides a read-only CallParticipantModel and internally
handles the data channel and peer connection events that modify the
model. Nevertheless, the CallParticipant requires certain properties to
be externally set, like the userId or the peer connections.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2023-01-16 09:05:50 +00:00
Daniel Calviño Sánchez
4aef76e347 Keep track of the stream in the peer connection
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2023-01-16 09:05:50 +00:00
Daniel Calviño Sánchez
18f21c4f48 Update ParticipantDisplayItem from CallParticipantModel
Instead of explicitly setting the values on the ParticipantDisplayItems
now the values are set on the CallParticipantModels, and the items are
automatically updated from their model when they change.

Different items are still used for the audio/video and screen shares of
the same participant, so the type is used to select from which
properties of the model is the item updated.

As the model may be updated from background threads it is explicitly
observed by the items from the main thread using a Handler shared by all
the items.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2023-01-16 09:05:50 +00:00
Daniel Calviño Sánchez
d72648379e Add model for (remote) call participants
Clients that modify the model would define the variables using the
mutable subclass, while clients that only need to access the model are
expected to use the read-only base class.

The read-only class provides an observer; as it is expected that the
model will be modified from background threads but observed from the
main thread the observer can be registered along a handler to be
notified on its thread, independently of on which thread the values were
set.

Currently there does not seem to be a need to observe each value on its
own, so the observer is notified in a coarse way when any value changes.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2023-01-16 09:05:50 +00:00
Daniel Calviño Sánchez
8a316d94f5 Notify that data set changed automatically when display item changes
Instead of explicitly calling "notifyDataSetChanged" after setting
values on a ParticipantDisplayItem now the adapter observes all its
items and calls "notifyDataSetChanged" automatically when any of them
changes.

Although this adds some boilerplate code it will make possible to update
the ParticipantDisplayItems and automatically propagate the changes to
the adapter when a model changes, rather than having to explicitly do it
from the CallActivity.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2023-01-16 09:05:50 +00:00
Daniel Calviño Sánchez
d67b04dff8 Reorder attributes
Generic final attributes first, followed by object specific final
attributes and then other object attributes.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2023-01-16 09:05:50 +00:00
Daniel Calviño Sánchez
5fe9154c9a Declare attributes set just once in constructor as "final"
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2023-01-16 09:05:50 +00:00
Daniel Calviño Sánchez
e887fde2a3 Remove unused getters and setters
Note that the session ID, user ID and the stream type attributes are
still kept, as they can be useful to identify the instance when
debugging.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2023-01-16 09:05:50 +00:00
Daniel Calviño Sánchez
339d65dff8 Handle the raw ICE connection state in the views
Rather than just providing a coarse "connected" or "not connected" value
now the views receive the raw ICE connection state. Combined with other
properties this will make possible to show a finer grained status (like
done in the WebUI), although for now just "connected" or "not connected"
is still shown as before.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2023-01-16 09:05:50 +00:00
Nextcloud bot
ee0dadaf02
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-01-16 03:39:10 +00:00
Nextcloud bot
2efa5bb72e
Fix(l10n): 🛠️ Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-01-16 03:38:52 +00:00
Nextcloud bot
a635078adb
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-01-15 03:35:52 +00:00
Nextcloud bot
4fb163aea0
Fix(l10n): 🛠️ Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-01-15 03:35:33 +00:00
Nextcloud bot
bd3784c03c
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-01-14 03:37:48 +00:00
Nextcloud bot
95f6be8b6c
Fix(l10n): 🛠️ Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-01-14 03:37:29 +00:00
Nextcloud bot
94628b700e
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-01-13 03:52:28 +00:00
Nextcloud bot
66033adfa0
Fix(l10n): 🛠️ Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-01-13 03:52:07 +00:00
Nextcloud bot
e81461ba80
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-01-12 03:38:17 +00:00
Nextcloud bot
2a247e50ea
Fix(l10n): 🛠️ Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-01-12 03:37:57 +00:00
Nextcloud bot
f0070f09e6
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-01-11 03:39:46 +00:00
Nextcloud bot
2317df8625
Fix(l10n): 🛠️ Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-01-11 03:39:27 +00:00
Nextcloud bot
2c9267be43
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-01-10 03:43:36 +00:00
Nextcloud bot
1df26c1b48
Fix(l10n): 🛠️ Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-01-10 03:43:17 +00:00
Nextcloud bot
964bf17dac
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-01-09 03:40:45 +00:00
Nextcloud bot
0f11b50430
Fix(l10n): 🛠️ Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-01-09 03:40:25 +00:00
Nextcloud bot
be17f8a0ef
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-01-08 03:37:19 +00:00
Nextcloud bot
bec815ecad
Fix(l10n): 🛠️ Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-01-08 03:36:59 +00:00
Nextcloud bot
4af5f7fa57
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-01-07 03:37:13 +00:00
Nextcloud bot
14017ae8e4
Fix(l10n): 🛠️ Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-01-07 03:36:52 +00:00
Nextcloud bot
3f4c2eb3a8
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-01-06 03:39:04 +00:00
Nextcloud bot
a574f93112
Fix(l10n): 🛠️ Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-01-06 03:38:44 +00:00
Nextcloud bot
a1b5209269
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-01-05 03:38:53 +00:00
Nextcloud bot
d99fb4674e
Fix(l10n): 🛠️ Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-01-05 03:38:32 +00:00
Nextcloud bot
2b06d0ee41
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-01-04 06:12:38 +00:00
Nextcloud bot
ef9e7d26f5
Fix(l10n): 🛠️ Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-01-04 06:11:33 +00:00
Nextcloud bot
d6e4c35b37
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-01-03 05:47:21 +00:00
Nextcloud bot
6c768158b5
Fix(l10n): 🛠️ Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-01-03 05:46:38 +00:00
Andy Scherzinger
23f94a88a8
Added license header
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-12-30 16:58:45 +01:00
Andy Scherzinger
4574024aae
Add deprecation messages for newly added Kotlin migrations
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-12-30 16:58:44 +01:00
Andy Scherzinger
bb6cb228a7
use improt alias to enforce use of kotlin map function
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-12-30 16:58:44 +01:00
Andy Scherzinger
0fa26cc137
Update to specific kotlin syntax since Java8 and Kotlin 1.8 collide now
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-12-30 16:58:43 +01:00
Andy Scherzinger
36744542e6
Suppress Linter since performOnCLick is called within touch event implementation
... else it would be called twice -> false-positive

Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-12-30 16:58:43 +01:00
Andy Scherzinger
eaf12ef4b5
Add new line at the end of kotlin file
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-12-30 16:58:42 +01:00
Andy Scherzinger
95c3123727
Migrate to new parcelize Implementation for Kotlin 1.8, also extend chatKit MessageInput to provide access to UI elements of that component
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-12-30 16:58:42 +01:00
Nextcloud bot
97b1735ffd
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-12-30 10:17:31 +00:00
Nextcloud bot
9c3c48f881
Fix(l10n): 🛠️ Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-12-30 10:15:41 +00:00
Nextcloud bot
1e4a5ec913
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-12-29 11:23:14 +00:00
Nextcloud bot
b38213d2a1
Fix(l10n): 🛠️ Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-12-29 11:21:03 +00:00
Andy Scherzinger
2ca13f4649
Spotbugs: Defere NPE
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-12-29 11:37:20 +01:00
Andy Scherzinger
b36195dc9a
UI binding can never be null
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-12-29 11:37:20 +01:00
Andy Scherzinger
9ae722659f
Spotbugs: don't doubleCheck Map contains value, just check for null
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-12-29 11:37:19 +01:00
Andy Scherzinger
efdfe83507
Spotbugs: remove NPE deference
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-12-29 11:37:19 +01:00
Andy Scherzinger
8b9996814f
Spotbugs: NPE deference, NPE-equals, unused variable, make vars final, reformat code for line-length 120 chars
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-12-29 11:37:19 +01:00
Andy Scherzinger
a33f3fe400
Spotbug: Simple field is used like an enum
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-12-29 11:37:18 +01:00
Andy Scherzinger
f48575bfec
Spotbug: Method stores return result in local before immediately returning it
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-12-29 11:37:18 +01:00
Andy Scherzinger
c5067b7a60
Spotbug: split message processing to reduce complexity
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-12-29 11:37:00 +01:00
Andy Scherzinger
7b86b02c21
Spotbugs prevent NPR deference
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-12-29 11:37:00 +01:00
Andy Scherzinger
08936279b6
codacy: inefficient use of StringBuffer.toString using call StringBuffer.length instead
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-12-29 11:37:00 +01:00
Andy Scherzinger
b07ee434fe
housekeeping: cleanup after spotbug fixes
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-12-29 11:36:59 +01:00
Andy Scherzinger
8b61808fda
Spotbug: make constructor-called methods final
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-12-29 11:36:59 +01:00
Andy Scherzinger
09012cce6a
Spotbugs: remove superclass field masking fields inherited from BaseActivity
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-12-29 11:36:59 +01:00
Andy Scherzinger
093e6a15bc
Spotbugs: proper equals and hashCode
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-12-29 11:36:58 +01:00
Andy Scherzinger
bf8c113f9a
Spotbugs: prevent possible NPE deference
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-12-29 11:36:58 +01:00
Andy Scherzinger
946ec09315
Spotbug: don't access Array with constant index
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-12-29 11:36:58 +01:00
Andy Scherzinger
ff3dffd051
Spotbugs: literal string comparison
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-12-29 11:36:57 +01:00
Andy Scherzinger
deada5cf94
Spotbug: remove toString() output concatenation
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-12-29 11:36:57 +01:00
Andy Scherzinger
6cd0481d14
remove unneeded logging statement
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-12-29 11:36:57 +01:00
Andy Scherzinger
7eef68ef36
use proper register-method instead of reflection
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-12-29 11:36:56 +01:00
Andy Scherzinger
7a4785e083
Spotbugs: precize allocation of a collection
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-12-29 11:36:56 +01:00
Andy Scherzinger
698ebdfd1c
remove unneeded toString() call
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-12-29 11:36:56 +01:00
Andy Scherzinger
7261f75549
Spotbugs: remove needless boxing of boolean constant
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-12-29 11:36:52 +01:00
Daniel Calviño Sánchez
4516de4add Remove no longer needed condition
Now that the event is posted only for proximity sensor changes the
condition is no longer needed.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2022-12-28 15:48:46 +01:00
Daniel Calviño Sánchez
5d7b5160b7 Rename PeerConnectionEvent to ProximitySensorEvent
Proximity sensor events should not have been part of
PeerConnectionEvent. However, now that all the peer connection related
properties were removed the remaining event can be renamed to something
more accurate.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2022-12-28 15:48:45 +01:00
Daniel Calviño Sánchez
c8398695f4 Remove no longer needed code after removing EventBus message
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2022-12-28 15:48:45 +01:00
Daniel Calviño Sánchez
34498efa72 Rewrite if/else chain as if/return blocks
Just a matter of preference :-)

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2022-12-28 15:48:45 +01:00
Daniel Calviño Sánchez
04f1679e2a Add observer for peer connections
The observer is just an adapter for the "PeerConnection.Observer"
provided by the WebRTC library; a custom observer is used to expose only
the events needed outside "PeerConnectionWrapper".

For now only the same events that were already handled are taken into
account, but at a later point additional events (like "onAddTrack"
instead of "onAddStream", which is deprecated) could be added too.

Note that the thread used to handle the events has changed; the EventBus
subscriber mode was "MAIN", but as the events were posted from a
PeerConnection observer, which run in a worker thread rather than in the
main thread, the subscriber was executed in the main thread rather than
in the same thread as the poster. Due to this the actions performed by
the handler now must be explicitly run in the main thread.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2022-12-28 15:48:45 +01:00
Daniel Calviño Sánchez
fcbfc1926d Post MediaStreamEvents for each connection state
Rather than simplifying the states to "CONNECTED" and "DISCONNECTED" now
the raw state is posted, and the handler then decides how to treat them
(which, for now, is exactly as before).

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2022-12-28 15:48:45 +01:00
Daniel Calviño Sánchez
337f3d4b5e Extract methods to handle connections and disconnections of peers
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2022-12-28 15:48:45 +01:00
Daniel Calviño Sánchez
4457e92504 Generalize PUBLISHER_FAILED event
Rather than emitting PUBLISHER_FAILED when the publisher connection
fails now PEER_FAILED is emitted when any connection fails, and the
handler checks if the connection was the publisher one to apply the
specific behaviour.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2022-12-28 15:48:45 +01:00
Daniel Calviño Sánchez
64c4f8c7ee Remove unneeded condition
The publisher peer connection when the HPB is used is a sender only
connection, so it never adds or removes a remote stream.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2022-12-28 15:48:45 +01:00
Daniel Calviño Sánchez
30aafed0e8 Post MediaStreamEvent when the stream is actually added
The MediaStreamEvent was posted when the connection with the remote peer
was established. However, the MediaStream is added earlier (as soon as
the remote description is received), so the event is moved to better
reflect that.

Note that checking if the connection is an MCU publisher is no longer
needed, as publisher connections are sender only and therefore no remote
stream is added for publisher connections.

In any case, note that the stream will not start until the connection is
established, and a progress bar will be anyway shown on the
ParticipantDisplayItem until it is connected.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2022-12-28 15:48:45 +01:00
Daniel Calviño Sánchez
29117e8b1b Get user ID from signaling message when creating ParticipantDisplayItem
The user ID set when creating the ParticipantDisplayItem was got from
the join event when the external signaling server was used, and from an
API call when the internal signaling server was used. However, the user
ID is already known from the signaling message that updates the
participant list, and is the one set on the ParticipantDisplayItems
when a participant joins the call. Therefore the other sources are not
needed, so now it is unified to always use the value from the signaling
message.

Note that in the rare cases in which a ParticipantDisplayItem is created
before the participant is seen as in the call the user ID will be
temporary unknown, although it will be automatically fixed once the
participant list update is received. Moreover, even if the other sources
were used it was not guaranteed that the user ID was known, so this
should not be a problem.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2022-12-28 15:48:45 +01:00
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
Daniel Calviño Sánchez
29d0574667 Create ParticipantDisplayItem on media event if it does not exist yet
Instead of creating a new ParticipantDisplayItem from scratch, which
resets the full grid, now the existing one is updated; a new one is
created only if no item existed already for the session and video stream
type of the media event.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2022-12-28 15:41:46 +01:00
Daniel Calviño Sánchez
dc53023572 Update displayed nick when received in offers or answers
The nick was displayed when updated through a data channel message, or
when a ParticipantDisplayItem was created and the nick was already
received. However, when the HPB is not used the nick is not sent after a
connection is established, as it was sent already in the offer or
answer. The nick from the offer or answer has not been received yet when
the ParticipantDisplayItem is initially created, so the nick only
appeared because a new ParticipantDisplayItem is created again when the
connection is finally established. Due to all that the displayed nick is
now updated as soon as it is received in an offer or answer, which
ensures that the nick is shown independently of when was the
ParticipantDisplayItem created.

Note that this only applies to non-HPB scenarios; when the HPB is used
the nick is got from the participant list update sent through signaling
messages, so it is already known when creating the display item (in some
very strange cases it might happen that an offer is received before the
participant list was updated, but this should not happen, and in any
case it will be handled at a later point).

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2022-12-28 15:41:46 +01:00
Daniel Calviño Sánchez
3762526318 Rewrite if/else chain as if/return blocks
Just a matter of preference :-)

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2022-12-28 11:47:56 +01:00
Daniel Calviño Sánchez
dceb4a6d79 Add listener for data channel messages
For now only the same data channel messages that were already handled
are taken into account, but at a later point the missing messages
("speaking" and "stoppedSpeaking") could be added too.

Note that the thread used to handle the data channel messages has
changed; the EventBus subscriber mode was "MAIN", but as the messages
were posted from a DataChannel observer, which run in a worker thread
rather than in the main thread, the subscriber was executed in the main
thread rather than in the same thread as the poster. Due to this the
actions performed by the handler now must be explicitly run in the main
thread.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2022-12-28 11:47:55 +01:00
Daniel Calviño Sánchez
a65e56a9ce Remove unneeded condition
If the call is a voice only call there will be no received video tracks
(they would have been stopped when each connection is established), so
changing the enabled state has no effect (as the adapter only tries to
show the received video if it is available).

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2022-12-28 11:47:55 +01:00
Daniel Calviño Sánchez
ac4be52b84 Do not guard code that can not throw the caught exception
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2022-12-28 11:47:55 +01:00
Daniel Calviño Sánchez
af514b142a Reorder code that handles nick changed events
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2022-12-28 11:47:55 +01:00
Daniel Calviño Sánchez
81f353f7f0 Return empty display name rather than default nick from web socket
If the display name is not known whether "Guest" or something else needs
to be shown is not a responsibility of the web socket, so now an empty
string is returned instead.

In practice this should not make any difference, though, as the display
name of users is always known as soon as the user joined, and if the
nick of a guest is not known the UI will set it to "Guest".

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2022-12-28 11:47:55 +01:00
Daniel Calviño Sánchez
0dcdd6161f Move nick handling out of PeerConnectionWrapper
PeerConnectionWrappers should not be concerned with the nick of
participants. Moreover, the nick is included in offers and answers due
to legacy reasons and only when the internal signaling server is used.
Due to that the nick was moved out of PeerConnectionWrapper; although
the handling is now different the end result should be the same (there
might be some differences in very specific sequences of events, but in
any case all this is just a temporary step and any leftover issue should
be addressed once call participants and peer connections are split).

As the PeerConnectionWrapper does not keep track of the nick now the
nick changed event is always emitted when a nick changed data channel
message is received, even if the nick did not actually change.
Nevertheless, before it was anyway always emitted if it was for a user
and only when it was for a guest it was emitted only on real changes. In
any case this is not expected to cause any issue (other than some
unneeded view updates, but that will be addressed at a later point by
updating the views only when the model actually changed).

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2022-12-28 11:47:55 +01:00
Daniel Calviño Sánchez
2eac8c2cba Move default nick out of PeerConnectionWrapper
If the nick is not known whether "Guest" or something else needs to be
shown is a responsability of the UI, so now the PeerConnectionWrapper
just returns an empty string and the UI shows the default guest nick if
needed.

Moreover, the nick stored in the PeerConnectionWrapper was not always
correct, as if no nick was received it was returned as "Guest" even
if the connection belonged to a user. Now "Guest" is used only for
actual guests.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2022-12-28 11:47:55 +01:00
Daniel Calviño Sánchez
68cf4ee028 Use generic data channel message instead of nick specific one
The generic data channel message works fine for receiving, but it could
not be used for sending, because the serialization of the payload failed
(the generated JsonMapper did not call 'writeFieldName("payload")',
apparently because the payload was defined as "Any", so there was no
field name set when serializing the payload contents).

It is very likely that the nick data channel message, which has an
explicit payload type and was used only for sending but not for
receiving, was added back in the day just to work around that
limitation. However, due to how the JsonMappers are generated if several
properties with the same name are defined only the first one will be
parsed, and only those with a value will be serialized. This makes
possible to define first a generic payload property and then a payload
property with an explicit type to have a single data channel message
class that can be used both for sending and receiving.

As the nick data channel message is now no longer needed it was removed.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2022-12-28 11:47:55 +01:00
Daniel Calviño Sánchez
faf25f8071 Replace concrete implementation with interface
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2022-12-28 11:47:55 +01:00
Daniel Calviño Sánchez
65ff4efcb9
Send signaling messages directly from PeerConnectionWrapper
Note that the thread used to send the message does not change; the
EventBus subscriber mode was "BACKGROUND", but as the messages were
posted from a WebSocket handler (when requesting offers to the HPB) and
peer connection observers (when sending offers/answers and candidates,
both with and without HPB), which run in worker threads rather than in
the main thread, the subscriber was executed in the same thread as
the poster.

For legacy reasons, when the internal signaling server is used the
offers and answers are expected to also provide the nick of the local
participant. When the external signaling server is used the field can be
included, but it is just ignored and not sent to the other clients. As
the local participant nick is a value unrelated to the peer connection
and is only needed with one type of signaling server the messages are
adjusted as needed before being sent rather than handling this inside
the PeerConnectionWrapper.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2022-12-27 14:28:57 +01:00
Daniel Calviño Sánchez
58e371c98c
Do not apply "toLowerCase()" on already lower case canonical form
The canonical form is already in lower case (see
https://webrtc.googlesource.com/src/+/79d8df02/sdk/android/api/org/webrtc/SessionDescription.java#29),
so there is no need to apply "toLowerCase()".

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2022-12-27 14:28:57 +01:00
Daniel Calviño Sánchez
473b8b238d
Extract interface to send signaling messages
Like done with SignalingMessageReceiver, an implementation specific to
each signaling server type (internal or external) is added.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2022-12-27 14:28:57 +01:00
Daniel Calviño Sánchez
6b032fc55a
Replace constant String of length 1 with character
Fixes UCPM_USE_CHARACTER_PARAMETERIZED_METHOD issue from SpotBugs.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2022-12-27 14:28:57 +01:00
Daniel Calviño Sánchez
4086499a32
Remove special method to request offers
As the "requestoffer" message is just a signaling message the generic
method can be used instead.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2022-12-27 14:28:57 +01:00
Daniel Calviño Sánchez
37db855170
Use generic message rather than specific one for requesting offers
"requestoffer" messages are compatible with the generic messages, so for
simplicity the generic message is used now instead of having specific
classes just for it.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2022-12-27 14:28:56 +01:00
Daniel Calviño Sánchez
95007882f4
Remove no longer used JSON model
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2022-12-27 14:28:56 +01:00
Daniel Calviño Sánchez
48a64fde7e
Fix message wrapper type in documentation
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2022-12-27 14:28:56 +01:00
Daniel Calviño Sánchez
b4d4cdf219
Remove unused wrapper in the internal signaling server
Messages sent to the internal signaling server need to be serialized
twice, first the signaling message and then the wrapper as a whole. Due
to this the NCMessageWrapper was not actually used.

For simplicity the manual serialization was kept rather than adding
something like "NCMessageWrapperToSend" where a serialized signaling
message could be set before serializing it.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2022-12-27 14:28:56 +01:00
Daniel Calviño Sánchez
e1eca7764f
Replace wrapper with actual message in external signaling server
NCMessageWrapper is used only for messages sent and received by the
internal signaling server. However, it is unused by the external
signaling server, except for getting the NCSignalingMessage, which is
the common message for both signaling servers.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2022-12-27 14:28:55 +01:00
Nextcloud bot
5fe33f47a1
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-12-27 07:13:47 +00:00
Nextcloud bot
df0baba6e2
Fix(l10n): 🛠️ Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-12-27 07:12:37 +00:00
Nextcloud bot
4e86f450f2
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-12-26 06:52:45 +00:00
Nextcloud bot
cd787ae8aa
Fix(l10n): 🛠️ Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-12-26 06:51:52 +00:00
Nextcloud bot
5e276fef80
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-12-25 07:52:26 +00:00
Nextcloud bot
7bbac1e823
Fix(l10n): 🛠️ Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-12-25 07:50:59 +00:00
Nextcloud bot
98d6132416
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-12-24 09:56:54 +00:00
Nextcloud bot
588a64b778
Fix(l10n): 🛠️ Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-12-24 09:55:01 +00:00
Daniel Calviño Sánchez
c4c64df5a6 Remove no longer needed code after removing EventBus message
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2022-12-23 20:44:41 +01:00
Daniel Calviño Sánchez
5e224c5a24 Use listener for participant list messages
Note that the thread used to handle the participant list messages from
the external signaling server does not change; the EventBus subscriber
mode was "BACKGROUND", but as the message was posted from a WebSocket
handler, which runs in a worker thread rather than in the main thread,
the subscriber was executed in the same thread as the poster.

Also note that the removed "userId" remark was not fully accurate;
although some external signaling messages do actually use "userid" those
currently handled to process the users do not, they always use "userId"
(as documented in the SignalingMessageReceiver).

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2022-12-23 20:44:41 +01:00
Daniel Calviño Sánchez
e0c676bb35 Add listener for participant list messages
For now only the same participant list messages that were already
handled are taken into account, but at a later point further messages,
like participants joining or leaving the conversation, could be added
too.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2022-12-23 20:44:41 +01:00
Daniel Calviño Sánchez
c8e77c3d3b Split message receiver for internal and external signaling servers
Note that the thread used to handle and notify messages from the
external signaling server does not change; the EventBus subscriber mode
was "BACKGROUND", but as the message was posted from a WebSocket
handler, which runs in a worker thread rather than in the main thread,
the subscriber was executed in the same thread as the poster.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2022-12-23 20:44:41 +01:00
Daniel Calviño Sánchez
9df56dccda Process signaling message directly in the SignalingMessageReceiver
This will no longer log an error if the room type of the received
message is neither "video" nor "screen". However, that should never
happen, and it would be useful only while debugging, so it is fine to
lose that.

Note that the check is not added to SignalingMessageReceiver itself to
keep it as generic as possible (and due to the low value of adding it as
explained above). Nevertheless, if needed in the future it would be
possible to add a special listener that receives raw messages in order
to validate them and log the errors, if any.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2022-12-23 20:44:20 +01:00
Daniel Calviño Sánchez
bda7d2719b Add listener for call participant messages
Although "unshareScreen" is technically bound to a specific peer
connection it is instead treated as a general message on the call
participant.

Nevertheless, call participant messages will make possible (at a later
point) to listen to events like "raise hand" or "mute" (which, again,
could be technically bound to a specific peer connection, but at least
for now are treated as a general message on the call participant).

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2022-12-23 20:41:34 +01:00
Daniel Calviño Sánchez
d42fe61e89 Add listener for offer messages
Unlike the WebRtcMessageListener, which is bound to a specific peer
connection, an OfferMessageListener listens to all offer messages, no
matter which peer connection they are bound to. This can be used, for
example, to create a new peer connection when a remote offer for which
there is no previous connection is received.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2022-12-23 20:40:01 +01:00
Daniel Calviño Sánchez
476fb59a08 Use temporary SignalingMessageReceiver implementation in CallActivity
Eventually all signaling related code should be moved to a Signaling
class that abstracts the differences between the internal and external
signaling servers, including how messages are sent and listened to. In
the meantime a temporary SignalingMessageReceiver implementation is
added to CallActivity to be able to start using it.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2022-12-23 20:40:01 +01:00
Daniel Calviño Sánchez
45787caf0a Add SignalingMessageReceiver class to listen to signaling messages
For now only WebRTC messages can be listened to, although it will be
extended with other kinds later.

This commit only introduces the base class, although it is not used yet
anywhere; a concrete implementation will be added in a following commit.

The test class is named "SignalingMessageReceiverWebRtcTest" rather than
just "SignalingMessageReceiverTest" to have smaller, more manageable
test classes for each listener kind rather than one large test class for
all of them.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2022-12-23 20:40:01 +01:00
Daniel Calviño Sánchez
0e36002036 Hide and delete no longer needed public methods
Although the rest of the methods are no longer needed since the handling
of WebRTC messages was moved to PeerConnectionWrapper "setSessionId()"
was not needed even before that.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2022-12-23 20:40:01 +01:00
Daniel Calviño Sánchez
4dffd29ceb Move handling of WebRTC messages to PeerConnectionWrapper
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2022-12-23 20:40:01 +01:00
Daniel Calviño Sánchez
f3e04b8e18 Simplify condition
"peerConnectionWrapper" needs to be defined to enter the if and execute
the switch, so just return before the switch if "peerConnectionWrapper"
is null.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2022-12-23 20:40:01 +01:00
Daniel Calviño Sánchez
075ba20cf9 Split handling of "unshareScreen" and WebRTC messages
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2022-12-23 20:40:01 +01:00
Daniel Calviño Sánchez
7b1bfb2c17 Simplify getting the message type
The message type is set for all signaling messages. On the other hand,
the payload type is only set for offers and answers (and, if the message
was sent by the Android app, also for candidates). However, in all those
cases the payload type just duplicates the message type, so the message
type can be assigned directly rather than falling back to it if there is
no payload type.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2022-12-23 20:39:49 +01:00
Daniel Calviño Sánchez
331bf49f73 Fix processing of participant list on reconnections
When the HPB is used the signaling messages can be received even when
the local participant is not currently in the call (for example, when
starting the call timed out without other participant joining, or when
reconnecting due to the publisher connection failing). Therefore if the
local participant is not in the call it should not try to establish a
connection with the other participants and disconnect them instead.

Moreover, if the connection is tried to be established when not
in the call the HPB will prevent that, and the PeerConnectionWrapper
will stay in a limbo state waiting for an offer to be sent. If the local
participant then joins the call the PeerConnectionWrapper will already
exist for the other participants, so no new connections will be created,
but those previous connections will never be finally established.

Additionally, as the signaling messages can be received before the join
call response the participant list could be received while the call
state is "RECONNECTING" or "PUBLISHER_FAILED". In those cases, as long
as the local participant is already in the call, the participant list
should be processed as if the call state was already "JOINED" (otherwise
the connections were not established either).

For simplicity the participant list is now ignored only when the call
state is "LEAVING"; this means that the participant list would be also
processed in the "CONNECTION_TIMEOUT" state, but the signaling message
should not be received anyway in that case.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2022-12-23 11:00:05 +00:00
Daniel Calviño Sánchez
8cdcc63687 Return without further processing if the call is remotely ended
If the call is hung up with a view shutdown (which finishes the
activity) there is no need to do any further processing on the
participant list.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2022-12-23 11:00:05 +00:00
Daniel Calviño Sánchez
379ec8eae8 Fix call state when join call response is received after signaling
When a call is joined the call flags of the local participant change, so
this causes a signaling message to be sent by the server. When the HPB
is used the signaling message is sent through a WebSocket, which is
already connected before joining the call. Therefore, in some cases the
signaling message can be received through the WebSocket even before the
response to the HTTP "joinCall" request.

If there are other participants in the call the call state is changed to
"IN_CONVERSATION" when the signaling message is processed. However, in
the case described above the call state was then set to "JOINED", which
automatically traverses to "CONNECTION_TIMEOUT" if no other call state
was set in 45 seconds. Due to all this the call was joined and the
connections with the other participants were established, but they were
not visible in the UI (although they could be heard) and after 45
seconds the call was left.

To prevent that now the call state is changed to "JOINED" if it was not
already changed to "IN_CONVERSATION" in the meantime.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2022-12-23 11:00:05 +00:00
Andy Scherzinger
528deb1fb4
Merge pull request #2648 from nextcloud/bugfix/2647/fixNpeProcessAutocompleteUserList
avoid NPE in processAutocompleteUserList
2022-12-23 11:50:43 +01:00
Nextcloud bot
23c64b10f9
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-12-23 10:19:11 +00:00
Nextcloud bot
9fec1851b8
Fix(l10n): 🛠️ Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-12-23 10:17:29 +00:00
Marcel Hibbe
d9280d3d98
avoid NPE in processAutocompleteUserList
did not test why this can happen.   autocompleteUser.id must have been null..

Exception java.lang.NullPointerException:
  at com.nextcloud.talk.controllers.ContactsController.processAutocompleteUserList (ContactsController.kt:498)
  at com.nextcloud.talk.controllers.ContactsController.processAutocompleteUserList (ContactsController.kt:482)
  at com.nextcloud.talk.controllers.ContactsController.access$processAutocompleteUserList (ContactsController.kt:90)
  at com.nextcloud.talk.controllers.ContactsController$fetchData$1.onNext (ContactsController.kt:438)
  at com.nextcloud.talk.controllers.ContactsController$fetchData$1.onNext (ContactsController.kt:432)
  at io.reactivex.internal.operators.observable.ObservableRetryPredicate$RepeatObserver.onNext (ObservableRetryPredicate.java:69)
  at io.reactivex.internal.operators.observable.ObservableObserveOn$ObserveOnObserver.drainNormal (ObservableObserveOn.java:201)
  at io.reactivex.internal.operators.observable.ObservableObserveOn$ObserveOnObserver.run (ObservableObserveOn.java:255)
  at io.reactivex.android.schedulers.HandlerScheduler$ScheduledRunnable.run (HandlerScheduler.java:124)
  at android.os.Handler.handleCallback (Handler.java:883)
  at android.os.Handler.dispatchMessage (Handler.java:100)
  at android.os.Looper.loop (Looper.java:237)
  at android.app.ActivityThread.main (ActivityThread.java:7948)
  at java.lang.reflect.Method.invoke
  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:493)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1075)

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-12-23 11:16:53 +01:00
Nextcloud bot
abb88972fd
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-12-22 07:12:15 +00:00
Nextcloud bot
67f2815211
Fix(l10n): 🛠️ Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-12-22 07:11:18 +00:00
Nextcloud bot
e8711dfdc4
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-12-21 03:54:32 +00:00
Nextcloud bot
400858dee5
Fix(l10n): 🛠️ Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-12-21 03:54:09 +00:00
Nextcloud bot
bd4484a486
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-12-20 11:13:10 +00:00
Nextcloud bot
7f2d8bcbd9
Fix(l10n): 🛠️ Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-12-20 11:12:50 +00:00
Nextcloud bot
62079df94e
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-12-20 03:38:36 +00:00
Nextcloud bot
02c51c5032
[tx-robot] Update transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-12-20 03:38:25 +00:00
Álvaro Brey
8bc5735751
RepositoryModule: fix wrong injection for dateUtils
The module class is not supposed to have things injected into it. @Provides-annotated methods
will have their parameters injected, instead.

Signed-off-by: Álvaro Brey <alvaro.brey@nextcloud.com>
2022-12-19 17:35:19 +01:00
Andy Scherzinger
54b1427471
Implement closing for file input/output streams
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-12-19 09:37:06 +01:00
Andy Scherzinger
ae6b7156c0
Implement hasCode based on equals() elements to fullfil hasCode/equals contract
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-12-19 09:37:01 +01:00
Nextcloud bot
a4dabd1fed
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-12-19 03:41:01 +00:00
Nextcloud bot
7670a88d51
[tx-robot] Update transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-12-19 03:40:49 +00:00
Nextcloud bot
3b964670c4
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-12-18 03:33:25 +00:00
Nextcloud bot
9974ed59d5
[tx-robot] Update transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-12-18 03:33:13 +00:00
Nextcloud bot
27fa92b7ff
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-12-17 03:34:28 +00:00
Nextcloud bot
62d6a1793f
[tx-robot] Update transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-12-17 03:34:16 +00:00
Nextcloud bot
d8d3847d89
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-12-16 15:05:34 +00:00
Nextcloud bot
6aede24349
[tx-robot] Update transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-12-16 15:05:20 +00:00
Andy Scherzinger
20ad889206
remove unneeded class cast
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-12-15 13:23:06 +01:00
Andy Scherzinger
d858169668
prevent NPE
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-12-15 13:22:47 +01:00
Marcel Hibbe
eff4b912bd
fix Spot Bugs warning
Possible null pointer dereference in com.nextcloud.talk.utils.PushUtils.updatePushStateForUser(Map, User) due to return value of called method

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-12-15 13:11:42 +01:00
Marcel Hibbe
da8148a134
fix spotbug warning "PRMC: Possibly Redundant Method Calls"
PRMC: In class com.nextcloud.talk.utils.ssl.MagicKeyManager
In class com.nextcloud.talk.utils.ssl.MagicKeyManager
In method com.nextcloud.talk.utils.ssl.MagicKeyManager.chooseClientAlias(String[], Principal[], Socket)
At MagicKeyManager.java:[line 68]
Value getCurrentUser()Lio/reactivex/Maybe;
Method com.nextcloud.talk.utils.ssl.MagicKeyManager.chooseClientAlias(String[], Principal[], Socket) appears to call the same method on the same object redundantly

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-12-15 13:11:41 +01:00
Marcel Hibbe
e238c4c9e5
ensure that there is always a current user
this should also fix the app to start after it always crashed on startup because of https://github.com/nextcloud/talk-android/issues/2531

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-12-15 13:11:41 +01:00
Marcel Hibbe
dd155db6ab
rename method to update PushState for a user
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-12-15 13:11:41 +01:00
Álvaro Brey
a37f947eb9
PushUtils: update only pushState when updating users
This is to work around a race condition where this class would asynchronously overwrite other user attributes
with old values after a user switch.

Co-authored-by: Marcel Hibbe <dev@mhibbe.de>
Signed-off-by: Álvaro Brey <alvaro.brey@nextcloud.com>
2022-12-15 13:11:40 +01:00
Álvaro Brey
2e2d4a9ca3
CurrentUserProviderImpl: ensure only one observer is set up for all threads
Signed-off-by: Álvaro Brey <alvaro.brey@nextcloud.com>
2022-12-15 13:11:40 +01:00
Álvaro Brey
25dd46f95a
UsersDao: fix wrong attribute used in setUserAsActive
Co-authored-by: Marcel Hibbe <dev@mhibbe.de>
Signed-off-by: Álvaro Brey <alvaro.brey@nextcloud.com>
2022-12-15 13:11:40 +01:00
Marcel Hibbe
962b1d4e3a
WIP. replace loop to set current state of users by single UPDATE query
i was able to see that the loop was somehow interrupted during debugging which caused two users to have current =true

this should avoid the problem with the loop.

anyway, this doesn't seem to solve the issue completely as i was able to reproduce it again with the new solution. so maybe there are still more methods/scenarios which can cause this.

additionally, i managed to have all users to have current =false with this new query (while switching accounts very fast and often in ChooseAccountDialogFragment..)

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-12-15 13:11:39 +01:00
Marcel Hibbe
f73d1c14fc
add logging and toasts if current user was null
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-12-15 13:11:39 +01:00
Marcel Hibbe
e9dbcc554a
set user.current by value from userAttributes
this should have no effect but it should ensure "current" is not falsely set to true if the method storeProfile will be used for more scenarios in the future.

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-12-15 13:11:39 +01:00
Marcel Hibbe
d4e545e67d
use setUserAsActive instead of userManager.disableAllUsersWithoutId
just refactoring for now. this doesn't solve the bug!

Problem that needs to be solved:
When adding a new Account (User), it is marked as "current", while for the other logged in users "current" must be unset (-> disabled).

The problem is, that for the old active user, "current" is not unset so there were multiple accounts marked as "current".

In the ChooseAccountDialogFragment, only one of the current accounts is shown at the top. Below the set status field, all accounts are listed that are not marked with "current". So as a result, there can be accounts hidden that were marked as "current".

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-12-15 13:11:35 +01:00
Marcel Hibbe
227b7bc080
remove some logging
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-12-15 10:36:23 +01:00
Marcel Hibbe
7745e75f5f
fix to leave room before loading new one
-> add callback methods to ConductorRemapping to execute after chat room was left. Whenever there is a ChatController on top, it's room is now left, before replacing the controller or pushing another one on top.

this avoids problems where entering a chat before the old one was left led to sessionId="0" for the new chat.

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-12-15 10:36:23 +01:00
Marcel Hibbe
c708104cbe
leave room before remap controller
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-12-15 10:36:23 +01:00
Marcel Hibbe
5bc8436cd3
add more logging
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-12-15 10:36:23 +01:00
Marcel Hibbe
85721b5b4f
fix conductor backstack when chat notification is opened
when opening a chat notification, the old chat should not be kept in the backstack. so when clicking the back button when coming from a chat that was opened by a notification, now the ConversationList opens.

by the way, this also avoids to run into bug #2181 (but it's root cause is not solved yet)

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-12-15 10:36:22 +01:00
Marcel Hibbe
943dfa2a83
add logging to examine issue #2181
# reproduce:
1. click in chat where someone is mentioned.
2. click on the mention
3. go back to first chat

# result:
validSessionId() can be false in onDetach for the second chat when going back to first chat
-> leaveRoom is not executed
-> disposable is not disposed
-> getRoomInfo() continues to execute for old controller
-> e.g. appbar infos can be wrong (wrong avatar/title)

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-12-15 10:36:22 +01:00
Andy Scherzinger
2fca50cc9b
Add locale time formatting to system messages
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-12-15 08:55:24 +01:00
Andy Scherzinger
b3836c007f
Localize time formatting for chat messages
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-12-15 08:33:10 +01:00
Andy Scherzinger
96176c4f1c
pass DateUtils instance to viewHolder
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-12-15 08:33:10 +01:00
jld3103
6aece2940e
Localize time formatting
Signed-off-by: jld3103 <jld3103yt@gmail.com>
2022-12-15 08:33:05 +01:00
Nextcloud bot
1cf881bc9a
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-12-15 03:33:21 +00:00
Nextcloud bot
e574fe4718
[tx-robot] Update transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-12-15 03:33:11 +00:00
Nextcloud bot
d4653c2526
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-12-14 03:36:41 +00:00
Nextcloud bot
3c28f87e97
[tx-robot] Update transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-12-14 03:36:31 +00:00
Nextcloud bot
eaee363fb9
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-12-13 03:46:39 +00:00
Nextcloud bot
3e4587af1f
[tx-robot] Update transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-12-13 03:46:28 +00:00
Nextcloud bot
03bcf26e78
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-12-12 03:33:14 +00:00
Nextcloud bot
09135a9582
[tx-robot] Update transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-12-12 03:33:04 +00:00
Nextcloud bot
44d4e03593
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-12-11 03:44:44 +00:00
Nextcloud bot
13088dd793
[tx-robot] Update transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-12-11 03:44:33 +00:00
Nextcloud bot
67f4e5aec1
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-12-10 03:41:03 +00:00
Nextcloud bot
53f3603f87
[tx-robot] Update transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-12-10 03:40:53 +00:00
Nextcloud bot
fd42492f1e
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-12-09 03:49:29 +00:00
Nextcloud bot
950f402aa4
[tx-robot] Update transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-12-09 03:49:18 +00:00
Nextcloud bot
a18ebe1988
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-12-08 03:34:22 +00:00
Nextcloud bot
b86cd51e0a
[tx-robot] Update transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-12-08 03:34:09 +00:00
Marcel Hibbe
7f37a0fe63
fix drawable for link previews
set drawable of referenceThumbImage to null. this hopefully avoids that wrong images are loaded from recycler view to wrong messages

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-12-07 16:44:29 +01:00
Marcel Hibbe
e869108ac7
avoid to set link preview content from wrong message
there was a report that a message contained the link preview of a previous message. This was most likely because of a recycler view error. Hopefully setting empty values should avoid this now.

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-12-07 16:27:45 +01:00
Marcel Hibbe
f74ad91fd8
make link preview messages able to be swiped left
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-12-07 16:27:44 +01:00
Andy Scherzinger
4c614c06ac
Migrate to emoji2
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-12-07 15:59:01 +01:00
Tim Krüger
b0a68e8193
Merge pull request #2613 from nextcloud/bugfix/2612/fixNpeWhenRingtoneSilent
fix crash when joining call while silent ringtone is set
2022-12-07 14:58:34 +01:00
Marcel Hibbe
269844fbc3
simplify logic to close/keep CallNotificationActivity
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-12-07 14:40:52 +01:00
Marcel Hibbe
d33857e603
remove unused code
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-12-07 14:40:52 +01:00
Marcel Hibbe
e121d32984
add check that missed call notification is not shown accidentally
for example when call is hangup on mobile and immediately after on web, the loop in "checkIfCallIsActive" is still active and might trigger to send the "missed call" notification. Because of this, there is now another check if the "ongoing call" notification is still visible. It makes only sense to show the missed call notification, when the ongoing call notification is still visible.

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-12-07 14:40:52 +01:00
Marcel Hibbe
9c4b0a00c6
remove ringtone logic (only make it depend on notification!)
this commit removes the logic to play the ringtone in CallNotificationActivity. Playing ringtone should only be controlled by the notification channel from OS!

furthermore the checks if a call is stopped or is still ongoing etc was removed from CallNotificationActivity. Instead the CallNotificationActivity now is completely dependent on the notification. If the notification is canceled, the Activity stops. If the Notification is ongoing and hangup of accept call is clicked, then the notification is canceled (including the ringtone).

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-12-07 14:40:47 +01:00
Andy Scherzinger
ca63bc52c6
improve lint score
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-12-07 13:46:07 +01:00
Álvaro Brey
2b646845bf
DirectReplyReceiver: fetch avatar in background
Signed-off-by: Álvaro Brey <alvaro.brey@nextcloud.com>
2022-12-07 13:46:02 +01:00
Tim Krüger
4b46270362
Set minSdkVersion to 23 (Android 6)
Signed-off-by: Tim Krüger <t@timkrueger.me>
2022-12-07 13:45:57 +01:00
Tim Krüger
49da463971
Replace Fresco with Coil
Fresco is replaced with Coil everywhere to make it possible to set 'minSdkVersion'
to 23. But Coil is not used directly to avoid splintering the dependency
everywhere in the code. Coil is wrapped by extension functions for 'ImageView'.

Some shared functionality is moved from 'DisplayUtils' into the
'ImageViewExtensions'.

The exisiting initialization of Coil has also be changed. The usage of the self
initialized OKHttp client is removed. If this one is added the
caching of the http client is used by Coil additionally to memory and
disk cache.

Resolves: #2227, #2376

Signed-off-by: Tim Krüger <t@timkrueger.me>
2022-12-07 13:45:42 +01:00
Tim Krüger
537f375f86
Convert 'ConverstationItem' from Java to Kotlin
This is mandetory to replace Fresco with Coil.

See: #2376, #2227

Signed-off-by: Tim Krüger <t@timkrueger.me>
2022-12-07 13:44:41 +01:00
Nextcloud bot
d90e52b3cd
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-12-07 03:34:40 +00:00
Nextcloud bot
75e29a4da2
[tx-robot] Update transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-12-07 03:34:29 +00:00
Nextcloud bot
efe1296279
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-12-06 03:42:08 +00:00
Nextcloud bot
8acfb1df4c
[tx-robot] Update transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-12-06 03:41:57 +00:00
Marcel Hibbe
3e6c846d62
fix crash when joining call while silent ringtone is set
E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.nextcloud.talk2, PID: 10874
    java.lang.NullPointerException: uri param can not be null.
        at android.media.MediaPlayer.setDataSource(MediaPlayer.java:1058)
        at android.media.MediaPlayer.setDataSource(MediaPlayer.java:1021)
        at com.nextcloud.talk.activities.CallActivity.playCallingSound(CallActivity.java:2643)

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-12-05 12:51:21 +01:00
Nextcloud bot
4991fcceab
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-12-05 03:30:17 +00:00
Nextcloud bot
d209653202
[tx-robot] Update transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-12-05 03:30:07 +00:00
Nextcloud bot
da4521223a
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-12-04 03:29:36 +00:00
Nextcloud bot
7c3ace1a34
[tx-robot] Update transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-12-04 03:29:26 +00:00
Nextcloud bot
1110d7cecc
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-12-03 03:29:52 +00:00
Nextcloud bot
6a5c0d840f
[tx-robot] Update transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-12-03 03:29:41 +00:00
Marcel Hibbe
8ded97ee03
resolve codacy warnings
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-12-02 14:53:46 +01:00
Marcel Hibbe
3d50075bf2
delete some "magic"
= rename some "Magic*" classes

+ implement reactions for it

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-12-02 14:53:45 +01:00
Marcel Hibbe
6b97197c80
react to given reactions inside message
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-12-02 14:53:45 +01:00
Daniel Calviño Sánchez
6466aaea20 Fix reconnection when the web socket was abruptly closed
When the web socket is abruptly closed it is connected again and the
call is rejoined. However, the call was rejoined in a background thread,
so an exception was thrown when trying to modify the views, which
prevented the call from being joined again.

Besides that the call state needs to be explicitly changed, as if the
web socket was connected again while in a call the state would be
already "JOINED" or "IN_CONVERSATION", which prevents the signaling
settings from being fetched again after the permissions check, and
therefore also prevented the call from being joined again.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2022-12-02 06:51:44 +00:00
Nextcloud bot
d908fcfeab
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-12-02 03:31:11 +00:00
Nextcloud bot
0f23bbb064
[tx-robot] Update transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-12-02 03:31:00 +00:00
Nextcloud bot
3458226d4b
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-12-01 03:35:21 +00:00
Nextcloud bot
6c2d2a1a4a
[tx-robot] Update transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-12-01 03:35:10 +00:00
Marcel Hibbe
12cb7e423b fix to move controllers to top
add logging

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-11-30 12:08:23 +00:00
Marcel Hibbe
a37b0cb4aa delete unnecessary "!!" operators
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-11-30 12:08:23 +00:00
Marcel Hibbe
9af3ffa784 fix order of lock screen timeout in settings
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-11-30 12:08:23 +00:00
Nextcloud bot
f2b4c7a64c
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-11-30 03:35:12 +00:00
Nextcloud bot
a35d1f541f
[tx-robot] Update transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-11-30 03:35:00 +00:00
Nextcloud bot
dfab0109e0
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-11-29 03:35:07 +00:00
Nextcloud bot
657b03d6a4
[tx-robot] Update transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-11-29 03:34:56 +00:00
Nextcloud bot
c3125b669a
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-11-28 03:35:17 +00:00
Nextcloud bot
c715cfeef6
[tx-robot] Update transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-11-28 03:35:06 +00:00
Nextcloud bot
bc95264344
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-11-27 03:33:00 +00:00
Nextcloud bot
e50ea178bc
[tx-robot] Update transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-11-27 03:32:48 +00:00
Nextcloud bot
393a6f674f
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-11-26 03:32:49 +00:00
Nextcloud bot
3a7549a7f4
[tx-robot] Update transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-11-26 03:32:39 +00:00
Nextcloud bot
a3eab50195
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-11-25 08:29:08 +00:00
Nextcloud bot
361d3f06b5
[tx-robot] Update transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-11-25 08:28:56 +00:00
Nextcloud bot
c269717c8d
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-11-25 03:38:16 +00:00
Nextcloud bot
5c61efa856
[tx-robot] Update transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-11-25 03:38:05 +00:00
Andy Scherzinger
14c3bd19b6 Show conversation search results first
Fixes #2504

Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-11-23 11:49:40 +00:00
Nextcloud bot
086a0673b7
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-11-23 03:37:14 +00:00
Nextcloud bot
1a9a746a54
[tx-robot] Update transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-11-23 03:37:03 +00:00
Nextcloud bot
7848413691
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-11-22 03:39:09 +00:00
Nextcloud bot
4a0ef454ec
[tx-robot] Update transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-11-22 03:38:56 +00:00
Nextcloud bot
e32b87cc27
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-11-21 03:29:49 +00:00
Nextcloud bot
c8948f6ae0
[tx-robot] Update transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-11-21 03:29:37 +00:00
Nextcloud bot
183eb0c2c5
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-11-20 03:31:21 +00:00
Nextcloud bot
d7297384fa
[tx-robot] Update transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-11-20 03:31:09 +00:00
Tim Krüger
3283eb9502
Merge pull request #2575 from nextcloud/fix-is-in-call-with-video-check
Fix "isInCallWithVideo()" check
2022-11-19 18:28:38 +01:00
Tim Krüger
76c7e34102
Merge pull request #2514 from nextcloud/dependabot/gradle/com.google.android.material-material-1.7.0
Bump material from 1.6.1 to 1.7.0
2022-11-19 18:21:20 +01:00
Daniel Calviño Sánchez
b409f89616 Fix "isInCallWithVideo()" check
The call flags should be checked using bitwise operators; otherwise a
call with phone ("in call | with phone" / "in call + with phone", that
is, "0001 + 1000 = 1001" or "1 + 8 = 9") would be seen as a call with
video ("in call | with video" / "in call + with video",
"0001 + 0100 = 0101" or "1 + 4 = 5"), as "9 >= 5". On the other hand,
using bitwise operators (and only checking against "with video")
succeeds only when the call flags contain "with video" (in the previous
example, "1001 and 0100 = 0000", so it does not succeed).

The "IN_CALL" flag is no longer checked, as "WITH_VIDEO" will be set
only during calls, and therefore checking for "IN_CALL" is not needed.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2022-11-19 17:06:40 +00:00
Nextcloud bot
2f5638be68
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-11-19 03:36:50 +00:00
Nextcloud bot
fcd71fc8b2
[tx-robot] Update transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-11-19 03:36:39 +00:00
Tim Krüger
ff8b664470 Update dependency ImagePicker
In further versions of the ImagePicker library the class 'File' is used
to reference an image. Using 'File' caused the permission problems mentioned
in #2511.

Resolves: #2511
See: d7e643b560

Signed-off-by: Tim Krüger <t@timkrueger.me>
2022-11-18 08:05:11 +00:00
Nextcloud bot
4a4b4859e5
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-11-18 03:29:47 +00:00
Nextcloud bot
93b9d556bb
[tx-robot] Update transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-11-17 03:30:41 +00:00
Daniel Calviño Sánchez
45224741fd
Fix ParticipantDisplayItems not updated on events
The ParticipantDisplayItems were associated to both the session ID and
the video stream type ("video" or "screen"), but the code that gets them
was not updated to include the video stream type in the key.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2022-11-16 15:45:38 +01:00
Daniel Calviño Sánchez
ed54b9f03a
Fix video stream type not included in PeerConnectionEvent
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2022-11-16 15:45:34 +01:00
Daniel Calviño Sánchez
990d551dd0 Fix String comparison using operator rather than "equals()"
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2022-11-16 11:57:53 +00:00
Andy Scherzinger
2e3a2be75d
bump compileSdkVersion to 32
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-11-16 11:15:21 +01:00
Marcel Hibbe
531f7151ef
add more precise text when spreed is not available
spreed usage can be restricted by admins to groups. For this case users should get a error message which also takes this into account. Else it could be frustrating for users to find out why talk  is not working.

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-11-16 09:20:20 +01:00
Nextcloud bot
dfec781486
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-11-16 03:29:07 +00:00
Nextcloud bot
54aa434b87
[tx-robot] Update transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-11-16 03:28:56 +00:00
Nextcloud bot
a0bdf27b34
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-11-15 03:29:26 +00:00
Nextcloud bot
6691fe22b8
[tx-robot] Update transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-11-15 03:29:15 +00:00
Andy Scherzinger
796a2683db
Merge pull request #2563 from nextcloud/use-comparison-operator-rather-than-equals-for-enums
Use comparison operator rather than equals for enums
2022-11-14 13:39:53 +01:00
Nextcloud bot
a81194cb92
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-11-14 10:51:22 +00:00
Nextcloud bot
66963e6028
[tx-robot] Update transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-11-14 10:51:12 +00:00
Tim Krüger
e9aa9f2764
Merge pull request #2503 from nextcloud/fix-remote-participants-display-with-both-video-and-screen-share
Fix remote participants display with both video and screen share
2022-11-14 11:34:28 +01:00
Daniel Calviño Sánchez
9e967bdd4d
Use comparison operator rather than equals for enums in Dagger modules
Fixes SPP_EQUALS_ON_ENUM issue from SpotBugs.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2022-11-14 11:30:06 +01:00
Daniel Calviño Sánchez
fb0fe8587a
Use comparison operator rather than equals for enums in adapters
Fixes SPP_EQUALS_ON_ENUM issue from SpotBugs.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2022-11-14 11:30:00 +01:00
Daniel Calviño Sánchez
969c08ea79
Use comparison operator rather than equals for enums in WebRTC code
Fixes SPP_EQUALS_ON_ENUM issue from SpotBugs.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2022-11-14 11:29:52 +01:00
Daniel Calviño Sánchez
74cf2c7a41
Use comparison operator rather than equals for enums in CallActivity
Fixes SPP_EQUALS_ON_ENUM issue from SpotBugs.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2022-11-14 11:29:29 +01:00
Nextcloud bot
6258e3a330
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-11-14 03:26:45 +00:00
Nextcloud bot
47bdb1fc7e
[tx-robot] Update transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-11-14 03:26:34 +00:00
Nextcloud bot
dd31a8d79e
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-11-13 03:25:11 +00:00
Nextcloud bot
edefe588f2
[tx-robot] Update transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-11-13 03:25:01 +00:00
Nextcloud bot
7481e0ea4e
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-11-12 03:28:18 +00:00
Nextcloud bot
cb4a0caaf3
[tx-robot] Update transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-11-12 03:28:06 +00:00
Daniel Calviño Sánchez
d7706b6082 Fix remote participants display with both video and screen share
ParticipantDisplayItems are not associated to a full participant but to
each of the single connections that the participant may have (video and
screen). However, when they are added to the map only the session ID is
used as key. Due to this when a participant starts a screen share the
ParticipantDisplayItem for the screen share overwrites the item for the
video, and once the screen share is stopped the old item is not
restored. Moreover, if a participant is already sharing a screen when
the local participant joins whether the video or the screen share is
shown is undefined and depends on which connection is established first.

To solve that the ParticipantDisplayItems are now associated with both
the session ID and the video stream type ("video" or "screen"). Due to
this both the video and the screen share of the remote participant are
shown in the grid view; in the future it might be better to only show
the screen share, or allow switching between screen share and video, or
show the screen share in full screen and hide the grid... but for now,
as a quick fix, this is good enough :-)

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2022-11-11 14:52:49 +00:00
Marcel Hibbe
3729f1130a
suppress some detekt warnings
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-11-10 15:40:04 +01:00
Marcel Hibbe
ca145d170c
revert calculation of delayed delivery time
this didn't make sense because time between firebase and devices is not synchronized, so the results were useless.

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-11-10 13:38:49 +01:00
Marcel Hibbe
3a517f5760
add missed call notification, show delivery delay in debug mode
- add missed call notifications in NotificationWorker and CallNotificationActivity

- introduce refactoring of Notification handling (isolate firebase stuff from other logic). All "UI-notification" logic from ChatAndCallMessagingService was moved to NotificationWorker. ChatAndCallMessagingService was renamed to NCFirebaseMessagingService because it is now only responsible for firebase stuff. This separation should make it easier for alternative push services to dock with the app (if they are incorporated in the future).

- for DEBUG mode: show delivery delay time in notifications (time between sending from firebase to receive on device).

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-11-10 12:17:23 +01:00
Nextcloud bot
b4ca4fbd50
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-11-10 03:33:25 +00:00
Nextcloud bot
d575659872
[tx-robot] Update transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-11-10 03:33:11 +00:00
Nextcloud bot
7a83b354bc
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-11-09 03:23:09 +00:00
Nextcloud bot
c441812632
[tx-robot] Update transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-11-09 03:22:58 +00:00
Nextcloud bot
93e8587060
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-11-08 03:24:12 +00:00
Nextcloud bot
d321bbe850
[tx-robot] Update transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-11-08 03:24:02 +00:00
Tim Krüger
5a392be92e
Merge pull request #2541 from nextcloud/keep-retrying-with-exponential-backoff-if-pulling-signaling-messages-fails
Keep retrying with exponential backoff if pulling signaling messages fails
2022-11-07 12:20:32 +01:00
Tim Krüger
3d89d6b22f
Merge pull request #2540 from nextcloud/fix-update-of-guest-avatars-in-call-participants
Fix update of guest avatars in call participants
2022-11-07 12:15:37 +01:00
Nextcloud bot
8c3b61742e
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-11-07 03:22:54 +00:00
Nextcloud bot
33f0b468ac
[tx-robot] Update transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-11-07 03:22:43 +00:00
Daniel Calviño Sánchez
4b4b9da2b1 Add exponential backoff when trying to pull signaling messages again
When pulling signaling messages failed the source observable was
immediately subscribed again, which immediately triggered another pull.
Rather than hammering the server or a flaky network with new requests
again and again now further requests are performed with an incremental
delay (up to 16 seconds).

The delay is increased only when several requests fail in a row, and it
is reset as soon as a request succeeds.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2022-11-06 14:46:56 +01:00
Daniel Calviño Sánchez
52dda57aef Rewrite "retry(Predicate)" as "retryWhen()"
This is just a preparatory step to add exponential backoff.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2022-11-06 14:42:45 +01:00
Daniel Calviño Sánchez
54deafa514 Keep retrying if pulling signaling messages fails
When the internal signaling server is used the observable to pull
signaling messages is subscribed again after each completion, but in
case of an error it was retried only 3 times. Those 3 times are not in a
row, though, but in total for the whole observable, no matter how many
times it was subscribed again.

Due to the limitation on retries in a long call with a flaky connection
pulling the signaling messages could fail more than 3 times, which
caused the observable to finish with an error and therefore stop further
pullings. In this situation the Android app would not notice if other
participants joined or left the call, and thus it would not establish a
connection with them or stop it. To prevent that now the number of
retries is unlimited (although the retry is still stopped if the local
participant is no longer in the call).

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2022-11-06 13:30:02 +01:00
Nextcloud bot
52e604cf11
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-11-06 03:24:47 +00:00
Nextcloud bot
d8d113cc6e
[tx-robot] Update transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-11-06 03:24:37 +00:00
Nextcloud bot
48eb838f8f
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-11-05 03:27:50 +00:00
Nextcloud bot
04edec2c6c
[tx-robot] Update transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-11-05 03:27:40 +00:00
Daniel Calviño Sánchez
e001d685dd Fix update of guest avatars in call participants
The URL for the avatar depends on whether the call participant is a user
or a guest and, if it is a guest, on its nick. Although the user id of a
participant does not change if the participant is a guest the nick may
be changed during a call, so the avatar URL needs to be updated as well.

As the avatar URL is fully derived from other properties it is now
calculated internally in the ParticipantDisplayItem and calculated when
any of the properties it depends on changes (also for the user id for
completeness, as technically the item could be reused for a different
participant with a different user id, even if it is not currently done).

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2022-11-04 20:40:57 +01:00
Nextcloud bot
3d0e0984af
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-11-04 03:26:57 +00:00
Nextcloud bot
78dbff0fd0
[tx-robot] Update transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-11-04 03:26:46 +00:00
Nextcloud bot
ac6b2d4acd
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-11-03 03:22:14 +00:00
Nextcloud bot
337203ba6d
[tx-robot] Update transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-11-03 03:22:03 +00:00
Nextcloud bot
3871a80d85
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-11-02 03:24:22 +00:00
Nextcloud bot
2d9ca94d05
[tx-robot] Update transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-11-02 03:24:10 +00:00
Nextcloud bot
5da4d53ecf
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-11-01 03:23:20 +00:00
Nextcloud bot
f6127625aa
[tx-robot] Update transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-11-01 03:23:09 +00:00
Nextcloud bot
c6b447724c
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-10-31 03:22:06 +00:00
Nextcloud bot
82fb2ea9a0
[tx-robot] Update transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-10-31 03:21:56 +00:00
Nextcloud bot
eadb44c193
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-10-30 03:26:13 +00:00
Nextcloud bot
666be5636d
[tx-robot] Update transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-10-30 03:26:02 +00:00
Nextcloud bot
ea1e25fc24
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-10-29 03:35:07 +00:00
Nextcloud bot
1d9d0fe414
[tx-robot] Update transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-10-29 03:34:55 +00:00
Marcel Hibbe
8dd6fe1d3d
use listOf instead Arrays.asList
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-10-28 16:03:53 +02:00
Dariusz Olszewski
c18bafe13a
Force HTTP/1.1 in chunked upload
Signed-off-by: Dariusz Olszewski <starypatyk@users.noreply.github.com>
2022-10-28 16:03:53 +02:00
Dariusz Olszewski
bfc9f57b2a
Make it possible to dismiss failure notification
Signed-off-by: Dariusz Olszewski <starypatyk@users.noreply.github.com>
2022-10-28 16:03:53 +02:00
Nextcloud bot
b641121266
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-10-28 03:23:08 +00:00
Nextcloud bot
fd07da6581
[tx-robot] Update transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-10-28 03:22:57 +00:00
Nextcloud bot
3252a841d8
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-10-27 03:22:25 +00:00
Nextcloud bot
ef1b472197
[tx-robot] Update transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-10-27 03:22:14 +00:00
Nextcloud bot
0f9fc7c306
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-10-26 03:24:03 +00:00
Nextcloud bot
dcd6561e57
[tx-robot] Update transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-10-26 03:23:53 +00:00
Nextcloud bot
83871ae434
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-10-25 03:27:32 +00:00
Nextcloud bot
7448d71da2
[tx-robot] Update transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-10-25 03:27:21 +00:00
Marcel Hibbe
436770d844
simplify logic for server selection screen
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-10-24 13:03:53 +02:00
Nextcloud bot
3e0620db0a
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-10-24 10:45:26 +00:00
Nextcloud bot
4c159390b9
[tx-robot] Update transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-10-24 10:45:13 +00:00
Tim Krüger
4658292602
Merge pull request #2490 from nextcloud/bugfix/2478/fixUserStatusesForConversationList
improve fetching of user statuses in conversation list
2022-10-24 11:46:42 +02:00
Nextcloud bot
b0e73fde8e
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-10-24 03:22:56 +00:00
Nextcloud bot
433ec3aa4c
[tx-robot] Update transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-10-24 03:22:46 +00:00
Nextcloud bot
f00c091cec
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-10-23 03:22:58 +00:00
Nextcloud bot
a9af57a8d1
[tx-robot] Update transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-10-23 03:22:47 +00:00
Nextcloud bot
fab2ac36e1
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-10-22 03:23:54 +00:00
Nextcloud bot
9fee17a0ee
[tx-robot] Update transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-10-22 03:23:44 +00:00
Nextcloud bot
ce8bc432a0
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-10-21 03:31:31 +00:00
Nextcloud bot
990842cd06
[tx-robot] Update transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-10-20 17:08:21 +00:00
Nextcloud bot
120c0d2150
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-10-19 09:09:27 +00:00
Nextcloud bot
ee838a93c9
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-10-19 09:03:58 +00:00
Marcel Hibbe
84ba72f130
improve link preview design, add link description
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-10-13 23:52:49 +02:00
Tim Krüger
a17acc779c
Merge pull request #2484 from nextcloud/fix-computing-new-sessions-in-call
Fix computing new sessions in call
2022-10-13 18:08:57 +02:00
Daniel Calviño Sánchez
3278829dba
Fix computing new sessions in a call
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>
2022-10-13 15:23:59 +02:00
Daniel Calviño Sánchez
f84a621780
Do not store sessions not in call as old sessions
The old sessions are used to know which connections need to be ended
because they are no longer in the call. However, if a participant is no
longer in the call but there was no connection yet then there is no
connection that needs to be ended; any existing connection will be added
when looping through the connection list, and if it needs to be stopped
it will be found when substracting the sessions that are currently in
the call.

The old sessions are also used to find the new sessions in the call. Due
to an issue in how that is computed "newSessions" currently store the
sessions in the call rather than only the new sessions (this will be
addressed in a following commit). Nevertheless, in both cases any
session not in the call for which there is no connection either will not
make any difference in the computed "newSessions" (as they are mutually
exclusive, so they will never be removed from "newSessions" when
substracting the old sessions).

Due to all that it is not needed to store sessions not in call as old
sessions / sessions to end.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2022-10-13 15:23:54 +02:00
Daniel Calviño Sánchez
1ba6e293b2
Rename to a more accurate name
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2022-10-13 15:23:48 +02:00
Daniel Calviño Sánchez
f53cb610d3
Fuse declaration and initial assignment
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2022-10-13 15:23:39 +02:00
Marcel Hibbe
42e6d9b52f
extract methods from fetchRooms method
reduce complexity for codacy score..

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-10-13 13:26:31 +02:00
Marcel Hibbe
871f798720
improve fetching of user statuses in conversation list
replace
/ocs/v2.php/apps/user_status/api/v1/statuses

with
"includeStatus=true"
when fetching conversations, see https://nextcloud-talk.readthedocs.io/en/latest/conversation/

fix #2478

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-10-13 12:12:47 +02:00
Tim Krüger
b6e9c9d56f Use already fetched capabilities for user
This should avoid that the capabilities not available for the server EOL
check in 'ConversationListController#onAttach'.

Missing capabilites can also have an impact on multiple actions, but the
server EOL check is the first one.

Resolves: #2418

Signed-off-by: Tim Krüger <t@timkrueger.me>
2022-10-13 06:21:35 +00:00
Andy Scherzinger
08fb0030ec codacy: unnecessary use of fully qualified name
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-10-12 19:29:03 +00:00
Andy Scherzinger
8117ffb56a
Merge pull request #2474 from nextcloud/chore/noid/analysisAction
Add new analysis action
2022-10-11 18:04:07 +02:00
Andy Scherzinger
8fb11bf713
remove any use of org.jetbrains.annotations.NotNull
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-10-11 12:47:45 +02:00
Daniel Calviño Sánchez
7f86593bca
Fix avatar when setting participant layout before receiving the data
When a new participant is found and the layout for that participant is
set up the participant data might have not been fetched yet. If that
happens the user ID can not be got from the data and therefore a guest
avatar would be shown for that participant, even if that participant is
a normal user.

However, the signaling message that is used to find new participants
already includes the user ID, so it is now explicitly given and, if not,
then it is got from the participant data (which is needed when handling
the establishment of a connection, as in that case the event does not
contain the user ID).

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2022-10-10 18:55:24 +02:00
Daniel Calviño Sánchez
4f01cb855a
Fix crash when setting participant layout before receiving the data
When setting the participant layout, if the HPB is not used, the user ID
is got from the participant list data fetched when a new participant is
found. However, as the participant layout is setup as soon as a new
participant is found the data may have not been received yet, which
ended in a crash (NullPointerException). Now the access to the
participant object is guarded to prevent that.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2022-10-10 18:29:40 +02:00
Andy Scherzinger
89ec37d24d
simplify condition complexity
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-10-06 18:00:52 +02:00
Andy Scherzinger
9bd51ce21b
PMD: An empty statement (semicolon) not part of a loop
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-10-06 16:55:38 +02:00
Andy Scherzinger
0a70567452
PMD: Use opposite operator instead of the logic complement operator.
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-10-06 16:54:27 +02:00
Marcel Hibbe
2d8799feed
fix copyright headers
headers contained a wrong sentence that was duplicated via c&p

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-10-06 13:48:28 +02:00
Marcel Hibbe
b7d4ba7f9c
Merge pull request #2467 from nextcloud/chore/noid/kotlin17020
bump kotlin to 17.0.20 and mark declaration usage as opt-in
2022-10-06 13:26:02 +02:00
Marcel Hibbe
66eea709b4
open MessageActionsDialog on long click on link previews.
rename ReactionsInterface.kt to CommonMessageInterface.kt

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-10-06 12:45:53 +02:00
Andy Scherzinger
3632b58eb1
bump kotlin to 17.0.20 and mark declaration usage as opt-in
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-10-05 22:10:48 +02:00
Marcel Hibbe
9bc42334d4
add openGraph link previews
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-10-05 14:17:07 +02:00
Marcel Hibbe
387cb63ce7 add toast if video file creation failed
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-10-04 12:56:01 +00:00
tobiasKaminsky
ff0421575a Like Android Files we should rely on generic camera feature, but not required.
This then should allow us to install Talk on Chromebooks

Signed-off-by: tobiasKaminsky <tobias@kaminsky.me>
2022-10-03 08:36:45 +00:00
jld3103
d8d4fde391
Show error when loading chats fails
Signed-off-by: jld3103 <jld3103yt@gmail.com>
2022-09-30 17:48:52 +02:00
Tim Krüger
2d8492ae1e
Revert "Set minSdkVersion to 23 (Android 6)"
Signed-off-by: Tim Krüger <t@timkrueger.me>
2022-09-30 11:21:32 +02:00
Nextcloud bot
127ed0944a
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-09-30 05:50:11 +00:00
drone
3a90d17649 Merge commit '863052b53e3051bb7e0fd4904d348fa294835821' 2022-09-29 13:16:56 +00:00
Tim Krüger
863052b53e
[WIP] Replace Fresco with Coil
Fresco is replaced with Coil verywhere. But Coil is not used directly to
avoid splintering the dependency everywhere in the code. Coil is wrapped
by extension functions for 'ImageView'.

Some shared functionality is moved from 'DisplayUtils' into the
'ImageViewExtensions'.

Resolves: #2227, #2376

Signed-off-by: Tim Krüger <t@timkrueger.me>
2022-09-29 14:07:05 +02:00
Marcel Hibbe
47a93d2c85
align poll buttons to right
make end poll button outlined

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-09-29 11:20:10 +02:00
Tim Krüger
b2d6211b3c
Convert 'ConverstationItem' from Java to Kotlin
This is mandetory to replace Fresco with Coil.

See: #2376, #2227

Signed-off-by: Tim Krüger <t@timkrueger.me>
2022-09-29 10:28:30 +02:00
Marcel Hibbe
84bcd0c273 hide end poll button for edit poll mode
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-09-29 07:34:50 +00:00
Tim Krüger
309ba90197
Merge pull request #2438 from nextcloud/bugfix/noid/fixPermissionsForCallNotificationActivity
set participantPermissions in CallNotificationActivity
2022-09-29 09:31:40 +02:00
Nextcloud bot
4a049d9d03
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-09-29 04:40:47 +00:00
Marcel Hibbe
d09c5d4865
set participantPermissions in CallNotificationActivity
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-09-28 15:45:05 +02:00
Marcel Hibbe
4f16e5be0a
fix to show reactionsEmojiWrapper
with commit 0f35e360 it was implemented to hide the reactionsEmojiWrapper when no emojis are set for a message.
whenever a emoji was added, it was actually not shown because the wrapper was still hidden.

with the fix, the wrapper is made visible again

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-09-28 12:22:02 +02:00
Tim Krüger
8a0e60f68a
Set minSdkVersion to 23 (Android 6)
Because of updating the minSdkVersion to 23 it comes to some obscure UI
freezes when using frescos 'RoundPostprocessor#process' to round avatar
bitmaps.
So the function 'DisplayUtils#roundBitmap' is adopted from Nextcloud
Files for Android.

Signed-off-by: Tim Krüger <t@timkrueger.me>
2022-09-28 09:24:41 +02:00
Nextcloud bot
e26a7a7beb
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-09-28 04:38:17 +00:00
Tim Krüger
05cfb97459
Fix wrong guests access option status
Before this change after enabling and disabling the guest access option,
the option stays enabled.

Resolves: #2378

Signed-off-by: Tim Krüger <t@timkrueger.me>
2022-09-27 13:07:47 +02:00
Marcel Hibbe
51d4b54aa4
Merge pull request #2430 from nextcloud/bugfix/2426/verticalButtonsForPolls
change poll buttons to vertical orientation
2022-09-27 11:26:18 +02:00
Marcel Hibbe
211e8cbb4d
change poll buttons to vertical orientation
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-09-27 10:34:11 +02:00
Valdnet
6a8fbe66b3
i18n: Delete shortcut
Signed-off-by: Valdnet <47037905+Valdnet@users.noreply.github.com>
2022-09-27 09:26:34 +02:00
Nextcloud bot
9d57260867
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-09-27 03:34:26 +00:00
Tim Krüger
f880b4f778
Call toggle media before fetchSignalingSettings
This change fix a lateinit excepttion for 'participantPermissions'.

Signed-off-by: Tim Krüger <t@timkrueger.me>
2022-09-26 12:39:15 +02:00
Tim Krüger
4c0aa6a235
Clearify PTT (=push to talk)
So that my future self and other valued developrs don't must also
research that the variable 'isPTTActive' is renamed to
'isPushToTalkActive'.

Signed-off-by: Tim Krüger <t@timkrueger.me>
2022-09-26 12:39:15 +02:00
Tim Krüger
c554535bae
Respect can publish audio & video permission
With this implementation the can publish audio & video permission are
set during the creation of the 'CallActivity'. This permissions are
fixed for the complete call. If the permissions are changed by a
moderator the call must be left and joined again.

Resolves: #1783

Signed-off-by: Tim Krüger <t@timkrueger.me>
2022-09-26 12:39:15 +02:00
Tim Krüger
dda5a9e3da
Define 'BundleKeys' as 'const'
During the migration from Java to Kotlin this was not done and resulted
in

    BundleKeys.INSTANCE.getKEY_CALL_VOICE_ONLY()

instead of

    BundleKeys.KEY_CALL_VOICE_ONLY

Signed-off-by: Tim Krüger <t@timkrueger.me>
2022-09-26 11:41:10 +02:00
Tim Krüger
d0c86ec619
Respect 'can ignore lobby' permission
Now the 'can ignore lobby' permission is respected.

The 'ChatController' has now a property of the type
'ParticipantPermissions' because it's needed multiple times. The
property will be updated in 'ChatController#getRoomInfo' if the
conversation is protected by a lobby.

The function 'Conversation#shouldShowLobby' is removed in this commit.
'Conversation' is a pure model class to hold the plain JSON response.
The logic is moved into the already existing function 'ChatController#shouldShowLobby'.

Resolves: #1783

Signed-off-by: Tim Krüger <t@timkrueger.me>
2022-09-26 11:41:10 +02:00
Tim Krüger
7c09a86c4d
Correct if condition
Signed-off-by: Tim Krüger <t@timkrueger.me>
2022-09-26 11:07:31 +02:00
Tim Krüger
1bbc7caeee
Rename AttendeePermissionsUtil to ParticipantPermissions
Signed-off-by: Tim Krüger <t@timkrueger.me>
2022-09-26 11:07:31 +02:00
Tim Krüger
c031e7063e
Use 'val' instead of 'var'
Signed-off-by: Tim Krüger <t@timkrueger.me>
2022-09-26 11:07:31 +02:00
Nextcloud bot
e3e65c3540
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-09-25 04:36:11 +00:00
Nextcloud bot
2e15590215
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-09-24 04:37:22 +00:00
Tim Krüger
8b15f142ac
Merge pull request #2411 from nextcloud/feature/2407/themedLauncherIcon
Added monochrome icon for Android 13 "Themed icons" support.
2022-09-23 13:33:38 +02:00
Tim Krüger
dc6083334b
Merge pull request #2413 from nextcloud/feature/1353/shareToChooseAccount
add account switcher for "share to"
2022-09-23 12:53:18 +02:00
Tim Krüger
009dbaf292
Merge pull request #2414 from nextcloud/bugfix/noid/hidePollCreationForOneToOne
hide poll creation for 1:1 conversations
2022-09-23 12:26:56 +02:00
Nextcloud bot
dad99a30ba
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-09-23 04:33:40 +00:00
Nextcloud bot
ef2292d313
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-09-22 04:36:54 +00:00
Marcel Hibbe
54f5c6f2f6
hide poll creation for 1:1 conversations
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-09-21 12:16:54 +02:00
Marcel Hibbe
62777e936d
add account switcher for "share to"
fix to avoid share to screen when coming back from conversation to conversation list

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-09-21 11:51:59 +02:00
Andy Scherzinger
e30df81a18
Added monochrome icon for Android 13 "Themed icons" support.
Resolves #2407

Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-09-20 16:51:28 +02:00
Tim Krüger
91bc2abfa9
Merge pull request #2405 from nextcloud/bugfix/2384/themeTextActivityToolbar
Theme toolbar for m3 for Text preview activity
2022-09-20 12:04:02 +02:00
Nextcloud bot
3fcc75d7bd
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-09-20 04:35:38 +00:00
Andy Scherzinger
f7035f5306
Theme toolbar for m3
Resolves #2384

Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-09-19 16:52:55 +02:00
Tim Krüger
b3a3277aa2
Merge pull request #2395 from nextcloud/show-message-in-call-state-when-the-publisher-failed
Show message in call state when the publisher failed
2022-09-19 15:43:06 +02:00
Tim Krüger
dc70a4c9e3
Merge pull request #2393 from nextcloud/fix-icon-not-visible-in-call-state-message
Fix icon not visible in call state message
2022-09-19 15:36:20 +02:00
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
109124fb3b
Merge pull request #2391 from nextcloud/fix-checking-lobby-state-from-chat-controller-while-in-a-call
Fix checking lobby state from chat controller while in a call
2022-09-19 15:08:54 +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
Nextcloud bot
4f691930e4
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-09-19 04:34:14 +00: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
c21e1d7360 Show message in call state when the publisher failed
When the HPB is used and the publisher fails (which is a disconnection
that can not be automatically solved by itself) a forced reconnection is
triggered. This restarts the call, so some feedback should be provided
in the UI about it.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2022-09-19 01:57:25 +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
a76e519219 Show progress bar on remote 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
9f445efc1c Post event when a participant is connected and disconnected
RTCPeerConnections have several states but, for simplicity, for now the
events posted reflect only if the connection is fully established or
not (which includes both a broken connection or an established
connection that is unstable or being updated), which is enough for a
basic information about the connection state in the UI.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2022-09-18 23:25:57 +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
7bb84fcf02 Fix icon not visible in call state message
The call state uses a RelativeLayout with a wrap content height where
the state icons (including the progress bar) position was set as above
the message. However, this caused the call state to wrap only the text;
the icons were indeed above the message, but out of the view boundaries.

Now the icons are wrapped in a FrameLayout and the text position is set
below that frame layout instead, which causes the RelativeLayout height
to correctly wrap its content.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2022-09-18 14:25:56 +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
5513f9c88f Fix checking lobby state from chat controller while in a call
The chat controller gets the room information again and again to check
whether the lobby is enabled and update the UI as needed. This loop is
stopped when the chat controller is detached, but only if no call is
active; if a call is active the room information will still be got again
and again, even if the chat controller is detached.

To solve that now getting the room information is simply stopped when
the chat controller is detached, no matter if there is an active call or
not, and started again when joining the room, which is done when the
chat controller is attached.

However, this is just a quick fix that does not solve the issue in all
cases; the loop can still continue during calls, for example if the
request to get the information is sent before detaching the controller
and the response is received once the controller was detached, as that
would start the timer again.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2022-09-18 14:24:26 +02:00
Nextcloud bot
bc5b6f9022
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-09-18 04:27:15 +00:00
Nextcloud bot
6ef52a5c32
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-09-17 04:33:25 +00:00
Nextcloud bot
5bd7e964eb
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-09-16 17:06:32 +00:00
Andy Scherzinger
713fc1f10d
Merge pull request #2371 from nextcloud/dependabot/gradle/com.android.tools.build-gradle-7.3.0
Bump gradle from 7.2.2 to 7.3.0
2022-09-16 16:36:33 +02:00
Marcel Hibbe
5e7b882fba
Merge pull request #2379 from nextcloud/noid/fixToKeepNotificationChannels
fix to keep notification channels
2022-09-16 15:14:06 +02:00
Marcel Hibbe
93da361bf1
fix to keep notification channels
new notification channels must not be deleted. for this an enum was created, so that in removeOldNotificationChannels there is no manual work to do

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-09-16 15:10:15 +02:00
Andy Scherzinger
5a2b04740b
move streams to utilize "use"
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-09-16 14:48:23 +02:00
Andy Scherzinger
58436286c7
move to namespace
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-09-16 14:09:40 +02:00
Andy Scherzinger
928b9d5aa3
Remove unneeded nonNull annotations in kotlin
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-09-16 13:35:45 +02:00
Andy Scherzinger
8acb646383
close streams after use
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-09-16 13:35:10 +02:00
Nextcloud bot
fb6b4d7c96
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-09-16 08:17:37 +00:00
Marcel Hibbe
120219a711
Merge pull request #2351 from nextcloud/feature/1587/directVideoUpload2
direct video upload + chunked upload
2022-09-16 08:36:04 +02:00
Nextcloud bot
772eb5da72
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-09-16 04:27:16 +00: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
85c644e5b3 Add named dimension for the long side of the self video
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2022-09-15 23:39:59 +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
Marcel Hibbe
b064190d35
add direct video upload
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-09-15 16:22:57 +02:00
Nextcloud bot
53e3543839
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-09-15 04:34:50 +00:00
Andy Scherzinger
0f35e36047
Improve chat bubble sizes
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-09-13 10:58:44 +02:00
Nextcloud bot
c6cb85572c
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-09-10 04:36:35 +00:00
Nextcloud bot
e62940db01
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-09-09 04:31:05 +00:00
Nextcloud bot
ab3e7036a2
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-09-08 04:31:30 +00:00
Tim Krüger
7deb8bef8d
Merge pull request #2355 from nextcloud/chrore/fix-warnings-in-chatController
Fix warnings in ChatController
2022-09-07 15:41:14 +02:00
Tim Krüger
0c06c8b2eb
Rename and reduce complexity of function 'processMessages'
Signed-off-by: Tim Krüger <t@timkrueger.me>
2022-09-07 12:31:03 +02:00
Tim Krüger
ae0a9d6aae
Reduce complexity for 'ChatController#processMessagesFromTheFuture'
Signed-off-by: Tim Krüger <t@timkrueger.me>
2022-09-07 12:19:06 +02:00
Tim Krüger
d0df4039c6
Fix to deeply nested function processHeaderChatLastGiven
Signed-off-by: Tim Krüger <t@timkrueger.me>
2022-09-07 11:34:59 +02:00
Tim Krüger
5bb63fd58d
Reduce nested block depth for updateReadStatusOfAllMessages
Signed-off-by: Tim Krüger <t@timkrueger.me>
2022-09-07 10:51:09 +02:00
Tim Krüger
57ddf9af60
Extract duplicated code to function
The newly created function 'ChatController#determinePreviousMessageIds'
contains now the duplicated code from functions
'ChatCtonroller#processMessagesFromTheFuture' and
'ChatController#processMessagesNotFromTheFuture'.

Signed-off-by: Tim Krüger <t@timkrueger.me>
2022-09-07 10:34:45 +02:00
Tim Krüger
4cab75f6ed
Reduce complexity for function 'ChatController#processMessages'
Signed-off-by: Tim Krüger <t@timkrueger.me>
2022-09-07 08:56:35 +02:00
Nextcloud bot
44da22d3d8
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-09-07 04:32:13 +00:00
Tim Krüger
f762d0c9e5
Remove unused parameter 'timeout' from 'ChatController#processMessages'
Signed-off-by: Tim Krüger <t@timkrueger.me>
2022-09-06 18:04:03 +02:00
Tim Krüger
2d5969964d
Make properties private if possible
Signed-off-by: Tim Krüger <t@timkrueger.me>
2022-09-06 17:58:11 +02:00
Tim Krüger
69eea8f568
Use indexing insteat of 'Map#get'
Signed-off-by: Tim Krüger <t@timkrueger.me>
2022-09-06 17:52:51 +02:00
Tim Krüger
7b1eda1b85
Replace 'Integer#toString' with Kotlin functions
Signed-off-by: Tim Krüger <t@timkrueger.me>
2022-09-06 17:52:07 +02:00
Tim Krüger
7dec6dd4dd
Fix some spelling issues
Signed-off-by: Tim Krüger <t@timkrueger.me>
2022-09-06 17:50:18 +02:00
Tim Krüger
bb4bccbd08
Simplify boolean expressions
Signed-off-by: Tim Krüger <t@timkrueger.me>
2022-09-06 17:44:37 +02:00
Tim Krüger
7c8722bfe4
Convert string concatination to template
Signed-off-by: Tim Krüger <t@timkrueger.me>
2022-09-06 17:39:23 +02:00
Tim Krüger
a543bdc7a7
Remove assingments from 'if' clauses
Signed-off-by: Tim Krüger <t@timkrueger.me>
2022-09-06 17:35:13 +02:00
Tim Krüger
f347fe1255
Remove unnecessary elvis operator (?:)
Signed-off-by: Tim Krüger <t@timkrueger.me>
2022-09-06 17:31:27 +02:00
Tim Krüger
8f6e759d48
Remove unnecessary safe calls and non-null assertions
Signed-off-by: Tim Krüger <t@timkrueger.me>
2022-09-06 17:26:09 +02:00
Nextcloud bot
d976351a05
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-09-06 04:28:02 +00:00
Nextcloud bot
153449c0df
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-09-05 04:27:03 +00:00
Nextcloud bot
3d4cb0f4d2
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-09-04 04:23:29 +00:00
Nextcloud bot
819162bc5e
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-09-03 04:31:08 +00:00
Nextcloud bot
c5db933296
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-09-02 04:25:10 +00:00
Andy Scherzinger
990c1d5b66
remove unused resource
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-09-01 09:34:18 +02:00
Andy Scherzinger
5a8a33f39e
end-align timestamps of messages
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-09-01 09:29:15 +02:00
Andy Scherzinger
ffdbead0f7
make system message items smaller in size and end-align the timestamp
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-09-01 09:29:10 +02:00
Nextcloud bot
6f969f46ba
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-09-01 04:32:48 +00:00
Andy Scherzinger
d60bc4322e
remove unused resource
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-08-31 19:58:33 +02:00
Álvaro Brey
e5879eb4be
Minor fixes after rebase
Signed-off-by: Álvaro Brey <alvaro.brey@nextcloud.com>
2022-08-31 19:54:06 +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
009634da53
Extract MaterialSchemesImpl and ColorUtil to commons lib
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
Nextcloud bot
5a8eee8814
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-08-31 04:18:11 +00:00
Nextcloud bot
db2403c946
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-08-30 12:11:04 +00:00
Valdnet
96a79b0195
i18n: Correct text string
Signed-off-by: Valdnet <47037905+Valdnet@users.noreply.github.com>
2022-08-30 09:10:25 +02:00
Nextcloud bot
6c6d991603
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-08-30 04:20:48 +00:00
Tim Krüger
cd25a7e14d
Merge pull request #2326 from nextcloud/feature/2134/allow-guests
Move allow guests preferences to conversation info
2022-08-29 20:19:37 +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
62fa8c9645
Improve dialog theming for M3
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-08-29 19:04:27 +02:00
Tim Krüger
1d0ff0bade
Change to not deprecated 'WorkManager.getInstance'
Signed-off-by: Tim Krüger <t@timkrueger.me>
2022-08-29 18:58:06 +02:00
Tim Krüger
d8f37bec42
Replace unused lambda parameters by '_'
Signed-off-by: Tim Krüger <t@timkrueger.me>
2022-08-29 18:57:59 +02:00
Tim Krüger
84116e4cb2
Add guests access preferences to conversation info
Currently a conversation can be made public via the bottom sheet menu in
the conversation list.

With this commit this is added to the conversation info to align with Talk web
and iOS. The functionality is removed from the bottom sheet menu in the
conversation list.

Resolves: #2134

Signed-off-by: Tim Krüger <t@timkrueger.me>
2022-08-29 18:42:56 +02:00
Nextcloud bot
74741b3c2b
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-08-29 04:21:16 +00:00
Nextcloud bot
abbc1d4e1e
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-08-28 04:17:48 +00:00
Nextcloud bot
4ac1ec9522
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-08-27 04:17:44 +00:00
Nextcloud bot
68eaa311b1
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-08-26 04:18:37 +00:00
Valdnet
c01b02ff18
i18n: Changing verb
Signed-off-by: Valdnet <47037905+Valdnet@users.noreply.github.com>
2022-08-25 14:12:19 +02:00
Valdnet
2bba950af6
i18n: Correct word
Signed-off-by: Valdnet <47037905+Valdnet@users.noreply.github.com>
2022-08-25 12:25:01 +02:00
Valdnet
675773fdcd
i10n: Change word
Signed-off-by: Valdnet <47037905+Valdnet@users.noreply.github.com>
2022-08-25 09:04:33 +02:00
Valdnet
7cdd518dc1
i18n: Change style of sentence
1. Changing the style of the sentence.
2. Unifying the sentence with Talk Nextcloud.

Signed-off-by: Valdnet <47037905+Valdnet@users.noreply.github.com>
2022-08-25 08:58:59 +02:00
Nextcloud bot
a50a154127
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-08-25 04:19:24 +00:00
Marcel Hibbe
4b88effb72
add theming for categoryConversationSettings
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-08-24 12:01:20 +02:00
Marcel Hibbe
e43fe4774e
show explanation for expire messages
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-08-24 12:01:20 +02:00
Marcel Hibbe
4bdb78372e
add expiring messages option in conversation info screen
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-08-24 12:01:20 +02:00
Marcel Hibbe
77f69a676b
add system messages for message expiration
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-08-24 12:01:19 +02:00
Marcel Hibbe
b40fab9826
delete expired messages
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-08-24 12:01:19 +02:00
Andy Scherzinger
6f7756a34e prevent NPE if UI has already been teared down
Resolves #2321

Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-08-23 14:18:17 +00:00
Nextcloud bot
9b234c632b
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-08-20 04:17:02 +00:00
Álvaro Brey
8c76e29900
Merge pull request #2316 from nextcloud/chore/noid/lovelyDialogs2
Replace lovelyDialogs with Material 3
2022-08-19 15:38:30 +02:00
Nextcloud bot
ddde500bf8
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-08-19 04:17:32 +00:00
Andy Scherzinger
1ed9033aef
Replace lovelyDialogs with Material 3 in conversation info controller
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-08-19 00:52:43 +02:00
Andy Scherzinger
7124b60a3c
Update authors-list
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-08-18 23:40:53 +02:00
Andy Scherzinger
d1ec786907
improve detekt score
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-08-18 23:39:20 +02:00
Álvaro Brey
4c5bacc4eb
Rename NewBaseController to just BaseController
Old BaseController is no more!

Signed-off-by: Álvaro Brey <alvaro.brey@nextcloud.com>
2022-08-18 17:20:40 +02:00
Álvaro Brey
447be67caf
Get rid of BaseController, ButterknifeController, and ButterKnife
Signed-off-by: Álvaro Brey <alvaro.brey@nextcloud.com>
2022-08-18 17:19:08 +02:00
Álvaro Brey
f148c0e3c0
ConversationsListController: clean up a bit
Signed-off-by: Álvaro Brey <alvaro.brey@nextcloud.com>
2022-08-18 17:13:36 +02:00
Álvaro Brey
929d6b3964
ConversationListController: use NewBaseController + viewBinding
Signed-off-by: Álvaro Brey <alvaro.brey@nextcloud.com>
2022-08-18 16:58:42 +02:00
Álvaro Brey
6315032e77
ConversationsListController: convert to Kotlin step 2
Signed-off-by: Álvaro Brey <alvaro.brey@nextcloud.com>
2022-08-18 16:36:45 +02:00
Álvaro Brey
dc7337d510
ConversationsListController: convert to Kotlin step 1
Signed-off-by: Álvaro Brey <alvaro.brey@nextcloud.com>
2022-08-18 15:30:06 +02:00
Andy Scherzinger
9621f1daf3
Migrate dialogs on ConversationList to Material3
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-08-18 13:40:09 +02:00
Andy Scherzinger
c13b01da33
remove remaining traces of lovelyDialog from settings controller
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-08-18 13:40:09 +02:00
Nextcloud bot
6418e3262c
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-08-17 04:17:59 +00:00
Tim Krüger
4ef911d045
Load higher resoliton avatars in conversation list (2)
Supplement to commit 546a174f4.

Resolves: #2302

Signed-off-by: Tim Krüger <t@timkrueger.me>
2022-08-16 09:41:08 +02:00
Nextcloud bot
019cec1084
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-08-15 15:55:47 +00:00
Tim Krüger
546a174f48
Load higher resoliton avatars in conversation list
Instead of a 64px avatar now the 512px version is loaded for
conversation lists. For avatars in a single conversation that was
already the case.

Resolves: #2302

Signed-off-by: Tim Krüger <t@timkrueger.me>
2022-08-15 12:16:05 +02:00
Nextcloud bot
0d84bbff3a
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-08-15 04:17:09 +00:00
Nextcloud bot
6688af26eb
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-08-14 04:16:24 +00:00
Nextcloud bot
316518c678
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-08-13 04:18:12 +00:00
Álvaro Brey
d86622588a
Fix a bunch of easy detekt issues
Signed-off-by: Álvaro Brey <alvaro.brey@nextcloud.com>
2022-08-12 14:46:15 +02:00
Tim Krüger
b85ec904c1
Merge pull request #2289 from nextcloud/bugfix/2287/fixSwipeToReply
Make sure to set swipe-to-reply after the room info has been loaded
2022-08-12 09:54:12 +02:00
Nextcloud bot
8e7bb205a5
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-08-12 04:16:08 +00:00
Andy Scherzinger
5d545d6913
make sure to set swipe-to-reply after the room info has been loaded
Resolves #2287

Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-08-11 18:17:02 +02:00
Andy Scherzinger
a8422e665a
Add MaterialSchemes and remove any in-line color theming to be replaced with a themeUtils call
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-08-11 18:14:03 +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
53f0779a44
replace any use of getElement
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-08-11 16:03:57 +02:00
Andy Scherzinger
89a7c5e400
move disabled color calculation to ColorUtil class
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-08-11 15:36:11 +02:00
Andy Scherzinger
5f1f34bdfa
dagger injection init moved to onCreate
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-08-11 15:29:50 +02:00
Andy Scherzinger
2332c3568c
theme progress bars and remainign alert dialogs
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-08-11 09:51:01 +02:00
Andy Scherzinger
b4530a2e85
Theme preview loader for messages
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-08-11 09:51:01 +02:00
Andy Scherzinger
884e55df61
zero elevation on mini fabs because they aren't floating
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-08-11 09:51:01 +02:00
Andy Scherzinger
8027252572
repackage to follow original structure for easy c&p replacements in the future
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-08-11 09:51:00 +02:00
Álvaro Brey
5636d4354b
Put material color utilities in a separate Gradle module
This avoids polluting our main sourceset and makes it easier to substitute for a proper Gradle dependency in the future

Signed-off-by: Álvaro Brey <alvaro.brey@nextcloud.com>
2022-08-11 09:51:00 +02:00
Andy Scherzinger
5b983d0ce4
theme link-joining like creation fab-styled imageview
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-08-11 09:51:00 +02:00
Andy Scherzinger
8f812a0841
codacy: shorten UI initialization method
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-08-11 09:51:00 +02:00
Andy Scherzinger
a484d2ab85
codacy: shorten long method by extracting common logic
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-08-11 09:50:59 +02:00
Andy Scherzinger
5dc248e425
organize imports and remove blank lines
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-08-11 09:50:59 +02:00
Andy Scherzinger
bb4f073eb3
theme contact chat messages for Material 3
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-08-11 09:50:59 +02:00
Andy Scherzinger
ed452f1747
fixes after rebase
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-08-11 09:50:59 +02:00
Andy Scherzinger
14ac0cb1f5
replace LovelyDialog with material version
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-08-11 09:50:58 +02:00
Andy Scherzinger
abf67ebfdb
unify border radius, so chat bubbles respect it too
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-08-11 09:50:58 +02:00
Andy Scherzinger
fc577dccdf
cleanup themeUtils
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-08-11 09:50:58 +02:00
Andy Scherzinger
98084a4f88
fixing whitespacing below mini FABs
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-08-11 09:50:57 +02:00
Andy Scherzinger
e57eb4442f
Make upload confirmation dialog a material one
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-08-11 09:50:57 +02:00
Andy Scherzinger
ff2f58419e
Improve profile layouting
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-08-11 09:50:57 +02:00
Andy Scherzinger
cca35c32af
fixes and cleanup after rebase
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-08-11 09:50:57 +02:00
Andy Scherzinger
53b5db4f19
remove unused imports
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-08-11 09:50:56 +02:00
Andy Scherzinger
e76669439f
Migrate to a new, updated popup bubble based on MaterialButton
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-08-11 09:50:56 +02:00
Andy Scherzinger
2e8ea52e89
further optimize material coloring for messages, especially time, quotes and read status
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-08-11 09:50:56 +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
46f6e729a1
Theme info messages primary color
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-08-11 09:50:55 +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
8c266fe229
reformat kotlin code
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-08-11 09:50:55 +02:00
Andy Scherzinger
fa82641f31
theme toolbar icons including overflow icon and search field
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-08-11 09:50:54 +02:00
Andy Scherzinger
365a7502b4
unify tab layout theming on surface
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-08-11 09:50:54 +02:00
Andy Scherzinger
1d776ed6bd
tint dialog menu items based onSurface
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-08-11 09:50:54 +02:00
Andy Scherzinger
cb44a707a9
fix status icon background tint to match dialog background color (surface)
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-08-11 09:50:54 +02:00
Andy Scherzinger
7e8213d78b
unread chip style now material3 (while not typical chip coloring)
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-08-11 09:50:53 +02:00
Andy Scherzinger
4c9f5bec2e
proper material 3 reactions theming
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-08-11 09:50:53 +02:00
Andy Scherzinger
fd49b13b14
theme checked reactions
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-08-11 09:50:53 +02:00
Andy Scherzinger
b2e21aef7c
correct themeing for reactions bottom sheet
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-08-11 09:50:53 +02:00
Andy Scherzinger
02e18046cf
improve outgoing message theming
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-08-11 09:50:52 +02:00
Andy Scherzinger
9eb3cbc280
proper chip theming for you-mentions
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-08-11 09:50:52 +02:00
Andy Scherzinger
9a2d7ee1ff
extend tab layout theming for text / states and ripple effect
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-08-11 09:50:52 +02:00
Andy Scherzinger
37d88b7ea5
theme Mentions filter
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-08-11 09:50:52 +02:00
Andy Scherzinger
9a7ef3ca6c
theme generic avatars for Material 3
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-08-11 09:50:52 +02:00
Andy Scherzinger
1b82d14fbb
theme account switcher button's ripple effect
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-08-11 09:50:51 +02:00
Andy Scherzinger
e629932262
theme text buttons's ripple color for Material 3
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-08-11 09:50:51 +02:00
Andy Scherzinger
0d52e8a882
remove unused import
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-08-11 09:50:51 +02:00
Andy Scherzinger
1ee504870e
Add todo for generic avatar theming
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-08-11 09:50:51 +02:00
Andy Scherzinger
f6e215ad63
theme quote deletion image button
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-08-11 09:50:51 +02:00
Andy Scherzinger
d27f0e2222
preoperly theme quoted messages for Material 3 including alignment
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-08-11 09:50:50 +02:00
Andy Scherzinger
3d88392930
fix overflow menu background on toolbar for Material 3
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-08-11 09:50:50 +02:00
Andy Scherzinger
e3f305c804
Dialogs and bottom sheet to Material 3 background
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-08-11 09:50:50 +02:00
Andy Scherzinger
2f71a33c05
convert image buttons to fab
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-08-11 09:50:50 +02:00
Andy Scherzinger
4b4bd2bb6f
remove unneeded divider
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-08-11 09:50:50 +02:00
Andy Scherzinger
11f78b75fe
Make status dialog more Material 3 aligned
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-08-11 09:50:49 +02:00
Andy Scherzinger
a53bf16f72
Move chat messages to Material 3
switch to high and mid emphasis color for text in chat bubbles
centralize bubble coloring

Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-08-11 09:50:49 +02:00
Andy Scherzinger
822970f8e8
improve color state calculation for all button types with primary color style
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-08-11 09:50:49 +02:00
Andy Scherzinger
51cf6061c3
cleanup text theming methods, migrate image button theming
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-08-11 09:50:49 +02:00
Andy Scherzinger
ab14d9afff
make font size value a constant
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-08-11 09:50:49 +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
Andy Scherzinger
6075191bc5
TextInputLayout now supports Material 3
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-08-11 09:50:48 +02:00
Andy Scherzinger
0c4513678d
improve search toolbar theming
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-08-11 09:50:48 +02:00
Andy Scherzinger
53168d1953
theme account chooser dialog
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-08-11 09:50:48 +02:00
Andy Scherzinger
a6ba545aef
material 3 theming for search bar, toolbar and fab
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-08-11 09:50:47 +02:00
Andy Scherzinger
0f997b433d
make theme ship schemes and utilize them in themeing util
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-08-11 09:50:47 +02:00
Andy Scherzinger
58dc6a9aae
add material 3 color calculation/scheme classes
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-08-11 09:50:47 +02:00
Andy Scherzinger
fe4e73add6
make chip style pill-styled again even for material 3
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-08-11 09:50:47 +02:00
Andy Scherzinger
b39bd143e0
adapt account item design to Material 3
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-08-11 09:50:47 +02:00
Andy Scherzinger
baf1a24edd
adapt divider colors to semi transparency to better work for dialogs
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-08-11 09:50:46 +02:00
Andy Scherzinger
ad0bd58a9e
Change style to Material 3
Resolves #2076

Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-08-11 09:50:43 +02:00
Andy Scherzinger
ce71746461
Merge pull request #2217 from nextcloud/feature/250/server-theme
🎨 Server theming
2022-08-11 09:47:40 +02:00
Nextcloud bot
bb3253d5c0
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-08-11 04:15:05 +00:00
Andy Scherzinger
df9e679ca1
remove unused resources and igonre unused quantities simply coming in via transifex
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-08-10 22:18:00 +02:00
Andy Scherzinger
ddb033c288
remove unused import
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-08-10 19:23:53 +02:00
Andy Scherzinger
65049b2d2d
accept many functions within utility classes
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-08-10 19:22:04 +02:00
Andy Scherzinger
11463ea55f
shorten number of return statements
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-08-10 19:22:04 +02:00
Álvaro Brey
501b75309b
Fix ktlint after rebase
Signed-off-by: Álvaro Brey <alvaro.brey@nextcloud.com>
2022-08-10 19:22:03 +02:00
Álvaro Brey
c817d091bf
ViewThemeUtils: remove obsolete TODO
Signed-off-by: Álvaro Brey <alvaro.brey@nextcloud.com>
2022-08-10 19:22:03 +02:00
Álvaro Brey
eec323cba8
ThemingCapability: remove obsolete TODO
it works

Signed-off-by: Álvaro Brey <alvaro.brey@nextcloud.com>
2022-08-10 19:22:03 +02:00
Álvaro Brey
4abc3839e5
ViewThemeUtils: move things that do not belong in this class
Color calculations go to ColorUtil, checking if dark theme goes to PlatformThemeUtil

Signed-off-by: Álvaro Brey <alvaro.brey@nextcloud.com>
2022-08-10 19:22:02 +02:00
Álvaro Brey
a1a91c5c0f
Move current user listening logic out of UserModule and into a new CurrentUserProvider
Signed-off-by: Álvaro Brey <alvaro.brey@nextcloud.com>
2022-08-10 19:22:02 +02:00
Álvaro Brey
a45166a9db
Make ColorUtil an injectable and clean up a little
Signed-off-by: Álvaro Brey <alvaro.brey@nextcloud.com>
2022-08-10 19:22:02 +02:00
Andy Scherzinger
3a9009231d
fix binding changes
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-08-10 19:22:02 +02:00
Andy Scherzinger
3c865364ac
let current user be null-able
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-08-10 19:22:01 +02:00
Andy Scherzinger
209c1a90ba
reuse color state list definitions
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-08-10 19:22:01 +02:00
Andy Scherzinger
b34765ccf4
migrate profile fields to input layouts for Material3
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-08-10 19:22:01 +02:00
Andy Scherzinger
23d436f314
fix input layout theming dark/light
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-08-10 19:22:01 +02:00
Andy Scherzinger
6e42a52a9a
fix entry menu bottom sheet input layout text color
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-08-10 19:22:00 +02:00
Andy Scherzinger
8f02558a8d
Add caching
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-08-10 19:22:00 +02:00
Andy Scherzinger
6e0afac7f6
format layout
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-08-10 19:22:00 +02:00
Andy Scherzinger
96c29260ab
set link colors correctly
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-08-10 19:21:59 +02:00
Andy Scherzinger
e3c535722d
theme all swipe to refresh layouts
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-08-10 19:21:59 +02:00
Andy Scherzinger
b9e9c35df5
don't tint status icons on cardViews
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-08-10 19:21:59 +02:00
Andy Scherzinger
eb967fbf7d
harden theming calculations to handle null values
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-08-10 19:21:59 +02:00
Andy Scherzinger
d4c07f1278
safeguard theme values in case of null values
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-08-10 19:21:58 +02:00
Andy Scherzinger
d9c59b6f87
organize imports
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-08-10 19:21:58 +02:00
Andy Scherzinger
278aaa437f
fix ktlint issues
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-08-10 19:21:58 +02:00
Andy Scherzinger
9eac0d3615
theme audio device list
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-08-10 19:21:57 +02:00
Andy Scherzinger
234e97502b
theme reactions bottomsheet
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-08-10 19:21:57 +02:00
Andy Scherzinger
e9d304a79b
theme outgoing voice message seekbar
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-08-10 19:21:57 +02:00
Andy Scherzinger
b7006230b8
theme incoming voice message
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-08-10 19:21:57 +02:00
Andy Scherzinger
f68384e69d
theme folder/archive icon
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-08-10 19:21:57 +02:00
Andy Scherzinger
641744ec56
extend outgoing messages' theming
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-08-10 19:21:56 +02:00
Andy Scherzinger
0f94b8c473
theme outgoing poll bubble
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-08-10 19:21:56 +02:00
Andy Scherzinger
a907b1ba51
fix theming for poll button
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-08-10 19:21:56 +02:00
Andy Scherzinger
9aabb8804e
extend button theming for primary actions to respect states and also cover icons
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-08-10 19:21:56 +02:00
Andy Scherzinger
e54abe63f1
theme polls and add further theming functions to the utils
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-08-10 19:21:55 +02:00
Andy Scherzinger
0463a39bfb
Add EditText coloring
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-08-10 19:21:55 +02:00
Andy Scherzinger
28aae00641
extend text input layout theming
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-08-10 19:21:55 +02:00
Andy Scherzinger
907386e9b7
add proper button-state coloring for button text/icon
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-08-10 19:21:55 +02:00
Andy Scherzinger
aef9b69175
add proper checkbox- state coloring
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-08-10 19:21:55 +02:00
Andy Scherzinger
7ec78e53f0
first steps to theme poll creation
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-08-10 19:21:54 +02:00
Andy Scherzinger
9be4358ae0
theme contacts selector icon
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-08-10 19:21:54 +02:00
Andy Scherzinger
d1a562cf80
fix after rebase
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-08-10 19:21:54 +02:00
Álvaro Brey
e5bf5ec261
WIP: theme chat controller and message viewholders
Signed-off-by: Álvaro Brey <alvaro.brey@nextcloud.com>
2022-08-10 19:21:54 +02:00
Álvaro Brey
3283e5b4f6
ConversationItem: theme unread message bubbles
Signed-off-by: Álvaro Brey <alvaro.brey@nextcloud.com>
2022-08-10 19:21:54 +02:00
Álvaro Brey
4de7d06e8e
Theme SharedItemsActivity
Signed-off-by: Álvaro Brey <alvaro.brey@nextcloud.com>
2022-08-10 19:21:53 +02:00
Álvaro Brey
94479d0943
Theme TakePhotoActivity
Signed-off-by: Álvaro Brey <alvaro.brey@nextcloud.com>
2022-08-10 19:17:36 +02:00
Álvaro Brey
b66ec4a150
Theme ConversationInfoController
Signed-off-by: Álvaro Brey <alvaro.brey@nextcloud.com>
2022-08-10 19:17:36 +02:00
Álvaro Brey
b4ed79dc38
Theme EntryMenuController
Signed-off-by: Álvaro Brey <alvaro.brey@nextcloud.com>
2022-08-10 19:17:36 +02:00
Álvaro Brey
49f9e0ffc4
Theme RemoteFileBrowser
Signed-off-by: Álvaro Brey <alvaro.brey@nextcloud.com>
2022-08-10 19:17:35 +02:00
Álvaro Brey
a4c01978a8
Theme ProfileController
Signed-off-by: Álvaro Brey <alvaro.brey@nextcloud.com>
2022-08-10 19:17:35 +02:00
Álvaro Brey
4c31f6f2e9
SettingsController: theme switch preferences
Signed-off-by: Álvaro Brey <alvaro.brey@nextcloud.com>
2022-08-10 19:17:35 +02:00
Álvaro Brey
5abdacab25
SettingsController: color section headers
Signed-off-by: Álvaro Brey <alvaro.brey@nextcloud.com>
2022-08-10 19:17:35 +02:00
Álvaro Brey
d60fdd03c5
Color SetStatusDialog and ChooseAccountDialog
Signed-off-by: Álvaro Brey <alvaro.brey@nextcloud.com>
2022-08-10 19:17:35 +02:00
Álvaro Brey
4af491c7df
Color search highlights
Signed-off-by: Álvaro Brey <alvaro.brey@nextcloud.com>
2022-08-10 19:17:34 +02:00
Álvaro Brey
54d1ac9de7
ContactsController: tint "public conversation" button
Signed-off-by: Álvaro Brey <alvaro.brey@nextcloud.com>
2022-08-10 19:17:34 +02:00
Álvaro Brey
5ec18780ff
Color list headers
Signed-off-by: Álvaro Brey <alvaro.brey@nextcloud.com>
2022-08-10 19:17:34 +02:00
Álvaro Brey
a8e99862f1
Automatically update current user with room observable
Signed-off-by: Álvaro Brey <alvaro.brey@nextcloud.com>
2022-08-10 19:17:34 +02:00
Álvaro Brey
9bbeb9b420
Base framework for server theming
Includes PoC with ConversationListController's FAB

Signed-off-by: Álvaro Brey <alvaro.brey@nextcloud.com>
2022-08-10 19:17:30 +02:00
Andy Scherzinger
768cb06999
Merge pull request #2283 from nextcloud/feature/2029/more-tabs-in-shared-items-view-2
Add tab for deck cards
2022-08-10 18:07:08 +02:00
Álvaro Brey
cdc818b720
ChatController: fix crash when opening conversation from notification
This happens because there is no Conversation object available in the Controller when coming from a notification.

This patch means that when opening a notification for a poll, it will always look like the user is not the owner of the poll even if they are.
This is unfortunately difficult to fix as the initialization logic for ChatController is all kinds of messed up: ideally we'd always load the Conversation object before showing any kind of UI but that's too big of a change to do without tests.

Signed-off-by: Álvaro Brey <alvaro.brey@nextcloud.com>
2022-08-10 13:10:30 +02:00
Nextcloud bot
228952d85c
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-08-10 04:23:01 +00:00
Andy Scherzinger
53bdd951ad
Add deck icon
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-08-09 23:24:27 +02:00
Tim Krüger
aae7e851c9
Reduce number of return statements
Codacy reported:

  Function itemFromObject has 4 return statements which exceeds the limit of 2.

Signed-off-by: Tim Krüger <t@timkrueger.me>
2022-08-09 18:48:25 +02:00
Tim Krüger
43f2d1badf
Shared items: Add tab for deck cards
Deck cards will be opened in the web browser because no specific view
exists.

Resolves: #2029

Signed-off-by: Tim Krüger <t@timkrueger.me>
2022-08-09 18:26:48 +02:00
Tim Krüger
4c8c8ac98a
Shared items: Show actor and date-time
For all item types it will now shown who (actor) and when (date-time)
the item was shared.

Signed-off-by: Tim Krüger <t@timkrueger.me>
2022-08-09 18:09:54 +02:00
drone
ed0e9c2374 Merge commit '81a3e8216dd947abfe1038a5ab040f9c67d3a62b' 2022-08-09 12:00:54 +00:00
Tim Krüger
81a3e8216d
Shared items: Add tab for other
Resolves: #2029

Signed-off-by: Tim Krüger <t@timkrueger.me>
2022-08-09 14:00:00 +02:00
Nextcloud bot
fa91ba4691
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-08-09 04:14:40 +00:00
Tim Krüger
26fde13292
Shared items: Add tab for locations
Resolves: #2029

Signed-off-by: Tim Krüger <t@timkrueger.me>
2022-08-08 18:52:11 +02:00
Tim Krüger
d5214ee29c
Replace '@JvmField' with 'lateinit'
Signed-off-by: Tim Krüger <t@timkrueger.me>
2022-08-08 18:52:11 +02:00
Tim Krüger
00f06c6ef2
Shared items: Add tab for polls
Resolves: #2029

Signed-off-by: Tim Krüger <t@timkrueger.me>
2022-08-08 18:51:56 +02:00
Nextcloud bot
f572cfc08f
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-08-08 04:12:02 +00:00
Nextcloud bot
e074b82745
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-08-07 04:16:42 +00:00
Nextcloud bot
1ce8173e8b
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-08-06 04:14:36 +00:00
Andy Scherzinger
9fc7182790
Migrate to updated popup bubble
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-08-05 16:40:59 +02:00
Andy Scherzinger
9df00a8562
make equals null-safe in case no status set
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-08-05 16:17:04 +02:00
Tim Krüger
a906e2c244
Merge pull request #2277 from nextcloud/feature/2265/i18n-singular-and-plural
Use singular and plural for vote(s) string
2022-08-05 11:42:25 +02:00
Nextcloud bot
f3e4d89eed
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-08-05 09:03:35 +00:00
Tim Krüger
84f2cf432c
Use singular and plural for vote(s) string
Resolves: #2265

Signed-off-by: Tim Krüger <t@timkrueger.me>
2022-08-05 10:27:03 +02:00
Andy Scherzinger
3ca3f35e3e
Update app/src/main/java/com/nextcloud/talk/adapters/items/ConversationItem.java
Co-authored-by: Álvaro Brey <alvaro.brey@nextcloud.com>
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-08-04 12:29:24 +02:00
tobiasKaminsky
d1e474e402
Fix status visibility in conversation list
Signed-off-by: tobiasKaminsky <tobias@kaminsky.me>
2022-08-03 08:24:10 +02:00
Valdnet
518b3f5a5e
i18n: Spelling unification
Spelling unification in Transifex.

Signed-off-by: Valdnet <47037905+Valdnet@users.noreply.github.com>

Signed-off-by: Valdnet <47037905+Valdnet@users.noreply.github.com>
2022-08-02 11:25:39 +02:00
Andy Scherzinger
ba83552be8
fix button positioning
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-08-01 13:43:06 +02:00
Andy Scherzinger
0a3e0230c9
fix avatar voter border
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-08-01 13:43:05 +02:00
Andy Scherzinger
bb822aa1a4
Change vote submitting string
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-08-01 13:43:05 +02:00
Andy Scherzinger
09ddc86c40
Optimize layout and make it accessible
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-08-01 13:43:05 +02:00
Andy Scherzinger
14d827c88a
Dialogs have a 24dp outer spacing
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-08-01 13:43:05 +02:00
Andy Scherzinger
a70ef7b572
Question field should be focused directly
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-08-01 13:43:05 +02:00
Andy Scherzinger
bcffc3b96f
Bar color should be primary instead of muted different tone
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-08-01 13:43:04 +02:00
Andy Scherzinger
e767d08755
make "End poll" a tertiary-action styled button
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-08-01 13:43:04 +02:00
Andy Scherzinger
5bae24213e
pin button sizes to min clickable size
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-08-01 13:43:04 +02:00
Andy Scherzinger
bb425ef759
improve poll creating element sizes
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-08-01 13:43:00 +02:00
Andy Scherzinger
6a7ed4422d
update video icon in line with files client https://github.com/nextcloud/android/pull/10563
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-07-28 14:05:55 +02:00
Andy Scherzinger
441c321e6a
Merge pull request #2251 from nextcloud/chore/noid/roomCleanup
Persistence cleanup
2022-07-27 09:15:41 +02:00
Nextcloud bot
ee2d94c7d3
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-07-27 03:49:45 +00:00
Andy Scherzinger
d999815ffa
remove unused java imports
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-07-26 22:24:18 +02:00
Andy Scherzinger
9b48bfedf6
remove unused imports
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-07-26 22:13:06 +02:00
Andy Scherzinger
f951336d0d
remove unused persistence methods
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-07-26 21:55:03 +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
125d6770b4
plug cipher migration hook into room
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-07-26 20:33:47 +02:00
Nextcloud bot
52166101c4
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-07-26 04:14:42 +00:00
Andy Scherzinger
520dbdbdec
organize imports
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-07-25 10:59:08 +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
99049e01d7
remove all methods of legacy arbitrary storage persistence
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-07-24 13:41:35 +02:00
Andy Scherzinger
b5040f2d55
Migrate ArbitraryStorageUtils to ArbitraryStorageManager use
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-07-24 13:41:34 +02:00
Nextcloud bot
291eee5a1e
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-07-24 04:15:25 +00:00
Andy Scherzinger
5c6fe628f1
Migrate ArbitraryStorageUtils to room
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-07-23 18:40:32 +02:00
Andy Scherzinger
516b9190ad
fix codacy issues
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-07-23 18:27:14 +02:00
Andy Scherzinger
8f6bb87761
remove legacy current user provider and make all methods of legacy user utils private
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-07-23 16:43:17 +02:00
Andy Scherzinger
4d935920d0
Migrate RemoteFileBrowser and UnifiedSearch classes to room
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-07-23 16:38:05 +02:00
Andy Scherzinger
1a20bd3a3b
Migrate to new current user provider
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-07-23 16:33:45 +02:00
Andy Scherzinger
f3d31bf8c1
add license header and empty line at file end
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-07-23 16:29:13 +02:00
Andy Scherzinger
93dacd25c4
Deprecate CurrentUserProvider
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-07-23 16:27:34 +02:00
Andy Scherzinger
3e08781872
Add removal todo for upcoming major version(s)
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-07-23 16:27:18 +02:00
Andy Scherzinger
bcb728a0d1
Migrate PushUtils from requery to room
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-07-23 16:21:40 +02:00
Andy Scherzinger
285b9cff03
Make signaling db updates use a subscribing consumer
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-07-23 16:21:03 +02:00
Andy Scherzinger
7593efd43f
Migrate WebsocketConnectionsWorker from requery to room
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-07-23 16:13:39 +02:00
Andy Scherzinger
70d777ec3b
Migrate AddParticipantsToConversation from requery to room
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-07-23 16:13:25 +02:00
Andy Scherzinger
67318883d0
Migrate SignalingSettingsWorker from requery to room
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-07-23 16:05:48 +02:00
Andy Scherzinger
22ef1457ee
Migrate LeaveConversationWorker from requery to room
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-07-23 16:05:30 +02:00
Andy Scherzinger
24ddaf4ec4
Migrate ShareOperationWorker from requery to room
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-07-23 16:05:07 +02:00
Andy Scherzinger
2dfd4731af
Migrate DeleteConversationWorker from requery to room
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-07-23 16:04:47 +02:00
Andy Scherzinger
5b8c352947
Migrate ContactAddressBookWorker from requery to room
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-07-23 16:04:22 +02:00
Andy Scherzinger
d7654f8476
Add generic save method
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-07-23 16:03:43 +02:00
Andy Scherzinger
c4c183ac39
Add UserIdUtils for generic no primary key situation handling
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-07-23 16:02:56 +02:00
Andy Scherzinger
1cec9045ee
Migrate CapabilitiesWorker from requery to room
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-07-23 14:58:08 +02:00
Andy Scherzinger
d4b84635f1
Migrate DownloadFileToCacheWorker from requery to room
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-07-23 14:57:50 +02:00
Andy Scherzinger
27017aac9e
Migrate AccountRemovalWorker from requery to room
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-07-23 14:29:41 +02:00
Andy Scherzinger
7ea37b9ee3
migrate poll view model from requery to room
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-07-23 14:14:48 +02:00
Andy Scherzinger
4513866c1d
migrate key manager from requery to room
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-07-23 14:09:08 +02:00
Andy Scherzinger
70ae6eb27d
migrate mention auto complete from requery to room
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-07-23 14:08:45 +02:00
Nextcloud bot
525da5fba1
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-07-23 04:12:13 +00:00
Marcel Hibbe
faf5f0f698 allow multiline for polls question input
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-07-22 17:54:57 +00:00
Marcel Hibbe
34686dd581 avoid to divide by zero
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-07-22 17:54:57 +00:00
Marcel Hibbe
c97d02fdde revert button height
was not necessary for multiline. wrap content just works fine

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-07-22 17:54:57 +00:00
Marcel Hibbe
8dfb6ca5aa add loading screen
this also avoids to doubleclick on end poll button

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-07-22 17:54:57 +00:00
Marcel Hibbe
06d9b6f886 rename close poll to end poll in code
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-07-22 17:54:57 +00:00
Marcel Hibbe
c3472de802 move checkboxes to left
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-07-22 17:54:57 +00:00
Marcel Hibbe
a84c3d3f22 move avatars in detail view to left
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-07-22 17:54:57 +00:00
Marcel Hibbe
c1fd78d29a static text for poll messages
= remove api call. it was decided in talk team to remove this to avoid so many requests. downside is that it's not possible anymore to see if the poll is closed or not.

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-07-22 17:54:57 +00:00
Marcel Hibbe
8f3a18655e change button heights (support multiple rows)
layout_gravity=center_vertical was added that buttons with 1 row look identical to buttons with 2 rows

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-07-22 17:54:57 +00:00
Marcel Hibbe
564587dab1 adjust minor design (move pixels)
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-07-22 17:54:57 +00:00
Marcel Hibbe
78274472e1 more whitespace between results list and buttons on bottom
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-07-22 17:54:57 +00:00
Marcel Hibbe
b2e47d885c show overlapped mini avatars in results overview
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-07-22 17:54:57 +00:00
Marcel Hibbe
64412a1876 toggle details view on click on avatar views
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-07-22 17:54:57 +00:00
Marcel Hibbe
20dabf3a72 wip. toggle between voters overview and voters details
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-07-22 17:54:57 +00:00
Marcel Hibbe
c7014fd063 hide system message "You voted on the poll ..."
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-07-22 17:54:57 +00:00
Marcel Hibbe
58739b8f14 disable buttons while waiting for response
avoids doubleclick and doubled data

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-07-22 17:54:57 +00:00
Marcel Hibbe
f46d2d28f5 close dialog when voted for hidden poll
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-07-22 17:54:57 +00:00
Marcel Hibbe
fe217d9700 scroll complete poll create screen
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-07-22 17:54:57 +00:00
Marcel Hibbe
82ffd1f83c add Options in init method
this avoids adding them again on screen rotation...

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-07-22 17:54:57 +00:00
Marcel Hibbe
ba6cc7170b initially add 2 option fields and focus question field
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-07-22 17:54:57 +00:00
Marcel Hibbe
ca0c045e8d initialize viewModel in onCreate
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-07-22 17:54:57 +00:00
Marcel Hibbe
cd3f8af24a change strings
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-07-22 17:54:57 +00:00
Marcel Hibbe
dca7e39905 get variables from parentViewModel
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-07-22 17:54:57 +00:00
Marcel Hibbe
139c4412ad move variables from fragment to PollMainViewModel
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-07-22 17:54:57 +00:00
Marcel Hibbe
6dfed0e5e7 avoid unnecessary null checks in PollMessageViewHolders
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-07-22 17:54:57 +00:00
Marcel Hibbe
880c656be2 enable/disable submit button by liveData
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-07-22 17:54:57 +00:00
Marcel Hibbe
3267fc2f47 remove nullable from PollRepository return types
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-07-22 17:54:57 +00:00
Marcel Hibbe
87fdd7017d replace @JvmField with lateinit vars
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-07-22 17:54:57 +00:00
Marcel Hibbe
bfcab7cb49 fix copyright
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-07-22 17:54:57 +00:00
Marcel Hibbe
b6d0d58cbe reorder poll category in strings.xml
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-07-22 17:54:57 +00:00
Marcel Hibbe
4b6a314514 remove unused viewState
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-07-22 17:54:57 +00:00
Marcel Hibbe
4388d66b23 use CurrentUserProviderNew and User for polls
use CurrentUserProviderNew and User instead of CurrentUserProvider and UserEntity

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-07-22 17:54:57 +00:00
Marcel Hibbe
41d64aa740 add copyrights
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-07-22 17:54:57 +00:00
Marcel Hibbe
91fc3c311d allow question to be multiline
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-07-22 17:54:57 +00:00
Marcel Hibbe
feaf041685 fix cursor jumping to end when editing question
setting the cursor to the end was just a (buggy) workaround when the question was of type liveData. As it's not liveData anymore, this workaround was now useless

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-07-22 17:54:57 +00:00
Marcel Hibbe
6b8c83f553 add dismiss button for edit votes mode
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-07-22 17:54:57 +00:00
Marcel Hibbe
2ac1567f5d delete empty options on poll creation
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-07-22 17:54:57 +00:00
Marcel Hibbe
e77fb7cefb fix lint warnings
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-07-22 17:54:57 +00:00
Marcel Hibbe
9afe4e44d6 fix LiveData value assignment nullability mismatch
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-07-22 17:54:57 +00:00
Marcel Hibbe
f10b76d430 check talk-polls capability
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-07-22 17:54:57 +00:00
Marcel Hibbe
3b4be83ea7 calculate percent with voters instead votes
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-07-22 17:54:57 +00:00
Marcel Hibbe
a8afb61745 always focus new empty poll option in poll create dialog
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-07-22 17:54:57 +00:00
Marcel Hibbe
40f20c56d6 update poll UI for moderators etc
- allow to end poll for moderators

- allow to see voters amount for voting screen for moderators and creators of the poll

- replace UserEntity with User

- show numVoters instead of votes

- minor refactoring

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-07-22 17:54:57 +00:00
Marcel Hibbe
c848659fda fix text of submit button
+ rename variables

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-07-22 17:54:57 +00:00
Marcel Hibbe
385d5ccd4a fix copyrights
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-07-22 17:54:57 +00:00
Marcel Hibbe
6ab5dace1c fix layouts to handle poll with many options
make options scrollable

replace constraint layout with linear layouts + layout_weight="1"

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-07-22 17:54:57 +00:00
Marcel Hibbe
cedbcaefee fix percentage calculation for multiselect polls
for multiselect polls the total votes must be taken instead amount of voters (one voter can have more than 1 votes..)

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-07-22 17:54:57 +00:00
Marcel Hibbe
9e8dbb70f3 remove livedata where it's not needed
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-07-22 17:54:57 +00:00
Marcel Hibbe
2988b667fe solve detekt warnings 2
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-07-22 17:54:57 +00:00
Marcel Hibbe
2b8ee4953b solve detekt warnings
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-07-22 17:54:57 +00:00
Marcel Hibbe
1b13812202 solve klint warnings
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-07-22 17:54:57 +00:00
Marcel Hibbe
4c6e4b1c4c add copyright headers
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-07-22 17:54:57 +00:00
Marcel Hibbe
23bf072326 fix InstantiationException for more fragments
followup to a12692ec + get parentViewModel by ViewModelProvider

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-07-22 17:54:57 +00:00
Marcel Hibbe
38256fc25d fix compile error from commit a12692ec
(temporarily...)

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-07-22 17:54:57 +00:00
Marcel Hibbe
1a000859bf fix InstantiationException for fragments
fragments must have a public, no-arg constructor.
extra information must be passed as arguments.

With a constructor that receives the data, the following error occurs:

Fragment$InstantiationException: Unable to instantiate fragment ..... could not find Fragment constructor

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-07-22 17:54:57 +00:00
Marcel Hibbe
3224ae1e1f improve klint score, minor refactoring
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-07-22 17:54:57 +00:00
Marcel Hibbe
b347fbf1b5 rename close poll to end poll (in code)
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-07-22 17:54:57 +00:00
Marcel Hibbe
bd99245c26 add confirm dialog to end poll
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-07-22 17:54:56 +00:00
Marcel Hibbe
01f7016ae2 convert "votes" map
see https://github.com/nextcloud/spreed/pull/7500

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-07-22 17:54:56 +00:00
Marcel Hibbe
73d48a395c show detailed list of voters
+ refactoring adapter and viewholders for result screen

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-07-22 17:54:56 +00:00
Marcel Hibbe
909ee07ce6 wip2: styling of poll bars
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-07-22 17:54:56 +00:00
Marcel Hibbe
bddd6b2e8e wip: styling of poll bars
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-07-22 17:54:56 +00:00
Marcel Hibbe
318549a63a wip: show user avatars for closed public polls
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-07-22 17:54:56 +00:00
Marcel Hibbe
fb54b35cf0 rename close poll to end poll
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-07-22 17:54:56 +00:00
Marcel Hibbe
6447b82969 disable vote button when selection is not changed compared to own votes
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-07-22 17:54:56 +00:00
Marcel Hibbe
167aa43ca0 make own votes bold in result screen
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-07-22 17:54:56 +00:00
Marcel Hibbe
a95c0d997b make own votes bold in voting screen
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-07-22 17:54:56 +00:00
Marcel Hibbe
782d74bfb9 restrict multiselection to maxVotes
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-07-22 17:54:56 +00:00
Marcel Hibbe
a4c48b11d6 fix radiobuttons
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-07-22 17:54:56 +00:00
Marcel Hibbe
2da4c37a52 remove liveData for selectedOptions
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-07-22 17:54:56 +00:00
Marcel Hibbe
acda3d283b add multiselect for poll options
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-07-22 17:54:56 +00:00
Marcel Hibbe
8541ebbfc0 add ability to close poll in PollVoteFragment
this adds duplicate button logic atm. might need to be improved..

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-07-22 17:54:56 +00:00
Marcel Hibbe
8c898404d1 move details text to PollMainViewModel
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-07-22 17:54:56 +00:00
Marcel Hibbe
fbd5e5f5ed show voting screen for open private polls
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-07-22 17:54:56 +00:00
Marcel Hibbe
b504af1cd9 add UI logic + close poll system message
add close poll button (wip/temporarily?)
add "close poll" system message
add UI related logic to PollMainViewModel
add placeholder for pollDetails in UI

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-07-22 17:54:56 +00:00
Marcel Hibbe
ea0b7d07cc poll creation: add logic to enable/disable buttons
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-07-22 17:54:56 +00:00
Marcel Hibbe
8148bfaa65 add poll system message, klint fixes
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-07-22 17:54:56 +00:00
Marcel Hibbe
9f90e9c4c6 wip: create poll using multiple livedata fields
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-07-22 17:54:56 +00:00
Marcel Hibbe
b140cc8751 wip: create poll using livedata
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-07-22 17:54:56 +00:00
Marcel Hibbe
af427f8300 wip: create poll. show outgoing polls
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-07-22 17:54:56 +00:00
Marcel Hibbe
0388f3e3f6 fix to show vote results if only "poll.votes" are available
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-07-22 17:54:56 +00:00
Marcel Hibbe
d31a9b1ade fix to send votes
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-07-22 17:54:56 +00:00
Marcel Hibbe
5a070f5e1b wip: view poll results
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-07-22 17:54:56 +00:00
Marcel Hibbe
7d8aebe234 wip: vote on poll
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-07-22 17:54:56 +00:00
Marcel Hibbe
81666829b5 fetch poll to set subtitle in message
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-07-22 17:54:56 +00:00
Marcel Hibbe
ae80a4e2ad pass roomToken to MessageViewHolders
wrap roomToken and ProfileBottomSheet in data class MessagePayload

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-07-22 17:54:56 +00:00
Marcel Hibbe
c7e9721809 wip: get poll from API
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-07-22 17:54:56 +00:00
Álvaro Brey
42324419cd wip: Poll view model work
Signed-off-by: Álvaro Brey <alvaro.brey@nextcloud.com>
2022-07-22 17:54:56 +00:00
Marcel Hibbe
01f18d7eca add API poll details
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-07-22 17:54:56 +00:00
Marcel Hibbe
e605546925 fix klint warnings
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-07-22 17:54:56 +00:00
Marcel Hibbe
bf05445561 open poll dialog
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-07-22 17:54:56 +00:00
Marcel Hibbe
f2025332ab add data classes for polls (WIP)
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-07-22 17:54:56 +00:00
Andy Scherzinger
00f55f1949
use correct primary key to search for any other users in the DB and use current value from user attributes object
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-07-22 19:50:29 +02:00
Andy Scherzinger
6a8cafec22
migrate location picker from requery to room
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-07-22 13:52:34 +02:00
Andy Scherzinger
dac99a5db8
Remove unused (legacy) UserUtils
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-07-22 13:52:34 +02:00
Andy Scherzinger
e7756003d7
remove variable shadowing
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-07-22 13:52:33 +02:00
Álvaro Brey
a3b99e9010
UserManager: fix rx logic for scheduleUserForDeletionWithId
Signed-off-by: Álvaro Brey <alvaro.brey@nextcloud.com>
2022-07-22 13:52:33 +02:00
Andy Scherzinger
e7c258e2f8
fix detekt issues
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-07-22 13:52:33 +02:00
Andy Scherzinger
9bdd0c7a4e
Fix user manager db result processing
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-07-22 13:52:32 +02:00
Andy Scherzinger
6e05056b2e
Migrate AccountVerificationController from requery to room
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-07-22 13:52:32 +02:00
Andy Scherzinger
8d87d5486b
update to latest API changes for storing users
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-07-22 13:52:32 +02:00
Andy Scherzinger
036e67027c
Migrate web view login from requery to room
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-07-22 13:52:31 +02:00
Andy Scherzinger
fe8c7d468a
Migrate server selection from requery to room
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-07-22 13:52:31 +02:00
Álvaro Brey
da6ca10cb8
PushRegistrationWorker: fix missing injection causing NPE during login
Signed-off-by: Álvaro Brey <alvaro.brey@nextcloud.com>
2022-07-22 10:16:37 +02:00
Andy Scherzinger
5eab5f86f7 push token recover is should not use the standard httpClient object and its cookieStore
Resolves #2218

Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-07-22 06:48:40 +00:00
Nextcloud bot
d81e82c833
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-07-20 04:12:38 +00:00
Nextcloud bot
1ae4379e04
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-07-19 04:14:14 +00:00
Andy Scherzinger
7ce5746969
rename updateUser to updateOrCreateUser
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-07-18 18:52:51 +02:00
Andy Scherzinger
96910c02a1
simplify call logic
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-07-18 18:52:51 +02:00
Andy Scherzinger
480122d648
rename entity to user
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-07-18 18:52:51 +02:00
Andy Scherzinger
7568ccdbb1
split account matcher code for better readability
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-07-18 18:52:50 +02:00
Andy Scherzinger
8efbd14fe0
Migrate switching accounts from requery to room
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-07-18 18:52:50 +02:00
Andy Scherzinger
ac7652b5de
Migrate Settings and Profile controller from requery to room
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-07-18 18:52:49 +02:00
Nextcloud bot
17a48826d3
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-07-18 04:12:11 +00:00
Nextcloud bot
489928904d
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-07-17 04:13:13 +00:00
Andy Scherzinger
80570e59b4
rename user var to better reflect its type
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-07-16 16:01:15 +02:00
Andy Scherzinger
f4cde24f8e
Migrate contacts and creation of talk rooms from requery to room
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-07-16 15:52:01 +02:00
Andy Scherzinger
1c672c04e3
Merge pull request #2219 from nextcloud/chore/1549/roomMigration2
Migrate calls and used classes/methods from requery to room
2022-07-16 15:15:33 +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
75aa5c9379
reformat code
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-07-16 14:33:55 +02:00
Nextcloud bot
a743e32cbb
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-07-16 04:13:29 +00:00
drone
5e2bd3c12d Merge commit 'fde2667fe79a09e6b267a26bb61c06730d43d7d5' 2022-07-14 16:40:05 +00: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
Marcel Hibbe
95f3d776db
fix switching conversation titles
This reverts a change from a24f49c7

Before a24f49c7 in onDestroy() the disposables were not disposed. Instead this was "only" done in onComplete() of leaveRoom().
See a24f49c#diff-6b47d0e9875a7f7d5c1e6b80feab998e92d29b0cda8ac9bbf427aab99e56d209R1827
Because with a24f49c7 was now executed in onDestroy() , the leaveRoom() method is not executed successfully because it's destroyed too early. This results in multiple calls of getRoomInfo() with different roomTokens.

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-07-14 10:21:13 +02:00
Nextcloud bot
e682d30369
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-07-14 04:13:41 +00:00
Andy Scherzinger
f2fe776603
Deprecate legacy method
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-07-13 00:22:24 +02:00
Andy Scherzinger
835cac8189
organize imports
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-07-13 00:22:24 +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
Andy Scherzinger
110e8a76b7
make getImageRequestForUrl accept user or userEntity and have a variant without a user
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-07-13 00:22:02 +02:00
Andy Scherzinger
9b28a8cfe3
make hasChatPermission accept user and userEntity
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-07-13 00:22:02 +02:00
Andy Scherzinger
9fb176dc88
make helper methods easy to access from java code
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-07-13 00:21:59 +02:00
Andy Scherzinger
0fe26b6d08
Merge pull request #2199 from nextcloud/feature/noid/markAsRead
Mark as read via notification
2022-07-13 00:20:43 +02:00
Andy Scherzinger
ea849281e5
Merge pull request #2210 from nextcloud/chore/noid/with-nullable-binding
Add method in NewBaseController to handle NPE catches for viewbinding
2022-07-12 16:31:55 +02:00
Dariusz Olszewski
dafa1bfb2e Mark as read - reduce scope of try/catch
NumberFormatException is expected only inside parseMessageId. To avoid masking other errors accidentally, seems better to have try/catch only around parseMessageId call.

Signed-off-by: Dariusz Olszewski <starypatyk@users.noreply.github.com>
2022-07-12 12:51:03 +00:00
Dariusz Olszewski
97ea95c30f Mark as read - SpotBugs
Signed-off-by: Dariusz Olszewski <starypatyk@users.noreply.github.com>
2022-07-12 12:51:03 +00:00
Andy Scherzinger
f91d45e2db Improve message id parsing
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-07-12 12:51:03 +00:00
Dariusz Olszewski
9a247b48ac Mark as read - correct error message
Signed-off-by: Dariusz Olszewski <starypatyk@users.noreply.github.com>
2022-07-12 12:51:03 +00:00
Dariusz Olszewski
c3a31da6a9 Mark as read - extract buildIntentForAction function
Signed-off-by: Dariusz Olszewski <starypatyk@users.noreply.github.com>
2022-07-12 12:51:03 +00:00
Dariusz Olszewski
7243142676 Mark as read - use message ID retrieved from server
Minimal set of changes, to be cleaned-up.

Signed-off-by: Dariusz Olszewski <starypatyk@users.noreply.github.com>
2022-07-12 12:51:03 +00:00
Andy Scherzinger
f977b566a5 Implement mark as read via notification
Resolves #2164

Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-07-12 12:51:03 +00: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
Álvaro Brey
8e3dc066b2
Add method in NewBaseController to handle NPE catches for viewbinding
This is really a symptom of unreliable design around the async logic in Controllers. The data async calls should have been separate from the controller,
so that the only asynchronicity the Controller has to deal with is UI-related, and can be cancelled safely on destroyView.

In the future as those controllers are converted to something that has a separate ViewModel, this kind of catch should be completely unneeded.

Signed-off-by: Álvaro Brey <alvaro.brey@nextcloud.com>
2022-07-12 12:46:10 +02:00
Marcel Hibbe
1f5807b8de fix NPE for binding in onEmojiClickListener
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-07-11 17:24:56 +00:00
Marcel Hibbe
d983c62589 fix crash when changing status during call
"call" is not contained in predefinedStatusesList so it crashed when searching for it with predefinedStatusesList.first()

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-07-11 17:09:06 +00:00
Andy Scherzinger
82dbadc028
Merge pull request #2201 from nextcloud/bugfix/2198/fixNpeViewBindingTogglePublicConversation
catch NPE for binding in toggleCallHeader
2022-07-11 18:26:39 +02:00
Marcel Hibbe
0dbe8c0f2c
catch NPE for binding (loadCurrentStatus#onError)
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-07-11 13:44:24 +02:00
Marcel Hibbe
04c96dd400
catch NPE for binding
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-07-11 13:32:54 +02:00
Nextcloud bot
9bf2a7c3a1
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-07-10 04:15:26 +00:00
Nextcloud bot
ed8ca611ca
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-07-09 04:13:07 +00:00
Nextcloud bot
559537d6be
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-07-08 04:14:42 +00:00
Álvaro Brey
a24f49c737
Introduce DisposableSet to handle multiple disposables at once
This should be used in places where multiple Disposables are handled simultaneously as a simple way of
ensuring that all disposables are cleared on exit. For example on ViewModels and Controllers should likely use one
of these and clear it on their respective lifecycle end.

I've included an example use in ChatController, where it replaces an existing `ArrayList<Disposable>`, but the benefit
should be more visible in places where Disposables are currently handled separately.

Signed-off-by: Álvaro Brey <alvaro.brey@nextcloud.com>
2022-07-07 16:47:17 +02:00
Andy Scherzinger
30cbe0f43c
set/read matching user context
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-07-07 14:29:33 +02:00
Andy Scherzinger
7b4b1b7e84
Revert "read matching user context"
This reverts commit 07c57bcfd1.

Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-07-07 14:03:25 +02:00
Andy Scherzinger
07c57bcfd1
read matching user context
Resolves #2180

Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-07-07 13:58:15 +02:00
Álvaro Brey
95119ba9d6
ProfileController: code cleanup
Signed-off-by: Álvaro Brey <alvaro.brey@nextcloud.com>
2022-07-07 13:51:56 +02:00
Álvaro Brey
cb2ee730fa
WIP: upload profile picture from camera
Signed-off-by: Álvaro Brey <alvaro.brey@nextcloud.com>
2022-07-07 13:51:55 +02:00
Nextcloud bot
9a2ffbced2
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-07-04 04:13:07 +00:00
Nextcloud bot
ab5c8c24c9
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-07-03 04:08:26 +00:00
Andy Scherzinger
c151da3080
safeguard mapper for null values on fields that need to be json-parsed
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-07-01 08:59:23 +02:00
Álvaro Brey
886a3d0df2
UsersDao: make setUserAsActiveWithId blocking
Room won't accept non-blocking @Transactions, which makes sense

Signed-off-by: Álvaro Brey <alvaro.brey@nextcloud.com>
2022-07-01 08:59:22 +02:00
Álvaro Brey
0ac26f557b
UsersDao/Repository: get rid of suspend functions
Signed-off-by: Álvaro Brey <alvaro.brey@nextcloud.com>
2022-07-01 08:59:22 +02:00
Álvaro Brey
f339648875
UsersDao: fix race condition in setUserAsActiveWithId
Make the method return a Single instead, and don't make it a suspend function

Signed-off-by: Álvaro Brey <alvaro.brey@nextcloud.com>
2022-07-01 08:59:22 +02:00