Commit Graph

330 Commits

Author SHA1 Message Date
sowjanyakch
3a71de3964 format
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
2025-06-04 07:52:15 +00:00
sowjanyakch
a0ad34c479 remove menu item after pressing keep button
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
2025-06-04 07:52:15 +00:00
sowjanyakch
9e54aadea8 popup menu color
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
2025-06-04 07:52:15 +00:00
sowjanyakch
1af65a68d4 consistent color to text and icon
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
2025-06-04 07:52:15 +00:00
Marcel Hibbe
4341a59546 simplify how search results are shown
1. reverting changes from commit 971cc79b76. The scroll to methods are used in other places and a user reported that the search window suddenly opened without to search.
2. remove checkIfMessageIsSaved method. If the message is saved or not does not matter. The only fact for "scroll to" would be that it's loaded in the adapter.
3. As the adapter is always null with the current implementation (when coming back from the first search window), the "scroll to" is replaced with the startContextChatWindowForMessage. This could be changed again when adapter is not null anymore after coming back from the other screen...

startContextChatWindowForMessage

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2025-06-03 17:24:17 +00:00
Marcel Hibbe
8836195f92
delete useless string & logic for conversationDeleteNotice
... string text was exactly the same

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2025-05-22 17:03:31 +02:00
Marcel Hibbe
38eba2f6c9
avoid NPE for eventEndTimeStamp
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2025-05-22 16:45:21 +02:00
sowjanyakch
ab8a41182a
add different object types for phone
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
2025-05-22 15:16:00 +02:00
sowjanyakch
354b107e1c
objectId instead of objectType
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
2025-05-22 15:16:00 +02:00
sowjanyakch
e72701c219
ktlintFormat
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
2025-05-22 15:15:59 +02:00
sowjanyakch
3007633873
only show delete and keep options for moderators of a conversation
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
2025-05-22 15:15:59 +02:00
sowjanyakch
6659b664d8
add meaningful names
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
2025-05-22 15:15:59 +02:00
sowjanyakch
d6a2a1fe27
modify strings
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
2025-05-22 15:15:58 +02:00
sowjanyakch
1670ff181f
add unbind-conversation capability
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
2025-05-22 15:15:58 +02:00
sowjanyakch
01b80a0753
retain conversation successfully
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
2025-05-22 15:15:58 +02:00
sowjanyakch
1ed89b2a53
delete event conversation
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
2025-05-22 15:15:58 +02:00
sowjanyakch
0104989eef
show warning dialog when call ends
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
2025-05-22 15:15:57 +02:00
rapterjet2004
62d9a47c37
Tables work
Signed-off-by: rapterjet2004 <juliuslinus1@gmail.com>
2025-05-22 14:53:54 +02:00
Marcel Hibbe
971cc79b76
open context search when message was not found or adapter was null
Opening it when adapter was null is a bit hacky but it works (better would be to make sure adapter is not null of course)

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2025-05-21 16:56:22 +02:00
rapterjet2004
0b40e06f46
Appended to work with replies
Signed-off-by: rapterjet2004 <juliuslinus1@gmail.com>
2025-05-21 14:28:58 +02:00
rapterjet2004
fd7afccbc4
Follow up improvements
- Added ComposePreviewUtils
- Added ComposePreviewUtilsDao (both for previewing w/ dependencies)
- Additional fixes

Signed-off-by: rapterjet2004 <juliuslinus1@gmail.com>
2025-05-21 14:28:57 +02:00
sowjanyakch
582eda8480
merge conflicts
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
2025-05-14 19:03:08 +02:00
sowjanyakch
70bfbb3210
refactor
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
2025-05-14 18:58:37 +02:00
sowjanyakch
3dc390a8cd
ktlintFormat
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
2025-05-14 18:58:37 +02:00
sowjanyakch
4ec2cb8e7a
make snackbar clickable
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
2025-05-14 18:58:37 +02:00
sowjanyakch
40ffa582e3
fix detekt
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
2025-05-14 17:37:59 +02:00
sowjanyakch
cf27a489e7
use calendar icon instead of calendar clock icon
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
2025-05-14 17:37:59 +02:00
sowjanyakch
44065ae946
archive conversation
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
2025-05-14 17:37:58 +02:00
sowjanyakch
b128c5a8ea
use string resources
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
2025-05-14 17:37:58 +02:00
sowjanyakch
fd47146729
UI changes and hiding events
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
2025-05-14 17:37:57 +02:00
sowjanyakch
83b8915787
add icon for event conversations
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
2025-05-14 17:37:57 +02:00
sowjanyakch
f11ed31408
update snackbar text
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
2025-05-14 11:13:38 +02:00
Marcel Hibbe
ab19f631ae
get Note-to-Self room by endpoint + convert to coroutines
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2025-04-29 13:40:27 +02:00
Marcel Hibbe
c6d1f68442
fix jumping Note to self option in message action dialog.
Only get room for Note to Self after clicking on the option..

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2025-04-29 12:32:36 +02:00
Sowjanya Kota
a9090d4e71
Merge pull request #4826 from nextcloud/feature/4712/addParticipantTo1to1
Feature/4712/add participant to1to1
2025-04-17 12:47:19 +02:00
sowjanyakch
a82218055e
use display name of user instead of userId
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
2025-04-16 15:19:55 +02:00
Marcel Hibbe
d0190158d5
avoid NPE in onLoadMore
For v21.0.0, the following crash was reported:

Exception java.lang.NullPointerException: null cannot be cast to non-null type com.nextcloud.talk.chat.data.model.ChatMessage
  at com.nextcloud.talk.chat.ChatActivity.onLoadMore (ChatActivity.kt:3107)
  at com.stfalcon.chatkit.messages.MessagesListAdapter.onLoadMore (MessagesListAdapter.java:148)
  at com.stfalcon.chatkit.messages.RecyclerScrollMoreListener.onScrolled (RecyclerScrollMoreListener.java:82)
  at androidx.recyclerview.widget.RecyclerView.dispatchOnScrolled (RecyclerView.java:5688)
  at androidx.recyclerview.widget.RecyclerView.dispatchLayoutStep3 (RecyclerView.java:4741)
  at androidx.recyclerview.widget.RecyclerView.dispatchLayout (RecyclerView.java:4367)
  at androidx.recyclerview.widget.RecyclerView.onLayout (RecyclerView.java:4919)

This is now improved:
- lastOrNull prevents exceptions if no matching item is found
- as? is a safe cast that returns null if the cast fails

Whole expression becomes null-safe, and id will be null if anything along the way doesn't match. Only when not null, onLoadMore continues.

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2025-04-14 14:21:51 +02:00
Marcel Hibbe
c2ad89f7fb
minor refactoring
to be discussed: does it make sense to show a dialog instead? At least when it's created via 1:1 conversation

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2025-04-14 11:03:46 +02:00
Marcel Hibbe
77fe2ad024
refactor getRetrofitBucketForCreateRoom
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2025-04-14 11:03:45 +02:00
Marcel Hibbe
c9136cdf15
replace snackbar with toasts for breakout room infos
snackbars disaapear with the switch to a different screen. Toasts survive the switch so they are visible during the activities switch

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2025-04-14 11:03:43 +02:00
Marcel Hibbe
8009cc1013
Add new photo picker
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2025-03-27 23:59:08 +01:00
Andy Scherzinger
db944ec1bd
style(lint): Migrate to KTX extension function
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2025-03-19 18:07:35 +01:00
rapterjet2004
d26697b932
Abstracting away media player functionality to MediaPlayerManager
- Most code removed from ChatActivity
- Most work in MediaPlayerManager
- Added BackgroundVoiceMessageCard

Signed-off-by: rapterjet2004 <juliuslinus1@gmail.com>
2025-03-04 16:02:12 -06:00
Marcel Hibbe
1bcdeb2d46
init other data earlier than ConversationModel
because setData was called too late (after sendTempChatMessages was called from messageInputFragment, internalConversationId was not initialized in repository).
With this change, internalConversationId, credentials and urlForChatting are initialized earlier which should avoid the issue.
However conversationModel is still initialized quite late and should be accessed with caution. This could may be improved by better architecture..

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2025-02-18 10:48:17 +01:00
Marcel Hibbe
30caa435ae
Avoid duplicated messages when activity is in background.
onDestroy is not called when navigating to the next activity or bringing the app to background. That's why the adapter was not set to null and all messages were added another time the next time the activity comes to foreground. With this fix, the adapter is set to null in onStop.

All in all, the adapter handling may not be the best, but will be replaced by Compose anyway..

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2025-02-17 14:59:15 +01:00
Marcel Hibbe
3330fc8210
fix shimmer and "offlineNoMessages"-info handling
when being offline and no messages are set -> hide shimmer

when messages are received -> hide shimmer and "offlineNoMessages"-info

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2025-01-23 09:45:02 +01:00
Julius Linus
1ac537be94
Merge pull request #4641 from nextcloud/bugfix/4605/fixDuplicateMessages
Bugfix/4605/fix duplicate messages
2025-01-22 11:29:15 -06:00
Marcel Hibbe
4f49deadf2
Merge pull request #4630 from nextcloud/bugfix/4628/noUnreadMessagesBubbleForInvisibleMessages
no "unread messages" popup for invisible messages
2025-01-22 16:57:08 +00:00
Marcel Hibbe
9b6b01254a
remove scope cancelation for handleChatOnBackPress (replace with lifecyle event)
handleOnStop will handle this (and more scenarios than just backpress)

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2025-01-22 13:59:03 +01:00
Marcel Hibbe
b6e341bbf1
cancel scope when onStop is reached
This is necessary especially to cancel the long polling when configuration change was made, e.g. screen was rotated. Otherwise multiple long polling requests would be running after configuration changes.

Because it not possible to launch a new coroutine in a scope that was canceled, it is necessary to re-initialize the scope.

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2025-01-22 13:50:30 +01:00