Commit graph

5124 commits

Author SHA1 Message Date
Nextcloud bot
51ff21cf6e
Fix(l10n): Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-04-29 04:36:09 +00:00
Nextcloud bot
6d8b7e2191
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-04-28 04:36:30 +00:00
Nextcloud bot
e8a37094d8
Fix(l10n): Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-04-28 04:36:12 +00:00
Nextcloud bot
4d9cb24b63
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-04-27 04:42:05 +00:00
Nextcloud bot
031c9c9d45
Fix(l10n): Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-04-27 04:41:46 +00:00
Marcel Hibbe
eab052d2ac
Delete unused methods
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-04-26 09:53:19 +02:00
Marcel Hibbe
1e87fe9b69
Fix wrong parsing of capability values
This fixes bugs that were introduced with https://github.com/nextcloud/talk-android/pull/2963

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-04-26 09:53:19 +02:00
Andy Scherzinger
30e4698c1a
Parse value as String which should work for old values (Strings) and new Values (Boolean)
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2023-04-26 09:53:18 +02:00
Nextcloud bot
f72d6032ff
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-04-26 04:42:55 +00:00
Nextcloud bot
0575be71aa
Fix(l10n): Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-04-26 04:42:34 +00:00
Nextcloud bot
366e57afbe
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-04-25 04:32:23 +00:00
Nextcloud bot
383420f3c5
Fix(l10n): Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-04-25 04:32:04 +00:00
Nextcloud bot
c2e5524600
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-04-24 04:44:58 +00:00
Nextcloud bot
9bfdcf3d1e
Fix(l10n): Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-04-24 04:44:39 +00:00
Nextcloud bot
906911305a
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-04-23 04:36:37 +00:00
Nextcloud bot
4c9c9b35bd
Fix(l10n): Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-04-23 04:36:19 +00:00
Nextcloud bot
176ac229d7
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-04-22 04:41:50 +00:00
Nextcloud bot
0c5143f6dd
Fix(l10n): Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-04-22 04:41:31 +00:00
Marcel Hibbe
e362e8e3d0
Handle new capabilities json structure
Because of "supported-reactions" and "predefined-backgrounds" the capabilities cannot be parsed with
`var config: HashMap<String, HashMap<String, String>>?`

As a result it was not possible to login into the app.

This is now
`var config: HashMap<String, HashMap<String, @RawValue @Contextual Any>>?` while always checking for the type when accessing the values.

"supported-reactions" and "predefined-backgrounds" are not handled yet.
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-04-21 17:29:53 +02:00
Marcel Hibbe
ae9e9924e6
Fix to open conversation list when navigating back after chat was opened by notification
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-04-21 13:30:25 +02:00
Nextcloud bot
00b828dac0
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-04-21 04:37:59 +00:00
Nextcloud bot
1b8b84b19b
Fix(l10n): Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-04-21 04:37:39 +00:00
Nextcloud bot
80f9e6c1d5
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-04-20 04:47:31 +00:00
Nextcloud bot
93e553b62c
Fix(l10n): Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-04-20 04:47:11 +00:00
Andy Scherzinger
12a9f9b159
add support for group mentions
Resolves #2860

Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2023-04-19 12:05:54 +02:00
Nextcloud bot
62e8b1a9ba
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-04-19 04:34:53 +00:00
Nextcloud bot
3f60066d39
Fix(l10n): Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-04-19 04:34:35 +00:00
Nextcloud bot
b8c1c77f70
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-04-18 04:47:56 +00:00
Nextcloud bot
5404faf5eb
Fix(l10n): Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-04-18 04:47:38 +00:00
Nextcloud bot
6849ac0c74
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-04-18 03:16:43 +00:00
Nextcloud bot
88cd50cc14
Fix(l10n): Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-04-18 03:16:23 +00:00
Andy Scherzinger
1227961ad8
Merge pull request #2941 from nextcloud/dependabot/gradle/com.android.tools.build-gradle-8.0.0
Build(deps): Bump com.android.tools.build:gradle from 7.4.2 to 8.0.0
2023-04-17 10:30:27 +02:00
Nextcloud bot
50e67daec1
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-04-16 04:32:55 +00:00
Nextcloud bot
1bf266c787
Fix(l10n): Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-04-16 04:32:37 +00:00
Nextcloud bot
8bb74ebd55
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-04-15 04:37:53 +00:00
Nextcloud bot
c2c9cf7fac
Fix(l10n): Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-04-15 04:37:34 +00:00
Andy Scherzinger
cd38c8dbb6
lint: move from resource IDs to fixed, unique Int values for view types
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2023-04-14 22:07:00 +02:00
Andy Scherzinger
f52fd59125
move array to list
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2023-04-14 20:04:22 +02:00
Nextcloud bot
935cb67bce
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-04-14 11:52:44 +00:00
Nextcloud bot
34a0679feb
Fix(l10n): Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-04-14 11:52:25 +00:00
Nextcloud bot
9f13dc891c
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-04-14 04:29:51 +00:00
Nextcloud bot
fc60ffe0d8
Fix(l10n): 🛠️ Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-04-14 04:29:32 +00:00
Nextcloud bot
09369aed8c
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-04-13 04:39:03 +00:00
Nextcloud bot
62e08bc977
Fix(l10n): 🛠️ Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-04-13 04:38:45 +00:00
Nextcloud bot
fca62b5aaf
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-04-12 04:38:46 +00:00
Nextcloud bot
f3e32b5552
Fix(l10n): 🛠️ Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-04-12 04:38:27 +00:00
Nextcloud bot
5edb855f53
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-04-11 04:37:29 +00:00
Nextcloud bot
d0260c0852
Fix(l10n): 🛠️ Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-04-11 04:37:10 +00:00
Andy Scherzinger
584947c8e3
Improve theming for toolbars
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2023-04-09 21:38:05 +02:00
Andy Scherzinger
8171391154
fix general background color
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2023-04-09 12:16:49 +02:00
Marcel Hibbe
28a235ae45
Add todos
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-04-09 12:16:49 +02:00
Marcel Hibbe
9c9259b730
Add temporary workarounds until conductor is removed
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-04-09 12:16:49 +02:00
Marcel Hibbe
1246223859
Fix to add account (temp solution until conductor is removed)
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-04-09 12:16:49 +02:00
Marcel Hibbe
aa1e93db05
WIP. Replace Controller with Activity for ConversationList
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-04-09 12:16:49 +02:00
Nextcloud bot
b975e8e4bd
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-04-09 04:36:58 +00:00
Nextcloud bot
bb47cec225
Fix(l10n): 🛠️ Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-04-09 04:36:40 +00:00
Andy Scherzinger
0695c811df
Merge pull request #2927 from nextcloud/bugfix/2926/fixScrollToFirstUnreadMessage
Fix to scroll to first unread message
2023-04-08 21:34:29 +02:00
Nextcloud bot
3e496a8e77
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-04-08 04:39:20 +00:00
Nextcloud bot
b1f82fb98c
Fix(l10n): 🛠️ Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-04-08 04:39:02 +00:00
Nextcloud bot
a1a8fb198c
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-04-07 04:39:35 +00:00
Nextcloud bot
afd7b0ac8b
Fix(l10n): 🛠️ Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-04-07 04:39:16 +00:00
Nextcloud bot
36a61a085c
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-04-06 04:44:53 +00:00
Nextcloud bot
7587338e31
Fix(l10n): 🛠️ Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-04-06 04:44:29 +00:00
Marcel Hibbe
c34e656eca
Fix to scroll to first unread message
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-04-05 17:01:26 +02:00
Stefan Niedermann
8272eec07b
fix(i18n): Adjust links to transifex
https://help.nextcloud.com/t/transifex-announcement-web-applications-domain-change/159445

Signed-off-by: Stefan Niedermann <info@niedermann.it>
2023-04-05 16:31:20 +02:00
Marcel Hibbe
48a4fbc3cc
Reimplement breakout rooms for usage of Activity instead of Controller
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-04-05 12:52:42 +02:00
Marcel Hibbe
68b930a0d9
remove ConductorRemapping.kt
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-04-05 12:52:42 +02:00
Marcel Hibbe
f9836da4a8
fix to start voice message playback only when activity is visible
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-04-05 12:52:42 +02:00
Marcel Hibbe
f7529446a4
remove unused item from onOptionsItemSelected
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-04-05 12:52:41 +02:00
Marcel Hibbe
9e66c3192c
fix to open chat via bottom menu
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-04-05 12:52:41 +02:00
Marcel Hibbe
da9edbce97
temporarily allow only portrait for chat until MVVM is used
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-04-05 12:52:41 +02:00
Marcel Hibbe
708beabe9d
setup adapter in onCreate + extract some functions from onResume
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-04-05 12:52:41 +02:00
Marcel Hibbe
0b0387115e
fix to open poll dialog
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-04-05 12:52:40 +02:00
Marcel Hibbe
52266a5632
fix NPE when quoted message is expired or deleted
for now the message is shown empty. should be improved!

D/AndroidRuntime: Shutting down VM
E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.nextcloud.talk2, PID: 29567
    java.lang.NullPointerException
        at com.nextcloud.talk.models.json.chat.ChatMessage.getText(ChatMessage.kt:264)
        at com.nextcloud.talk.adapters.messages.OutcomingTextMessageViewHolder.processParentMessage(OutcomingTextMessageViewHolder.kt:168)
        at com.nextcloud.talk.adapters.messages.OutcomingTextMessageViewHolder.onBind(OutcomingTextMessageViewHolder.kt:100)
        at com.nextcloud.talk.adapters.messages.OutcomingTextMessageViewHolder.onBind(OutcomingTextMessageViewHolder.kt:54)
        at com.stfalcon.chatkit.messages.MessageHolders.bind(MessageHolders.java:596)
        at com.stfalcon.chatkit.messages.MessagesListAdapter.onBindViewHolder(MessagesListAdapter.java:110)
        at com.nextcloud.talk.adapters.messages.TalkMessagesListAdapter.onBindViewHolder(TalkMessagesListAdapter.java:50)
        at com.nextcloud.talk.adapters.messages.TalkMessagesListAdapter.onBindViewHolder(TalkMessagesListAdapter.java:32)
        at androidx.recyclerview.widget.RecyclerView$Adapter.onBindViewHolder(RecyclerView.java:7678)
        at androidx.recyclerview.widget.RecyclerView$Adapter.bindViewHolder(RecyclerView.java:7761)
        at androidx.recyclerview.widget.RecyclerView$Recycler.tryBindViewHolderByDeadline(RecyclerView.java:6582)
        at androidx.recyclerview.widget.RecyclerView$Recycler.tryGetViewHolderForPositionByDeadline(RecyclerView.java:6848)
        at androidx.recyclerview.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:6688)
        at androidx.recyclerview.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:6684)
        at androidx.recyclerview.widget.LinearLayoutManager$LayoutState.next(LinearLayoutManager.java:2362)
        at androidx.recyclerview.widget.LinearLayoutManager.layoutChunk(LinearLayoutManager.java:1662)
        at androidx.recyclerview.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1622)
        at androidx.recyclerview.widget.LinearLayoutManager.scrollBy(LinearLayoutManager.java:1425)
        at androidx.recyclerview.widget.LinearLayoutManager.scrollVerticallyBy(LinearLayoutManager.java:1158)
        at androidx.recyclerview.widget.RecyclerView.scrollStep(RecyclerView.java:2009)
        at androidx.recyclerview.widget.RecyclerView$ViewFlinger.run(RecyclerView.java:5789)
        at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1301)
        at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1309)
        at android.view.Choreographer.doCallbacks(Choreographer.java:923)
        at android.view.Choreographer.doFrame(Choreographer.java:847)
        at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1283)
        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:8741)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:571)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1067)

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-04-05 12:52:40 +02:00
Marcel Hibbe
906c1f7529
fix to show avatar, fix onClick listener
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-04-05 12:52:40 +02:00
Marcel Hibbe
5fc69201fe
fix to open Conversation List for onBackPressed when switched chats
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-04-05 12:52:40 +02:00
Marcel Hibbe
63b2455745
remove KEY_OPEN_CHAT
this was temporarily used until now Chat is an Activity

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-04-05 12:52:40 +02:00
Marcel Hibbe
d42783273d
leave room before joining another room
refactor retrieving of extras

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-04-05 12:52:39 +02:00
Marcel Hibbe
cd2ef40dc8
Replace Controller with Activity for chat
chat opens, but quite some todos open. expect crashes.

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-04-05 12:52:39 +02:00
Nextcloud bot
b95a0dfbb5
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-04-05 04:44:06 +00:00
Nextcloud bot
1155a4e221
Fix(l10n): 🛠️ Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-04-05 04:43:48 +00:00
Nextcloud bot
2e41a2ff2a
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-04-04 11:20:19 +00:00
Nextcloud bot
7f6c133794
Fix(l10n): 🛠️ Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-04-04 11:20:00 +00:00
Nextcloud bot
3b4bd026e4
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-04-04 04:36:56 +00:00
Nextcloud bot
18e20c9e46
Fix(l10n): 🛠️ Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-04-04 04:36:37 +00:00
Nextcloud bot
fc2a02165a
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-04-03 04:35:51 +00:00
Nextcloud bot
bd22c035c1
Fix(l10n): 🛠️ Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-04-03 04:35:32 +00:00
Nextcloud bot
bd1db7ca66
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-04-02 04:34:39 +00:00
Nextcloud bot
552a701feb
Fix(l10n): 🛠️ Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-04-02 04:34:21 +00:00
Andy Scherzinger
c03ebd7b2d
fix center alignment
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2023-04-01 16:35:35 +02:00
Andy Scherzinger
bc13def4a9
Set android:baselineAligned="false" on this element for better performance
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2023-04-01 16:35:34 +02:00
Andy Scherzinger
15d68b678b
deactivate test since it is always failing
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2023-04-01 16:35:34 +02:00
Andy Scherzinger
4905ee6122
split design for landscape editing/viewing a profile
Resolved #2914

Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2023-03-31 21:11:17 +02:00
Marcel Hibbe
e740797b42
Fix to open chat from ContactsActivity.kt
(temporarily via MainActivity and ConductorRemapping until conductor is removed)

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-03-31 12:38:32 +02:00
Marcel Hibbe
5aac5637a7
Fix to add participant to conversation
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-03-31 12:38:32 +02:00
Marcel Hibbe
8361a97ee9
Fix fluent scrolling in participants list
fix #1833

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-03-31 12:38:32 +02:00
Marcel Hibbe
e359db66ec
ReplaceController with Activity for Contacts
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-03-31 12:38:31 +02:00
Marcel Hibbe
85dd7c3996
ReplaceController with Activity for ConversationInfo
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-03-31 12:38:31 +02:00
Nextcloud bot
6ff9fd7d1f
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-03-31 04:48:40 +00:00
Nextcloud bot
8fa61b0188
Fix(l10n): 🛠️ Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-03-31 04:48:21 +00:00
Marcel Hibbe
5e0e4ee54f
Fix to open profile view
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-03-30 10:37:43 +02:00
Marcel Hibbe
fdf76e260b
Remove reauthorize setting
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-03-30 10:34:07 +02:00
Marcel Hibbe
b5febb7e3d
Replace Controller with Activity for settings
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-03-30 10:33:35 +02:00
Marcel Hibbe
bde67eb2bd
Replace Controller with Activity for profile
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-03-30 10:25:12 +02:00
Marcel Hibbe
bc96ffcd20
Fix to forget geocoding result when scrolled and then rotated device
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-03-29 12:39:05 +02:00
Marcel Hibbe
4ab3d78458
Keep position on screen rotation
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-03-29 12:39:05 +02:00
Marcel Hibbe
f323049815
Fix to keep map position when app was in background
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-03-29 12:39:05 +02:00
Marcel Hibbe
95afdf7c81
Remove geocoding activity from history by FLAG_ACTIVITY_CLEAR_TOP
With this, it's not opened again with onBackPressed in location view. But it still opens again when app was interrupted and being shown again.

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-03-29 12:39:05 +02:00
Marcel Hibbe
1676c9f6da
Replace Controllers with Activities for location+geocoding
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-03-29 12:39:05 +02:00
Nextcloud bot
14fc4b4dca
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-03-29 04:46:38 +00:00
Nextcloud bot
c3ef57d990
Fix(l10n): 🛠️ Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-03-29 04:46:19 +00:00
Nextcloud bot
44bf614a73
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-03-28 04:27:25 +00:00
Nextcloud bot
c20517a023
Fix(l10n): 🛠️ Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-03-28 04:27:06 +00:00
Nextcloud bot
3f5a9cb56d
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-03-27 10:40:31 +00:00
Nextcloud bot
0fe6c27959
Fix(l10n): 🛠️ Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-03-27 10:40:13 +00:00
Andy Scherzinger
3d4edb6c9c
Add SDK=33 permission checks for file access
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2023-03-24 15:42:22 +01:00
Andy Scherzinger
737ce20927
Bump target and compile SDK to 33
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2023-03-24 15:42:22 +01:00
Nextcloud bot
2823081a48
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-03-24 04:29:21 +00:00
Nextcloud bot
1fe1d67bd3
Fix(l10n): 🛠️ Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-03-24 04:29:03 +00:00
Andy Scherzinger
ba26e58190
Merge drawable-v24 into drawable folder since minVersion is now 24
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2023-03-23 15:41:40 +01:00
Marcel Hibbe
73d3ecac0e
Set minSdkVersion to 24 + remove checks
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-03-23 15:41:39 +01:00
Marcel Hibbe
69dae28f83
Avoid NPE in deleteAvatar#onError
Exception java.lang.NullPointerException:
  at com.nextcloud.talk.controllers.ProfileController$save$1.onError (ProfileController.kt:457)
  at io.reactivex.internal.operators.observable.ObservableObserveOn$ObserveOnObserver.checkTerminated (ObservableObserveOn.java:281)
  at io.reactivex.internal.operators.observable.ObservableObserveOn$ObserveOnObserver.drainNormal (ObservableObserveOn.java:172)
  at io.reactivex.internal.operators.observable.ObservableObserveOn$ObserveOnObserver.run (ObservableObserveOn.java:255)
  at io.reactivex.android.schedulers.HandlerScheduler$ScheduledRunnable.run (HandlerScheduler.java:124)
  at android.os.Handler.handleCallback (Handler.java:883)
  at android.os.Handler.dispatchMessage (Handler.java:100)
  at android.os.Looper.loop (Looper.java:237)
  at android.app.ActivityThread.main (ActivityThread.java:8167)
  at java.lang.reflect.Method.invoke
  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:496)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1100)

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-03-23 13:16:11 +01:00
Marcel Hibbe
a941be5276
Avoid NPE in setupSwipeToReply
Exception java.lang.NullPointerException:
  at com.nextcloud.talk.controllers.ChatController.setupSwipeToReply (ChatController.kt:419)
  at com.nextcloud.talk.controllers.ChatController.access$setupSwipeToReply (ChatController.kt:221)
  at com.nextcloud.talk.controllers.ChatController$getRoomInfo$1.onNext (ChatController.kt:378)
  at com.nextcloud.talk.controllers.ChatController$getRoomInfo$1.onNext (ChatController.kt:362)
  at io.reactivex.internal.operators.observable.ObservableObserveOn$ObserveOnObserver.drainNormal (ObservableObserveOn.java:201)
  at io.reactivex.internal.operators.observable.ObservableObserveOn$ObserveOnObserver.run (ObservableObserveOn.java:255)
  at io.reactivex.android.schedulers.HandlerScheduler$ScheduledRunnable.run (HandlerScheduler.java:124)
  at android.os.Handler.handleCallback (Handler.java:883)
  at android.os.Handler.dispatchMessage (Handler.java:100)
  at android.os.Looper.loop (Looper.java:237)
  at android.app.ActivityThread.main (ActivityThread.java:7830)
  at java.lang.reflect.Method.invoke
  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:492)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1040)

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-03-23 13:13:56 +01:00
Andy Scherzinger
45deb7fec5
Merge pull request #2882 from nextcloud/bgfix/noid/avoidNpeLoadAvatarImage
Avoid NPE in loadAvatarImage
2023-03-23 12:33:11 +01:00
Marcel Hibbe
8b7465dae3
Avoid NPE in loadAvatarImage
Exception java.lang.NullPointerException:
  at com.nextcloud.talk.extensions.ImageViewExtensionsKt.replaceAvatar
  at com.nextcloud.talk.utils.DisplayUtils.loadAvatarImage (DisplayUtils.java:465)
  at com.nextcloud.talk.controllers.ProfileController$uploadAvatar$1.onNext (ProfileController.kt:645)
  at com.nextcloud.talk.controllers.ProfileController$uploadAvatar$1.onNext (ProfileController.kt:639)
  at io.reactivex.internal.operators.observable.ObservableObserveOn$ObserveOnObserver.drainNormal (ObservableObserveOn.java:201)
  at io.reactivex.internal.operators.observable.ObservableObserveOn$ObserveOnObserver.run (ObservableObserveOn.java:255)
  at io.reactivex.android.schedulers.HandlerScheduler$ScheduledRunnable.run (HandlerScheduler.java:124)
  at android.os.Handler.handleCallback (Handler.java:938)
  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:8751)
  at java.lang.reflect.Method.invoke
  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:571)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1135)

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-03-23 12:10:56 +01:00
Nextcloud bot
2c1405f2c4
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-03-23 04:41:00 +00:00
Nextcloud bot
83b9db9991
Fix(l10n): 🛠️ Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-03-23 04:40:41 +00:00
Nextcloud bot
ef3a9f8fc5
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-03-22 04:48:19 +00:00
Nextcloud bot
1ad84108c1
Fix(l10n): 🛠️ Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-03-22 04:48:01 +00:00
Nextcloud bot
cb98e4fc3f
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-03-21 04:31:37 +00:00
Nextcloud bot
b058de5945
Fix(l10n): 🛠️ Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-03-21 04:31:18 +00:00
Nextcloud bot
3dcd5b3264
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-03-20 04:31:45 +00:00
Nextcloud bot
4972190368
Fix(l10n): 🛠️ Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-03-20 04:31:27 +00:00
Nextcloud bot
d5ee261d9e
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-03-19 04:32:45 +00:00
Nextcloud bot
c74798b5f4
Fix(l10n): 🛠️ Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-03-19 04:32:27 +00:00
Nextcloud bot
0cc4a8eeaa
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-03-18 04:36:43 +00:00
Nextcloud bot
dac38b09df
Fix(l10n): 🛠️ Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-03-18 04:36:24 +00:00
Marcel Hibbe
f9fdb387a5
Hide call recording participant
<dev@mhibbe.de>

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-03-17 15:17:55 +01:00
Marcel Hibbe
cf44b602a1
Send raise hand signaling message
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-03-17 12:00:48 +01:00
Andy Scherzinger
8bd3e3461e Replace ImageButtons with FABs
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2023-03-17 09:42:41 +00:00
Andy Scherzinger
a042e2da9c Fix horizontal (=landscape) call design button layouting/sizing
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2023-03-17 09:42:41 +00:00
Nextcloud bot
f28e41ff3c
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-03-17 04:30:46 +00:00
Nextcloud bot
e59f9ff88c
Fix(l10n): 🛠️ Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-03-17 04:30:26 +00:00
Nextcloud bot
ca60f18fac
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-03-16 18:42:38 +00:00
Nextcloud bot
bbcf83c5a2
Fix(l10n): 🛠️ Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-03-16 18:42:16 +00:00
Marcel Hibbe
df9d7d6b41
Rearrange strings for shared items
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-03-16 16:49:34 +01:00
Marcel Hibbe
f94d7b8858
Make shared items horizontally scrollable
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-03-16 16:33:58 +01:00
Marcel Hibbe
5aed5f1d43
Add call recordings to shared items
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-03-16 16:33:05 +01:00
Marcel Hibbe
5688c10978
Fix to display chips with emojis
Chips with emojis were not shown correctly.

The message with the emoji was not correctly replaced, that's why now the key itself is passed and replaced with the chip instead to replace a text with emoji with a chip.

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-03-16 14:30:46 +01:00
Nextcloud bot
f698bb159b
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-03-16 07:42:18 +00:00
Nextcloud bot
d72e015c85
Fix(l10n): 🛠️ Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-03-16 07:41:58 +00:00
Nextcloud bot
971cab2e05
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-03-16 04:38:04 +00:00
Nextcloud bot
773860c5b0
Fix(l10n): 🛠️ Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-03-16 04:37:45 +00:00
Marcel Hibbe
827e44fd3f Rename some "magic"
Only renaming...

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-03-14 16:28:27 +00:00
Marcel Hibbe
a190fb6cf7 Use own okHttpClient for coil ImageLoader
This change will use the own okHttpClient which also contains the trusted key.

It will avoid the SSLHandshakeException:

E/RealImageLoader: javax.net.ssl.SSLHandshakeException: java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.
        at com.google.android.gms.org.conscrypt.ConscryptFileDescriptorSocket.startHandshake(:com.google.android.gms@224915028@22.49.15 (100400-499306216):25)
        at okhttp3.internal.connection.RealConnection.connectTls(RealConnection.kt:379)
        at okhttp3.internal.connection.RealConnection.establishProtocol(RealConnection.kt:337)

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-03-14 16:28:27 +00:00
Tim Krüger
eabd0b2d2c Split different exception scopes
Before this change the initinalization of the trusted key store was
combined in one try-catch-block. If anything went wrong an new in memory
trusted key store was created. Programming against an exception is an
bad pattern.

So the initialization is now splitted into multiple try-catch-blocks
with it's own scopes and the decision if the trusted key store is newly
created in memory or loaded from a exisitng file is done by an if
condition check.

Signed-off-by: Tim Krüger <t@timkrueger.me>
2023-03-14 16:28:27 +00:00
Nextcloud bot
1bbbe20834
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-03-14 04:34:47 +00:00
Nextcloud bot
bcf0e00a16
Fix(l10n): 🛠️ Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-03-14 04:34:27 +00:00
Nextcloud bot
ffdcc59d8e
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-03-13 04:32:42 +00:00
Nextcloud bot
e56bb58134
Fix(l10n): 🛠️ Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-03-13 04:32:22 +00:00
Nextcloud bot
01c26de537
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-03-12 04:31:14 +00:00
Nextcloud bot
7bc67bd3b6
Fix(l10n): 🛠️ Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-03-12 04:30:54 +00:00
Nextcloud bot
c27cce61eb
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-03-11 04:33:20 +00:00
Nextcloud bot
d615b63907
Fix(l10n): 🛠️ Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-03-11 04:33:00 +00:00
Marcel Hibbe
f05b218743
Extract worker initialization
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-03-10 16:24:15 +01:00
Marcel Hibbe
6a7f54a5bf
Remove debug toast messages
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-03-10 15:12:16 +01:00
Marcel Hibbe
abd1d4b247
Remove to set localParticipantMessageListener in joinRoom
this is already done in onAttach which seems to do the job fine after using workManager queues and fixing to set externalSignalingServer to user.
See commits da1714bb and 29a37086

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-03-10 14:44:20 +01:00
Marcel Hibbe
609e5a2c71
Use WorkManager queue to chain workers.
This is necessary as many of the workers store user data. When running in parallel, there are race conditions and user data that was stored by one worker gets directly overwritten by the next worker. E.g. this happened with the "externalSignalingServer" attribute of user:
SignalingSettingsWorker saved the user with the externalSignalingServer value, but then
CapabilitiesWorker kicked in and saved the user without this value.

Because of this, in WebsocketConnectionsWorker getExternalSignalingServer() of the user was null.
Because of this, webSocketConnectionHelper.getExternalSignalingInstanceForServer(..) was not called.
So the webSocketInstanceMap in WebSocketConnectionHelper was never filled.
This is why WebSocketConnectionHelper.getMagicWebSocketInstanceForUserId(..) in ChatController failed to get a webSocketInstance.

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-03-10 14:44:20 +01:00
Marcel Hibbe
8c991c697f
Fix to save externalSignalingServer to user
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-03-10 14:44:20 +01:00
Marcel Hibbe
9882ddc536
Fix logic in workers when user was not found
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-03-10 14:44:20 +01:00
Marcel Hibbe
39441ae075
Move setupWebsocket() to onAttach() in ChatController
Add toast warning for debug mode

Rename "magic" stuff

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-03-10 14:25:49 +01:00
Nextcloud bot
adb97eb397
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-03-10 04:38:35 +00:00
Nextcloud bot
f1bb10b27f
Fix(l10n): 🛠️ Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-03-10 04:38:14 +00:00
Marcel Hibbe
a6ff8da18b
Fix horizontal (=landscape) call design
Without this fix, the call buttons became huge in landscape mode.

The LinearLayout of the callControls now has a fixed width which comes in handy in landscape mode.

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-03-09 16:16:12 +01:00
Marcel Hibbe
b10558eee8
Avoid shadowed warning for xChatLastCommonRead
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-03-09 14:05:54 +01:00
Marcel Hibbe
6efbbae823
Extract creation of fieldMap for pullChatMessages
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-03-09 14:01:34 +01:00
Marcel Hibbe
82abb9d9bd
Fix to avoid duplicated messages for HTTP_CODE_NOT_MODIFIED
the "historyRead" didn't make any sense to me, and deleting it solved the issue to avoid duplicated messages when the response was HTTP_CODE_NOT_MODIFIED

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-03-09 13:49:05 +01:00
Marcel Hibbe
67957996b0
Fix duplicated messages after history loading
The solution was to avoid recursive call off pullChatMessages if lookIntoFuture is false.
However the recursive call has to be made when fetching messages for the first time:

if (isFirstMessagesProcessing || lookIntoFuture) {
    pullChatMessages(true,...)
}

For this, setting of isFirstMessagesProcessing had to be moved below this code.

Furthermore in the commit:
add logging & refactoring

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-03-09 13:49:04 +01:00
Marcel Hibbe
7f77cf8c8e
Refactor pullChatMessages
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-03-09 13:49:04 +01:00
Marcel Hibbe
6f4a24b28f
Refactor (delete lookingIntoFuture)
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-03-09 13:49:04 +01:00
Marcel Hibbe
7065b18d07
Refactor pullChatMessages request
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-03-09 13:49:04 +01:00
Marcel Hibbe
21606bc9c1
Make setReadMarker parameter boolean
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-03-09 13:49:03 +01:00
Marcel Hibbe
3d6674e35a
Make lookIntoFuture parameter boolean
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-03-09 13:49:02 +01:00
Nextcloud bot
6b6dff9e43
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-03-09 04:38:29 +00:00
Nextcloud bot
4b48016b32
Fix(l10n): 🛠️ Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-03-09 04:38:09 +00:00
Nextcloud bot
d4e22da91b
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-03-08 04:37:01 +00:00
Nextcloud bot
075ce66b25
Fix(l10n): 🛠️ Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-03-08 04:36:40 +00:00
Andy Scherzinger
6ad498818d
Merge pull request #2844 from nextcloud/feature/noid/scrollingInChatEnhancements
Scroll to quoted message also for outgoing messages
2023-03-07 16:19:58 +01:00
Marcel Hibbe
f3a057b0e4
Set currentConversation when joinRoom succeeds
currentConversation should have already been set, but it makes sense to set it with the most current data of this case.

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-03-07 10:31:47 +01:00
Marcel Hibbe
1f8859e1a6
avoid NPE when starting call
Exception java.lang.NullPointerException:
  at com.nextcloud.talk.controllers.ChatController.startACall (ChatController.kt:2792)
  at com.nextcloud.talk.controllers.ChatController.onOptionsItemSelected (ChatController.kt:2699)
  at com.bluelinelabs.conductor.Controller.optionsItemSelected (Controller.java:1399)
  at com.bluelinelabs.conductor.Router.onOptionsItemSelected (Router.java:703)
  at com.bluelinelabs.conductor.internal.LifecycleHandler.onOptionsItemSelected (LifecycleHandler.java:282)
  at android.app.Fragment.performOptionsItemSelected (Fragment.java:2652)
  at android.app.FragmentManagerImpl.dispatchOptionsItemSelected (FragmentManager.java:3189)
  at android.app.FragmentController.dispatchOptionsItemSelected (FragmentController.java:374)
  at android.app.Activity.onMenuItemSelected (Activity.java:4517)
  at androidx.activity.ComponentActivity.onMenuItemSelected (ComponentActivity.java:514)
  at androidx.fragment.app.FragmentActivity.onMenuItemSelected (FragmentActivity.java:352)
  at androidx.appcompat.app.AppCompatActivity.onMenuItemSelected (AppCompatActivity.java:266)
  at androidx.appcompat.view.WindowCallbackWrapper.onMenuItemSelected (WindowCallbackWrapper.java:110)
  at androidx.appcompat.app.ToolbarActionBar$2.onMenuItemClick (ToolbarActionBar.java:66)
  at androidx.appcompat.widget.Toolbar$1.onMenuItemClick (Toolbar.java:221)
  at androidx.appcompat.widget.ActionMenuView$MenuBuilderCallback.onMenuItemSelected (ActionMenuView.java:781)
  at androidx.appcompat.view.menu.MenuBuilder.dispatchMenuItemSelected (MenuBuilder.java:836)
  at androidx.appcompat.view.menu.MenuItemImpl.invoke (MenuItemImpl.java:159)
  at androidx.appcompat.view.menu.MenuBuilder.performItemAction (MenuBuilder.java:987)
  at androidx.appcompat.view.menu.MenuBuilder.performItemAction (MenuBuilder.java:977)
  at androidx.appcompat.widget.ActionMenuView.invokeItem (ActionMenuView.java:625)
  at androidx.appcompat.view.menu.ActionMenuItemView.onClick (ActionMenuItemView.java:156)
  at android.view.View.performClick (View.java:7881)
  at android.widget.TextView.performClick (TextView.java:16203)
  at android.view.View.performClickInternal (View.java:7858)
  at android.view.View.-$$Nest$mperformClickInternal
  at android.view.View$PerformClick.run (View.java:30863)
  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:8772)
  at java.lang.reflect.Method.invoke
  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:571)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1067)

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-03-07 10:31:46 +01:00
Marcel Hibbe
949a3fb6c4
Scroll to quoted message also for outgoing messages
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-03-07 09:17:50 +01:00
Nextcloud bot
afbdf33fcb
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-03-07 04:30:58 +00:00
Nextcloud bot
5f5d820470
Fix(l10n): 🛠️ Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-03-07 04:30:38 +00:00
Marcel Hibbe
9367eb1a49
Avoid NPE for voice message recording
Exception java.lang.NullPointerException:
  at com.nextcloud.talk.controllers.ChatController$onViewBound$11.onTouch (ChatController.kt:867)
  at android.view.View.dispatchTouchEvent (View.java:15540)
  at android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:3316)
  at android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:2990)
  at android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:3316)
  at android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:2990)
  at android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:3316)
  at android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:2990)
  at android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:3316)
  at android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:2990)
  at android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:3316)
  at android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:2990)
  at android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:3316)
  at android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:2990)
  at android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:3316)
  at android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:2990)
  at android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:3316)
  at android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:2990)
  at android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:3316)
  at android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:2990)
  at android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:3316)
  at android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:2990)
  at android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:3316)
  at android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:2990)
  at com.android.internal.policy.DecorView.superDispatchTouchEvent (DecorView.java:1112)
  at com.android.internal.policy.PhoneWindow.superDispatchTouchEvent (PhoneWindow.java:1971)
  at android.app.Activity.dispatchTouchEvent (Activity.java:4388)
  at androidx.appcompat.view.WindowCallbackWrapper.dispatchTouchEvent (WindowCallbackWrapper.java:70)
  at com.android.internal.policy.DecorView.dispatchTouchEvent (DecorView.java:1070)
  at android.view.View.dispatchPointerEvent (View.java:15803)
  at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent (ViewRootImpl.java:8153)
  at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess (ViewRootImpl.java:7877)
  at android.view.ViewRootImpl$InputStage.deliver (ViewRootImpl.java:7213)
  at android.view.ViewRootImpl$InputStage.onDeliverToNext (ViewRootImpl.java:7270)
  at android.view.ViewRootImpl$InputStage.forward (ViewRootImpl.java:7236)
  at android.view.ViewRootImpl$AsyncInputStage.forward (ViewRootImpl.java:7434)
  at android.view.ViewRootImpl$InputStage.apply (ViewRootImpl.java:7244)
  at android.view.ViewRootImpl$AsyncInputStage.apply (ViewRootImpl.java:7491)
  at android.view.ViewRootImpl$InputStage.deliver (ViewRootImpl.java:7217)
  at android.view.ViewRootImpl$InputStage.onDeliverToNext (ViewRootImpl.java:7270)
  at android.view.ViewRootImpl$InputStage.forward (ViewRootImpl.java:7236)
  at android.view.ViewRootImpl$InputStage.apply (ViewRootImpl.java:7244)
  at android.view.ViewRootImpl$InputStage.deliver (ViewRootImpl.java:7217)
  at android.view.ViewRootImpl.deliverInputEvent (ViewRootImpl.java:10788)
  at android.view.ViewRootImpl.doProcessInputEvents (ViewRootImpl.java:10676)
  at android.view.ViewRootImpl.enqueueInputEvent (ViewRootImpl.java:10632)
  at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent (ViewRootImpl.java:10926)
  at android.view.InputEventReceiver.dispatchInputEvent (InputEventReceiver.java:285)
  at android.os.MessageQueue.nativePollOnce
  at android.os.MessageQueue.next (MessageQueue.java:335)
  at android.os.Looper.loopOnce (Looper.java:186)
  at android.os.Looper.loop (Looper.java:313)
  at android.app.ActivityThread.main (ActivityThread.java:8757)
  at java.lang.reflect.Method.invoke
  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:571)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1067)

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-03-06 15:10:50 +01:00
Marcel Hibbe
e1fbdf89ea Show keyboard at click on empty space
fix #2774

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-03-06 12:53:40 +00:00
Marcel Hibbe
16a0ef8dcf
Avoid NPE (replace scrollToPositionWithOffset(..) with scrollToPosition(0))
Exception java.lang.NullPointerException:
  at com.nextcloud.talk.controllers.ChatController.processMessagesFromTheFuture (ChatController.kt:2500)
  at com.nextcloud.talk.controllers.ChatController.processMessages (ChatController.kt:2443)
  at com.nextcloud.talk.controllers.ChatController.processMessagesResponse (ChatController.kt:2404)
  at com.nextcloud.talk.controllers.ChatController.access$processMessagesResponse (ChatController.kt:221)
  at com.nextcloud.talk.controllers.ChatController$pullChatMessages$2.onNext (ChatController.kt:2315)
  at com.nextcloud.talk.controllers.ChatController$pullChatMessages$2.onNext (ChatController.kt:2300)
  at io.reactivex.internal.operators.observable.ObservableObserveOn$ObserveOnObserver.drainNormal (ObservableObserveOn.java:201)
  at io.reactivex.internal.operators.observable.ObservableObserveOn$ObserveOnObserver.run (ObservableObserveOn.java:255)
  at io.reactivex.android.schedulers.HandlerScheduler$ScheduledRunnable.run (HandlerScheduler.java:124)
  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:7872)
  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:936)

 I don't know why scrollToPositionWithOffset was used. scrollToPosition(0) works just fine.

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-03-06 12:09:17 +01:00
Nextcloud bot
94399a1833
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-03-06 04:34:21 +00:00
Nextcloud bot
9214b5b9a2
Fix(l10n): 🛠️ Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-03-06 04:34:01 +00:00
Nextcloud bot
a2c95b34fa
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-03-05 04:33:30 +00:00
Nextcloud bot
8b4a320e5a
Fix(l10n): 🛠️ Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-03-05 04:33:10 +00:00
Nextcloud bot
c9f75ba5ad
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-03-04 04:32:23 +00:00
Nextcloud bot
8abc1cc8ab
Fix(l10n): 🛠️ Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-03-04 04:32:03 +00:00
Marcel Hibbe
13ca7746c1
Fix theming of set status dialog buttons
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-03-03 19:19:04 +01:00
Andy Scherzinger
195cb3c0b4
fix string so build is possible again
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2023-03-03 18:46:13 +01:00
Marcel Hibbe
2de0029c0e
Add toast for debug mode if failed to get NC notification
+ remove unused code

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-03-03 17:22:39 +01:00
Marcel Hibbe
e9f10864b9
Update app/src/main/res/values/strings.xml
Co-authored-by: Joas Schilling <213943+nickvergessen@users.noreply.github.com>
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-03-03 15:59:13 +01:00
Marcel Hibbe
5f2e2c5fe6
Restrict to join other rooms while being in a call
When clicking on a conversation in conversation overview, restrict opening immediately.
If joinRoomWithPassword in ChatController is reached in any other way (for example by creating a new conversation while being in a call), then it's restricted to join the room.

All this is done to avoid NPE:

D/ChatController: pullChatMessages - pullChatMessages[lookIntoFuture > 0] - got response
W/System.err: java.lang.NullPointerException
W/System.err:     at com.nextcloud.talk.controllers.ChatController.modifyMessageCount(ChatController.kt:2536)
W/System.err:     at com.nextcloud.talk.controllers.ChatController.addMessagesToAdapter(ChatController.kt:2515)
W/System.err:     at com.nextcloud.talk.controllers.ChatController.processMessagesFromTheFuture(ChatController.kt:2489)
W/System.err:     at com.nextcloud.talk.controllers.ChatController.processMessages(ChatController.kt:2437)
W/System.err:     at com.nextcloud.talk.controllers.ChatController.processMessagesResponse(ChatController.kt:2398)
W/System.err:     at com.nextcloud.talk.controllers.ChatController.access$processMessagesResponse(ChatController.kt:221)
W/System.err:     at com.nextcloud.talk.controllers.ChatController$pullChatMessages$2.onNext(ChatController.kt:2309)
W/System.err:     at com.nextcloud.talk.controllers.ChatController$pullChatMessages$2.onNext(ChatController.kt:2294)
W/System.err:     at io.reactivex.internal.operators.observable.ObservableObserveOn$ObserveOnObserver.drainNormal(ObservableObserveOn.java:201)
W/System.err:     at io.reactivex.internal.operators.observable.ObservableObserveOn$ObserveOnObserver.run(ObservableObserveOn.java:255)
W/System.err:     at io.reactivex.android.schedulers.HandlerScheduler$ScheduledRunnable.run(HandlerScheduler.java:124)
W/System.err:     at android.os.Handler.handleCallback(Handler.java:883)
W/System.err:     at android.os.Handler.dispatchMessage(Handler.java:100)
W/System.err:     at android.os.Looper.loop(Looper.java:224)
W/System.err:     at android.app.ActivityThread.main(ActivityThread.java:7590)
W/System.err:     at java.lang.reflect.Method.invoke(Native Method)
W/System.err:     at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:539)
W/System.err:     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:950)

Known issues:
- doesn't respect handling for other instances. E.g. when receiving notification from other instance and open it.

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>

Fix to always allow opening same room when being in call

Fix to set also other properties for ApplicationWideCurrentRoomHolder when joining room in chat.

Otherwise it could have been possible to not be allowed to open this chat again from conversation list while being in call.

In a next step, ApplicationWideCurrentRoomHolder should be refactored to hold the conversation itself. Maybe in a map of users to handle different instances.

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-03-03 14:57:57 +01:00
Marcel Hibbe
21b353c77a Request RoomInfo every 30 sec instead 5sec when not waiting in lobby
Before it was requested every 5 sec even when not waiting in a lobby.
This is a first improvement to reduce requests. In a next step, more signaling messages should be handled to maybe even avoid recursive calls at all.

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-03-03 08:40:15 +00:00
Nextcloud bot
7b3fe475cf
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-03-03 03:50:10 +00:00
Nextcloud bot
df71fcaff0
Fix(l10n): 🛠️ Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-03-03 03:49:50 +00:00
Marcel Hibbe
b6dccddcb9
Hide inactive breakout rooms from conversation list
+ create ConversationObjectTypeConverter for objectType

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-03-02 16:32:09 +01:00
Marcel Hibbe
d75e235ba2
Use session id returned from join room & more
1)
Use session id returned from join room
= introduce sessionIdAfterRoomJoined to make clear this is the session to use instead of currentConversation?.sessionId

See https://nextcloud-talk.readthedocs.io/en/latest/conversation/#get-user-s-conversations :
"'0' if not connected, otherwise an up to 512 character long string that is the identifier of the user's session making the request. Should only be used to pre-check if the user joined already with this session, but this might be outdated by the time of usage, so better check via Get list of participants in a conversation"

2)
Also, trigger getRoomInfo() or handleFromNotification() in onAttach() instead of in onViewBound.
onViewBound is not called when returning back from an other view (e.g. conversation infos) so after this, new messages were not handled.

Furthermore, getRoomInfo()/joinRoomWithPassword() in onViewBound and onAttach were sometimes both called, because the handling of validSessionId was buggy. This resulted in duplicated messages.

3)
Use ApplicationWideCurrentRoomHolder to set sessionId from call and check in ChatController if there is already a session for the room. If yes, use this instead to joinRoom again.
This is necessary for PictureInPicture mode. Otherwise, call would be left whenever ChatController joins room again.

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-03-02 11:31:37 +01:00
Marcel Hibbe
5d129ba03e
Replace "inConversation" with check of valid session id
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-03-02 11:31:37 +01:00
Andy Scherzinger
968593ccf7
Merge pull request #2810 from nextcloud/bugfix/noid/showUploadFailedNotificationForNormalUpload
Show upload failed notification when failed normal upload
2023-03-02 10:43:41 +01:00
Nextcloud bot
50d509cc0a
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-03-02 03:47:42 +00:00
Nextcloud bot
7d83a116e6
Fix(l10n): 🛠️ Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-03-02 03:47:22 +00:00
Marcel Hibbe
4883f62964
Show upload failed notification when failed normal upload
avoid:

2023-03-01 16:47:40.443 23569-23628 UploadAndS...ilesWorker com.nextcloud.talk2                  E  Something went wrong when trying to upload file
                                                                                                    java.lang.NullPointerException
                                                                                                    	at com.nextcloud.talk.jobs.UploadAndShareFilesWorker.showFailedToUploadNotification(UploadAndShareFilesWorker.kt:258)
                                                                                                    	at com.nextcloud.talk.jobs.UploadAndShareFilesWorker.doWork(UploadAndShareFilesWorker.kt:163)
                                                                                                    	at androidx.work.Worker$1.run(Worker.java:86)
                                                                                                    	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
                                                                                                    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
                                                                                                    	at java.lang.Thread.run(Thread.java:919)
2023-03-01 16:47:40.444 23569-23607 WM-WorkerWrapper        com.nextcloud.talk2                  E  Work [ id=27e4e319-a966-4515-ac07-d6ad7ee68268, tags={ com.nextcloud.talk.jobs.UploadAndShareFilesWorker } ] failed because it threw an exception/error
                                                                                                    java.util.concurrent.ExecutionException: java.lang.NullPointerException
                                                                                                    	at androidx.work.impl.utils.futures.AbstractFuture.getDoneValue(AbstractFuture.java:516)
                                                                                                    	at androidx.work.impl.utils.futures.AbstractFuture.get(AbstractFuture.java:475)
                                                                                                    	at androidx.work.impl.WorkerWrapper$2.run(WorkerWrapper.java:311)
                                                                                                    	at androidx.work.impl.utils.SerialExecutor$Task.run(SerialExecutor.java:91)
                                                                                                    	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
                                                                                                    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
                                                                                                    	at java.lang.Thread.run(Thread.java:919)
                                                                                                    Caused by: java.lang.NullPointerException
                                                                                                    	at com.nextcloud.talk.jobs.UploadAndShareFilesWorker.showFailedToUploadNotification(UploadAndShareFilesWorker.kt:258)
                                                                                                    	at com.nextcloud.talk.jobs.UploadAndShareFilesWorker.doWork(UploadAndShareFilesWorker.kt:167)
                                                                                                    	at androidx.work.Worker$1.run(Worker.java:86)
                                                                                                    	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167) 
                                                                                                    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) 
                                                                                                    	at java.lang.Thread.run(Thread.java:919) 
2023-03-01 16:47:40.446 23569-23607 WM-WorkerWrapper        com.nextcloud.talk2                  I  Worker result FAILURE for Work [ id=27e4e319-a966-

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-03-01 17:30:57 +01:00
Nextcloud bot
667696659d
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-03-01 04:06:37 +00:00
Nextcloud bot
cee569da88
Fix(l10n): 🛠️ Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-03-01 04:06:13 +00:00
Nextcloud bot
2f3af516bd
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-02-28 03:50:22 +00:00
Nextcloud bot
5707aaf68f
Fix(l10n): 🛠️ Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-02-28 03:50:01 +00:00
Andy Scherzinger
19e3b6d0b1
improve code formatting
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2023-02-27 17:21:43 +01:00
rapterjet2004
6cdfa88992
Implemented issue 1090 Signed-off-by: Julius Linus <juliuslinus1@gmail.com> 2023-02-27 17:06:38 +01:00
Marcel Hibbe
1c660cc02f
Hide scroll to bottom button when automatically scrolled to new message
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-02-27 13:28:58 +01:00
Marcel Hibbe
bb38fd9d2d
avoid NPE for unread bubble in chat
2023-02-27 12:29:00.275   995-995   AndroidRuntime.........
    java.lang.NullPointerException
    	at com.nextcloud.talk.controllers.ChatController.modifyMessageCount(ChatController.kt:2536)
    	at com.nextcloud.talk.controllers.ChatController.addMessagesToAdapter(ChatController.kt:2515)
    	at com.nextcloud.talk.controllers.ChatController.processMessagesFromTheFuture(ChatController.kt:2489)
    	at com.nextcloud.talk.controllers.ChatController.processMessages(ChatController.kt:2437)
    	at com.nextcloud.talk.controllers.ChatController.processMessagesResponse(ChatController.kt:2398)
    	at com.nextcloud.talk.controllers.ChatController.access$processMessagesResponse(ChatController.kt:221)
    	at com.nextcloud.talk.controllers.ChatController$pullChatMessages$2.onNext(ChatController.kt:2309)
    	at com.nextcloud.talk.controllers.ChatController$pullChatMessages$2.onNext(ChatController.kt:2294)
    	at io.reactivex.internal.operators.observable.ObservableObserveOn$ObserveOnObserver.drainNormal(ObservableObserveOn.java:201)
    	at io.reactivex.internal.operators.observable.ObservableObserveOn$ObserveOnObserver.run(ObservableObserveOn.java:255)
    	at io.reactivex.android.schedulers.HandlerScheduler$ScheduledRunnable.run(HandlerScheduler.java:124)
    	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:8741)
    	at java.lang.reflect.Method.invoke(Native Method)
    	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:571)
    	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1067)

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-02-27 13:19:15 +01:00
Nextcloud bot
573f6fce38
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-02-27 03:48:50 +00:00
Nextcloud bot
1292cf18ce
Fix(l10n): 🛠️ Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-02-27 03:48:29 +00:00
Nextcloud bot
ed24a2e206
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-02-26 03:46:33 +00:00
Nextcloud bot
67ab08cfe8
Fix(l10n): 🛠️ Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-02-26 03:46:12 +00:00
Nextcloud bot
7a6301f9ae
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-02-25 04:01:40 +00:00
Nextcloud bot
67e37cdf96
Fix(l10n): 🛠️ Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-02-25 04:01:19 +00:00
Nextcloud bot
1dd7ffd5ad
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-02-24 17:06:39 +00:00
Nextcloud bot
90bbcd82ec
Fix(l10n): 🛠️ Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-02-24 17:06:18 +00:00
Marcel Hibbe
a339d64d37
Increase vibration duration for short vibration
20ms was almost not recognizable for samsung phones

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-02-24 17:44:31 +01:00
Marcel Hibbe
dc2314f86b
Show toast when recording was shared to chat.
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-02-24 17:29:06 +01:00
Marcel Hibbe
ed96d53049
WIP. open chat when share recording to chat (fails atm)
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-02-24 17:29:05 +01:00
Marcel Hibbe
36de155c44
Add dismiss/share actions for "recording available" notification
Remove first approach with the dialog inside the ChatController.

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-02-24 17:29:05 +01:00
Marcel Hibbe
0f3662cd82
restrict deletion of "Recording available" notification
...for preparation to replace Dialog that was openend in ChatController. It will be replaced by Notification Actions.

The dialog was not opened when already being in a chat, because remapChatController only moved the currentChatController to top so to won't be initialized again. That's why the dialog didn't pop up for this case.

As a solution, the actions should be available directly inside the notification.

For this, it must be avoided that the "recording available" notification is closed whenever the chat is opened.

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-02-24 17:29:05 +01:00
Marcel Hibbe
328a747d79
move createMainActivityIntent near getIntentToOpenConversation
TODO: unify?

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-02-24 17:29:05 +01:00
Marcel Hibbe
8b1a809464
Handle new subject for call recording notification
see https://github.com/nextcloud/spreed/pull/8837

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-02-24 17:29:02 +01:00
Marcel Hibbe
004f719490
Use model to pass data to dialog
use util to extract common rx requests

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-02-24 17:28:48 +01:00
Marcel Hibbe
ebcab60df5
WIP. Refactoring NotificationWorker
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-02-24 17:28:19 +01:00
Marcel Hibbe
d191a93ce9
WIP. add recording available notification
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-02-24 17:28:19 +01:00
Marcel Hibbe
a648f0b457
Rearrange strings to avoid "renaming" of keys
this should avoid problems with transifex..hopefully

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-02-24 17:19:19 +01:00
Marcel Hibbe
eb8d11ac40
Add test to directly set states
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-02-24 17:19:19 +01:00
Marcel Hibbe
5284cb35dd
Fix tests
Otherwise following error was thrown:

Expected com.nextcloud.talk.viewmodels.CallRecordingViewModel$RecordingStartingState@5f78de22 but encountered com.nextcloud.talk.viewmodels.CallRecordingViewModel$RecordingStartingState@516ebdf8
com.vividsolutions.jts.util.AssertionFailedException: Expected com.nextcloud.talk.viewmodels.CallRecordingViewModel$RecordingStartingState@5f78de22 but encountered com.nextcloud.talk.viewmodels.CallRecordingViewModel$RecordingStartingState@516ebdf8
	at app//com.vividsolutions.jts.util.Assert.equals(Assert.java:100)
	at app//com.vividsolutions.jts.util.Assert.equals(Assert.java:85)
	at app//com.nextcloud.talk.viewmodels.CallRecordingViewModelTest.testCallRecordingViewModel_clickStartRecord(CallRecordingViewModelTest.kt:25)
	at java.base@11.0.15/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-02-24 17:19:19 +01:00
Marcel Hibbe
499e022114
Handle more call recording states
more call recording states are:
3 = Starting video recording
4 = Starting audio recording
5 = Recording failed

these actions were added:
- Show grey recording icon to moderators if recording is starting
- Show toast to moderators if recording failed
- Add system message for recording failed

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-02-24 17:19:19 +01:00
Andy Scherzinger
237e831e76
Update material icons to latest revisions
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2023-02-24 12:33:07 +01:00
Nextcloud bot
a993c22071
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-02-24 03:57:23 +00:00
Nextcloud bot
f241ac4292
Fix(l10n): 🛠️ Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-02-24 03:57:04 +00:00
Nextcloud bot
5937de8220
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-02-23 03:49:13 +00:00
Nextcloud bot
8194d53648
Fix(l10n): 🛠️ Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-02-23 03:48:54 +00:00
Nextcloud bot
45ff284b85
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-02-22 03:48:24 +00:00
Nextcloud bot
951ced936d
Fix(l10n): 🛠️ Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-02-22 03:48:06 +00:00
Marcel Hibbe
9073f53aef
Merge pull request #2787 from nextcloud/addTranslationsExplanation
Add explanation for translations
2023-02-21 11:06:53 +01:00
Marcel Hibbe
36cc0feb71
Add explanation for translations
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-02-21 10:48:28 +01:00
Nextcloud bot
93b5f4fde2
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-02-21 08:27:30 +00:00
Nextcloud bot
306624ccd9
Fix(l10n): 🛠️ Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-02-21 03:47:07 +00:00
rakekniven
4d9e9b9c56
l10n: Fixed grammar
Reported at Transifex.

Signed-off-by: rakekniven <2069590+rakekniven@users.noreply.github.com>


Signed-off-by: rakekniven <2069590+rakekniven@users.noreply.github.com>
2023-02-20 13:39:11 +01:00
rakekniven
14cfe0cac9
l10n: Fix grammar
Reported at Transifex.

Signed-off-by: rakekniven <2069590+rakekniven@users.noreply.github.com>


Signed-off-by: rakekniven <2069590+rakekniven@users.noreply.github.com>
2023-02-20 13:39:10 +01:00
Marcel Hibbe
78e3c80124
fix license header
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-02-20 13:14:05 +01:00
Marcel Hibbe
c55f9fdf79
Add/fix copyright headers
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-02-20 13:14:05 +01:00
Marcel Hibbe
a0997e699f
Remove unused resources
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-02-20 13:14:04 +01:00
Marcel Hibbe
38d1a37784
Add system messages for breakout rooms
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-02-20 13:14:04 +01:00
Marcel Hibbe
3abb9db9dc
remove useless bundle entries etc.
- add strings for breakout room toasts
- remove useless boilerplate code
- dismiss call actions dialog when chlicked raise/lower hand

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-02-20 13:14:04 +01:00
Marcel Hibbe
2637884a83
add comments where to implement the raise hand signaling message
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-02-20 13:14:04 +01:00
Marcel Hibbe
0ea13c1ec7
remove unused parameter
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-02-20 13:14:04 +01:00
Marcel Hibbe
f2b312a118
add floating lower hand button
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-02-20 13:14:04 +01:00
Marcel Hibbe
96dce63e20
Request assistance for breakout room
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-02-20 13:14:03 +01:00
Marcel Hibbe
2835bb6c02
check if conversation is breakout room
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-02-20 13:14:03 +01:00
Marcel Hibbe
99a4ca5e33
comment out first try to raise hand
this is not working yet. It's for now commented out in order to continue with "request help" feature for breakout rooms.

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-02-20 13:14:03 +01:00
Marcel Hibbe
49571ca229
WIP. Send "raise hand"
Building/sending of the signaling message is incomplete for now.

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-02-20 13:14:03 +01:00
Marcel Hibbe
dff37d0a66
Fix content Description
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-02-20 13:14:03 +01:00
Daniel Calviño Sánchez
ebfd15e001
WIP. Breakout to room from call and chat.
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-02-20 13:14:02 +01:00
Daniel Calviño Sánchez
c67ce4253f
Use listeners for local participant signaling messages
This commit only sets up the listeners, but the actual handling of the
"switchto" event still needs to be added.

Note that in CallActivity the SignalingMessageReceiver is available both
when using the internal and the external signaling server. On the other
hand, in ChatController it is available only for the external signaling
server. Right now that is not a problem, as the message notified by the
LocalParticipantMessageListener is currently sent only by the external
signaling server, but this may need to be adjusted in the future.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2023-02-20 13:14:02 +01:00
Daniel Calviño Sánchez
3efcbe2a39
Simplify assignment
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2023-02-20 13:14:02 +01:00
Daniel Calviño Sánchez
b07aaee140
Replace non null check with early return if null
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2023-02-20 13:14:02 +01:00
Daniel Calviño Sánchez
747a4646d3
Add listener for local participant signaling messages
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2023-02-20 13:14:01 +01:00
Daniel Calviño Sánchez
6a799387c8
Extract method to process "update" events
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2023-02-20 13:14:01 +01:00
Nextcloud bot
7f8909567c
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-02-20 03:46:45 +00:00
Nextcloud bot
0d568af1fc
Fix(l10n): 🛠️ Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-02-20 03:46:27 +00:00
Nextcloud bot
4372b6a76e
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-02-19 03:46:00 +00:00
Nextcloud bot
5aee9fe03d
Fix(l10n): 🛠️ Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-02-19 03:45:41 +00:00
Nextcloud bot
6502a863e2
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-02-17 03:46:53 +00:00
Nextcloud bot
34e280020e
Fix(l10n): 🛠️ Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-02-17 03:46:34 +00:00
Marcel Hibbe
2a09320353 Remove error logging for voice message that was not correct
media player can already exist here when playback was paused, that's okay.

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-02-16 11:38:59 +00:00
Marcel Hibbe
4932541de7 avoid NPE for voice message playback
Exception java.lang.NullPointerException:
  at com.nextcloud.talk.controllers.ChatController.startPlayback (ChatController.kt:985)
  at com.nextcloud.talk.controllers.ChatController.access$startPlayback (ChatController.kt:219)
  at com.nextcloud.talk.controllers.ChatController$downloadFileToCache$1.invoke (ChatController.kt:1130)
  at com.nextcloud.talk.controllers.ChatController$downloadFileToCache$1.invoke (ChatController.kt:1128)
  at com.nextcloud.talk.controllers.ChatController.downloadFileToCache$lambda$19 (ChatController.kt:1128)
  at com.nextcloud.talk.controllers.ChatController.$r8$lambda$oLS0bGL_zLma74VfkfStO_mReb4
  at com.nextcloud.talk.controllers.ChatController$$ExternalSyntheticLambda10.onChanged
  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 androidx.lifecycle.LiveData$1.run (LiveData.java:93)
  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:8775)
  at java.lang.reflect.Method.invoke
  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:571)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1067)

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-02-16 11:38:59 +00:00
Andy Scherzinger
825354881e
Reformat code
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2023-02-16 11:41:32 +01:00
Andy Scherzinger
41d671ff47
Fix code formatting
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2023-02-16 09:57:19 +01:00
Nextcloud bot
532febf678
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-02-16 03:45:54 +00:00
Nextcloud bot
f7ac397170
Fix(l10n): 🛠️ Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-02-16 03:45:36 +00:00
Nextcloud bot
3bc99aa968
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-02-15 03:45:32 +00:00
Nextcloud bot
6f2020cacc
Fix(l10n): 🛠️ Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-02-15 03:45:13 +00:00
Marcel Hibbe
152c0b7ece
add support for FORMER_ONE_TO_ONE conversations
resolve #8517

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-02-14 11:30:07 +01:00
Nextcloud bot
4a3b37e908
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-02-14 03:45:13 +00:00
Nextcloud bot
d873a9cecb
Fix(l10n): 🛠️ Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-02-14 03:44:54 +00:00
Nextcloud bot
d9087ba813
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-02-13 03:47:54 +00:00
Nextcloud bot
070e150b53
Fix(l10n): 🛠️ Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-02-13 03:47:36 +00:00
Nextcloud bot
1a2e1a6402
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-02-12 03:44:14 +00:00
Nextcloud bot
41765deb9c
Fix(l10n): 🛠️ Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-02-12 03:43:55 +00:00
Nextcloud bot
70bbfeda2c
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-02-11 03:43:23 +00:00
Nextcloud bot
29b7e6a169
Fix(l10n): 🛠️ Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-02-11 03:43:05 +00:00
Marcel Hibbe
28fcd585c7
Fix to show back button when message opened by notification
Before this fix, it was not possible to go to conversation list when a message was opened by notification

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-02-10 17:18:57 +01:00
Marcel Hibbe
fcb4ee0430
Switch to active user in CallNotificationActivity
There are no known bugs that were caused by not setting the active user here, but this should be done.

See fb7ea25b for reference

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-02-10 16:16:27 +01:00
Marcel Hibbe
fb7ea25b9d
Fix to switch active user when opening talk from notification
When two or more users were setup, the active user was not updated when opening the app from notification. As a result, it was not possible to send files, mention people...

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-02-10 16:13:46 +01:00
Marcel Hibbe
4bca10a5fa
fix to not replace folder with some thumbnail from files
fix #2757

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-02-10 13:01:50 +01:00
Marcel Hibbe
29a9b0e381
use class variable fileIcon instead binding.fileIcon
this shouldn't make a difference. class variable was unused before..

Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-02-10 13:01:50 +01:00
Marcel Hibbe
5d83ff8c98
Fix to show thumbnails in FileBrowser
without this fix following Exception occurred:

I/RealImageLoader: 🚨 Failed - https://sermo.nextcloud.com/index.php/core/preview.png?file=%2F2022-09-12_163513.jpg&x=90&y=90&a=1&mode=cover&forceIcon=1 - coil.network.HttpException: HTTP 401:
E/RealImageLoader: coil.network.HttpException: HTTP 401:
        at coil.fetch.HttpUriFetcher.executeNetworkRequest(HttpUriFetcher.kt:227)
        at coil.fetch.HttpUriFetcher.access$executeNetworkRequest(HttpUriFetcher.kt:30)
        at coil.fetch.HttpUriFetcher$executeNetworkRequest$1.invokeSuspend(Unknown Source:15)
        at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
        at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
        at kotlinx.coroutines.internal.LimitedDispatcher.run(LimitedDispatcher.kt:42)
        at kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:95)
        at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:570)
        at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:750)
        at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:677)
        at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:664)

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-02-10 13:01:49 +01:00
Andy Scherzinger
163883181a
hide scroll-to-bottom upon click
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-02-10 10:56:39 +01:00
Nextcloud bot
5b4d0d16af
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-02-10 03:50:15 +00:00
Nextcloud bot
fcd73b4034
Fix(l10n): 🛠️ Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-02-10 03:49:56 +00:00
Marcel Hibbe
1bad35488c
avoid NPE for PeerConnectionWrapper#sendChannelData
E/AndroidRuntime: FATAL EXCEPTION: RxCachedThreadScheduler-6
    Process: com.nextcloud.talk2, PID: 25086
    java.lang.NullPointerException: Attempt to invoke virtual method 'boolean org.webrtc.DataChannel.send(org.webrtc.DataChannel$Buffer)' on a null object reference
        at com.nextcloud.talk.webrtc.PeerConnectionWrapper.sendChannelData(PeerConnectionWrapper.java:275)
        at com.nextcloud.talk.activities.CallActivity$17.onNext(CallActivity.java:2311)
        at com.nextcloud.talk.activities.CallActivity$17.onNext(CallActivity.java:2303)
        at io.reactivex.internal.operators.observable.ObservableObserveOn$ObserveOnObserver.drainNormal(ObservableObserveOn.java:201)
        at io.reactivex.internal.operators.observable.ObservableObserveOn$ObserveOnObserver.run(ObservableObserveOn.java:255)
        at io.reactivex.internal.schedulers.ScheduledRunnable.run(ScheduledRunnable.java:66)
        at io.reactivex.internal.schedulers.ScheduledRunnable.call(ScheduledRunnable.java:57)
        at java.util.concurrent.FutureTask.run(FutureTask.java:264)

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-02-09 14:00:16 +01:00
Marcel Hibbe
332b856cfe
avoid IOException for ChatController#initMediaPlayer
Exception java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:558)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:936)
Caused by java.lang.reflect.InvocationTargetException:
  at java.lang.reflect.Method.invoke
  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:548)
Caused by java.io.IOException: Prepare failed.: status=0x1
  at android.media.MediaPlayer._prepare
  at android.media.MediaPlayer.prepare (MediaPlayer.java:1309)
  at com.nextcloud.talk.controllers.ChatController.initMediaPlayer (ChatController.kt:1023)
  at com.nextcloud.talk.controllers.ChatController.startPlayback (ChatController.kt:981)
  at com.nextcloud.talk.controllers.ChatController.access$startPlayback (ChatController.kt:219)
  at com.nextcloud.talk.controllers.ChatController$downloadFileToCache$1.invoke (ChatController.kt:1111)
  at com.nextcloud.talk.controllers.ChatController$downloadFileToCache$1.invoke (ChatController.kt:1109)
  at com.nextcloud.talk.controllers.ChatController.downloadFileToCache$lambda$18 (ChatController.kt:1109)
  at com.nextcloud.talk.controllers.ChatController.$r8$lambda$6crsUAwqqfwhlukFd40yEwEwluI
  at com.nextcloud.talk.controllers.ChatController$$ExternalSyntheticLambda9.onChanged
  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 androidx.lifecycle.LiveData$1.run (LiveData.java:93)
  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:7872)

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-02-09 14:00:15 +01:00
Marcel Hibbe
be5a60dc77
avoid IllegalStateException for ChatController#stopMediaPlayer
didn't see this crash here, but it might have happened similar to b29fccac where it happened.

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-02-09 14:00:15 +01:00
Marcel Hibbe
bad8e2a705
avoid IllegalStateException for CallActivity#stopCallingSound
This might happen sometimes. For now it's a try-catch instead trying to control the state of the mediaPlayer which could be quite difficult.

this will avoid the following exception:

    java.lang.IllegalStateException
    	at android.media.MediaPlayer.isPlaying(Native Method)
    	at com.nextcloud.talk.activities.CallActivity.stopCallingSound(CallActivity.java:2640)
    	at com.nextcloud.talk.activities.CallActivity.lambda$setCallState$31$com-nextcloud-talk-activities-CallActivity(CallActivity.java:2583)
    	at com.nextcloud.talk.activities.CallActivity$$ExternalSyntheticLambda7.run(Unknown Source:2)
    	at android.os.Handler.handleCallback(Handler.java:883)
    	at android.os.Handler.dispatchMessage(Handler.java:100)
    	at android.os.Looper.loop(Looper.java:237)
    	at android.app.ActivityThread.main(ActivityThread.java:8167)
    	at java.lang.reflect.Method.invoke(Native Method)
    	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:496)
    	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1100)

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-02-09 14:00:15 +01:00
Marcel Hibbe
a8225bfd27
avoid NPE in ChatController#determinePreviousMessageIds
W/System.err: java.lang.NullPointerException
W/System.err:     at com.nextcloud.talk.controllers.ChatController.determinePreviousMessageIds(ChatController.kt:2498)
W/System.err:     at com.nextcloud.talk.controllers.ChatController.processMessagesNotFromTheFuture(ChatController.kt:2463)
W/System.err:     at com.nextcloud.talk.controllers.ChatController.processMessages(ChatController.kt:2355)
W/System.err:     at com.nextcloud.talk.controllers.ChatController.processMessagesResponse(ChatController.kt:2314)
W/System.err:     at com.nextcloud.talk.controllers.ChatController.access$processMessagesResponse(ChatController.kt:219)
W/System.err:     at com.nextcloud.talk.controllers.ChatController$pullChatMessages$3.onNext(ChatController.kt:2260)
W/System.err:     at com.nextcloud.talk.controllers.ChatController$pullChatMessages$3.onNext(ChatController.kt:2248)
W/System.err:     at io.reactivex.internal.operators.observable.ObservableObserveOn$ObserveOnObserver.drainNormal(ObservableObserveOn.java:201)
W/System.err:     at io.reactivex.internal.operators.observable.ObservableObserveOn$ObserveOnObserver.run(ObservableObserveOn.java:255)
W/System.err:     at io.reactivex.android.schedulers.HandlerScheduler$ScheduledRunnable.run(HandlerScheduler.java:124)
W/System.err:     at android.os.Handler.handleCallback(Handler.java:883)
W/System.err:     at android.os.Handler.dispatchMessage(Handler.java:100)
W/System.err:     at android.os.Looper.loop(Looper.java:224)
W/System.err:     at android.app.ActivityThread.main(ActivityThread.java:7590)
W/System.err:     at java.lang.reflect.Method.invoke(Native Method)
W/System.err:     at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:539)
W/System.err:     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:950)

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-02-09 14:00:15 +01:00
Marcel Hibbe
0ce5e81577
avoid IllegalArgumentException in ConversationInfoController#leaveConversation
instead popToRoot, which should be the ConversationsListController for most cases.

Exception java.lang.IllegalArgumentException: fromIndex(0) > toIndex(-1)
  at java.util.ArrayList.subListRangeCheck (ArrayList.java:1018)
  at java.util.ArrayList.subList (ArrayList.java:1008)
  at com.nextcloud.talk.controllers.ConversationInfoController.popTwoLastControllers (ConversationInfoController.kt:628)
  at com.nextcloud.talk.controllers.ConversationInfoController.leaveConversation (ConversationInfoController.kt:552)
  at com.nextcloud.talk.controllers.ConversationInfoController.onAttach$lambda$1 (ConversationInfoController.kt:181)
  at com.nextcloud.talk.controllers.ConversationInfoController.$r8$lambda$VRoZoNH5wtuepilLynILWSZOZYA
  at com.nextcloud.talk.controllers.ConversationInfoController$$ExternalSyntheticLambda8.onClick
  at com.yarolegovich.mp.util.CompositeClickListener.onClick (CompositeClickListener.java:22)
  at android.view.View.performClick (View.java:7455)
  at android.view.View.performClickInternal (View.java:7428)
  at android.view.View.access$3600 (View.java:813)
  at android.view.View$PerformClick.run (View.java:28495)
  at android.os.Handler.handleCallback (Handler.java:938)
  at android.os.Handler.dispatchMessage (Handler.java:99)
  at android.os.Looper.loop (Looper.java:223)
  at android.app.ActivityThread.main (ActivityThread.java:7700)
  at java.lang.reflect.Method.invoke
  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:612)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:997)

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-02-09 14:00:15 +01:00
Marcel Hibbe
c261e526fc
try to avoid IllegalStateException in LockedController
this commit tries to avoid the IllegalStateException in stacktrace below.

I'm not sure how this happened. It came from LockedController#unlock (--> binding?.unlockContainer?.setOnClickListener) which should only be visible when somehow it's "failed" to show the keyguard lockscreen. And somehow for this case the router backstack must have been empty.

Instead to dismiss the current controller, popToRoot() should avoid trying to pop the last remaining controller.

Exception java.lang.IllegalStateException: Trying to pop the current controller when there are none on the backstack.
  at com.bluelinelabs.conductor.Router.popCurrentController (Router.java:118)
  at com.nextcloud.talk.controllers.LockedController.checkIfWeAreSecure (LockedController.kt:147)
  at com.nextcloud.talk.controllers.LockedController.unlock (LockedController.kt:90)
  at com.nextcloud.talk.controllers.LockedController.onViewBound$lambda$0 (LockedController.kt:64)
  at com.nextcloud.talk.controllers.LockedController.$r8$lambda$sNoJ_x5yMnHnIHeqt2umoDILkpk
  at com.nextcloud.talk.controllers.LockedController$$ExternalSyntheticLambda0.onClick
  at android.view.View.performClick (View.java:7745)
  at android.view.View.performClickInternal (View.java:7722)
  at android.view.View.access$3700 (View.java:854)
  at android.view.View$PerformClick.run (View.java:29111)
  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:8319)
  at java.lang.reflect.Method.invoke
  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:556)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1038)

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-02-09 14:00:15 +01:00
Marcel Hibbe
25a53f4b2c
avoid NPE for voice recording slider
Exception java.lang.NullPointerException:
  at com.nextcloud.talk.controllers.ChatController$onViewBound$11.onTouch (ChatController.kt:858)
  at android.view.View.dispatchTouchEvent (View.java:15072)
  at android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:3923)
  at android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:3597)
  at android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:3923)
  at android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:3597)
  at android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:3923)
  at android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:3597)
  at android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:3923)
  at android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:3597)
  at android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:3923)
  at android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:3597)
  at android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:3923)
  at android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:3597)
  at android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:3923)
  at android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:3597)
  at android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:3923)
  at android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:3597)
  at android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:3923)
  at android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:3597)
  at android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:3923)
  at android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:3597)
  at android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:3923)
  at android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:3597)
  at com.android.internal.policy.DecorView.superDispatchTouchEvent (DecorView.java:1016)
  at com.android.internal.policy.PhoneWindow.superDispatchTouchEvent (PhoneWindow.java:1962)
  at android.app.Activity.dispatchTouchEvent (Activity.java:4265)
  at androidx.appcompat.view.WindowCallbackWrapper.dispatchTouchEvent (WindowCallbackWrapper.java:70)
  at com.android.internal.policy.DecorView.dispatchTouchEvent (DecorView.java:974)
  at android.view.View.dispatchPointerEvent (View.java:15335)
  at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent (ViewRootImpl.java:7820)
  at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess (ViewRootImpl.java:7593)
  at android.view.ViewRootImpl$InputStage.deliver (ViewRootImpl.java:6927)
  at android.view.ViewRootImpl$InputStage.onDeliverToNext (ViewRootImpl.java:6984)
  at android.view.ViewRootImpl$InputStage.forward (ViewRootImpl.java:6950)
  at android.view.ViewRootImpl$AsyncInputStage.forward (ViewRootImpl.java:7148)
  at android.view.ViewRootImpl$InputStage.apply (ViewRootImpl.java:6958)
  at android.view.ViewRootImpl$AsyncInputStage.apply (ViewRootImpl.java:7205)
  at android.view.ViewRootImpl$InputStage.deliver (ViewRootImpl.java:6931)
  at android.view.ViewRootImpl$InputStage.onDeliverToNext (ViewRootImpl.java:6984)
  at android.view.ViewRootImpl$InputStage.forward (ViewRootImpl.java:6950)
  at android.view.ViewRootImpl$InputStage.apply (ViewRootImpl.java:6958)
  at android.view.ViewRootImpl$InputStage.deliver (ViewRootImpl.java:6931)
  at android.view.ViewRootImpl.deliverInputEvent (ViewRootImpl.java:10422)
  at android.view.ViewRootImpl.doProcessInputEvents (ViewRootImpl.java:10270)
  at android.view.ViewRootImpl.enqueueInputEvent (ViewRootImpl.java:10226)
  at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent (ViewRootImpl.java:10554)
  at android.view.InputEventReceiver.dispatchInputEvent (InputEventReceiver.java:259)
  at android.os.MessageQueue.nativePollOnce
  at android.os.MessageQueue.next (MessageQueue.java:335)
  at android.os.Looper.loopOnce (Looper.java:186)
  at android.os.Looper.loop (Looper.java:313)
  at android.app.ActivityThread.main (ActivityThread.java:8751)
  at java.lang.reflect.Method.invoke
  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:571)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1135)

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-02-09 14:00:14 +01:00
Marcel Hibbe
dcc323f0a8
avoid NPE in CallActivity#onDestroy
Exception java.lang.RuntimeException:
  at android.app.ActivityThread.performDestroyActivity (ActivityThread.java:6032)
  at android.app.ActivityThread.handleDestroyActivity (ActivityThread.java:6077)
  at android.app.servertransaction.DestroyActivityItem.execute (DestroyActivityItem.java:47)
  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:2443)
  at android.os.Handler.dispatchMessage (Handler.java:106)
  at android.os.Looper.loopOnce (Looper.java:226)
  at android.os.Looper.loop (Looper.java:313)
  at android.app.ActivityThread.main (ActivityThread.java:8751)
  at java.lang.reflect.Method.invoke
  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:571)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1135)
Caused by java.lang.NullPointerException:
  at com.nextcloud.talk.activities.CallActivity.onDestroy (CallActivity.java:1244)
  at android.app.Activity.performDestroy (Activity.java:8571)
  at android.app.Instrumentation.callActivityOnDestroy (Instrumentation.java:1364)
  at android.app.ActivityThread.performDestroyActivity (ActivityThread.java:6019)

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-02-09 14:00:14 +01:00
Nextcloud bot
5ab9ffbb71
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-02-09 03:53:21 +00:00
Nextcloud bot
2454efc47b
Fix(l10n): 🛠️ Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-02-09 03:53:03 +00:00
Andy Scherzinger
45f6e3b474
switch scrolling style to jump straight to "0"
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2023-02-08 12:30:21 +01:00
Andy Scherzinger
5dfbb83375
ensure buttons won't overlap
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2023-02-08 10:59:45 +01:00
Andy Scherzinger
ddc5c06d71
optimize elevation button
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2023-02-08 09:39:41 +01:00
Andy Scherzinger
d34ba85461
Replace imageButton with MaterialButton and apply primary tonal dynamic coloring
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2023-02-08 09:00:13 +01:00
Andy Scherzinger
5cda8fc50d
Add ability to mark a room as unread which marked the last message of the room as unread on server-side
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2023-02-07 22:39:27 +01:00
Andy Scherzinger
f173cacf0b
Activate mark-as-unread on message level for everyone
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2023-02-07 11:47:44 +01:00
Nextcloud bot
b0402e0ef6
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-02-07 03:44:00 +00:00
Nextcloud bot
179711e207
Fix(l10n): 🛠️ Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-02-07 03:43:42 +00:00
Andy Scherzinger
85ad4d499e
optimize for rtl/ltr and improve a11y
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2023-02-06 17:56:05 +01:00
rapterjet2004
df3a27a8aa
Implemented scroll suggestions from marcel
Signed-off-by: Julius Linus <juliuslinus1@gmail.com>
2023-02-06 17:56:05 +01:00
rapterjet2004
7ad16c22eb
forgot to add the copyright text that nobody reads in the icon file
Signed-off-by: Julius Linus <juliuslinus1@gmail.com>
2023-02-06 17:55:59 +01:00
rapterjet2004
7da9c475e3
Added A scroll down button + new icon + new styles for that button
Signed-off-by: Julius Linus <juliuslinus1@gmail.com>
2023-02-06 17:55:51 +01:00
Nextcloud bot
47ec695c29
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-02-06 03:39:33 +00:00
Nextcloud bot
d1fa1e75bd
Fix(l10n): 🛠️ Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-02-06 03:39:15 +00:00
Nextcloud bot
a517622252
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-02-05 03:40:31 +00:00
Nextcloud bot
c76f5e879d
Fix(l10n): 🛠️ Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-02-05 03:40:12 +00:00
Nextcloud bot
b8a1de2d09
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-02-04 03:44:13 +00:00
Nextcloud bot
c360de3b91
Fix(l10n): 🛠️ Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-02-04 03:43:55 +00:00
Nextcloud bot
bf5e63cb71
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-02-03 03:45:21 +00:00
Nextcloud bot
51952e0916
Fix(l10n): 🛠️ Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-02-03 03:45:03 +00:00
Nextcloud bot
5bde11cbaa
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-02-02 03:45:24 +00:00
Nextcloud bot
958fd20d8b
Fix(l10n): 🛠️ Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-02-02 03:45:05 +00:00
Marcel Hibbe
91f0634c74
Fix CI warnings
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-02-01 16:29:50 +01:00
Marcel Hibbe
6109496ab9
Show toast whenever someone raised the hand
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-02-01 16:05:04 +01:00
Marcel Hibbe
7e3161e7f8
Add raise hand icon to participant in call screen
introduce linear layout for name/audio-off/raise-hand to avoid gaps

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-02-01 14:00:09 +01:00
Andy Scherzinger
48f531459c
Add raise(d)-hand icon
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2023-02-01 12:57:42 +01:00
Daniel Calviño Sánchez
4bd3cc826c
Keep track of raised hands by remote participants
Note the slight difference in naming between the signaling message
("raiseHand", the action) and the stored data ("RaisedHand", the record
of the action).

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2023-02-01 12:57:41 +01:00
Daniel Calviño Sánchez
de44370710
Add listener for "raiseHand" signaling message
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2023-02-01 12:57:40 +01:00
Nextcloud bot
fd8f3a21c2
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-02-01 03:48:19 +00:00
Nextcloud bot
d778424036
Fix(l10n): 🛠️ Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-02-01 03:48:01 +00:00
Marcel Hibbe
22db09d721
move initFeaturesVisibility to onStart
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-01-31 15:55:13 +01:00
Marcel Hibbe
eca05a434a
fix strings
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-01-31 15:55:13 +01:00
Marcel Hibbe
4957e1f5da
add system messages for audio_recording_*
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-01-31 15:55:12 +01:00
Marcel Hibbe
401bb6e2cf
Fix to check value for "recording"
with this fix it's also not necessary to check for HPB in the app. The "recording" value from capabilities is set accordingly on server side.

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-01-31 15:55:12 +01:00
Marcel Hibbe
fba04620e1
Fake to set recording state when start recording
Setting the recording state would be triggered by signaling message when using the app

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-01-31 15:55:12 +01:00
Marcel Hibbe
724f41a3be
Add Schedulers.trampoline() to SchedulerHandlers
so the response from FakeCallRecordingRepository is received in CallRecordingViewModelTest

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-01-31 15:55:12 +01:00
Marcel Hibbe
5cc2a6d531
Don't show toast when dismiss the recording stop dialog
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-01-31 15:55:12 +01:00
Marcel Hibbe
869dc86757
add tests for CallRecordingViewModel
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-01-31 15:55:11 +01:00
Álvaro Brey
5f8e52b312
Add abstract viewmodel test for main thread execution
Signed-off-by: Álvaro Brey <alvaro.brey@nextcloud.com>
2023-01-31 15:55:11 +01:00
Álvaro Brey
4687341755
CallRecordingViewModelTest: enable testing LiveData and Rx without Looper
Signed-off-by: Álvaro Brey <alvaro.brey@nextcloud.com>
2023-01-31 15:55:11 +01:00
Marcel Hibbe
4fee81c460
WIP. add test for CallRecordingViewModel
fails for now...

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-01-31 15:55:11 +01:00
Marcel Hibbe
97298c8169
Avoid to set RecordingStartedState twice
RecordingStartedState is set when the signaling message is received. There is no need to set this by CallStartRecordingObserver. Otherwise the toast "The call is being recorded" would have been shown twice when starting the recording.

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-01-31 15:55:10 +01:00
Marcel Hibbe
39882e6325
Use constant for normal closure
regarding the name and code, see https://www.rfc-editor.org/rfc/rfc6455#section-7.4

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-01-31 15:55:10 +01:00
Marcel Hibbe
bcf9f25596
Vibrate and show info when call recording starts
...or when entering a call where recording is in progress.

+ extract vibration handling to util

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-01-31 15:55:10 +01:00
Marcel Hibbe
9f5c85cd2e
Fix spotbugs + codacy warnings
will be reverted for raise hands feature when multiple conditions are checks..

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-01-31 15:55:10 +01:00
Marcel Hibbe
707901479b
Add "This call is being recorded" hint
...when participant has no permissions to stop the recording but clicks on the recording icon.

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-01-31 15:55:10 +01:00
Marcel Hibbe
a029530eda
Remove animation for call recording icon
because it's not done on web and iOS.

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-01-31 15:55:09 +01:00
Marcel Hibbe
bef19a31fb
remove unused code
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-01-31 15:55:09 +01:00
Marcel Hibbe
7c3faa658d
fix to keep sound output icons white
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-01-31 15:55:09 +01:00
Marcel Hibbe
a37edc4421
MagicWebSocketInstance.java -> WebSocketInstance.kt
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-01-31 15:55:09 +01:00
Marcel Hibbe
690a174f64
resolve lint warnings
unused resource

Redundant label on activity

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-01-31 15:55:09 +01:00
Marcel Hibbe
a8a9d6f25e
show recording controls depending on moderator state
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-01-31 15:55:08 +01:00
Marcel Hibbe
1aafc9989d
get recording status by signaling
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-01-31 15:55:08 +01:00
Marcel Hibbe
4834afaf7e
read recording state when enter call.
prepare to set recording state by signaling message (waiting for PRs from Daniel)

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-01-31 15:55:08 +01:00
Marcel Hibbe
1d002b6a4d
use real endpoints instead faked ones
- fix api
- add error state for recording model

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-01-31 15:55:08 +01:00
Marcel Hibbe
cdf70282e4
fix call recording design
fix call recording design after merge of fresco->coil migration

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-01-31 15:55:08 +01:00
Marcel Hibbe
0a3b4492ef
fix to show more call options without in full saturation
delete unnecessary setTint for audioOutputButton

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-01-31 15:55:07 +01:00
Marcel Hibbe
e1cca6de00
fix to show stop recording confirm dialog
fix to show stop recording confirm dialog if it was dismissed without a click action beforehand

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-01-31 15:55:07 +01:00
Marcel Hibbe
7b48b8fc1f
set more call actions visibility depending on available features
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-01-31 15:55:07 +01:00
Marcel Hibbe
c77013bb75
set recording icons depending on state
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-01-31 15:55:07 +01:00
Marcel Hibbe
fcef4b9c9b
add call recording animation
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-01-31 15:55:06 +01:00
Marcel Hibbe
bafe9198eb
add ViewModel to start/stop recording
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-01-31 15:55:06 +01:00
Marcel Hibbe
bb53982dd1
use CallRecordingRepository
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-01-31 15:55:06 +01:00
Marcel Hibbe
6365554692
add isCallRecordingAvailable
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-01-31 15:55:06 +01:00
Marcel Hibbe
17f8144dc7
add system messages for call recording
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-01-31 15:55:06 +01:00
Marcel Hibbe
c663035080
add recording related buttons to call screen
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-01-31 15:55:05 +01:00
Nextcloud bot
f742e7e6f1
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-01-31 03:52:34 +00:00
Nextcloud bot
69504dc112
Fix(l10n): 🛠️ Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-01-31 03:52:15 +00:00
Nextcloud bot
5bc0fe4105
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-01-30 03:48:53 +00:00
Nextcloud bot
20a408411a
Fix(l10n): 🛠️ Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-01-30 03:48:34 +00:00
Nextcloud bot
aded623d46
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-01-29 03:43:25 +00:00
Nextcloud bot
864db21c75
Fix(l10n): 🛠️ Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-01-29 03:43:05 +00:00
Nextcloud bot
4301f50850
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-01-28 03:46:00 +00:00
Nextcloud bot
7cefe47b01
Fix(l10n): 🛠️ Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-01-28 03:45:39 +00:00
Nextcloud bot
54fa76da4b
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-01-27 06:50:33 +00:00
Nextcloud bot
10d0c89073
Fix(l10n): 🛠️ Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-01-27 03:52:42 +00:00
Nextcloud bot
343d8a37f8
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-01-26 04:01:45 +00:00
Nextcloud bot
bd964825b6
Fix(l10n): 🛠️ Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-01-26 04:01:26 +00:00
Marcel Hibbe
86290d8f80
improve voice message quality
first it was tried with sampling rate 44100 but this showed an error on safari when try to playback.

by direct comparison to 44100, 22050 has lower quality but it's totally okay compared to the quality before when no sampling rate was set. I'm not sure why it failed on safari, because the iOS app also uses 44100.

see https://github.com/nextcloud/talk-android/pull/2714

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-01-25 11:42:56 +01:00
Nextcloud bot
e6757f397e
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-01-25 03:59:24 +00:00
Nextcloud bot
3d307f861e
Fix(l10n): 🛠️ Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-01-25 03:59:05 +00:00
Nextcloud bot
eca47b8bc7
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-01-24 03:41:19 +00:00
Nextcloud bot
5f78eb5fc0
Fix(l10n): 🛠️ Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-01-24 03:41:00 +00:00
Nextcloud bot
7d893cdbb9
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-01-23 03:44:13 +00:00
Nextcloud bot
72ecd9b8bd
Fix(l10n): 🛠️ Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-01-23 03:43:54 +00:00
Nextcloud bot
db5e26d7d5
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-01-22 03:39:57 +00:00
Nextcloud bot
6ab03e469a
Fix(l10n): 🛠️ Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-01-22 03:39:39 +00:00
Nextcloud bot
c57265ccfa
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-01-21 04:03:49 +00:00
Nextcloud bot
0717133653
Fix(l10n): 🛠️ Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-01-21 04:03:30 +00:00
Marcel Hibbe
11d089485e
avoid NPE when answering call
this could happen very rarely when clicking very fast to accept the call before the conversation was set.

Exception java.lang.NullPointerException:
  at com.nextcloud.talk.activities.CallNotificationActivity.proceedToCall (CallNotificationActivity.kt:156)
  at com.nextcloud.talk.activities.CallNotificationActivity.initClickListeners$lambda$0 (CallNotificationActivity.kt:126)
  at com.nextcloud.talk.activities.CallNotificationActivity.$r8$lambda$0cnB_UmYcTD4PyxIBSZCZs1m_6s
  at com.nextcloud.talk.activities.CallNotificationActivity$$ExternalSyntheticLambda0.onClick
  at android.view.View.performClick (View.java:6612)
  at android.view.View.performClickInternal (View.java:6581)
  at android.view.View.access$3100 (View.java:785)
  at android.view.View$PerformClick.run (View.java:25904)
  at android.os.Handler.handleCallback (Handler.java:873)
  at android.os.Handler.dispatchMessage (Handler.java:99)
  at android.os.Looper.loop (Looper.java:280)
  at android.app.ActivityThread.main (ActivityThread.java:6706)
  at java.lang.reflect.Method.invoke
  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:493)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:858)

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-01-20 09:31:44 +01:00
Marcel Hibbe
aec1f63da2 avoid NPE on hangup
Exception java.lang.NullPointerException:
  at com.nextcloud.talk.activities.CallActivity.hangupNetworkCalls (CallActivity.java:1749)
  at com.nextcloud.talk.activities.CallActivity.hangup (CallActivity.java:1741)
  at com.nextcloud.talk.activities.CallActivity.lambda$initClickListeners$8$com-nextcloud-talk-activities-CallActivity (CallActivity.java:465)
  at com.nextcloud.talk.activities.CallActivity$$ExternalSyntheticLambda16.onClick
  at android.view.View.performClick (View.java:7792)
  at android.view.View.performClickInternal (View.java:7769)
  at android.view.View.access$3800 (View.java:910)
  at android.view.View$PerformClick.run (View.java:30218)
  at android.os.Handler.handleCallback (Handler.java:938)
  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:8751)
  at java.lang.reflect.Method.invoke
  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:571)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1135)

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-01-20 08:10:05 +00:00
Nextcloud bot
7b60780ec5
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-01-20 03:43:15 +00:00
Nextcloud bot
7db09f5b2d
Fix(l10n): 🛠️ Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-01-20 03:42:57 +00:00
Nextcloud bot
495e5aed2d
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-01-20 02:32:39 +00:00
Nextcloud bot
11d79737de
Fix(l10n): 🛠️ Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-01-20 02:32:19 +00:00
Marcel Hibbe
002aeb0b9d
fix to show author above location map
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-01-19 11:10:58 +01:00
Marcel Hibbe
3e0026d49d
fix to always show author name in group conversations
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-01-19 11:10:18 +01:00
Daniel Calviño Sánchez
53c9c1cf8c Do not create offer for received screen share
When the HPB is not used and a PeerConnectionWrapper is created it
always sent an offer if the local session ID is higher than the remote
session ID. However, in the case of screen shares the participant
sharing the screen always sends an offer, no matter the session ID.
Therefore, when that offer was received the new PeerConnectionWrapper
object sent a new offer, which in turn created an extra connection in
the browser.

Although the screen share connection happens to work the underlying
behaviour was wrong, so now no offer is sent for received screen share
connections and it is always waited until the offer is sent by the other
participant.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2023-01-18 15:16:53 +00:00
Marcel Hibbe
4ccf8ac5a2
move logic to getPayloadForImageLoader
logic for setting the placeholder was moved to getPayloadForImageLoader.
This is a better solution than in commit
9557bec9 where the onBind method had to be called in between other code.

This is still not the best solution because getPayloadForImageLoader now contains more logic than it should (which is also not only responsible for the placeholder). Anyway as this is a hotfix it's the best solution for the moment.

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-01-18 10:18:29 +01:00
Marcel Hibbe
ffcd56375e
fix to hide avatars in one to one conversations.
follow up to commit 7464e6994b673d2b575903a76752bf39bed9d622

the problem was that the "super" methods also contain logic to show/hide the avatar. So this result must be overwritten again after calling the super method.

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-01-18 10:18:28 +01:00
Marcel Hibbe
90d3d7d217
fix to show placeholder image if vcf contact has no photo
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-01-18 10:18:28 +01:00
Marcel Hibbe
99c6d77b17
set fallback placeholder for loadImage
set fallback placeholder if somehow null was passed as a placeholder

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-01-18 10:18:28 +01:00
Marcel Hibbe
5ba6148273
fix to immediately view placeholder + set min height
without this fix, "getPayloadForImageLoader" was called before the placeholder was set (so it was null until getPayloadForImageLoader was called again after ~30seconds.). This is fixed by calling the super method at the end of "onBind".

min height was set to avoid very tiny previews (like for the placeholders)

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-01-18 10:18:28 +01:00
Marcel Hibbe
2ddb0782f3
fix to set placeholder images in chat
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-01-18 10:18:28 +01:00
Nextcloud bot
1a334c8861
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-01-18 03:39:04 +00:00
Nextcloud bot
e5f5e4bbaa
Fix(l10n): 🛠️ Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-01-18 03:38:46 +00:00
Marcel Hibbe
1d9868daa6
remove try-catch for NPEs for bindings
since null checks are done for the nullable bindings by PR #2694, the try-catch blocks arent necessary anymore.

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-01-17 08:37:42 +01:00
Marcel Hibbe
b95399750d
simplify ControllerViewBindingDelegate
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-01-17 08:12:18 +01:00
Marcel Hibbe
b45794b0ca
remove withNullableControllerViewBinding
it seems async calls are not cancelled reliable so it was decided to always check for null bindings to avoid NPEs

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-01-17 08:12:18 +01:00
Marcel Hibbe
4124a65c7a
make ControllerViewBindingDelegate nullable
check nullable bindings in all controllers

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-01-17 08:12:17 +01:00
Nextcloud bot
08d64c7298
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-01-17 03:39:13 +00:00
Nextcloud bot
9dbe452304
Fix(l10n): 🛠️ Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-01-17 03:38:55 +00:00
Daniel Calviño Sánchez
67e259f792 Simplify ending the peer connections
The peer connections will be of either "video" or "screen" type, so they
can be simply removed based on the session id and an explicit type.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2023-01-16 09:05:51 +00:00
Daniel Calviño Sánchez
9ae969b0f8 Split call participants and peer connections
Instead of trying to create a video peer connection for any joined
participant now only a call participant is created for any joined
participant, and a video peer connection is created only for those
participants that are publishing audio or video.

If a call participants does not have a video peer connection the call
participant is now seen as "connected" from the UI, as there is no need
to show a progress bar for that participant.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2023-01-16 09:05:51 +00:00
Daniel Calviño Sánchez
2cb7572dbc Extract methods to add and remove call participants
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2023-01-16 09:05:51 +00:00
Daniel Calviño Sánchez
ed5e8fc82e Use helper class to keep track of the participants in a call
As CallParticipantList starts listening on the signaling messages as
soon as it is created it needs to be created and destroyed right before
entering and exiting a call. Otherwise it could receive messages on
other states (for example, while the "connection timeout" message is
shown) and thus once the local participant joined the event would not
include the other participants already in the call as joined (although
they would be anyway reported as unchanged).

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2023-01-16 09:05:51 +00:00
Daniel Calviño Sánchez
ab72db7a10 Add helper class to keep track of the participants in a call
For now only the same signaling messages that were already handled are
still handled; in the future it could be extended to handle other
messages, like the one sent by the external signaling server when a
participant leaves the room (in some cases no participants update
message is sent if the participant leaves the call and room at the same
time, which causes the participants to still be seen as in call until a
new update is received).

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2023-01-16 09:05:51 +00:00
Daniel Calviño Sánchez
0a3f515bb6 Observe only the self peer connection
The observers were created for any peer connection, but after recent
changes they ignored all changes but those from the self peer
connection. Therefore it is enough to just add an explicit listener on
that peer connection rather than on all of them.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2023-01-16 09:05:51 +00:00
Daniel Calviño Sánchez
6728e3f063 Do not handle connection state changes to "closed"
The connection state changes to "closed" only when the connection is
closed. However, closing a connection does not fire any event (not even
the "iceConnectionStateChanged" event), so the event handler can be
removed as it will never be executed.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2023-01-16 09:05:51 +00:00
Daniel Calviño Sánchez
534bbddc88 Create and destroy ParticipantDisplayItems based on call participants
The ParticipantDisplayItems were created and destroyed based on the peer
connections. Now a ParticipantDisplayItem of "video" type is associated
to a call participant, while an additional item is created and destroyed
depending on the state of the screen peer connection of the call
participant.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2023-01-16 09:05:51 +00:00
Daniel Calviño Sánchez
e17a999812 Rename methods to add and remove ParticipantDisplayItems
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2023-01-16 09:05:51 +00:00
Daniel Calviño Sánchez
5681084a14 Create and destroy helper listeners based on call participants
The listeners for call participant messages and for the call participant
nick provided by offers / answers were created and destroyed based on
the peer connections, although they were implicitly associated to a call
participant. Now they are explicitly created and destroyed based on its
associated call participant.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2023-01-16 09:05:51 +00:00
Daniel Calviño Sánchez
175944e932 Move handling of call participants to its own class
CallParticipant provides a read-only CallParticipantModel and internally
handles the data channel and peer connection events that modify the
model. Nevertheless, the CallParticipant requires certain properties to
be externally set, like the userId or the peer connections.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2023-01-16 09:05:50 +00:00
Daniel Calviño Sánchez
4aef76e347 Keep track of the stream in the peer connection
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2023-01-16 09:05:50 +00:00
Daniel Calviño Sánchez
18f21c4f48 Update ParticipantDisplayItem from CallParticipantModel
Instead of explicitly setting the values on the ParticipantDisplayItems
now the values are set on the CallParticipantModels, and the items are
automatically updated from their model when they change.

Different items are still used for the audio/video and screen shares of
the same participant, so the type is used to select from which
properties of the model is the item updated.

As the model may be updated from background threads it is explicitly
observed by the items from the main thread using a Handler shared by all
the items.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2023-01-16 09:05:50 +00:00
Daniel Calviño Sánchez
d72648379e Add model for (remote) call participants
Clients that modify the model would define the variables using the
mutable subclass, while clients that only need to access the model are
expected to use the read-only base class.

The read-only class provides an observer; as it is expected that the
model will be modified from background threads but observed from the
main thread the observer can be registered along a handler to be
notified on its thread, independently of on which thread the values were
set.

Currently there does not seem to be a need to observe each value on its
own, so the observer is notified in a coarse way when any value changes.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2023-01-16 09:05:50 +00:00
Daniel Calviño Sánchez
8a316d94f5 Notify that data set changed automatically when display item changes
Instead of explicitly calling "notifyDataSetChanged" after setting
values on a ParticipantDisplayItem now the adapter observes all its
items and calls "notifyDataSetChanged" automatically when any of them
changes.

Although this adds some boilerplate code it will make possible to update
the ParticipantDisplayItems and automatically propagate the changes to
the adapter when a model changes, rather than having to explicitly do it
from the CallActivity.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2023-01-16 09:05:50 +00:00
Daniel Calviño Sánchez
d67b04dff8 Reorder attributes
Generic final attributes first, followed by object specific final
attributes and then other object attributes.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2023-01-16 09:05:50 +00:00