Commit graph

6279 commits

Author SHA1 Message Date
sowjanyakch
2d5facc905
remove setPassword from NcApi
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
2024-11-18 21:06:49 +01:00
sowjanyakch
4439da9bd1
use lifecycleScope
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
2024-11-18 20:51:07 +01:00
sowjanyakch
240bdd6771
handle errors
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
2024-11-18 20:51:07 +01:00
sowjanyakch
dce609b831
remove unused used from NcApi
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
2024-11-18 20:51:07 +01:00
sowjanyakch
9f3bbf6ebf
refactor code
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
2024-11-18 20:51:07 +01:00
sowjanyakch
99d73e15e0
migration to coroutines
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
2024-11-18 20:51:06 +01:00
sowjanyakch
91a18e27f9
implement API in NcApiCoroutines
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
2024-11-18 20:51:06 +01:00
Marcel Hibbe
b96cd32108
fix NPE currentConversation!!.internalId
followup to PR #4439

Exception java.lang.NullPointerException:
  at com.nextcloud.talk.chat.MessageInputFragment.handleMessageQueue (MessageInputFragment.kt:251)
  at com.nextcloud.talk.chat.MessageInputFragment.access$handleMessageQueue (MessageInputFragment.kt:82)
  at com.nextcloud.talk.chat.MessageInputFragment$initObservers$4$1.invokeSuspend (MessageInputFragment.kt:192)
  at com.nextcloud.talk.chat.MessageInputFragment$initObservers$4$1.invoke (Unknown Source:12)
  at com.nextcloud.talk.chat.MessageInputFragment$initObservers$4$1.invoke (Unknown Source:8)
  at kotlinx.coroutines.flow.FlowKt__TransformKt$onEach$$inlined$unsafeTransform$1$2.emit (Emitters.kt:219)
  at kotlinx.coroutines.flow.FlowKt__ChannelsKt.emitAllImpl$FlowKt__ChannelsKt (Channels.kt:33)
  at kotlinx.coroutines.flow.FlowKt__ChannelsKt.access$emitAllImpl$FlowKt__ChannelsKt (Channels.kt:1)
  at kotlinx.coroutines.flow.FlowKt__ChannelsKt$emitAllImpl$1.invokeSuspend (Unknown Source:14)
  at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith (ContinuationImpl.kt:33)
  at kotlinx.coroutines.DispatchedTask.run (DispatchedTask.kt:104)
  at android.os.Handler.handleCallback (Handler.java:938)
  at android.os.Handler.dispatchMessage (Handler.java:99)
  at android.os.Looper.loopOnce (Looper.java:241)
  at android.os.Looper.loop (Looper.java:342)
  at android.app.ActivityThread.main (ActivityThread.java:8128)
  at java.lang.reflect.Method.invoke
  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:583)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1045)

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2024-11-18 09:53:08 +01:00
Nextcloud bot
e77544b0b6
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-11-18 02:59:52 +00:00
Valdnet
2cbfb0f1e9
Change apostrophe
Signed-off-by: Valdnet <47037905+Valdnet@users.noreply.github.com>
2024-11-17 11:53:54 +01:00
Nextcloud bot
13335250ca
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-11-17 03:05:59 +00:00
Nextcloud bot
ba339adf1f
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-11-16 02:57:45 +00:00
Nextcloud bot
026bb92be5
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-11-15 02:58:46 +00:00
sowjanyakch
b558a71ede
ktlintFormat
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
2024-11-14 17:05:50 +01:00
sowjanyakch
92caa215b0
error handling
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
2024-11-14 17:05:50 +01:00
sowjanyakch
2c6daedb2b
handle disposable properly
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
2024-11-14 17:05:50 +01:00
sowjanyakch
dba30346dc
use const val HTTP_STATUS_CODE_OK
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
2024-11-14 17:05:50 +01:00
sowjanyakch
05ca7f52a5
remove Snackbar
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
2024-11-14 17:05:50 +01:00
sowjanyakch
fbecfaf95d
reset status and hide the dialog
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
2024-11-14 17:05:50 +01:00
sowjanyakch
3f74a440d5
add hint - your status was set automatically
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
2024-11-14 17:05:49 +01:00
sowjanyakch
13208e85f9
remove redundant null check
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
2024-11-14 17:05:49 +01:00
sowjanyakch
c4f4c857d3
check for capability before reverting status
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
2024-11-14 17:05:49 +01:00
sowjanyakch
7a63a645fe
format
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
2024-11-14 17:05:49 +01:00
sowjanyakch
9fbb3886ab
handle reset status button
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
2024-11-14 17:05:46 +01:00
sowjanyakch
ec01a049c8
add elements to predefinedStatusesList correctly
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
2024-11-14 17:04:43 +01:00
sowjanyakch
974da71e52
get backup status only if restore capability is available
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
2024-11-14 17:02:29 +01:00
sowjanyakch
d08b4f51b8
add backup message in the predefined status list
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
2024-11-14 17:02:29 +01:00
sowjanyakch
27aafda59f
test backupStatus endpoint
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
2024-11-14 17:02:29 +01:00
sowjanyakch
5fe5931bc4
add capability for restore
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
2024-11-14 17:02:29 +01:00
sowjanyakch
6a9211e292
show reset button on first item of recycler view
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
2024-11-14 17:02:29 +01:00
sowjanyakch
9f7c899368
add reset button
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
2024-11-14 17:02:28 +01:00
sowjanyakch
2aac51d8bb
modify predefined_status.xml
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
2024-11-14 17:02:28 +01:00
sowjanyakch
8cd8c5ca01
create url for backup status
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
2024-11-14 17:02:28 +01:00
sowjanyakch
658988901c
add backupStatus endpoint
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
2024-11-14 17:02:28 +01:00
Sowjanya Kota
5ff1003154
Merge pull request #4428 from nextcloud/lock_room
Lock room
2024-11-14 16:53:54 +01:00
Marcel Hibbe
f94a0cf95c
Merge pull request #4436 from nextcloud/bugfix/noid/fixCallEmojiListByScrolling
fix to provide all call emojis
2024-11-14 16:02:18 +01:00
Marcel Hibbe
89964c0725
Merge pull request #4448 from nextcloud/bugfix/noid/fixWebsocketConnectionForChat
Bugfix/noid/fix websocket connection for chat
2024-11-14 15:54:53 +01:00
Marcel Hibbe
cd5ee2f619
fix to support different screen densities
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2024-11-14 15:36:59 +01:00
Marcel Hibbe
59ee0b0cb1
fix to provide all call emojis
As the number of provided emojis grew, there was a bug that only one emoji was shown.

Putting all 12 emojis would have been too close, so it's implemented to scroll them horizontally

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2024-11-14 15:36:59 +01:00
Julius Linus
3908d0ce14
Merge pull request #4441 from nextcloud/issue-4405-fix-filter
Align filter behavior with web
2024-11-14 06:55:23 -06:00
Marcel Hibbe
acd964869d
add disposable
however i was not able to see onDestroy being executed.

anyway, disposables won't be necessary when coroutine is used.

also: remove a useless outdated log line

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2024-11-14 13:41:06 +01:00
Marcel Hibbe
8dd1b885f3
fix check if federated is still the same
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2024-11-14 13:41:06 +01:00
Marcel Hibbe
3bd1a533e3
fix ANR error (blockingSubscribe in setupWebsocket)
The request seems to cause problems so blockingSubscribe doesn't seem to be a good choice here. This commit will replace blockingSubscribe by subscribe and modify the related code in order to be executed when the request succeeds.
The root cause why the request seems to cause problems may have to be analyzed further.

I was not able to reproduce the ANR without this PR, however the following error was reported on gplay console very often!:

      at jdk.internal.misc.Unsafe.park (Native method)
      at java.util.concurrent.locks.LockSupport.park (LockSupport.java:341)
      at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block (AbstractQueuedSynchronizer.java:506)
      at java.util.concurrent.ForkJoinPool.unmanagedBlock (ForkJoinPool.java:3466)
      at java.util.concurrent.ForkJoinPool.managedBlock (ForkJoinPool.java:3437)
      at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await (AbstractQueuedSynchronizer.java:1623)
      at java.util.concurrent.LinkedBlockingQueue.take (LinkedBlockingQueue.java:435)
      at io.reactivex.internal.operators.observable.ObservableBlockingSubscribe.subscribe (ObservableBlockingSubscribe.java:56)
      at io.reactivex.Observable.blockingSubscribe (Observable.java:5552)
      at com.nextcloud.talk.chat.ChatActivity.setupWebsocket (ChatActivity.kt:2445)
      at com.nextcloud.talk.chat.ChatActivity.joinRoomWithPassword (ChatActivity.kt:2402)
      at com.nextcloud.talk.chat.ChatActivity.initObservers$lambda$13 (ChatActivity.kt:594)
      at com.nextcloud.talk.chat.ChatActivity.$r8$lambda$QKH5JCFLmCzRMlSJ-EV-m4IW5ig (unavailable)
      at com.nextcloud.talk.chat.ChatActivity$$ExternalSyntheticLambda38.invoke (D8$$SyntheticClass)
      at com.nextcloud.talk.chat.ChatActivity$sam$androidx_lifecycle_Observer$0.onChanged (unavailable:2)
      at androidx.lifecycle.LiveData.considerNotify (LiveData.java:133)
      at androidx.lifecycle.LiveData.dispatchingValue (LiveData.java:151)
      at androidx.lifecycle.LiveData.setValue (LiveData.java:309)
      at androidx.lifecycle.MutableLiveData.setValue (MutableLiveData.java:50)
      at com.nextcloud.talk.chat.viewmodels.ChatViewModel.getCapabilities (ChatViewModel.kt:240)
      at com.nextcloud.talk.chat.ChatActivity$initObservers$1$1.invokeSuspend (ChatActivity.kt:553)
      at com.nextcloud.talk.chat.ChatActivity$initObservers$1$1.invoke (unavailable:8)
      at com.nextcloud.talk.chat.ChatActivity$initObservers$1$1.invoke (unavailable: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$1.invokeSuspend (unavailable:15)
      at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith (ContinuationImpl.kt:33)
      at kotlinx.coroutines.DispatchedTask.run (DispatchedTask.kt:104)
      at android.os.Handler.handleCallback (Handler.java:938)
      at android.os.Handler.dispatchMessage (Handler.java:99)
      at android.os.Looper.loopOnce (Looper.java:210)
      at android.os.Looper.loop (Looper.java:299)
      at android.app.ActivityThread.main (ActivityThread.java:8168)
      at java.lang.reflect.Method.invoke (Native method)
      at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:556)
      at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1037)

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2024-11-14 13:41:06 +01:00
Marcel Hibbe
e51ab67c37
fix check for remote server
As remote server is empty instead null when not available, the check was also true when no remote server was in use.

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2024-11-14 13:41:03 +01:00
Sowjanya Kota
9257d41197
Merge pull request #4439 from nextcloud/bugfix/noid/fixNpeInRestoreMessageQueue
fix NPE in restoreMessageQueue
2024-11-14 09:56:12 +01:00
Nextcloud bot
3f2a67f67b
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-11-14 03:01:05 +00:00
Marcel Hibbe
dcec7bd786
fix crash when getting previousChatMessage
when adapter has no items adapter!!.items[1].item will crash with IndexOutOfBoundsException

This could happen e.g. when chat history is cleared.

error was:

Exception java.lang.IndexOutOfBoundsException: Index 1 out of bounds for length 0
  at jdk.internal.util.Preconditions.outOfBounds (Preconditions.java:64)
  at jdk.internal.util.Preconditions.outOfBoundsCheckIndex (Preconditions.java:70)
  at jdk.internal.util.Preconditions.checkIndex (Preconditions.java:266)
  at java.util.Objects.checkIndex (Objects.java:359)
  at java.util.ArrayList.get (ArrayList.java:434)
  at com.nextcloud.talk.chat.ChatActivity.processMessagesFromTheFuture (ChatActivity.kt:2666)
  at com.nextcloud.talk.chat.ChatActivity.access$processMessagesFromTheFuture (ChatActivity.kt:209)
  at com.nextcloud.talk.chat.ChatActivity$initObservers$12$1.invokeSuspend (ChatActivity.kt:875)
  at com.nextcloud.talk.chat.ChatActivity$initObservers$12$1.invoke (Unknown Source:8)
  at com.nextcloud.talk.chat.ChatActivity$initObservers$12$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$1.invokeSuspend (Unknown Source:15)
  at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith (ContinuationImpl.kt:33)
  at kotlinx.coroutines.DispatchedTask.run (DispatchedTask.kt:104)
  at android.os.Handler.handleCallback (Handler.java:942)
  at android.os.Handler.dispatchMessage (Handler.java:99)
  at android.os.Looper.loopOnce (Looper.java:201)
  at android.os.Looper.loop (Looper.java:288)
  at android.app.ActivityThread.main (ActivityThread.java:7932)
  at java.lang.reflect.Method.invoke
  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:548)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:942)

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2024-11-13 15:20:39 +01:00
rapterjet2004
ab4b3d633c
Fix behavior
Signed-off-by: rapterjet2004 <juliuslinus1@gmail.com>
2024-11-13 07:54:01 -06:00
Marcel Hibbe
b766abea5e
fix crash for unreadMarker
When messages were sorted out in handleSystemMessages it can happen that the chatMessageList is empty. Because setUnreadMessageMarker accessed chatMessageList[0] this crashed.

This can happen e.g. when only a reaction to a chat message was made before opening the chat.

Exception java.lang.IndexOutOfBoundsException: Empty list doesn't contain element at index 0.
  at kotlin.collections.EmptyList.get (Collections.kt:37)
  at kotlin.collections.EmptyList.get (Collections.kt:25)
  at com.nextcloud.talk.chat.ChatActivity.setUnreadMessageMarker (ChatActivity.kt:2691)
  at com.nextcloud.talk.chat.ChatActivity.processMessagesFromTheFuture (ChatActivity.kt:2651)
  at com.nextcloud.talk.chat.ChatActivity.access$processMessagesFromTheFuture (ChatActivity.kt:209)
  at com.nextcloud.talk.chat.ChatActivity$initObservers$12$1.invokeSuspend (ChatActivity.kt:875)
  at com.nextcloud.talk.chat.ChatActivity$initObservers$12$1.invoke (Unknown Source:8)
  at com.nextcloud.talk.chat.ChatActivity$initObservers$12$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$1.invokeSuspend (Unknown Source:15)
  at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith (ContinuationImpl.kt:33)
  at kotlinx.coroutines.DispatchedTask.run (DispatchedTask.kt:104)
  at android.os.Handler.handleCallback (Handler.java:942)
  at android.os.Handler.dispatchMessage (Handler.java:99)
  at android.os.Looper.loopOnce (Looper.java:226)
  at android.os.Looper.loop (Looper.java:313)
  at android.app.ActivityThread.main (ActivityThread.java:8762)
  at java.lang.reflect.Method.invoke
  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:604)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1067)

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2024-11-13 14:42:31 +01:00
Marcel Hibbe
f144b64365
fix NPE in restoreMessageQueue
currentConversation was not yet initialized in ChatActivity.
In the future this may be better handled via StateFlows. For now it's solved via arguments.

Without the fix, this NPE appeared:

Exception java.lang.RuntimeException:
  at android.app.ActivityThread.performResumeActivity (ActivityThread.java:4768)
  at android.app.ActivityThread.handleResumeActivity (ActivityThread.java:4801)
  at android.app.servertransaction.ResumeActivityItem.execute (ResumeActivityItem.java:54)
  at android.app.servertransaction.ActivityTransactionItem.execute (ActivityTransactionItem.java:45)
  at android.app.servertransaction.TransactionExecutor.executeLifecycleState (TransactionExecutor.java:176)
  at android.app.servertransaction.TransactionExecutor.execute (TransactionExecutor.java:97)
  at android.app.ActivityThread$H.handleMessage (ActivityThread.java:2215)
  at android.os.Handler.dispatchMessage (Handler.java:106)
  at android.os.Looper.loopOnce (Looper.java:346)
  at android.os.Looper.loop (Looper.java:475)
  at android.app.ActivityThread.main (ActivityThread.java:7889)
  at java.lang.reflect.Method.invoke
  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:548)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1009)
Caused by java.lang.NullPointerException:
  at com.nextcloud.talk.chat.MessageInputFragment.onResume (MessageInputFragment.kt:146)
  at androidx.fragment.app.Fragment.performResume (Fragment.java:3180)
  at androidx.fragment.app.FragmentStateManager.resume (FragmentStateManager.java:606)
  at androidx.fragment.app.FragmentStateManager.moveToExpectedState (FragmentStateManager.java:285)
  at androidx.fragment.app.FragmentStore.moveToExpectedState (FragmentStore.java:113)
  at androidx.fragment.app.FragmentManager.moveToState (FragmentManager.java:1433)
  at androidx.fragment.app.FragmentManager.dispatchStateChange (FragmentManager.java:2977)
  at androidx.fragment.app.FragmentManager.dispatchResume (FragmentManager.java:2909)
  at androidx.fragment.app.FragmentController.dispatchResume (FragmentController.java:285)
  at androidx.fragment.app.FragmentActivity.onResumeFragments (FragmentActivity.java:334)
  at androidx.fragment.app.FragmentActivity.onPostResume (FragmentActivity.java:323)
  at androidx.appcompat.app.AppCompatActivity.onPostResume (AppCompatActivity.java:245)
  at android.app.Activity.performResume (Activity.java:8215)
  at android.app.ActivityThread.performResumeActivity (ActivityThread.java:4758)

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2024-11-13 14:07:45 +01:00