Commit Graph

78 Commits

Author SHA1 Message Date
rapterjet2004
68ce6fabf3
linter -_-
Signed-off-by: rapterjet2004 <juliuslinus1@gmail.com>
2024-11-21 10:17:15 +01:00
rapterjet2004
814592da7f
Refactoring NetworkMonitor to be more Java friendly
Signed-off-by: rapterjet2004 <juliuslinus1@gmail.com>
2024-11-21 10:17:14 +01:00
Marcel Hibbe
11a4738a4c
fix addArchiveConversations migration method
this will set NOT NULL and DEFAULT 0 to hasArchived column

Otherwise there would be an error when updating from the previous DB version:

IllegalStateException: Migration didn't properly handle: Conversations(com.nextcloud.talk.data.database.model.ConversationEntity)

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2024-11-05 14:43:19 +01:00
Julius Linus
085711d077
Merge pull request #4333 from nextcloud/issue-4257-archive-conversation
Archived Conversations 🗃️
2024-10-28 08:30:03 -05:00
rapterjet2004
7285c0ae44
codacy and analysis
Signed-off-by: rapterjet2004 <juliuslinus1@gmail.com>
2024-10-23 08:54:18 -05:00
rapterjet2004
3d9f8366c8
linter
Signed-off-by: rapterjet2004 <juliuslinus1@gmail.com>
2024-10-23 08:26:44 -05:00
rapterjet2004
46efdf4b0c
changes
Signed-off-by: rapterjet2004 <juliuslinus1@gmail.com>
2024-10-23 07:26:20 -05:00
rapterjet2004
9bdaf68232
fixed deletion bug, implemented Marcel's suggestions
Signed-off-by: rapterjet2004 <juliuslinus1@gmail.com>
2024-10-22 10:50:30 +02:00
rapterjet2004
94f33c13bc
WIP got archived working - still have some todos
Signed-off-by: rapterjet2004 <juliuslinus1@gmail.com>
2024-10-14 09:00:24 -05:00
Marcel Hibbe
ebc2fd2702
Add test for conversation conversion
This test respects different API versions and checks if default values are set as expected.

- remove deprecated+unused methods
- remove comments
- remove unnecessary double-bang operator

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2024-09-26 13:27:44 +02:00
Marcel Hibbe
f53f9381b8
fix to always render selfReactions with background color
= fix type of list in stringToArrayList

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2024-09-06 14:32:00 +02:00
sowjanyakch
9ae0d524c0
update ContactsViewModelTest - shareTypes
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
2024-09-05 15:41:09 +02:00
rapterjet2004
ea453dba3e
Follow up bug fixes for offline support
Got join conversation to work
Unread message popup should work when entering a conversation now
"Delete All Messages" now works without breaking the initMessagePolling
linter

Signed-off-by: rapterjet2004 <juliuslinus1@gmail.com>
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2024-09-04 10:14:51 +02:00
Andy Scherzinger
69ed8207d0
fix: ktlintCheck by reformatting kt code
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2024-08-17 20:20:42 +02:00
Marcel Hibbe
8885b999ca
bump database version to 11 + add migration
comment in openHelperFactory

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2024-08-12 16:47:07 +02:00
Marcel Hibbe
6e2ee1f001
add index to ChatBlockEntity
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2024-08-12 16:47:07 +02:00
Marcel Hibbe
edc0554fd2
sort entity attributes of ChatMessageEntity and ConversationEntity alphabetically
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2024-08-12 16:47:07 +02:00
Marcel Hibbe
76e6bb0f82
set values to not nullable in ChatMessage wherever this makes sense
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2024-08-12 16:47:07 +02:00
Marcel Hibbe
a632765cce
set values to not nullable in ConversationEntity.kt wherever this makes sense
remove roomId from Conversation (deprecated. only token should be used)

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2024-08-12 16:47:06 +02:00
Marcel Hibbe
9892613984
rearrange ConversationEntity columns to match documentation
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2024-08-12 16:47:06 +02:00
Marcel Hibbe
da04f536f7
remove dao methods to delete data when user is removed
...will be done by foreign keys cascading. Therefore, also added foreign key to ChatBlockEntity

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2024-08-12 16:47:06 +02:00
Marcel Hibbe
e951b3d53a
fix to load newest conversations (online first)
Before, old conversations that were left still occurred in the list (only adding+updating was done, but never deleting)

also, the list is up to date when coming back from chat. Otherwise there may be unread messages shown for a short moment which were already read.

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2024-08-12 16:47:06 +02:00
Marcel Hibbe
fe4bf942ab
remove SyncableModel and SyncUtils
not needed for our requirements + it simplifies code

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2024-08-12 16:47:05 +02:00
Marcel Hibbe
0390c93ed2
implement lastCommonRead handling
contains one workaround for now, see TODO in updateUiForLastCommonRead method

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2024-08-12 16:47:04 +02:00
Marcel Hibbe
299e8508c4
handle CLEARED_CHAT for scrolling into past
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2024-08-12 16:47:04 +02:00
Marcel Hibbe
85f4d8cd92
handle special system messages in ChatRepo instead in UI
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2024-08-12 16:47:04 +02:00
Marcel Hibbe
2408d639e4
Offline support for conversations and chats
Authors: Julius Linus and Marcel Hibbe

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2024-08-12 16:47:03 +02:00
Andy Scherzinger
f5a4274e54
Add SPDX header
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2024-03-29 15:42:11 +01:00
Marcel Hibbe
754b825096
pass spreedCapabilities instead user to CapabilitiesUtil
To support federated rooms, capabilities have to be checked from the room which now also has capabilities.
If room is not federated, capabilities fromuser are still checked.
This is why CapabilitiesUtil had to be refactored to accept SpreedCapabilities which can come from room or user.

Other than that, many other changes were made as a result of this change.

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2024-03-01 11:25:11 +01:00
Marcel Hibbe
c7a72aaf4a
add diagnose screen and permission warnings in settings
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2024-01-12 09:54:28 +01:00
Andy Scherzinger
3f911965bd
ktlint: Property name should start with a lowercase letter and use camel case
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2023-12-05 16:37:53 +01:00
Andy Scherzinger
357b580a84
Bump room to 2.6.0 and rename paramter to match super class in case of use of names paramters
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2023-10-19 10:55:20 +02:00
Andy Scherzinger
bb9925b12c
Fix code formatting for kotlin files
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2023-09-21 23:27:27 +02:00
Andy Scherzinger
079e527f21
Add DB migration
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2023-09-21 23:27:27 +02:00
tobiasKaminsky
3c20251047
primary key
Signed-off-by: tobiasKaminsky <tobias@kaminsky.me>
2023-09-21 23:27:27 +02:00
Marcel Hibbe
817ea1ab64 Avoid to send conversation and user via intent
sending too much data via intent always is a bad pattern which can lead to TransactionTooLargeException.

When OpenAI translation is enabled, the capabilities contain a ton of translation combinations. These capabilities are contained in 'currentUser' as well in 'selectedConversation'. So, TransactionTooLargeException was thrown.

this PR:
- avoids passing too much data as parcelables in intents (esp. conversation and user)
- introduces MVVM patterns to load required data (esp conversation) from backend (for now via requests, in the future from database first)
- introduces ConversationModel which is created out of the Conversation json model
- loads user data via injection when possible
- creates some quickfixes in ConversationBottomDialog, EntryMenuController and OperationsMenuController.

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-06-30 07:30:18 +02: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
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
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
Andy Scherzinger
95c3123727
Migrate to new parcelize Implementation for Kotlin 1.8, also extend chatKit MessageInput to provide access to UI elements of that component
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-12-30 16:58:42 +01:00
Álvaro Brey
a37f947eb9
PushUtils: update only pushState when updating users
This is to work around a race condition where this class would asynchronously overwrite other user attributes
with old values after a user switch.

Co-authored-by: Marcel Hibbe <dev@mhibbe.de>
Signed-off-by: Álvaro Brey <alvaro.brey@nextcloud.com>
2022-12-15 13:11:40 +01:00
Álvaro Brey
25dd46f95a
UsersDao: fix wrong attribute used in setUserAsActive
Co-authored-by: Marcel Hibbe <dev@mhibbe.de>
Signed-off-by: Álvaro Brey <alvaro.brey@nextcloud.com>
2022-12-15 13:11:40 +01:00
Marcel Hibbe
962b1d4e3a
WIP. replace loop to set current state of users by single UPDATE query
i was able to see that the loop was somehow interrupted during debugging which caused two users to have current =true

this should avoid the problem with the loop.

anyway, this doesn't seem to solve the issue completely as i was able to reproduce it again with the new solution. so maybe there are still more methods/scenarios which can cause this.

additionally, i managed to have all users to have current =false with this new query (while switching accounts very fast and often in ChooseAccountDialogFragment..)

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-12-15 13:11:39 +01:00
Marcel Hibbe
d4e545e67d
use setUserAsActive instead of userManager.disableAllUsersWithoutId
just refactoring for now. this doesn't solve the bug!

Problem that needs to be solved:
When adding a new Account (User), it is marked as "current", while for the other logged in users "current" must be unset (-> disabled).

The problem is, that for the old active user, "current" is not unset so there were multiple accounts marked as "current".

In the ChooseAccountDialogFragment, only one of the current accounts is shown at the top. Below the set status field, all accounts are listed that are not marked with "current". So as a result, there can be accounts hidden that were marked as "current".

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-12-15 13:11:35 +01:00
Álvaro Brey
a8e99862f1
Automatically update current user with room observable
Signed-off-by: Álvaro Brey <alvaro.brey@nextcloud.com>
2022-08-10 19:17:34 +02:00
Andy Scherzinger
9b48bfedf6
remove unused imports
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-07-26 22:13:06 +02:00
Andy Scherzinger
f951336d0d
remove unused persistence methods
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-07-26 21:55:03 +02:00
Andy Scherzinger
125d6770b4
plug cipher migration hook into room
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-07-26 20:33:47 +02:00
Andy Scherzinger
27017aac9e
Migrate AccountRemovalWorker from requery to room
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-07-23 14:29:41 +02:00