Commit graph

3037 commits

Author SHA1 Message Date
Marcel Hibbe
28a235ae45
Add todos
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-04-09 12:16:49 +02:00
Marcel Hibbe
9c9259b730
Add temporary workarounds until conductor is removed
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-04-09 12:16:49 +02:00
Marcel Hibbe
1246223859
Fix to add account (temp solution until conductor is removed)
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-04-09 12:16:49 +02:00
Marcel Hibbe
aa1e93db05
WIP. Replace Controller with Activity for ConversationList
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-04-09 12:16:49 +02:00
Marcel Hibbe
c34e656eca
Fix to scroll to first unread message
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-04-05 17:01:26 +02:00
Marcel Hibbe
48a4fbc3cc
Reimplement breakout rooms for usage of Activity instead of Controller
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-04-05 12:52:42 +02:00
Marcel Hibbe
68b930a0d9
remove ConductorRemapping.kt
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-04-05 12:52:42 +02:00
Marcel Hibbe
f9836da4a8
fix to start voice message playback only when activity is visible
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-04-05 12:52:42 +02:00
Marcel Hibbe
f7529446a4
remove unused item from onOptionsItemSelected
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-04-05 12:52:41 +02:00
Marcel Hibbe
9e66c3192c
fix to open chat via bottom menu
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-04-05 12:52:41 +02:00
Marcel Hibbe
708beabe9d
setup adapter in onCreate + extract some functions from onResume
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-04-05 12:52:41 +02:00
Marcel Hibbe
0b0387115e
fix to open poll dialog
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-04-05 12:52:40 +02:00
Marcel Hibbe
52266a5632
fix NPE when quoted message is expired or deleted
for now the message is shown empty. should be improved!

D/AndroidRuntime: Shutting down VM
E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.nextcloud.talk2, PID: 29567
    java.lang.NullPointerException
        at com.nextcloud.talk.models.json.chat.ChatMessage.getText(ChatMessage.kt:264)
        at com.nextcloud.talk.adapters.messages.OutcomingTextMessageViewHolder.processParentMessage(OutcomingTextMessageViewHolder.kt:168)
        at com.nextcloud.talk.adapters.messages.OutcomingTextMessageViewHolder.onBind(OutcomingTextMessageViewHolder.kt:100)
        at com.nextcloud.talk.adapters.messages.OutcomingTextMessageViewHolder.onBind(OutcomingTextMessageViewHolder.kt:54)
        at com.stfalcon.chatkit.messages.MessageHolders.bind(MessageHolders.java:596)
        at com.stfalcon.chatkit.messages.MessagesListAdapter.onBindViewHolder(MessagesListAdapter.java:110)
        at com.nextcloud.talk.adapters.messages.TalkMessagesListAdapter.onBindViewHolder(TalkMessagesListAdapter.java:50)
        at com.nextcloud.talk.adapters.messages.TalkMessagesListAdapter.onBindViewHolder(TalkMessagesListAdapter.java:32)
        at androidx.recyclerview.widget.RecyclerView$Adapter.onBindViewHolder(RecyclerView.java:7678)
        at androidx.recyclerview.widget.RecyclerView$Adapter.bindViewHolder(RecyclerView.java:7761)
        at androidx.recyclerview.widget.RecyclerView$Recycler.tryBindViewHolderByDeadline(RecyclerView.java:6582)
        at androidx.recyclerview.widget.RecyclerView$Recycler.tryGetViewHolderForPositionByDeadline(RecyclerView.java:6848)
        at androidx.recyclerview.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:6688)
        at androidx.recyclerview.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:6684)
        at androidx.recyclerview.widget.LinearLayoutManager$LayoutState.next(LinearLayoutManager.java:2362)
        at androidx.recyclerview.widget.LinearLayoutManager.layoutChunk(LinearLayoutManager.java:1662)
        at androidx.recyclerview.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1622)
        at androidx.recyclerview.widget.LinearLayoutManager.scrollBy(LinearLayoutManager.java:1425)
        at androidx.recyclerview.widget.LinearLayoutManager.scrollVerticallyBy(LinearLayoutManager.java:1158)
        at androidx.recyclerview.widget.RecyclerView.scrollStep(RecyclerView.java:2009)
        at androidx.recyclerview.widget.RecyclerView$ViewFlinger.run(RecyclerView.java:5789)
        at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1301)
        at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1309)
        at android.view.Choreographer.doCallbacks(Choreographer.java:923)
        at android.view.Choreographer.doFrame(Choreographer.java:847)
        at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1283)
        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-04-05 12:52:40 +02:00
Marcel Hibbe
906c1f7529
fix to show avatar, fix onClick listener
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-04-05 12:52:40 +02:00
Marcel Hibbe
5fc69201fe
fix to open Conversation List for onBackPressed when switched chats
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-04-05 12:52:40 +02:00
Marcel Hibbe
63b2455745
remove KEY_OPEN_CHAT
this was temporarily used until now Chat is an Activity

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-04-05 12:52:40 +02:00
Marcel Hibbe
d42783273d
leave room before joining another room
refactor retrieving of extras

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-04-05 12:52:39 +02:00
Marcel Hibbe
cd2ef40dc8
Replace Controller with Activity for chat
chat opens, but quite some todos open. expect crashes.

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-04-05 12:52:39 +02:00
Marcel Hibbe
e740797b42
Fix to open chat from ContactsActivity.kt
(temporarily via MainActivity and ConductorRemapping until conductor is removed)

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-03-31 12:38:32 +02:00
Marcel Hibbe
5aac5637a7
Fix to add participant to conversation
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-03-31 12:38:32 +02:00
Marcel Hibbe
8361a97ee9
Fix fluent scrolling in participants list
fix #1833

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-03-31 12:38:32 +02:00
Marcel Hibbe
e359db66ec
ReplaceController with Activity for Contacts
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-03-31 12:38:31 +02:00
Marcel Hibbe
85dd7c3996
ReplaceController with Activity for ConversationInfo
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-03-31 12:38:31 +02:00
Marcel Hibbe
5e0e4ee54f
Fix to open profile view
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-03-30 10:37:43 +02:00
Marcel Hibbe
fdf76e260b
Remove reauthorize setting
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-03-30 10:34:07 +02:00
Marcel Hibbe
b5febb7e3d
Replace Controller with Activity for settings
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-03-30 10:33:35 +02:00
Marcel Hibbe
bde67eb2bd
Replace Controller with Activity for profile
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-03-30 10:25:12 +02:00
Marcel Hibbe
bc96ffcd20
Fix to forget geocoding result when scrolled and then rotated device
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-03-29 12:39:05 +02:00
Marcel Hibbe
4ab3d78458
Keep position on screen rotation
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-03-29 12:39:05 +02:00
Marcel Hibbe
f323049815
Fix to keep map position when app was in background
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-03-29 12:39:05 +02:00
Marcel Hibbe
95afdf7c81
Remove geocoding activity from history by FLAG_ACTIVITY_CLEAR_TOP
With this, it's not opened again with onBackPressed in location view. But it still opens again when app was interrupted and being shown again.

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-03-29 12:39:05 +02:00
Marcel Hibbe
1676c9f6da
Replace Controllers with Activities for location+geocoding
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-03-29 12:39:05 +02:00
Andy Scherzinger
3d4edb6c9c
Add SDK=33 permission checks for file access
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2023-03-24 15:42:22 +01:00
Andy Scherzinger
737ce20927
Bump target and compile SDK to 33
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2023-03-24 15:42:22 +01:00
Marcel Hibbe
73d3ecac0e
Set minSdkVersion to 24 + remove checks
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-03-23 15:41:39 +01:00
Marcel Hibbe
69dae28f83
Avoid NPE in deleteAvatar#onError
Exception java.lang.NullPointerException:
  at com.nextcloud.talk.controllers.ProfileController$save$1.onError (ProfileController.kt:457)
  at io.reactivex.internal.operators.observable.ObservableObserveOn$ObserveOnObserver.checkTerminated (ObservableObserveOn.java:281)
  at io.reactivex.internal.operators.observable.ObservableObserveOn$ObserveOnObserver.drainNormal (ObservableObserveOn.java:172)
  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:8167)
  at java.lang.reflect.Method.invoke
  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-03-23 13:16:11 +01:00
Marcel Hibbe
a941be5276
Avoid NPE in setupSwipeToReply
Exception java.lang.NullPointerException:
  at com.nextcloud.talk.controllers.ChatController.setupSwipeToReply (ChatController.kt:419)
  at com.nextcloud.talk.controllers.ChatController.access$setupSwipeToReply (ChatController.kt:221)
  at com.nextcloud.talk.controllers.ChatController$getRoomInfo$1.onNext (ChatController.kt:378)
  at com.nextcloud.talk.controllers.ChatController$getRoomInfo$1.onNext (ChatController.kt:362)
  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:7830)
  at java.lang.reflect.Method.invoke
  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:492)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1040)

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-03-23 13:13:56 +01:00
Marcel Hibbe
8b7465dae3
Avoid NPE in loadAvatarImage
Exception java.lang.NullPointerException:
  at com.nextcloud.talk.extensions.ImageViewExtensionsKt.replaceAvatar
  at com.nextcloud.talk.utils.DisplayUtils.loadAvatarImage (DisplayUtils.java:465)
  at com.nextcloud.talk.controllers.ProfileController$uploadAvatar$1.onNext (ProfileController.kt:645)
  at com.nextcloud.talk.controllers.ProfileController$uploadAvatar$1.onNext (ProfileController.kt:639)
  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: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-03-23 12:10:56 +01:00
Marcel Hibbe
f9fdb387a5
Hide call recording participant
<dev@mhibbe.de>

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-03-17 15:17:55 +01:00
Marcel Hibbe
cf44b602a1
Send raise hand signaling message
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-03-17 12:00:48 +01:00
Marcel Hibbe
5aed5f1d43
Add call recordings to shared items
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-03-16 16:33:05 +01:00
Marcel Hibbe
5688c10978
Fix to display chips with emojis
Chips with emojis were not shown correctly.

The message with the emoji was not correctly replaced, that's why now the key itself is passed and replaced with the chip instead to replace a text with emoji with a chip.

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-03-16 14:30:46 +01:00
Marcel Hibbe
827e44fd3f Rename some "magic"
Only renaming...

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-03-14 16:28:27 +00:00
Marcel Hibbe
a190fb6cf7 Use own okHttpClient for coil ImageLoader
This change will use the own okHttpClient which also contains the trusted key.

It will avoid the SSLHandshakeException:

E/RealImageLoader: javax.net.ssl.SSLHandshakeException: java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.
        at com.google.android.gms.org.conscrypt.ConscryptFileDescriptorSocket.startHandshake(:com.google.android.gms@224915028@22.49.15 (100400-499306216):25)
        at okhttp3.internal.connection.RealConnection.connectTls(RealConnection.kt:379)
        at okhttp3.internal.connection.RealConnection.establishProtocol(RealConnection.kt:337)

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-03-14 16:28:27 +00:00
Tim Krüger
eabd0b2d2c Split different exception scopes
Before this change the initinalization of the trusted key store was
combined in one try-catch-block. If anything went wrong an new in memory
trusted key store was created. Programming against an exception is an
bad pattern.

So the initialization is now splitted into multiple try-catch-blocks
with it's own scopes and the decision if the trusted key store is newly
created in memory or loaded from a exisitng file is done by an if
condition check.

Signed-off-by: Tim Krüger <t@timkrueger.me>
2023-03-14 16:28:27 +00:00
Marcel Hibbe
f05b218743
Extract worker initialization
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-03-10 16:24:15 +01:00
Marcel Hibbe
6a7f54a5bf
Remove debug toast messages
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-03-10 15:12:16 +01:00
Marcel Hibbe
abd1d4b247
Remove to set localParticipantMessageListener in joinRoom
this is already done in onAttach which seems to do the job fine after using workManager queues and fixing to set externalSignalingServer to user.
See commits da1714bb and 29a37086

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-03-10 14:44:20 +01:00
Marcel Hibbe
609e5a2c71
Use WorkManager queue to chain workers.
This is necessary as many of the workers store user data. When running in parallel, there are race conditions and user data that was stored by one worker gets directly overwritten by the next worker. E.g. this happened with the "externalSignalingServer" attribute of user:
SignalingSettingsWorker saved the user with the externalSignalingServer value, but then
CapabilitiesWorker kicked in and saved the user without this value.

Because of this, in WebsocketConnectionsWorker getExternalSignalingServer() of the user was null.
Because of this, webSocketConnectionHelper.getExternalSignalingInstanceForServer(..) was not called.
So the webSocketInstanceMap in WebSocketConnectionHelper was never filled.
This is why WebSocketConnectionHelper.getMagicWebSocketInstanceForUserId(..) in ChatController failed to get a webSocketInstance.

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-03-10 14:44:20 +01:00
Marcel Hibbe
8c991c697f
Fix to save externalSignalingServer to user
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-03-10 14:44:20 +01:00