Commit graph

2973 commits

Author SHA1 Message Date
Marcel Hibbe
1f8859e1a6
avoid NPE when starting call
Exception java.lang.NullPointerException:
  at com.nextcloud.talk.controllers.ChatController.startACall (ChatController.kt:2792)
  at com.nextcloud.talk.controllers.ChatController.onOptionsItemSelected (ChatController.kt:2699)
  at com.bluelinelabs.conductor.Controller.optionsItemSelected (Controller.java:1399)
  at com.bluelinelabs.conductor.Router.onOptionsItemSelected (Router.java:703)
  at com.bluelinelabs.conductor.internal.LifecycleHandler.onOptionsItemSelected (LifecycleHandler.java:282)
  at android.app.Fragment.performOptionsItemSelected (Fragment.java:2652)
  at android.app.FragmentManagerImpl.dispatchOptionsItemSelected (FragmentManager.java:3189)
  at android.app.FragmentController.dispatchOptionsItemSelected (FragmentController.java:374)
  at android.app.Activity.onMenuItemSelected (Activity.java:4517)
  at androidx.activity.ComponentActivity.onMenuItemSelected (ComponentActivity.java:514)
  at androidx.fragment.app.FragmentActivity.onMenuItemSelected (FragmentActivity.java:352)
  at androidx.appcompat.app.AppCompatActivity.onMenuItemSelected (AppCompatActivity.java:266)
  at androidx.appcompat.view.WindowCallbackWrapper.onMenuItemSelected (WindowCallbackWrapper.java:110)
  at androidx.appcompat.app.ToolbarActionBar$2.onMenuItemClick (ToolbarActionBar.java:66)
  at androidx.appcompat.widget.Toolbar$1.onMenuItemClick (Toolbar.java:221)
  at androidx.appcompat.widget.ActionMenuView$MenuBuilderCallback.onMenuItemSelected (ActionMenuView.java:781)
  at androidx.appcompat.view.menu.MenuBuilder.dispatchMenuItemSelected (MenuBuilder.java:836)
  at androidx.appcompat.view.menu.MenuItemImpl.invoke (MenuItemImpl.java:159)
  at androidx.appcompat.view.menu.MenuBuilder.performItemAction (MenuBuilder.java:987)
  at androidx.appcompat.view.menu.MenuBuilder.performItemAction (MenuBuilder.java:977)
  at androidx.appcompat.widget.ActionMenuView.invokeItem (ActionMenuView.java:625)
  at androidx.appcompat.view.menu.ActionMenuItemView.onClick (ActionMenuItemView.java:156)
  at android.view.View.performClick (View.java:7881)
  at android.widget.TextView.performClick (TextView.java:16203)
  at android.view.View.performClickInternal (View.java:7858)
  at android.view.View.-$$Nest$mperformClickInternal
  at android.view.View$PerformClick.run (View.java:30863)
  at android.os.Handler.handleCallback (Handler.java:942)
  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:8772)
  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:1067)

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-03-07 10:31:46 +01:00
Marcel Hibbe
9367eb1a49
Avoid NPE for voice message recording
Exception java.lang.NullPointerException:
  at com.nextcloud.talk.controllers.ChatController$onViewBound$11.onTouch (ChatController.kt:867)
  at android.view.View.dispatchTouchEvent (View.java:15540)
  at android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:3316)
  at android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:2990)
  at android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:3316)
  at android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:2990)
  at android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:3316)
  at android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:2990)
  at android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:3316)
  at android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:2990)
  at android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:3316)
  at android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:2990)
  at android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:3316)
  at android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:2990)
  at android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:3316)
  at android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:2990)
  at android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:3316)
  at android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:2990)
  at android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:3316)
  at android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:2990)
  at android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:3316)
  at android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:2990)
  at android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:3316)
  at android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:2990)
  at com.android.internal.policy.DecorView.superDispatchTouchEvent (DecorView.java:1112)
  at com.android.internal.policy.PhoneWindow.superDispatchTouchEvent (PhoneWindow.java:1971)
  at android.app.Activity.dispatchTouchEvent (Activity.java:4388)
  at androidx.appcompat.view.WindowCallbackWrapper.dispatchTouchEvent (WindowCallbackWrapper.java:70)
  at com.android.internal.policy.DecorView.dispatchTouchEvent (DecorView.java:1070)
  at android.view.View.dispatchPointerEvent (View.java:15803)
  at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent (ViewRootImpl.java:8153)
  at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess (ViewRootImpl.java:7877)
  at android.view.ViewRootImpl$InputStage.deliver (ViewRootImpl.java:7213)
  at android.view.ViewRootImpl$InputStage.onDeliverToNext (ViewRootImpl.java:7270)
  at android.view.ViewRootImpl$InputStage.forward (ViewRootImpl.java:7236)
  at android.view.ViewRootImpl$AsyncInputStage.forward (ViewRootImpl.java:7434)
  at android.view.ViewRootImpl$InputStage.apply (ViewRootImpl.java:7244)
  at android.view.ViewRootImpl$AsyncInputStage.apply (ViewRootImpl.java:7491)
  at android.view.ViewRootImpl$InputStage.deliver (ViewRootImpl.java:7217)
  at android.view.ViewRootImpl$InputStage.onDeliverToNext (ViewRootImpl.java:7270)
  at android.view.ViewRootImpl$InputStage.forward (ViewRootImpl.java:7236)
  at android.view.ViewRootImpl$InputStage.apply (ViewRootImpl.java:7244)
  at android.view.ViewRootImpl$InputStage.deliver (ViewRootImpl.java:7217)
  at android.view.ViewRootImpl.deliverInputEvent (ViewRootImpl.java:10788)
  at android.view.ViewRootImpl.doProcessInputEvents (ViewRootImpl.java:10676)
  at android.view.ViewRootImpl.enqueueInputEvent (ViewRootImpl.java:10632)
  at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent (ViewRootImpl.java:10926)
  at android.view.InputEventReceiver.dispatchInputEvent (InputEventReceiver.java:285)
  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:8757)
  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:1067)

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-03-06 15:10:50 +01:00
Marcel Hibbe
16a0ef8dcf
Avoid NPE (replace scrollToPositionWithOffset(..) with scrollToPosition(0))
Exception java.lang.NullPointerException:
  at com.nextcloud.talk.controllers.ChatController.processMessagesFromTheFuture (ChatController.kt:2500)
  at com.nextcloud.talk.controllers.ChatController.processMessages (ChatController.kt:2443)
  at com.nextcloud.talk.controllers.ChatController.processMessagesResponse (ChatController.kt:2404)
  at com.nextcloud.talk.controllers.ChatController.access$processMessagesResponse (ChatController.kt:221)
  at com.nextcloud.talk.controllers.ChatController$pullChatMessages$2.onNext (ChatController.kt:2315)
  at com.nextcloud.talk.controllers.ChatController$pullChatMessages$2.onNext (ChatController.kt:2300)
  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: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)
  at java.lang.reflect.Method.invoke
  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:548)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:936)

 I don't know why scrollToPositionWithOffset was used. scrollToPosition(0) works just fine.

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-03-06 12:09:17 +01:00
Marcel Hibbe
13ca7746c1
Fix theming of set status dialog buttons
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-03-03 19:19:04 +01:00
Marcel Hibbe
2de0029c0e
Add toast for debug mode if failed to get NC notification
+ remove unused code

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-03-03 17:22:39 +01:00
Marcel Hibbe
5f2e2c5fe6
Restrict to join other rooms while being in a call
When clicking on a conversation in conversation overview, restrict opening immediately.
If joinRoomWithPassword in ChatController is reached in any other way (for example by creating a new conversation while being in a call), then it's restricted to join the room.

All this is done to avoid NPE:

D/ChatController: pullChatMessages - pullChatMessages[lookIntoFuture > 0] - got response
W/System.err: java.lang.NullPointerException
W/System.err:     at com.nextcloud.talk.controllers.ChatController.modifyMessageCount(ChatController.kt:2536)
W/System.err:     at com.nextcloud.talk.controllers.ChatController.addMessagesToAdapter(ChatController.kt:2515)
W/System.err:     at com.nextcloud.talk.controllers.ChatController.processMessagesFromTheFuture(ChatController.kt:2489)
W/System.err:     at com.nextcloud.talk.controllers.ChatController.processMessages(ChatController.kt:2437)
W/System.err:     at com.nextcloud.talk.controllers.ChatController.processMessagesResponse(ChatController.kt:2398)
W/System.err:     at com.nextcloud.talk.controllers.ChatController.access$processMessagesResponse(ChatController.kt:221)
W/System.err:     at com.nextcloud.talk.controllers.ChatController$pullChatMessages$2.onNext(ChatController.kt:2309)
W/System.err:     at com.nextcloud.talk.controllers.ChatController$pullChatMessages$2.onNext(ChatController.kt:2294)
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)

Known issues:
- doesn't respect handling for other instances. E.g. when receiving notification from other instance and open it.

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>

Fix to always allow opening same room when being in call

Fix to set also other properties for ApplicationWideCurrentRoomHolder when joining room in chat.

Otherwise it could have been possible to not be allowed to open this chat again from conversation list while being in call.

In a next step, ApplicationWideCurrentRoomHolder should be refactored to hold the conversation itself. Maybe in a map of users to handle different instances.

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-03-03 14:57:57 +01:00
Marcel Hibbe
21b353c77a Request RoomInfo every 30 sec instead 5sec when not waiting in lobby
Before it was requested every 5 sec even when not waiting in a lobby.
This is a first improvement to reduce requests. In a next step, more signaling messages should be handled to maybe even avoid recursive calls at all.

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-03-03 08:40:15 +00:00
Marcel Hibbe
b6dccddcb9
Hide inactive breakout rooms from conversation list
+ create ConversationObjectTypeConverter for objectType

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-03-02 16:32:09 +01:00
Marcel Hibbe
d75e235ba2
Use session id returned from join room & more
1)
Use session id returned from join room
= introduce sessionIdAfterRoomJoined to make clear this is the session to use instead of currentConversation?.sessionId

See https://nextcloud-talk.readthedocs.io/en/latest/conversation/#get-user-s-conversations :
"'0' if not connected, otherwise an up to 512 character long string that is the identifier of the user's session making the request. Should only be used to pre-check if the user joined already with this session, but this might be outdated by the time of usage, so better check via Get list of participants in a conversation"

2)
Also, trigger getRoomInfo() or handleFromNotification() in onAttach() instead of in onViewBound.
onViewBound is not called when returning back from an other view (e.g. conversation infos) so after this, new messages were not handled.

Furthermore, getRoomInfo()/joinRoomWithPassword() in onViewBound and onAttach were sometimes both called, because the handling of validSessionId was buggy. This resulted in duplicated messages.

3)
Use ApplicationWideCurrentRoomHolder to set sessionId from call and check in ChatController if there is already a session for the room. If yes, use this instead to joinRoom again.
This is necessary for PictureInPicture mode. Otherwise, call would be left whenever ChatController joins room again.

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-03-02 11:31:37 +01:00
Marcel Hibbe
5d129ba03e
Replace "inConversation" with check of valid session id
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-03-02 11:31:37 +01:00
Marcel Hibbe
4883f62964
Show upload failed notification when failed normal upload
avoid:

2023-03-01 16:47:40.443 23569-23628 UploadAndS...ilesWorker com.nextcloud.talk2                  E  Something went wrong when trying to upload file
                                                                                                    java.lang.NullPointerException
                                                                                                    	at com.nextcloud.talk.jobs.UploadAndShareFilesWorker.showFailedToUploadNotification(UploadAndShareFilesWorker.kt:258)
                                                                                                    	at com.nextcloud.talk.jobs.UploadAndShareFilesWorker.doWork(UploadAndShareFilesWorker.kt:163)
                                                                                                    	at androidx.work.Worker$1.run(Worker.java:86)
                                                                                                    	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
                                                                                                    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
                                                                                                    	at java.lang.Thread.run(Thread.java:919)
2023-03-01 16:47:40.444 23569-23607 WM-WorkerWrapper        com.nextcloud.talk2                  E  Work [ id=27e4e319-a966-4515-ac07-d6ad7ee68268, tags={ com.nextcloud.talk.jobs.UploadAndShareFilesWorker } ] failed because it threw an exception/error
                                                                                                    java.util.concurrent.ExecutionException: java.lang.NullPointerException
                                                                                                    	at androidx.work.impl.utils.futures.AbstractFuture.getDoneValue(AbstractFuture.java:516)
                                                                                                    	at androidx.work.impl.utils.futures.AbstractFuture.get(AbstractFuture.java:475)
                                                                                                    	at androidx.work.impl.WorkerWrapper$2.run(WorkerWrapper.java:311)
                                                                                                    	at androidx.work.impl.utils.SerialExecutor$Task.run(SerialExecutor.java:91)
                                                                                                    	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
                                                                                                    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
                                                                                                    	at java.lang.Thread.run(Thread.java:919)
                                                                                                    Caused by: java.lang.NullPointerException
                                                                                                    	at com.nextcloud.talk.jobs.UploadAndShareFilesWorker.showFailedToUploadNotification(UploadAndShareFilesWorker.kt:258)
                                                                                                    	at com.nextcloud.talk.jobs.UploadAndShareFilesWorker.doWork(UploadAndShareFilesWorker.kt:167)
                                                                                                    	at androidx.work.Worker$1.run(Worker.java:86)
                                                                                                    	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167) 
                                                                                                    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) 
                                                                                                    	at java.lang.Thread.run(Thread.java:919) 
2023-03-01 16:47:40.446 23569-23607 WM-WorkerWrapper        com.nextcloud.talk2                  I  Worker result FAILURE for Work [ id=27e4e319-a966-

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-03-01 17:30:57 +01:00
Andy Scherzinger
19e3b6d0b1
improve code formatting
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2023-02-27 17:21:43 +01:00
rapterjet2004
6cdfa88992
Implemented issue 1090 Signed-off-by: Julius Linus <juliuslinus1@gmail.com> 2023-02-27 17:06:38 +01:00
Marcel Hibbe
1c660cc02f
Hide scroll to bottom button when automatically scrolled to new message
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-02-27 13:28:58 +01:00
Marcel Hibbe
bb38fd9d2d
avoid NPE for unread bubble in chat
2023-02-27 12:29:00.275   995-995   AndroidRuntime.........
    java.lang.NullPointerException
    	at com.nextcloud.talk.controllers.ChatController.modifyMessageCount(ChatController.kt:2536)
    	at com.nextcloud.talk.controllers.ChatController.addMessagesToAdapter(ChatController.kt:2515)
    	at com.nextcloud.talk.controllers.ChatController.processMessagesFromTheFuture(ChatController.kt:2489)
    	at com.nextcloud.talk.controllers.ChatController.processMessages(ChatController.kt:2437)
    	at com.nextcloud.talk.controllers.ChatController.processMessagesResponse(ChatController.kt:2398)
    	at com.nextcloud.talk.controllers.ChatController.access$processMessagesResponse(ChatController.kt:221)
    	at com.nextcloud.talk.controllers.ChatController$pullChatMessages$2.onNext(ChatController.kt:2309)
    	at com.nextcloud.talk.controllers.ChatController$pullChatMessages$2.onNext(ChatController.kt:2294)
    	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:942)
    	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:8741)
    	at java.lang.reflect.Method.invoke(Native Method)
    	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:571)
    	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1067)

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-02-27 13:19:15 +01:00
Marcel Hibbe
a339d64d37
Increase vibration duration for short vibration
20ms was almost not recognizable for samsung phones

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-02-24 17:44:31 +01:00
Marcel Hibbe
dc2314f86b
Show toast when recording was shared to chat.
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-02-24 17:29:06 +01:00
Marcel Hibbe
ed96d53049
WIP. open chat when share recording to chat (fails atm)
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-02-24 17:29:05 +01:00
Marcel Hibbe
36de155c44
Add dismiss/share actions for "recording available" notification
Remove first approach with the dialog inside the ChatController.

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-02-24 17:29:05 +01:00
Marcel Hibbe
0f3662cd82
restrict deletion of "Recording available" notification
...for preparation to replace Dialog that was openend in ChatController. It will be replaced by Notification Actions.

The dialog was not opened when already being in a chat, because remapChatController only moved the currentChatController to top so to won't be initialized again. That's why the dialog didn't pop up for this case.

As a solution, the actions should be available directly inside the notification.

For this, it must be avoided that the "recording available" notification is closed whenever the chat is opened.

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-02-24 17:29:05 +01:00
Marcel Hibbe
328a747d79
move createMainActivityIntent near getIntentToOpenConversation
TODO: unify?

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-02-24 17:29:05 +01:00
Marcel Hibbe
8b1a809464
Handle new subject for call recording notification
see https://github.com/nextcloud/spreed/pull/8837

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-02-24 17:29:02 +01:00
Marcel Hibbe
004f719490
Use model to pass data to dialog
use util to extract common rx requests

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-02-24 17:28:48 +01:00
Marcel Hibbe
ebcab60df5
WIP. Refactoring NotificationWorker
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-02-24 17:28:19 +01:00
Marcel Hibbe
d191a93ce9
WIP. add recording available notification
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-02-24 17:28:19 +01:00
Marcel Hibbe
a648f0b457
Rearrange strings to avoid "renaming" of keys
this should avoid problems with transifex..hopefully

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-02-24 17:19:19 +01:00
Marcel Hibbe
499e022114
Handle more call recording states
more call recording states are:
3 = Starting video recording
4 = Starting audio recording
5 = Recording failed

these actions were added:
- Show grey recording icon to moderators if recording is starting
- Show toast to moderators if recording failed
- Add system message for recording failed

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-02-24 17:19:19 +01:00
Marcel Hibbe
78e3c80124
fix license header
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-02-20 13:14:05 +01:00
Marcel Hibbe
c55f9fdf79
Add/fix copyright headers
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-02-20 13:14:05 +01:00
Marcel Hibbe
38d1a37784
Add system messages for breakout rooms
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-02-20 13:14:04 +01:00
Marcel Hibbe
3abb9db9dc
remove useless bundle entries etc.
- add strings for breakout room toasts
- remove useless boilerplate code
- dismiss call actions dialog when chlicked raise/lower hand

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-02-20 13:14:04 +01:00
Marcel Hibbe
2637884a83
add comments where to implement the raise hand signaling message
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-02-20 13:14:04 +01:00
Marcel Hibbe
0ea13c1ec7
remove unused parameter
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-02-20 13:14:04 +01:00
Marcel Hibbe
f2b312a118
add floating lower hand button
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-02-20 13:14:04 +01:00
Marcel Hibbe
96dce63e20
Request assistance for breakout room
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-02-20 13:14:03 +01:00
Marcel Hibbe
2835bb6c02
check if conversation is breakout room
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-02-20 13:14:03 +01:00
Marcel Hibbe
99a4ca5e33
comment out first try to raise hand
this is not working yet. It's for now commented out in order to continue with "request help" feature for breakout rooms.

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-02-20 13:14:03 +01:00
Marcel Hibbe
49571ca229
WIP. Send "raise hand"
Building/sending of the signaling message is incomplete for now.

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-02-20 13:14:03 +01:00
Daniel Calviño Sánchez
ebfd15e001
WIP. Breakout to room from call and chat.
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-02-20 13:14:02 +01:00
Daniel Calviño Sánchez
c67ce4253f
Use listeners for local participant signaling messages
This commit only sets up the listeners, but the actual handling of the
"switchto" event still needs to be added.

Note that in CallActivity the SignalingMessageReceiver is available both
when using the internal and the external signaling server. On the other
hand, in ChatController it is available only for the external signaling
server. Right now that is not a problem, as the message notified by the
LocalParticipantMessageListener is currently sent only by the external
signaling server, but this may need to be adjusted in the future.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2023-02-20 13:14:02 +01:00
Daniel Calviño Sánchez
3efcbe2a39
Simplify assignment
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2023-02-20 13:14:02 +01:00
Daniel Calviño Sánchez
b07aaee140
Replace non null check with early return if null
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2023-02-20 13:14:02 +01:00
Daniel Calviño Sánchez
747a4646d3
Add listener for local participant signaling messages
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2023-02-20 13:14:01 +01:00
Daniel Calviño Sánchez
6a799387c8
Extract method to process "update" events
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2023-02-20 13:14:01 +01:00
Marcel Hibbe
2a09320353 Remove error logging for voice message that was not correct
media player can already exist here when playback was paused, that's okay.

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-02-16 11:38:59 +00:00
Marcel Hibbe
4932541de7 avoid NPE for voice message playback
Exception java.lang.NullPointerException:
  at com.nextcloud.talk.controllers.ChatController.startPlayback (ChatController.kt:985)
  at com.nextcloud.talk.controllers.ChatController.access$startPlayback (ChatController.kt:219)
  at com.nextcloud.talk.controllers.ChatController$downloadFileToCache$1.invoke (ChatController.kt:1130)
  at com.nextcloud.talk.controllers.ChatController$downloadFileToCache$1.invoke (ChatController.kt:1128)
  at com.nextcloud.talk.controllers.ChatController.downloadFileToCache$lambda$19 (ChatController.kt:1128)
  at com.nextcloud.talk.controllers.ChatController.$r8$lambda$oLS0bGL_zLma74VfkfStO_mReb4
  at com.nextcloud.talk.controllers.ChatController$$ExternalSyntheticLambda10.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:226)
  at android.os.Looper.loop (Looper.java:313)
  at android.app.ActivityThread.main (ActivityThread.java:8775)
  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:1067)

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-02-16 11:38:59 +00:00
Andy Scherzinger
825354881e
Reformat code
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2023-02-16 11:41:32 +01:00
Andy Scherzinger
41d671ff47
Fix code formatting
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2023-02-16 09:57:19 +01:00
Marcel Hibbe
152c0b7ece
add support for FORMER_ONE_TO_ONE conversations
resolve #8517

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-02-14 11:30:07 +01: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