Commit graph

1605 commits

Author SHA1 Message Date
Valere
508aef98ff Use the new RtcNotification instead of deprecated CallNotify 2025-09-17 15:15:33 +02:00
Benoit Marty
ba51b29d23
Cleanup nodes (#5358)
* Remove unused NavTarget.Empty

* Let SpaceEntryPoint.Inputs implement NodeInputs.

* Small cleanup

* Small cleanup

* Method can be private.

* Simplify code

* Rename to follow naming convention

* Rename Node to follow naming convention

* Add Konsist test.

* Remove useless line of code.
2025-09-16 14:36:43 +02:00
Benoit Marty
f28b53d85e Remove useless line of code. 2025-09-16 12:27:27 +02:00
Valere Fedronic
5d1154083b
Call: MSC4310 sending RTC decline event and listening for Decline from other sessions
MSC4310 RTC decline event support
2025-09-16 10:25:17 +02:00
Jorge Martin Espinosa
d9e7d74d2d
Upgrade Rust SDK bindings to v25.09.15 (#5353)
* Upgrade Rust SDK bindings to `v25.09.15`:

This contains important changes to the APIs used to build the EC widget.

* Use the new `intent` parameter correctly, by calculating locally its behaviour based on whether the room is a DM and there is an ongoing call or not.

Using just the `intent` parameter is our end goal, but sadly this is not fully supported by the current EC embedded `v0.15.0`, so we need to add a workaround using the `skipLobby` and `preload` parameters.
2025-09-15 15:15:10 +02:00
Benoit Marty
3af4405ee3
Space list (#5320)
* feature(spaces) : introduce SpaceRoomList matrix api

* feature (space) : extract SpaceRoomItemView

* feature(spaces) : start introducing SpaceScreen

* feature (space) : iterate on space list (and space screen)

* feature (space) : add space cache and navigation to sub space/room

* feature (space) : display top bar title

* Code cleanup, remove dead code and fix compilation issue

* More compilation fixes.

* Update screenshots

* Fix test compilation issues.

* Introduce MatrixClient.rememberHideInvitesAvatar() extension to reduce code duplication.

* Add test on SpacePresenter

* Add test on SpaceRoomCache and fix implementation

* Iterate on SpaceRoomCache thanks to SpaceRoomCacheTest

* Add UT on SpaceListUpdateProcessor

* Fix quality issue.

* Add tests on RustSpaceRoomList

---------

Co-authored-by: ganfra <francoisg@matrix.org>
Co-authored-by: ElementBot <android@element.io>
2025-09-11 17:29:15 +02:00
Benoit Marty
5bbe299627 Use .value instead of .toString(). 2025-09-11 17:04:58 +02:00
Benoit Marty
3b41d4a7e8 Add tests on RustSpaceRoomList 2025-09-11 15:05:50 +02:00
Valere
e20b3550dc Call: RTC decline event support 2025-09-11 13:33:37 +02:00
Benoit Marty
ba372c018b Fix quality issue. 2025-09-11 10:15:23 +02:00
Benoit Marty
4869c0b5d7 Add UT on SpaceListUpdateProcessor 2025-09-11 09:57:18 +02:00
Benoit Marty
dcc1545cbf Add a TODO 2025-09-11 09:02:43 +02:00
Benoit Marty
066bfb13fc SDK API change: handle change on VirtualElementCallWidgetOptions 2025-09-11 08:58:36 +02:00
Benoit Marty
e634952a99 normalizedPowerLevel has been removed from the SDK (and was not used). 2025-09-11 08:52:02 +02:00
ganfra
697652a5f4 Iterate on SpaceRoomCache thanks to SpaceRoomCacheTest 2025-09-10 21:42:25 +02:00
Benoit Marty
959cb4f0b3 Add test on SpaceRoomCache and fix implementation 2025-09-10 18:18:16 +02:00
Benoit Marty
c982279d5c Add test on SpacePresenter 2025-09-10 16:30:21 +02:00
Benoit Marty
c9bc7bf28a Fix test compilation issues. 2025-09-10 15:48:07 +02:00
Benoit Marty
bb39a9f399 Code cleanup, remove dead code and fix compilation issue 2025-09-10 14:47:07 +02:00
ganfra
d4d2aa1707 feature (space) : add space cache and navigation to sub space/room 2025-09-10 14:31:44 +02:00
ganfra
b45a4c3b2c feature (space) : iterate on space list (and space screen) 2025-09-10 14:30:10 +02:00
ganfra
4048bb7fb6 feature(spaces) : start introducing SpaceScreen 2025-09-10 14:28:55 +02:00
ganfra
5d8ca6590e feature (space) : extract SpaceRoomItemView 2025-09-10 14:28:30 +02:00
ganfra
aadd8b45e2 feature(spaces) : introduce SpaceRoomList matrix api 2025-09-10 14:25:17 +02:00
Benoit Marty
927dbcaedd Fix RustMatrixClientTest 2025-09-05 17:09:43 +02:00
Benoit Marty
c24d5fc608 Code quality 2025-09-05 17:09:43 +02:00
Benoit Marty
63706c0558 Add tests on HomeSpacesPresenter 2025-09-05 17:09:42 +02:00
Benoit Marty
81d82fb0de Space List
Extract InviteButtonsRowMolecule
Take into account seenSpaceInvites
2025-09-05 17:09:39 +02:00
Jorge Martín
e8328858ab Fixes after rebase 2025-09-04 16:49:21 +02:00
Jorge Martín
de8de61b2e Remove dagger and anvil dependencies, try to simplify gradle build scripts a bit 2025-09-04 16:49:21 +02:00
Jorge Martín
4ab62a6a38 Redo DI gradle setup code 2025-09-04 16:49:20 +02:00
Jorge Martín
29a97fc0d9 Fix lint issues and restore commented out code 2025-09-04 16:49:18 +02:00
Jorge Martín
b76a71ebf5 Start migrating Anvil KSP to Metro 2025-09-04 16:48:34 +02:00
Jorge Martin Espinosa
d4d57b1e21
Reload member list after moderation actions (#5268)
* Reload member list after moderation actions

The previous `runActionAndWaitForMembershipChange` logic wasn't really doing anything, as the modified flow was never used.

* Make sure we always set the value in the member list state flow, even if the underlying coroutine scope is no longer there.

With `emit`, the `Ready` state was not emitted if the member list was loaded way too fast.
2025-09-04 12:56:46 +00:00
Jorge Martin Espinosa
83c72f4c05
Set a custom request config for the Client (#5266)
This is the default HTTP request configuration that will be used. I matches iOS.
2025-09-03 12:09:40 +00:00
Benoit Marty
00ca73f342
Refactor: Move InMemorySessionStore to test module (#5252)
* Refactor: Move InMemorySessionStore to test module

- Delete `libraries/session-storage/impl-memory` module
- Move `InMemorySessionStore.kt` to `libraries/session-storage/test`

* Cleanup tests.

* Fix error.
2025-09-01 17:29:43 +02:00
João Breno
150d0790bc
Update state in runUpdatingState when CancellationException occurs (#5243) 2025-09-01 15:07:32 +02:00
Benoit Marty
025131841b Cleanup tests. 2025-09-01 15:03:41 +02:00
Benoit Marty
75a640b986 Refactor: Move InMemorySessionStore to test module
- Delete `libraries/session-storage/impl-memory` module
- Move `InMemorySessionStore.kt` to `libraries/session-storage/test`
2025-09-01 14:47:42 +02:00
Jorge Martin Espinosa
6e6440940f
Add extra logs for sending media (#5218)
* Add extra logs for sending media

We have some issues with stuck media uploads that could use some logs to understand where the process gets stuck.

* Fix mocks for test
2025-08-26 07:02:15 +00:00
Benoit Marty
cf5c4df95d Remove dependency to Anvil from modules that do not use it. 2025-08-25 11:36:44 +02:00
Benoit Marty
a625c109b8
Merge pull request #5207 from element-hq/feature/bma/spaceInfoUi
Add UI components for spaces.
2025-08-23 16:16:39 +02:00
Benoit Marty
7b1a4bb3e3 Let JoinRule and AllowRule be Immutable. 2025-08-22 16:13:55 +02:00
Jorge Martin Espinosa
7a5a197e7e
Allow replying to any remote message in a thread (#5201)
* Allow replying to any remote message in a thread.

This will open the thread screen based on the selected event:

- If it was already part of a thread, it will open that thread.
- Otherwise, it'll open the thread timeline screen so you can start a thread from the event.

* Add the feature flag to decide which action to perform. Also, rename the feature flag to something easier to understand.

* Display the reply in thread action based on the feature flag too

---------

Co-authored-by: ElementBot <android@element.io>
2025-08-22 16:07:13 +02:00
Jorge Martin Espinosa
9bc2c4a776
Add shortcut suggestions for rooms, remove then when leaving (#5180)
* Report shortcut usage for outgoing messages

This patch adds support for creating and pushing dynamic
long-lived shortcuts for outgoing messages. This together
with an existing reference to the roomId used by the
shortcuts as an identifer allows conversations to be
prioritized.

See https://developer.android.com/training/sharing/direct-share-targets#report-usage-outgoing

* Simplify how to get the other user in a DM room

* Add initial avatar icons to shortcuts

* Remove room shortcuts when they're no longer joined

* Try using API 33 for the new tests. They worked locally with API 30, so it's weird the CI asks for a higher API version.

* Add observers for the pin code and session logout states. With this we can prevent new shortcuts from being created and remove existing ones when needed.

* Wrap all calls to `ShortcutManagerCompat` with `runCatchingExceptions` to avoid crashes

* Make `DefaultNotificationConversationService` a singleton.

---------

Co-authored-by: networkException <git@nwex.de>
Co-authored-by: ElementBot <android@element.io>
2025-08-19 16:02:51 +02:00
Jorge Martin Espinosa
35928e3630
Threads - first iteration (#5165)
* Initial threads support: parse `ThreadSummary`.

Replace several `isThreaded` values with `EventThreadInfo`, which contains the info about the event either being the root of a thread or part of it.

* Add `Threaded` timeline mode

* Add a `liveTimeline` parameter to `TimelineController`'s  constructor. This way we can customise which timeline will be used as the 'live' one. Also add `@LiveTimeline` DI qualifier for the actual live timeline of the room.

* Create `ThreadedMessagesNode`. Allow opening a thread in a separate screen.

* Add the callbacks for the list menu actions - even if they're the wrong ones and will send the data to the room instead

* Send attachments and location in threads

* Fix polls in threads, add support for sending voice messages in threads

* Display thread summaries only when the feature flag is enabled

* Use 'Reply' instead of 'Reply in thread' when in threaded timeline mode

* Remove incorrect usage of `Timeline` in `MessageComposerPresenter`. This led to replies to threaded events not appearing as actual replies.

---------

Co-authored-by: ElementBot <android@element.io>
2025-08-19 13:35:48 +00:00
renovate[bot]
90ad9616c0
Update dependency org.matrix.rustcomponents:sdk-android to v25.8.18 (#5182)
* Update dependency org.matrix.rustcomponents:sdk-android to v25.8.18

* Fix broken API changes:
- The send queue usage is now mandatory.
- The media upload progress now comes back in the send queue state (this still hasn't been applied to the UI in the timeline).

* Update screenshots
---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Jorge Martín <jorgem@element.io>
Co-authored-by: ElementBot <android@element.io>
2025-08-18 16:41:14 +02:00
ganfra
b4a8b17391 refactor (start chat) : create invite people module and start branching them 2025-08-13 11:06:43 +02:00
Benoit Marty
58ce545d98
Merge pull request #5160 from element-hq/feature/bma/cleanupFeatureFlags
Remove old feature flags
2025-08-12 18:21:44 +02:00
Jorge Martin Espinosa
516c3cfda3
Provide calculated server names when opening a room from another (#5155)
* Provide calculated server names when opening a room from another, based on the most frequently used domain names in the user ids for the users in the room.

This helps when following permalinks or navigating to the successor room of a tombstoned one. Previously, the `/summary` endpoint was failing because no server names were used in the `via` parameters.
2025-08-12 15:17:46 +00:00