Commit Graph

193 Commits

Author SHA1 Message Date
rapterjet2004
df2c6cfc06
impl marcel suggestions + adding deleting cache option
Signed-off-by: rapterjet2004 <juliuslinus1@gmail.com>
2024-10-22 10:50:58 +02:00
rapterjet2004
0d9c5bfcb9
fixed some bugs
Signed-off-by: rapterjet2004 <juliuslinus1@gmail.com>
2024-10-22 10:49:57 +02:00
rapterjet2004
399fa7eb70
got replying working
Signed-off-by: rapterjet2004 <juliuslinus1@gmail.com>
2024-10-22 10:49:57 +02:00
rapterjet2004
411a4f1dce
got editing down
Signed-off-by: rapterjet2004 <juliuslinus1@gmail.com>
2024-10-22 10:49:56 +02:00
rapterjet2004
8cd0983088
WIP Editing
Signed-off-by: rapterjet2004 <juliuslinus1@gmail.com>
2024-10-22 10:49:56 +02:00
rapterjet2004
0041fb3b71
deleting works
Signed-off-by: rapterjet2004 <juliuslinus1@gmail.com>
2024-10-22 10:49:56 +02:00
rapterjet2004
98e0b7a270
should have fixed the UI now with lifecycle and error handling
Signed-off-by: rapterjet2004 <juliuslinus1@gmail.com>
2024-10-22 10:49:51 +02:00
rapterjet2004
fb9a7b8e04
added ui
Signed-off-by: rapterjet2004 <juliuslinus1@gmail.com>
2024-10-22 10:46:04 +02:00
rapterjet2004
498a1274d9
git
Signed-off-by: rapterjet2004 <juliuslinus1@gmail.com>
2024-10-22 10:46:03 +02:00
Marcel Hibbe
7e3a4e4a83
refactoring and logging
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2024-10-21 13:49:55 +02:00
Marcel Hibbe
dc38904d01
delay progress bar
delay progress bar for one second before showing up for slow connection

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2024-10-21 13:49:54 +02:00
Marcel Hibbe
ce8143a807
center search results in chat
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2024-10-02 14:03:11 +02:00
Marcel Hibbe
305f1732ba
fix availability of search feature.
Hide search feature if room is federated.
Also, for conversation list the check for federation inside isUnifiedSearchAvailable makes no sense.

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2024-10-02 14:02:04 +02:00
Marcel Hibbe
94d62a943f
fix position and animation of typing indicator
Without this fix, typing indicator moves up and wont go down

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2024-09-27 16:51:45 +02:00
Sowjanya Kota
2592f72039
Merge pull request #4265 from nextcloud/bugfix/noid/fixCrashWhenExtSignalingEmpty
Fix crash when externalSignalingServer is empty
2024-09-25 09:48:56 +02:00
Marcel Hibbe
7dc7051481
Fix crash when externalSignalingServer is empty
Otherwise, following crash happened, as it was tried to deal with the empty url:

2024-09-24 15:10:30.719 17765-17765 WebSocketInstance       com.nextcloud.talk2                  D  restartWebSocket: /spreed
2024-09-24 15:10:30.722 17765-17765 System.err              com.nextcloud.talk2                  W  java.lang.IllegalArgumentException: Expected URL scheme 'http' or 'https' but no scheme was found for /spree...
2024-09-24 15:10:30.723 17765-17765 System.err              com.nextcloud.talk2                  W  	at okhttp3.HttpUrl$Builder.parse$okhttp(HttpUrl.kt:1261)

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2024-09-24 16:25:33 +02:00
Marcel Hibbe
b78267d96f
try to avoid NPE for currentConversation
On gplay console the following NPE was reported for the line

participantPermissions = ParticipantPermissions(spreedCapabilities, currentConversation!!)

 E  FATAL EXCEPTION: main
          Process: com.nextcloud.talk2, PID: 6626
          java.lang.NullPointerException
          at com.nextcloud.talk.chat.ChatActivity.initObservers$lambda$13(ChatActivity.kt:583)
          at com.nextcloud.talk.chat.ChatActivity.$r8$lambda$QKH5JCFLmCzRMlSJ-EV-m4IW5ig(Unknown Source:0)

which seems that currentConversation was null. If it would have been spreedCapabilities, then the error would have been thrown in the line before..

A reason MAY BE that the observer is triggered before setData on the ViewModel is executed.
While this fix is just not executing code when currentConversation is null, it's unsure if it will follow up problems (like an empty chat) or if the observer is triggered another time when currentConversation is available.

So it's just a hotfix.
To improve the situation in the long term, we should move more logic to viewModel and only use Flow instead to mix it with LiveData.

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2024-09-24 15:52:49 +02:00
Marcel Hibbe
aeacfa09b6
avoid UninitializedPropertyAccessException for spreedCapabilities
reported issue on gplay console was:

Exception kotlin.UninitializedPropertyAccessException: lateinit property spreedCapabilities has not been initialized
  at com.nextcloud.talk.chat.ChatActivity.getSpreedCapabilities (ChatActivity.kt:284)
  at com.nextcloud.talk.chat.ChatActivity.processExpiredMessages (ChatActivity.kt:2536)
  at com.nextcloud.talk.chat.ChatActivity.access$processExpiredMessages (ChatActivity.kt:204)
  at com.nextcloud.talk.chat.ChatActivity$initObservers$10$1.invokeSuspend (ChatActivity.kt:820)

This is just a hotfix while hoping processExpiredMessages is executed again while spreedCapabilities are available.

To improve the situation in the long term, we should move more logic to viewModel and have better control over sequence of actions.

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2024-09-24 15:25:42 +02:00
sowjanyakch
384ba6945f
ktlint format
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
2024-09-23 16:40:06 +02:00
Marcel Hibbe
b080e891bb
fix to not remove call buttons for federated conversations after 30 seconds
After 30 seconds (when the capabilities were updated) the call buttons of federated conversations were removed (this was done back then when fed calls were not implemented).

However this happened not always because of the check
"if (this::spreedCapabilities.isInitialized) {...."
It seems this check sometimes is false when it's supposed to be true. This has be to further investigated and has to be be simplified/improved by a cleaner architecture.

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2024-09-20 13:46:21 +02:00
Marcel Hibbe
9e91bdeb1d
fix to hide messageInputFragment when user has no restriction to write
The messageInputFragment was hidden by checkShowMessageInputView(), but it was immediately shown again by checkLobbyState()

This fix will execute checkShowMessageInputView() inside checkLobbyState() in the correct order.

Additionally, the check
checkLobbyState()
has to be already executed in
GetCapabilitiesInitialLoadState
as well as
checkShowCallButtons()

Otherwise the expected behavior would only be set after 30 seconds.

An improvemnt for the future must be to improve the capabilities handling.

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2024-09-18 17:34:10 +02:00
Marcel Hibbe
033e3e86c1
reformat code
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2024-09-13 16:56:46 +02:00
Daniel Calviño Sánchez
4cea7b2390
Provide federation values to external signaling server in chat
Otherwise the WebSocket configuration and session clashes with the one
from the CallActivity, which already uses the federated settings.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2024-09-13 15:51:21 +02:00
Marcel Hibbe
796053e271
remove theming of call buttons to remove disabled look for dark mode
In dark mode, the call buttons looked like disabled otherwise.

There is still the 3-dots menu next to the call icons like disabled for dark and light mode. But this is a different bug that needs to be fixed in another branch(could not find the reason for now).

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2024-09-11 13:49:20 +02:00
sowjanyakch
082669a3bf
ktlint Format
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
2024-09-11 09:30:41 +02:00
rapterjet2004
ea453dba3e
Follow up bug fixes for offline support
Got join conversation to work
Unread message popup should work when entering a conversation now
"Delete All Messages" now works without breaking the initMessagePolling
linter

Signed-off-by: rapterjet2004 <juliuslinus1@gmail.com>
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2024-09-04 10:14:51 +02:00
Marcel Hibbe
20724c5efb
fix to scroll to last read message
This will fix to scroll to the last read message when a chat is opened.

Some refactorings were made that are not necessary for the fix (I tried to also show the "Unread messages" hint in the adapter but came to the conclusion this is not a good idea until chatkit is removed. Chatkit doesn't support to add some item in between but only at the end or start which will make it too complicated..)

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2024-09-04 09:48:42 +02:00
rapterjet2004
9d75550482
fixed bug where the state of message input fragment wasn't saved because of capabilities
Signed-off-by: rapterjet2004 <juliuslinus1@gmail.com>
2024-08-21 17:11:38 +02:00
Andy Scherzinger
69ed8207d0
fix: ktlintCheck by reformatting kt code
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2024-08-17 20:20:42 +02:00
Marcel Hibbe
a632765cce
set values to not nullable in ConversationEntity.kt wherever this makes sense
remove roomId from Conversation (deprecated. only token should be used)

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2024-08-12 16:47:06 +02:00
Marcel Hibbe
a84e69b6bb
fix to processExpiredMessages
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2024-08-12 16:47:05 +02:00
Marcel Hibbe
d18bd20bf1
extract a method to getItemFromAdapter
method was extracted for other purposes but was not used in the end. Anyway it made sense to use it for resumeAudioPlaybackIfNeeded.

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2024-08-12 16:47:05 +02:00
Marcel Hibbe
217ff6af74
remove comments and unused code
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2024-08-12 16:47:05 +02:00
Marcel Hibbe
0390c93ed2
implement lastCommonRead handling
contains one workaround for now, see TODO in updateUiForLastCommonRead method

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2024-08-12 16:47:04 +02:00
Marcel Hibbe
5bccdada7c
minor cleanup in OfflineFirstChatRepository
fix to show unreadMessagesPopup at bottom (typingIndicatorWrapper must not be gone but invisible)

align unreadMessagesPopup to not overlap typingIndicator

fix to hide scrollDown button when unreadMessagesPopup is shown

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2024-08-12 16:47:04 +02:00
Marcel Hibbe
a13a53f7fd
fix to hide popupBubbleView for system messages like reactions
rename popupBubbleView to unreadMessagesPopup

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2024-08-12 16:47:04 +02:00
Marcel Hibbe
85f4d8cd92
handle special system messages in ChatRepo instead in UI
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2024-08-12 16:47:04 +02:00
rapterjet2004
db8d7b91d4
WIP UI fixes for offline conversations - next up get queued messges to work and show up as temp messages ( I have some creative ideas for the UI )
Signed-off-by: rapterjet2004 <juliuslinus1@gmail.com>
2024-08-12 16:47:03 +02:00
Marcel Hibbe
aa76636f72
handle reaction message for lookIntoFuture
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2024-08-12 16:47:03 +02:00
Marcel Hibbe
2408d639e4
Offline support for conversations and chats
Authors: Julius Linus and Marcel Hibbe

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2024-08-12 16:47:03 +02:00
rapterjet2004
46cafd5626
lint
Signed-off-by: rapterjet2004 <juliuslinus1@gmail.com>
2024-07-31 09:40:42 -05:00
rapterjet2004
515ecedd04
Seems to work - fixed adapter issue
Signed-off-by: rapterjet2004 <juliuslinus1@gmail.com>
2024-07-31 08:58:24 -05:00
rapterjet2004
b41f41f704
Got it working - Just need to test it out
Signed-off-by: rapterjet2004 <juliuslinus1@gmail.com>
2024-07-30 11:59:45 -05:00
rapterjet2004
5caf93357f
Fixed
Signed-off-by: rapterjet2004 <juliuslinus1@gmail.com>
2024-07-25 08:54:01 -05:00
rapterjet2004
560e454d5e
Fixes
Signed-off-by: rapterjet2004 <juliuslinus1@gmail.com>
2024-06-06 09:20:01 -05:00
Julius Linus
6a01ebf630
Message Input Refactoring
- Added io folder for Abstracting away background work
- AudioFocusRequestManager
- MediaPlayerManager
- MediaRecorderManager
- AudioRecorderManager

Included new View Models + Fragments to separate concerns

- MessageInputFragment
- MessageInputVoiceRecordingFragment

Signed-off-by: rapterjet2004 <juliuslinus1@gmail.com>
2024-06-05 17:45:01 +02:00
Julius Linus
14f793f0e8
Made mediaPlayerHandler null safe
Signed-off-by: rapterjet2004 <juliuslinus1@gmail.com>
2024-05-29 10:37:41 -05:00
Marcel Hibbe
8876718677
open links for files app from any screen.
With this change, all links that target files in the same nextcloud instance will be opened in the files app, no matter on which screen the link was.

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2024-05-24 15:38:53 +02:00
Marcel Hibbe
cc823dcc0c
fix to not set clipboard text repeatedly
initMessageInputView() is called repeatedly when capabilities are received. This is not a good solution but was done because capabilities are needed inside initMessageInputView().

As sharedText is set inside initMessageInputView(), this caused the bug that text was repeatedly inserted in to the message input field.

All in all, there is only the need to initialize initMessageInputView() once. With this fix, it is for now done when there is no filter set yet. As a long term solution, the architecture must be changed so that initMessageInputView() is not called repeatedly, but all UI elements that need capabilities etc are updated by livedata.

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2024-05-17 14:09:40 +02:00
Sowjanya Kota
7bd2e6c81a
Merge pull request #3909 from nextcloud/bugfix/3903/fixUnreadScrollingAndUnreadBubble
fix unread message behavior
2024-05-17 10:41:18 +02:00