Commit Graph

252 Commits

Author SHA1 Message Date
rapterjet2004
990f6ec3fa
Better Call Started Indicator
- Pinned to MessageInputFragment
- Collapsable
- Looks cool

Signed-off-by: rapterjet2004 <juliuslinus1@gmail.com>
2024-11-11 08:33:45 -06:00
Christian Reiner
315e263d31 fix spelling of property name in ChatViewModel
Signed-off-by: Christian Reiner <foss@christian-reiner.info>
2024-11-06 19:34:14 +01:00
rapterjet2004
d96682889c
fix to display message queue when revisiting chat in offline mode
Signed-off-by: rapterjet2004 <juliuslinus1@gmail.com>
2024-11-05 15:11:10 +01:00
Marcel Hibbe
ff90552527
rename pair to triple
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2024-11-05 13:31:54 +01:00
Marcel Hibbe
662ddd275e
remove unused constants from ChatActivity
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2024-11-05 13:31:54 +01:00
Marcel Hibbe
29f7265b19
implement "Unread messages" popup with normal button
replace com.nextcloud.ui.popupbubble.PopupBubble with MaterialButton.

com.nextcloud.ui.popupbubble.PopupBubble was forked from
https://github.com/webianks/PopupBubble
which is quite outdated.

com.nextcloud.ui.popupbubble.PopupBubble is still used in ConversationsListActivity but there it should also be removed.

Removing this recycler view stuff will also help a bit to switch to JetpackCompose

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2024-11-05 13:31:54 +01:00
Marcel Hibbe
675bc9bec0
fix messages not shown + improve unread marker behavior
this commit will avoid to fail to show messages in adapter. This was caused by the usage of
messagesListAdapter.deleteById("-1");
in UnreadNoticeMessageViewHolder.
The bug seems to exist in the past already but was never reported (Sometimes, when receiving a lot of messages it could happen that some message in between is not shown in UI). However with recent changes after release 20.0.2 the bug appeared more often.

The root cause was not analyzed, but the handling was modified in general as the unread marker behavior was never really good.
By not using deleteById but replace it with new unread marker logic, the bug of disappearing messages is solved and the unread messages marker behavior is improved.

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2024-11-05 13:31:54 +01:00
sowjanyakch
b2b64674c0
ktlintFormat
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
2024-10-24 13:51:06 +02:00
sowjanyakch
3cd25f4248
use const val for time
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
2024-10-24 13:49:16 +02:00
sowjanyakch
808da8970a
KtlintFormat
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
2024-10-24 13:43:00 +02:00
sowjanyakch
112a2c28f0
Only group Chat messages
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
2024-10-24 13:43:00 +02:00
sowjanyakch
aaa27ba0ef
modify previousChatMessageIndex
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
2024-10-24 13:43:00 +02:00
sowjanyakch
9f8374e61c
remove unused constants
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
2024-10-24 13:43:00 +02:00
sowjanyakch
036485e28d
group chat messages
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
2024-10-24 13:43:00 +02:00
sowjanyakch
eb5cdca295
Rename outcomingDeckCardViewHolder
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
2024-10-23 11:36:04 +02:00
sowjanyakch
c80050d8f5
Display card deck with parameters
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
2024-10-23 11:36:03 +02:00
sowjanyakch
66d2db20aa
create deck card xml layout
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
2024-10-23 11:35:59 +02:00
Marcel Hibbe
7a7ceb8714
format code + remove unused import
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2024-10-22 11:29:51 +02:00
rapterjet2004
b192e0ec60
linter
Signed-off-by: rapterjet2004 <juliuslinus1@gmail.com>
2024-10-22 10:51:08 +02:00
rapterjet2004
cc717b25f6
got deleting working and added attempts logic again
Signed-off-by: rapterjet2004 <juliuslinus1@gmail.com>
2024-10-22 10:51:06 +02:00
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
9bdaf68232
fixed deletion bug, implemented Marcel's suggestions
Signed-off-by: rapterjet2004 <juliuslinus1@gmail.com>
2024-10-22 10:50:30 +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
f817c20b4e
fix to handle chats without offline messages when connection is lost
avoid NPE:

java.lang.NullPointerException
	at com.nextcloud.talk.chat.data.network.OfflineFirstChatRepository.getCappedMessagesAmountOfChatBlock(OfflineFirstChatRepository.kt:186)
	at com.nextcloud.talk.chat.data.network.OfflineFirstChatRepository.access$getCappedMessagesAmountOfChatBlock(OfflineFirstChatRepository.kt:43)
	at com.nextcloud.talk.chat.data.network.OfflineFirstChatRepository$loadInitialMessages$1.invokeSuspend(OfflineFirstChatRepository.kt:162)

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2024-10-21 15:33:25 +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
c81b1fa62f
pass newestMessageIdFromDb to initMessagePolling
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2024-10-21 13:49:55 +02:00
Marcel Hibbe
7eb8b9fa70
extract getCappedMessagesAmountOfChatBlock
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2024-10-21 13:49:55 +02:00
Marcel Hibbe
3d37cc0831
only do initial request if newestMessageIdFromDb is lower than lastReadMessage from conversation
If conversation has a newer message id than DB then an online request is necessary

If conversation has an older message id than DB then an online request is not necessary (this could happen when updating of DB is implemented for push notification, not yet done).

If conversation has the same message id like DB than request can be skipped

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2024-10-21 13:49:54 +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
b1d6086684
load conversation from DB first, then update by request if connection is available
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2024-10-21 13:49:54 +02:00
Marcel Hibbe
818a843143
check if sync succeeded
Decrease message limit for retries of message loading

make it possible to add any amount (up to 100) of messages to UI for initial loading.

add logging

only make initial request for chat messages when newest message from DB is not equal the lastReadMessage that is offered by the conversation

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
Sowjanya Kota
acd31ec2b5
Merge pull request #4289 from nextcloud/bugfix/4288/fixTypingIndicatorPosition
fix position and animation of typing indicator
2024-10-01 13:37:35 +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
sowjanyakch
de582f8b0b
use variable "VOICE_MESSAGE_PREFIX_MAX_LENGTH" to restrict length of voice recording file name
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
2024-09-27 12:41:36 +02:00
sowjanyakch
2478aa884b
put file length value in utils
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
2024-09-27 12:41:36 +02:00
sowjanyakch
ce8c4b2b84
fix file name of voice recording
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
2024-09-27 12:41:36 +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