Commit Graph

7038 Commits

Author SHA1 Message Date
Marcel Hibbe
59d37b2a2e
Change rules to work with translation file
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2025-03-27 18:58:15 +01:00
Marcel Hibbe
b688bf995e
Change translations + only first letter should be uppercase
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2025-03-27 18:53:47 +01:00
Marcel Hibbe
0c1d56ee10
move notification warning setting to bottom of category
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2025-03-27 18:34:06 +01:00
Nextcloud bot
42aee4e6aa
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-03-25 03:11:46 +00:00
gavine99
e68c023a27 changes to allow bluetooth headset state change receiver to be exported. fixes bluetooth headset (dis)connection not being recognised during a call.
Signed-off-by: Gavin Element <github@bobfox.top>
Signed-off-by: gavine99 <github@xymail.tk>
2025-03-24 16:16:56 +11:00
Nextcloud bot
5613a99454
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-03-24 03:09:08 +00:00
Nextcloud bot
10262810c7
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-03-23 03:08:42 +00:00
Nextcloud bot
771402d337
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-03-22 03:08:07 +00:00
Marcel Hibbe
fbad489ecb
fix no sound after mic permission granted
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2025-03-21 11:39:27 +01:00
Nextcloud bot
cfdac006a7
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-03-20 03:13:05 +00: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
Marcel Hibbe
8436831628
fix duplicate messages because of multiple scopes
fix duplicate messages because of multiple scopes that ran in OfflineFirstChatRepository

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2025-03-19 11:41:33 +01:00
Nextcloud bot
1e8438b784
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-03-19 03:11:34 +00:00
github-actions
743d4a0a4e
hide already selected participants
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
Signed-off-by: github-actions <github-actions@github.com>
2025-03-14 15:39:39 +01:00
Marcel Hibbe
1fa0496b94
remove unused resources
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2025-03-14 15:37:25 +01:00
Marcel Hibbe
23b03eead8
rename ContactsActivityCompose to ContactsActivity
the old ContactsActivity was deleted, so ContactsActivityCompose becomes ContactsActivity now

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2025-03-14 15:37:24 +01:00
Marcel Hibbe
1c7d84f90b
remove old ContactsActivity and use ContactsActivityCompose
for ConversationInfoActivity, the old ContactsActivity was still used to add participants. This is now replaced by the ContactsActivityCompose, so ContactsActivity is now deleted

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2025-03-14 15:37:24 +01:00
Nextcloud bot
d6d7a11573
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-03-14 03:16:05 +00:00
Marcel Hibbe
af0294bb00
show maintenance warning in conv list on top
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2025-03-13 11:05:21 +01:00
Marcel Hibbe
c90f138f42
rename SetStatusBarColor to SetupSystemBars
(as it also colors the navigation bar buttons..)

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2025-03-13 09:52:44 +01:00
Marcel Hibbe
7b5e404814
use common SetStatusBarColor component also for ConversationCreationActivity
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2025-03-13 09:52:43 +01:00
Marcel Hibbe
773a6295ba
color navigation buttons
(= set more contrast by fixing dark mode logic)

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2025-03-13 09:52:43 +01:00
Marcel Hibbe
aeb50c6b68
fix to color status-bar with theming
SetStatusBarColor() was called outside of the MaterialTheme() block

Also, "surface" has to be used to get the 'light primary color'

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2025-03-13 09:52:42 +01:00
Nextcloud bot
6fa7b8f177
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-03-13 03:13:40 +00:00
Nextcloud bot
a08212cf34
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-03-12 03:11:42 +00:00
Nextcloud bot
9c595bf40b
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-03-07 03:07:30 +00:00
Marcel Hibbe
869c8154d7
Merge pull request #4761 from nextcloud/edit_bot_messages
Edit bot messages in 1:1 conversations
2025-03-06 12:45:47 +00:00
sowjanyakch
e1830ce296
layout changes
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
2025-03-06 13:30:18 +01:00
sowjanyakch
2604c56263
edit bot messages
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
2025-03-06 13:30:18 +01:00
sowjanyakch
546e6abec4
fix detekt
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
2025-03-06 13:22:06 +01:00
sowjanyakch
2ef4ff6e40
ktlintFormat
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
2025-03-06 13:22:06 +01:00
sowjanyakch
c0376c8eed
uploading file works for first time users
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
2025-03-06 13:22:05 +01:00
sowjanyakch
2081a501a4
use proper url
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
2025-03-06 13:22:05 +01:00
sowjanyakch
ef4d83a691
create a new folder
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
2025-03-06 13:22:05 +01:00
sowjanyakch
bb581d0862
didn't set read timeout
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
2025-03-06 13:22:05 +01:00
sowjanyakch
40cac86350
create folder for new users
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
2025-03-06 13:22:04 +01:00
Marcel Hibbe
2b0a38240c
move AppBar component to component package on root level
+ add string
+ remove unused resources

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2025-03-06 09:12:06 +01:00
Marcel Hibbe
c2177f689b
move SetStatusBarColor component to component package on root level
however, the color still needs to be fixed

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2025-03-06 09:12:06 +01:00
Marcel Hibbe
3723599c68
move filebrowser package out of components package
... as "components" package should be used for jetpack compose components that can be shared for multiple screens

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2025-03-06 09:12:06 +01:00
Marcel Hibbe
6ed17603d6
migrate dropdown menu
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2025-03-06 09:12:05 +01:00
Marcel Hibbe
84ce5df2d7
migrate diagnosis screen to compose
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2025-03-06 09:12:05 +01:00
Nextcloud bot
773acf49e7
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-03-06 03:08:39 +00:00
Nextcloud bot
258636cabc
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-03-05 03:08:21 +00: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
Nextcloud bot
e07589fb69
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-02-28 03:07:45 +00:00
Nextcloud bot
1dddd1cdd3
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-02-27 03:11:26 +00:00
Nextcloud bot
fb4148541c
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-02-26 03:08:01 +00:00
Nextcloud bot
41aaa96128
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-02-25 03:16:38 +00:00
Nextcloud bot
d0b18a01cf
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-02-22 03:03:02 +00:00
Marcel Hibbe
17f43e8b42
avoid Npe for adapter.
A NPE was reported for ConversationsListActivity.kt:537

Adapter is accessed with !! while it is not safe to access in term of lifecycle.
So there could have been a race condition.
The overall problem is not solved and may even have to wait for migration to Compose.
This is just a quickfix for v21.0.0

Reported crash was :

Exception java.lang.NullPointerException:
  at com.nextcloud.talk.conversationlist.ConversationsListActivity.filterConversation (ConversationsListActivity.kt:537)
  at com.nextcloud.talk.conversationlist.ConversationsListActivity.setConversationList (ConversationsListActivity.kt:472)
  at com.nextcloud.talk.conversationlist.ConversationsListActivity.access$setConversationList (ConversationsListActivity.kt:158)
  at com.nextcloud.talk.conversationlist.ConversationsListActivity$initObservers$5$1.invokeSuspend (ConversationsListActivity.kt:398)
  at com.nextcloud.talk.conversationlist.ConversationsListActivity$initObservers$5$1.invoke (Unknown Source:8)
  at com.nextcloud.talk.conversationlist.ConversationsListActivity$initObservers$5$1.invoke (Unknown Source:4)
  at kotlinx.coroutines.flow.FlowKt__TransformKt$onEach$$inlined$unsafeTransform$1$2.emit (Emitters.kt:219)
  at kotlinx.coroutines.flow.FlowKt__ErrorsKt$catchImpl$2.emit (Errors.kt:154)
  at kotlinx.coroutines.flow.FlowKt__TransformKt$onEach$$inlined$unsafeTransform$1$2.emit (Emitters.kt:220)
  at kotlinx.coroutines.flow.SharedFlowImpl.collect$suspendImpl (SharedFlow.kt:392)
  at kotlinx.coroutines.flow.SharedFlowImpl.collect (Unknown Source)
  at kotlinx.coroutines.flow.FlowKt__TransformKt$onEach$$inlined$unsafeTransform$1.collect (SafeCollector.common.kt:112)
  at kotlinx.coroutines.flow.FlowKt__ErrorsKt.catchImpl (Errors.kt:152)
  at kotlinx.coroutines.flow.FlowKt.catchImpl (Unknown Source:1)
  at kotlinx.coroutines.flow.FlowKt__ErrorsKt$catch$$inlined$unsafeFlow$1.collect (SafeCollector.common.kt:112)
  at kotlinx.coroutines.flow.FlowKt__TransformKt$onEach$$inlined$unsafeTransform$1.collect (SafeCollector.common.kt:112)
  at kotlinx.coroutines.flow.FlowKt__CollectKt.collect (Collect.kt:26)
  at kotlinx.coroutines.flow.FlowKt.collect (Unknown Source:1)
  at com.nextcloud.talk.conversationlist.ConversationsListActivity$initObservers$5.invokeSuspend (ConversationsListActivity.kt:399)
  at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith (ContinuationImpl.kt:33)
  at kotlinx.coroutines.internal.DispatchedContinuationKt.resumeCancellableWith (DispatchedContinuation.kt:363)
  at kotlinx.coroutines.intrinsics.CancellableKt.startCoroutineCancellable (Cancellable.kt:26)
  at kotlinx.coroutines.intrinsics.CancellableKt.startCoroutineCancellable$default (Cancellable.kt:21)
  at kotlinx.coroutines.CoroutineStart.invoke (CoroutineStart.kt:88)
  at kotlinx.coroutines.AbstractCoroutine.start (AbstractCoroutine.kt:123)
  at kotlinx.coroutines.BuildersKt__Builders_commonKt.launch (Builders.common.kt:52)
  at kotlinx.coroutines.BuildersKt.launch (Unknown Source:1)
  at kotlinx.coroutines.BuildersKt__Builders_commonKt.launch$default (Builders.common.kt:43)
  at kotlinx.coroutines.BuildersKt.launch$default (Unknown Source:1)
  at com.nextcloud.talk.conversationlist.ConversationsListActivity.initObservers (ConversationsListActivity.kt:395)
  at com.nextcloud.talk.conversationlist.ConversationsListActivity.onCreate (ConversationsListActivity.kt:261)
  at android.app.Activity.performCreate (Activity.java:9149)
  at android.app.Activity.performCreate (Activity.java:9127)
  at android.app.Instrumentation.callActivityOnCreate (Instrumentation.java:1526)
  at android.app.ActivityThread.performLaunchActivity (ActivityThread.java:4152)
  at android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:4361)
  at android.app.ActivityThread.handleRelaunchActivityInner (ActivityThread.java:6446)
  at android.app.ActivityThread.handleRelaunchActivity (ActivityThread.java:6329)
  at android.app.servertransaction.ActivityRelaunchItem.execute (ActivityRelaunchItem.java:82)
  at android.app.servertransaction.ActivityTransactionItem.execute (ActivityTransactionItem.java:60)
  at android.app.servertransaction.TransactionExecutor.executeNonLifecycleItem (TransactionExecutor.java:174)
  at android.app.servertransaction.TransactionExecutor.executeTransactionItems (TransactionExecutor.java:109)
  at android.app.servertransaction.TransactionExecutor.execute (TransactionExecutor.java:81)
  at android.app.ActivityThread$H.handleMessage (ActivityThread.java:2747)
  at android.os.Handler.dispatchMessage (Handler.java:112)
  at android.os.Looper.loopOnce (Looper.java:268)
  at android.os.Looper.loop (Looper.java:384)
  at android.app.ActivityThread.main (ActivityThread.java:8921)
  at java.lang.reflect.Method.invoke
  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:580)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:907)

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2025-02-21 12:35:20 +01:00
Nextcloud bot
8aeaffa2bb
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-02-21 03:01:29 +00:00
Marcel Hibbe
7615b92f14
extract Composables to files and simplify passed parameters
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2025-02-20 15:31:35 +01:00
Andy Scherzinger
2d37bb250b
style: Update twitter icon to X icon
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2025-02-20 11:37:55 +01:00
Andy Scherzinger
95e7e9c828
style: Update icons from Material Design to Material Symbols
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2025-02-20 11:37:54 +01:00
Nextcloud bot
43170a5cdf
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-02-20 03:05:31 +00:00
Sowjanya Kota
e648b8846a
Merge pull request #4740 from nextcloud/bugfix/noid/improveContactsActivityDesign
Bugfix/noid/improve contacts activity design
2025-02-18 17:39:20 +01:00
Sowjanya Kota
8d7ce9fc5e
Merge pull request #4738 from nextcloud/bugfix/4701/avoidUninitializedInternalConvId
init other data earlier than ConversationModel
2025-02-18 15:50:00 +01:00
Marcel Hibbe
c5517c8426
fix background color for conversation creation
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2025-02-18 14:55:10 +01:00
Marcel Hibbe
903bed8fb4
improve colors for searchbar
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2025-02-18 14:55:10 +01:00
Marcel Hibbe
83c0d0b150
fix colors for header
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2025-02-18 14:55:10 +01:00
Marcel Hibbe
f76634511c
fix background color for contacts activity
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2025-02-18 14:55:09 +01:00
Marcel Hibbe
754e8a86fd
check if scope is initialized before canceling
without this fix, the scope may not have been initialized which threw the following exception:

Exception java.lang.RuntimeException:
  at android.app.ActivityThread.callActivityOnStop (ActivityThread.java:5658)
  at android.app.ActivityThread.performStopActivityInner (ActivityThread.java:5630)
  at android.app.ActivityThread.handleStopActivity (ActivityThread.java:5695)
  at android.app.servertransaction.StopActivityItem.execute (StopActivityItem.java:43)
  at android.app.servertransaction.ActivityTransactionItem.execute (ActivityTransactionItem.java:60)
  at android.app.servertransaction.TransactionExecutor.executeLifecycleItem (TransactionExecutor.java:282)
  at android.app.servertransaction.TransactionExecutor.executeTransactionItems (TransactionExecutor.java:150)
  at android.app.servertransaction.TransactionExecutor.execute (TransactionExecutor.java:93)
  at android.app.ActivityThread$H.handleMessage (ActivityThread.java:2595)
  at android.os.Handler.dispatchMessage (Handler.java:107)
  at android.os.Looper.loopOnce (Looper.java:232)
  at android.os.Looper.loop (Looper.java:317)
  at android.app.ActivityThread.main (ActivityThread.java:8592)
  at java.lang.reflect.Method.invoke
  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:580)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:878)
Caused by kotlin.UninitializedPropertyAccessException: lateinit property scope has not been initialized
  at com.nextcloud.talk.chat.data.network.OfflineFirstChatRepository.handleOnStop (OfflineFirstChatRepository.kt:807)
  at com.nextcloud.talk.chat.viewmodels.ChatViewModel.onStop (ChatViewModel.kt:103)
  at androidx.lifecycle.DefaultLifecycleObserverAdapter.onStateChanged (DefaultLifecycleObserverAdapter.kt:28)
  at androidx.lifecycle.LifecycleRegistry$ObserverWithState.dispatchEvent (LifecycleRegistry.jvm.kt:320)
  at androidx.lifecycle.LifecycleRegistry.backwardPass (LifecycleRegistry.jvm.kt:272)
  at androidx.lifecycle.LifecycleRegistry.sync (LifecycleRegistry.jvm.kt:289)
  at androidx.lifecycle.LifecycleRegistry.moveToState (LifecycleRegistry.jvm.kt:142)
  at androidx.lifecycle.LifecycleRegistry.handleLifecycleEvent (LifecycleRegistry.jvm.kt:124)
  at androidx.lifecycle.ReportFragment$Companion.dispatch$lifecycle_runtime_release (ReportFragment.android.kt:190)
  at androidx.lifecycle.ReportFragment$LifecycleCallbacks.onActivityPreStopped (ReportFragment.android.kt:135)
  at android.app.Activity.dispatchActivityPreStopped (Activity.java:1633)
  at android.app.Activity.performStop (Activity.java:9197)
  at android.app.ActivityThread.callActivityOnStop (ActivityThread.java:5650)

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2025-02-18 11:36:39 +01: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
sowjanyakch
ef957508a3
make link clickable
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2025-02-18 09:55:46 +01:00
Nextcloud bot
7ff365194c
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-02-18 03:02:57 +00:00
Marcel Hibbe
d387b2f5a7
Merge pull request #4734 from nextcloud/bugfix/4673/fixDuplicatedMessages
Avoid duplicated messages when activity is in background.
2025-02-17 16:58:31 +00:00
sowjanyakch
80e98a0d8b
ktlintFormat
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
2025-02-17 16:41:46 +01:00
sowjanyakch
ea608781c4
remove unused constant
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
2025-02-17 16:40:23 +01:00
sowjanyakch
edcadbcd37
fix detekt
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
2025-02-17 16:36:40 +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
sowjanyakch
f418955e1d
label styling
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
2025-02-17 13:09:29 +01:00
sowjanyakch
a133804f65
format code
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
2025-02-17 13:09:29 +01:00
sowjanyakch
1ad186b94b
display label in the placeholder
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
2025-02-17 13:09:28 +01:00
sowjanyakch
00b1b1fe51
ktlintFormat
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
2025-02-17 12:25:43 +01:00
rapterjet2004
d46f2488a7
No longer does edit button overlap the recordAudioButton
Signed-off-by: rapterjet2004 <juliuslinus1@gmail.com>
2025-02-17 12:25:43 +01:00
rapterjet2004
9f9fd1a82e
Added offline check in handleHttpExceptions in ConversationsListActivity
Signed-off-by: rapterjet2004 <juliuslinus1@gmail.com>
2025-02-17 11:42:56 +01:00
Nextcloud bot
88384206e4
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-02-17 03:02:28 +00:00
Nextcloud bot
4667e565ad
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-02-16 19:46:29 +00:00
Nextcloud bot
e0e0d5113d
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-02-16 16:01:28 +00:00
Andy Scherzinger
12b52a9024
fix(lint): Use plurals string instead of simple string
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2025-02-16 16:20:02 +01:00
Andy Scherzinger
b0b75ca6f0
chore: remove unnecessary lint suppression
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2025-02-16 14:58:48 +01:00
Nextcloud bot
8fcb610e24
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-02-16 13:44:29 +00:00
Nextcloud bot
eab7b40bff
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-02-16 13:38:28 +00:00
Andy Scherzinger
eae91c8277
Merge pull request #4722 from nextcloud/fix/noid/formattingCharacter
Message count is an Int hence use 'd' not 's' as formatting character
2025-02-16 14:36:11 +01:00
Nextcloud bot
4e170a8ee5
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-02-16 13:27:28 +00:00
Andy Scherzinger
8fae612ed7
fix(lint): message count is an Int hence use 'd' not 's' as formatting character
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2025-02-16 14:17:31 +01:00
Nextcloud bot
33fd163ee6
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-02-12 03:06:50 +00:00
Nextcloud bot
5c930eb1ae
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-02-11 03:05:31 +00:00
Nextcloud bot
ce7687f7ba
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-02-10 03:03:02 +00:00
Nextcloud bot
45202655d3
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-02-09 03:06:43 +00:00
Marcel Hibbe
5219eeb11f
replace userManager.currentUser usage by currentUserProvider usage
userManager.currentUser was called too often. I was not able to prove that a bug is related to it but i think it may fix some hidden bugs.

CurrentUserProviderImpl is now used throughout the code to access the current user.
userManager.currentUser is only used from CurrentUserProviderImpl whenever the _currentUser was null (should only happen on app startup)

To avoid multiple initialization of CurrentUserProviderImpl it was changed to be a @Singleton

The handling should soon be replaced with coroutine flows. However for the v21.0.0 release it's still done with RxJava to avoid bugs.

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2025-02-07 13:13:38 +01:00
Marcel Hibbe
c72c83b5bf
add license headers
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2025-02-07 12:33:20 +01:00
sowjanyakch
2d1c940eae
resize icons
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
2025-02-07 09:34:47 +01:00
sowjanyakch
e40f3675c7
format code
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
2025-02-07 09:34:47 +01:00
sowjanyakch
20a8a38764
make system messages work for teams
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
2025-02-07 09:34:47 +01:00
sowjanyakch
c08a004d39
format code
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
2025-02-07 09:34:46 +01:00
sowjanyakch
65707f2d34
add icon
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
2025-02-07 09:34:46 +01:00
sowjanyakch
ba37c7bac0
add mention support for circles
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
2025-02-07 09:34:46 +01:00
sowjanyakch
d927f8daa6
use proper avatar for circles
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
2025-02-07 09:34:46 +01:00
sowjanyakch
64856ccda6
set chip avatar for team placeholder
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
2025-02-07 09:34:46 +01:00
sowjanyakch
0de8a3e06e
add avatar for autocomplete mentions in recycler view
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
2025-02-07 09:34:45 +01:00
sowjanyakch
f02257d5ff
add team support for mentions
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
2025-02-07 09:34:45 +01:00
Marcel Hibbe
11fc9fa0d0
Merge pull request #4688 from nextcloud/bugfix/noid/avoidDuplicatedMessagesAfterSend
avoid duplicated messages after sending
2025-02-06 14:58:48 +00:00
Marcel Hibbe
69a9b9687c
lower SEARCH_MIN_CHARS to 1
same behavior for web and iOS..

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2025-02-06 11:15:18 +01:00
Marcel Hibbe
423fbbe8ec
fix nullable createRoom param for FakeRepository classes
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2025-02-06 11:15:17 +01:00
Marcel Hibbe
f4a1b73f63
replace hardcoded number for 1:1 roomtype
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2025-02-06 11:15:17 +01:00
rapterjet2004
b707cebf6f
Added intent handling on item click
Signed-off-by: rapterjet2004 <juliuslinus1@gmail.com>
2025-02-06 11:15:16 +01:00
rapterjet2004
93fa89fb81
linter -_-
Signed-off-by: rapterjet2004 <juliuslinus1@gmail.com>
2025-02-06 09:39:41 +01:00
rapterjet2004
4425f8249a
Improved Search
- Uncommented out fetchOpenConversations
- Added fetchUsers to conversationList
- Made the messages appear first

Signed-off-by: rapterjet2004 <juliuslinus1@gmail.com>
2025-02-06 09:39:40 +01:00
Nextcloud bot
4632d20705
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-02-06 03:04:29 +00:00
Marcel Hibbe
09a6cfb68b
avoid duplicated messages after sending
It could happen that when sending a message it was received on server but if the servers response is not received, the retry was triggered in the talk app.
This sometimes happened when internet connection was not the best.

Best would be that messages with the same referenceId would be refused on server side, but this won't be the case for now. So messages with the same referenceId are NOT refused as this would be too much overhead as there would be additional queries on server for every received message)

For now, the automatic retry logic is just removed so duplicated messages won't be created automatically.
However it's still possible to manually trigger the retry via button. In this case it is not guaranteed that there won't be duplicates.

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2025-02-05 15:56:42 +01:00
rapterjet2004
2b30988514
Added character counter to xml
Signed-off-by: rapterjet2004 <juliuslinus1@gmail.com>
2025-02-05 13:53:32 +01:00
sowjanyakch
1663fcafda
ktlintFormat
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
2025-02-05 13:53:31 +01:00
sowjanyakch
ef7831472f
set limit on description
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
2025-02-05 13:53:31 +01:00
sowjanyakch
fdcff12bd9
ktlintFormat
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
2025-02-05 13:53:31 +01:00
sowjanyakch
bbedbf569d
rename variable
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
2025-02-05 13:53:31 +01:00
sowjanyakch
b7074c5412
set limit on conversation description
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
2025-02-05 13:53:30 +01:00
sowjanyakch
39391c8bca
calculate conversation description length
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
2025-02-05 13:53:29 +01:00
Julius Linus
3d2f99907a
Merge pull request #4667 from nextcloud/bugfix/4492/fixMissingUsersInUI
Bugfix/4492/fix missing users in UI
2025-02-03 11:51:37 -06:00
Nextcloud bot
a098de9bab
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-02-03 03:26:06 +00:00
Nextcloud bot
b7d4cf6dc5
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-02-01 03:03:51 +00:00
Nextcloud bot
4880dcf2cb
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-01-30 03:13:49 +00:00
Marcel Hibbe
b69f21580a
self heal if multiple current users exist
usersDao.getActiveUser() will return only one current users even if multiple exist for whatever reason.
By executing setUserAsActiveWithId(it.id) with the same user, it is made sure all other users current status is set to 0.

This change won't fix the root cause if multiple users are set to current, but it will make sure the state is fixed as soon as there is a query to get the active user.

In fact, this change might also make it harder to find the root cause because debugging may be more difficult! When searching for the root cause, always keep this in mind and maybe revert the change.

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2025-01-28 15:57:41 +01:00
Marcel Hibbe
22b8b59fb3
fix to not execute getAnyUserAndSetAsActive() until userRepository.getActiveUser() is empty
To make sure getAnyUserAndSetAsActive() is invoked lazily and avoid any side effects, it's explicitly wrapped it in a lambda.

Maybe.defer ensures that getAnyUserAndSetAsActive() is not invoked until switchIfEmpty decides it’s needed.

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2025-01-28 15:15:06 +01:00
Marcel Hibbe
307ebd384d
ensure that getAnyUserAndSetAsActive will set other users to current=false
Before, getAnyUserAndSetAsActive did only set a random first user to current=true without to check if there is any other current user.

So it was up to the calling function of getAnyUserAndSetAsActive to check this.

I did not identify a scenario where the getAnyUserAndSetAsActive could cause to set multiple users to current, but anyway the new implementation might fix some scenario that i could not reproduce.

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2025-01-28 15:11:07 +01:00
Marcel Hibbe
c58df32c87
Merge pull request #4659 from nextcloud/changing-btn-layout-date-time-fragment
Switched the "Close" and "Set" Buttons in the remind-me-later dialog
2025-01-28 11:42:34 +01:00
rapterjet2004
25df5197e5
switched the btns in DateTimeCompose
Signed-off-by: rapterjet2004 <juliuslinus1@gmail.com>
2025-01-28 11:29:23 +01:00
sowjanyakch
c7c287a7d5
message of type actorId = "sample" should show talk logo avatar
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
2025-01-28 11:00:37 +01:00
Nextcloud bot
97988a4617
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-01-27 03:00:13 +00:00
Nextcloud bot
ad572b7222
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-01-26 03:10:18 +00:00
Nextcloud bot
be6cc855ad
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-01-25 03:21:09 +00:00
Nextcloud bot
34806b6b8a
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-01-24 03:02:43 +00:00
Nextcloud bot
b44296c5eb
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-01-23 13:39:33 +00:00
Marcel Hibbe
7ac8c2483e
Show snackbar on archive/unarchive from bottomDialog
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2025-01-23 12:21:31 +01:00
Marcel Hibbe
3427f4ce50
change "Archive conversation" design in conversation-info screen
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2025-01-23 12:11:50 +01:00
Marcel Hibbe
71af112a8c
change "No conversations archived" screen design
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2025-01-23 12:11:49 +01:00
rapterjet2004
a6055e52e8
Archived conversation improvements
- First commit - Made options yellow
- Now possible to archive/unarchive conversations from dialog
- Now possible to archive and unarchive conversations in settings without leaving the screen
- Better UX
- Unread message bubble fix - no longer shows up when archive filter is set

Signed-off-by: rapterjet2004 <juliuslinus1@gmail.com>
2025-01-23 12:11:49 +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
Nextcloud bot
22e2f758cb
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-01-23 03:04:43 +00: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
b172f68cd3
Merge pull request #4627 from nextcloud/feature/4570/rework-can-leave-delete-conversation
Rework can leave/delete conversation
2025-01-22 16:49:31 +00:00
Marcel Hibbe
d2d040dffe
Merge pull request #4629 from nextcloud/bugfix/4626/avoidChatLoadingShimmerOverlay
avoid shimmer animations overlay with chat messages
2025-01-22 16:37:01 +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
1f105d44d3
check if scope is active during long polling
Because long polling may have to be informed that the scopep was cancelled, the isActive checks are added so it can't happen that messages are added when they shouldn't.

I could not reproduce the scenario, anyway the checks should make sense in my opinion.

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2025-01-22 13:54:31 +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
Nextcloud bot
504846593b
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-01-22 03:05:52 +00:00
Nextcloud bot
136ad56bf3
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-01-21 03:04:00 +00:00
Marcel Hibbe
28ffb7f971
enable to select authentication cert in server selection screen
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2025-01-20 10:35:53 +01:00
Nextcloud bot
aa42f5c253
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-01-20 02:58:46 +00:00
Nextcloud bot
fba4e948b2
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-01-18 03:02:52 +00:00
Marcel Hibbe
5535bed35c
no "unread messages" popup for invisible messages
if chatMessageList is empty after handleSystemMessages it makes no sense to call the following methods.
Also processMessagesFromTheFuture was executed which caused that the popup was shown.

A better solution for the future should be to handle(remove) the "to-hide" system messages already in the repo or viewmodel

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2025-01-17 14:09:58 +01:00
Marcel Hibbe
20612c8543
avoid shimmer animations overlay with chat messages
The idea to show the progress bar (aka shimmer animation) was that it show not be shown at all if loading messages happens in less than a second (this was a better UX in my opinion).

The idea was to hide the progress bar when
ChatMessageStartState was triggered.

However there can be moment when adapter is still empty after ChatMessageStartState and if in this moment the DELAY_TO_SHOW_PROGRESS_BAR is reached before the adapter is actually filled, the overlay happens.
It could be a solution to move the hiding of the progress bar, however then special cases might have to be handled.

For simplicity, the logic for DELAY_TO_SHOW_PROGRESS_BAR is removed. Progress bar is always shown without a delay so it wont be triggered on a later moment and can't overlay the chat.

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2025-01-17 13:40:57 +01:00
Marcel Hibbe
779c1627aa
Merge pull request #4620 from nextcloud/fix/4557/reactionsBackground
Fix reactions background
2025-01-17 12:14:41 +00:00
Marcel Hibbe
35f9e339c9
make sure that canDeleteConversation is used to determine if "Delete all message" is shown.
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2025-01-17 11:55:41 +01:00
Nextcloud bot
115f5e372e
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-01-17 03:02:33 +00:00
Andy Scherzinger
9fcd466576
style(icons): Update pdf icon to latest server version / material symbols
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2025-01-16 18:25:07 +01:00
Andy Scherzinger
9e3840c3a9
style(lint): replace magic number with constant
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2025-01-16 16:29:39 +01:00
Andy Scherzinger
e4088d0ddc
style(lint): Fix formatting
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2025-01-16 15:57:24 +01:00
Andy Scherzinger
0a6a1a703f
style(reactions): Add default vertical spacing at top of reactions
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2025-01-16 15:53:30 +01:00
Andy Scherzinger
a2dac5e0fa
style(reactions): ensure correct color coding of own reaction backgrounds
Resolves #4557

Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2025-01-16 15:40:54 +01:00
Andy Scherzinger
b26b598a6c
style(reactions): Align reactions with text for preview messages
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2025-01-16 15:40:53 +01:00
Andy Scherzinger
9e7996b766
style(reaction): make reactions background rounded instead of pill-styled
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2025-01-16 15:40:53 +01:00
Marcel Hibbe
69ddeaa06a
use lifecycleScope from chatActivity in OutcomingTextMessageViewHolder
defining an own scope and clearing it via onViewRecycled did not work out somehow (offline icon was wrong)

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2025-01-16 14:29:12 +01:00
Marcel Hibbe
6e1114d4d8
fix TooManyRequestsException
By using
networkMonitor.isOnline.first()
the function
unregisterNetworkCallback
was triggered, which sometimes causes the ConnectivityManager$TooManyRequestsException.

So each time isOnline.first() was called, the callbackFlow would:
- Register a new NetworkCallback.
- Emit a value and cancel the flow.
- Unregister the NetworkCallback.

The exception was:
Exception android.net.ConnectivityManager$TooManyRequestsException:
  at android.net.ConnectivityManager.convertServiceException (ConnectivityManager.java:3771)
  at android.net.ConnectivityManager.sendRequestForNetwork (ConnectivityManager.java:3960)
  at android.net.ConnectivityManager.sendRequestForNetwork (ConnectivityManager.java:3967)
  at android.net.ConnectivityManager.registerNetworkCallback (ConnectivityManager.java:4349)
  at android.net.ConnectivityManager.registerNetworkCallback (ConnectivityManager.java:4319)
  at com.nextcloud.talk.data.network.NetworkMonitorImpl$isOnline$1.invokeSuspend (NetworkMonitorImpl.kt:61)

To fix this, the cold flow from callbackFlow is converted to a StateFlow.

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2025-01-16 13:50:51 +01:00
Marcel Hibbe
ce7ed877ca
Merge pull request #4611 from nextcloud/bugfix/4610/fixNpeCurrentUserInConvList
hopefully fix NPE for currentUser in addToConversationItems
2025-01-16 12:48:53 +00:00
Nextcloud bot
44c84dd1c5
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-01-16 03:02:48 +00:00
Marcel Hibbe
13e5626159
hopefully fix NPE for currentUser
It seems there could have been a race condition because currentUser was initialized too late.
 I was not able to reproduce but hopefully this fixes it:
 - initialize currentUser earlier (moved from onResume to onCreate)
 - use currentUserProvider instead userManager

NPEs were reported via gplay:

1)
Exception java.lang.NullPointerException:
  at com.nextcloud.talk.conversationlist.ConversationsListActivity.addToConversationItems (ConversationsListActivity.kt:851)
  at com.nextcloud.talk.conversationlist.ConversationsListActivity.access$addToConversationItems (ConversationsListActivity.kt:151)
  at com.nextcloud.talk.conversationlist.ConversationsListActivity$initObservers$5$1.invokeSuspend (ConversationsListActivity.kt:394)
  at com.nextcloud.talk.conversationlist.ConversationsListActivity$initObservers$5$1.invoke (Unknown Source:8)
  at com.nextcloud.talk.conversationlist.ConversationsListActivity$initObservers$5$1.invoke (Unknown Source:4)

2)
Exception java.lang.RuntimeException:
  at android.app.ActivityThread.performResumeActivity (ActivityThread.java:5427)
  at android.app.ActivityThread.handleResumeActivity (ActivityThread.java:5508)
  ...
Caused by java.lang.NullPointerException:
  at com.nextcloud.talk.conversationlist.ConversationsListActivity.shouldShowNotificationWarning (ConversationsListActivity.kt:1557)

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2025-01-15 19:11:24 +01:00
parneet-guraya
6c67bf7b96
timeout option immediate
Signed-off-by: parneet-guraya <gurayaparneet@gmail.com>
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2025-01-15 11:28:32 +01:00
Marcel Hibbe
db8c4de028
fix to not cut off unread mentions bubble
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2025-01-15 10:33:52 +01:00
Nextcloud bot
172eddb217
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-01-15 03:03:33 +00:00
rapterjet2004
19aec5460a
figured it out - was an error with offline conversations not syncing. Chat permissions were updated on server, but not on device.
Signed-off-by: rapterjet2004 <juliuslinus1@gmail.com>
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2025-01-14 16:35:55 +01:00
Nextcloud bot
f0d7ff53c6
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-01-14 01:43:51 +00:00
Nextcloud bot
6638f449a6
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-01-13 03:01:44 +00:00
Nextcloud bot
d3b3052436
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-01-12 03:13:26 +00:00
Nextcloud bot
7851de68e9
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-01-11 03:01:45 +00:00
Marcel Hibbe
cd096366c5
change icons for message sending and messages sending failed
remove shadowed var

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2025-01-10 13:18:47 +01:00
Marcel Hibbe
68065d7e21
fix lint warning
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2025-01-10 12:32:32 +01:00
Marcel Hibbe
aa5b4d028a
remove click listener for failed messages (use default longclick)
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2025-01-10 12:32:32 +01:00
Marcel Hibbe
3094054b73
change visibility of temp message actions
during sending: edit and delete should not be shown..

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2025-01-10 12:32:32 +01:00
Marcel Hibbe
1504e51499
add strings for message status icons
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2025-01-10 12:32:32 +01:00
Marcel Hibbe
1731ca0985
remove flickering of status icons
by moving networkMonitor.isOnline to separate check and by setting
binding.checkMark.visibility = View.INVISIBLE
binding.sendingProgress.visibility = View.GONE
before setting the status icons
to to handle recyclerview behavior

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2025-01-10 12:32:32 +01:00
Marcel Hibbe
f665b1c116
save "silent" in chat messages (incl DB)
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2025-01-10 12:32:32 +01:00
Marcel Hibbe
3fdaa4bdcd
fix parent message for temp messages
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2025-01-10 12:32:31 +01:00
Marcel Hibbe
4c795139ac
add DB migration
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2025-01-10 12:32:31 +01:00
Marcel Hibbe
a58607b547
resolve detekt warnings
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2025-01-10 12:32:31 +01:00
Marcel Hibbe
560f955002
comment in opHelperFactory
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2025-01-10 12:32:31 +01:00
Marcel Hibbe
3dca00bac0
resolve warnings
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2025-01-10 12:32:31 +01:00
Marcel Hibbe
ab007fc444
resolve codacy/ktlint warnings
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2025-01-10 12:32:30 +01:00
Marcel Hibbe
8f1f22fd54
Fix duplicate "Today"-bug
If user sent a message as a first message in today's chat, the temp message will be deleted when messages are retrieved from server, but also the date has to be deleted as it will be added again when the chat messages are added from server. Otherwise date "Today" would be shown twice.

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2025-01-10 12:32:30 +01:00
Marcel Hibbe
0356f5ac3c
fix to not accidentally show unread messages popup
reason was that the UI was not yet loaded but isScrolledToBottom was already called, so findFirstVisibleItemPosition returned -1.

Fix for now is to return true for isScrolledToBottom when position is -1

They does not solve the root cause for now. It should be made sure the code is not executed until UI is ready.
A quick try with
repeatOnLifecycle(Lifecycle.State.STARTED)
when collecting getMessageFlow did not help.

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2025-01-10 12:32:30 +01:00
Marcel Hibbe
29362fab4b
add logging for unread messages popup bug
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2025-01-10 12:32:30 +01:00
Marcel Hibbe
b529d1328a
delete roomId comments
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2025-01-10 12:32:30 +01:00
Marcel Hibbe
a5049fbb1f
adjust some pixels to avoid jump of message list
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2025-01-10 12:32:29 +01:00
Marcel Hibbe
7d9c2fdd30
simplify to refresh message
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2025-01-10 12:32:29 +01:00
Marcel Hibbe
cca4e69cea
Skip to send message when device is offline
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2025-01-10 12:32:29 +01:00
Marcel Hibbe
f62941f6aa
simplify "sent messages are queued" hint
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2025-01-10 12:32:29 +01:00
Marcel Hibbe
656be3ffce
revert ReadStatus SENDING and FAILED
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2025-01-10 12:32:29 +01:00
Marcel Hibbe
06c8509587
add retry logic for sending messages, hide resend button when offline
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2025-01-10 12:32:28 +01:00
Marcel Hibbe
2c397ad517
add manual resend button
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2025-01-10 12:32:28 +01:00
Marcel Hibbe
e9f3863375
delete temp messages
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2025-01-10 12:32:28 +01:00
Marcel Hibbe
5ac130a020
resend queued messages when connection gained
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2025-01-10 12:32:28 +01:00
Marcel Hibbe
f88b1f17f2
fix after merge conflicts
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2025-01-10 12:32:28 +01:00
Marcel Hibbe
1bfb3ba027
WIP add options to temp messages
TODO:
check id type --> see TODO "currentTimeMillies fails as id because later on in the model it's not Long but Int!!!!" in OfflineFirstChatRepository.kt

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2025-01-10 12:32:27 +01:00
Marcel Hibbe
ec466e58f0
replace CharSequence with String for sendChatMessage
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2025-01-10 12:32:27 +01:00
Marcel Hibbe
0f53244652
prepare to replace no-internet-connection message handling (sorry Julius!!)
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2025-01-10 12:32:27 +01:00
Marcel Hibbe
3f5f2f024a
works okay (no resend logic yet, offline message mode not reworked)
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2025-01-10 12:32:27 +01:00
Marcel Hibbe
e1c1574d6c
show x when sending failed
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2025-01-10 12:32:27 +01:00
Marcel Hibbe
a78c9e1c08
update temp messages also for initial pull of messages
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2025-01-10 12:32:26 +01:00
Marcel Hibbe
0e682ed894
WIP temp messages are replaced when same refId received from sever
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2025-01-10 12:32:26 +01:00
Marcel Hibbe
048551e9fb
temp message is added (values are still wrong)
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2025-01-10 12:32:26 +01:00
Marcel Hibbe
80d2e75b60
WIP add temporary message
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2025-01-10 12:32:26 +01:00
Marcel Hibbe
c33bd997a4
fixes after some wrong merge after merge conflict
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2025-01-10 12:32:26 +01:00
Marcel Hibbe
3597cf2085
use repository in MessageInputViewModel instead datasource
(as datasources should be only used in repositories)

use coroutines instead RxJava for api calls triggered by MessageInputViewModel

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2025-01-10 12:32:26 +01:00
Marcel Hibbe
9cb40d4eb6
add referenceId for "normal" sending of chat message
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2025-01-10 12:32:25 +01:00
Marcel Hibbe
5053c0ea90
fix SPDX header, remove comments
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2025-01-10 11:37:08 +01:00
rapterjet2004
490cd32c25
Impl changes, unable to replicate 1.)
Signed-off-by: rapterjet2004 <juliuslinus1@gmail.com>
2025-01-10 11:37:07 +01:00
rapterjet2004
a8f1d37236
oops
Signed-off-by: rapterjet2004 <juliuslinus1@gmail.com>
2025-01-10 11:37:07 +01:00
rapterjet2004
73ed4cbf8f
linter
Signed-off-by: rapterjet2004 <juliuslinus1@gmail.com>
2025-01-10 11:37:07 +01:00
rapterjet2004
63cb98ece7
Deleted old fragment + xml
Added string res
Fixed bug with embedded date picker boundaries, animated size change

Signed-off-by: rapterjet2004 <juliuslinus1@gmail.com>
2025-01-10 11:14:35 +01:00
rapterjet2004
eae4e43ab2
Small fixes - new theming
Signed-off-by: rapterjet2004 <juliuslinus1@gmail.com>
2025-01-10 11:14:35 +01:00
rapterjet2004
d114142d09
Migrating away from java.util.Date to java.time
- Also converted dialog fragment to compose

Signed-off-by: rapterjet2004 <juliuslinus1@gmail.com>
2025-01-10 11:14:34 +01:00
Nextcloud bot
6d1ffbdb14
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-01-10 09:53:29 +00:00
Marcel Hibbe
8218616b99
fix translation for polls_option_delete
$s -> $d

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2025-01-10 10:33:15 +01:00
Nextcloud bot
5887835169
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-01-10 03:01:46 +00:00
Nextcloud bot
d89393c66e
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-01-09 16:44:09 +00:00
Marcel Hibbe
45477170ab
Merge pull request #4584 from nextcloud/correctTranslation
$s -> $d
2025-01-09 16:55:35 +01:00
Nextcloud bot
744280af41
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-01-09 14:33:32 +00:00
tobiasKaminsky
5fd966fc57
$s -> $d
Signed-off-by: tobiasKaminsky <tobias@kaminsky.me>
2025-01-09 15:28:33 +01:00
Nextcloud bot
e5c443c787
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-01-09 14:09:30 +00:00
Marcel Hibbe
8d0c94834a
add animation to "unread mentions" button + change design
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2025-01-08 17:22:04 +01:00
sowjanyakch
d5968100dc
hide button when scrolling to unread mention
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
2025-01-08 17:22:03 +01:00
sowjanyakch
b6320287d5
Changes to ConversationsListActivity
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
2025-01-08 17:22:03 +01:00
sowjanyakch
4d6726d9cd
replace popup button with material button
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
2025-01-08 17:22:03 +01:00
sowjanyakch
d36f3c92c6
show send button when there is text in input message field
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
2025-01-08 16:38:32 +01:00
sowjanyakch
006cfae6f1
sort conversations only if text is present
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
2025-01-08 16:02:28 +01:00
sowjanyakch
298cf3a249
ktlintFormat
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
2025-01-08 16:02:28 +01:00
sowjanyakch
9068a42f10
configured editText to occupy single line
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
2025-01-08 16:02:28 +01:00
sowjanyakch
0035e03cd2
remove unused code
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
2025-01-08 16:02:28 +01:00
sowjanyakch
e2dc525bf1
implement search in open conversations
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
2025-01-08 16:02:27 +01:00
sowjanyakch
38135f845e
use field parameter "searchTerm"
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
2025-01-08 16:02:26 +01:00
Daniel Calviño Sánchez
512b320015
Send state also through signaling messages
The speaking state is still sent only through data channels, as it is
not currently handled by other clients when sent through signaling
messages.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2025-01-08 12:35:17 +01:00
Daniel Calviño Sánchez
73105515bd
Rename variable
This will be used to have separate counts for data channel and signaling
messages.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2025-01-08 12:35:16 +01:00
Daniel Calviño Sánchez
ea2bebe3b0
Add support for sending signaling messages in the MessageSender
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2025-01-08 12:35:16 +01:00
Daniel Calviño Sánchez
8644d05636
Move attributes to local variables
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2025-01-08 12:35:16 +01:00
Daniel Calviño Sánchez
0ec5175c61
Send current state to remote participants when they join
Note that this implicitly send the current state to remote participants
when the local participant joins, as in that case all the remote
participants already in the call join from the point of view of the
local participant

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2025-01-08 12:35:16 +01:00
Daniel Calviño Sánchez
ea4bccdaf7
Add support for sending data channel messages to a single participant
This is not possible when Janus is used, as Janus only allows
broadcasting data channel messages to all the subscribers of the
publisher connection.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2025-01-08 12:35:16 +01:00
Daniel Calviño Sánchez
fe32bc1628
Add helper class to broadcast the local participant state
The LocalStateBroadcaster observes changes in the
LocalCallParticipantModel and notifies other participants in the call as
needed. Although it is created right before joining the call there is a
slim chance of the state changing before the local participant is
actually in the call, but even in that case other participants would not
be notified about the state due to the MessageSender depending on the
list of call participants / peer connections passed to it, which should
not be initialized before the local participant is actually in the call.

There is, however, a race condition that could cause participants to not
be added to the participant list if they join at the same time as the
local participant and a signaling message listing them but not the local
participant as in the call is received once the CallParticipantList was
created, but that is unrelated to the broadcaster and will be fixed
in another commit.

Currently only changes in the audio, speaking and video state are
notified, although in the future it should also notify about the nick,
the raised hand or any other state (but not one-time events, like
reactions). The notifications right now are sent only through data
channels, but at a later point they will be sent also through signaling
messages as needed.

Similarly, although right now it only notifies of changes in the state
it will also take care of notifying other participants about the current
state when they join the call (or the local participant joins).

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2025-01-08 12:35:15 +01:00
Daniel Calviño Sánchez
cb52fb349f
Add data model for local call participants
This is the counterpart of CallParticipantModel for the local
participant. For now it just stores whether audio and video are enabled
or not, and whether the local participant is speaking or not, but it
will be eventually extended with further properties.

It is also expected that the views, like the button with the microphone
state, will update themselves based on the model. Similarly the model
should be moved from the CallActivity to a class similar to
CallParticipant but for the local participant. In any case, all that is
something for the future; the immediate use of the model will be to know
when the local state changes to notify other participants.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2025-01-08 12:35:15 +01:00
Daniel Calviño Sánchez
36a29ed36e
Send data channel messages only to "video" peer connections
Data channel messages are expected to be sent only to peer connections
with "video" type, which provide the audio and video tracks of the
participant (and, in fact, peer connections for screen shares do not
even have data channels enabled in the WebUI).

Note that this could change if at some point several audio/video tracks
are sent in the same peer connection, or if "speaking" messages are
added to screen shares, but that will be addressed if/when that happens.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2025-01-08 12:35:15 +01:00