Commit Graph

5021 Commits

Author SHA1 Message Date
Jorge Martín
7fe0cc4d45 Add MediaSource.withCleanUrl method that removes invalid fragment data from MXC urls
We've seen some MXC urls in the wild having some `mxc://foo/bar#auto` fragment suffix, which is invalid, but the URL before that fragment part is valid and can be displayed
2026-02-27 09:52:17 +01:00
Benoit Marty
8ff21d7b68 Floating toolbar (#6147)
* Use floating toolbar on homepage

* Fix deprecation issue

* Create HorizontalFloatingToolbar wrapper in our components.

* Fix Konsist test.

* Fix compilation issue after rebase.

* Fix lint issue. `floatingActionButton` must be the last parameter.

* Add Preview for the case empty space.

* Fix navigation bar overlapping buttons in empty space view.

* Increase content padding, and apply it to the space tab too.

* Update screenshots

---------

Co-authored-by: chelsea <git@cdhildit.ch>
Co-authored-by: ElementBot <android@element.io>
2026-02-26 14:54:06 +01:00
renovate[bot]
89a6f5a7bf Update metro to v0.11.0 (#6245)
* Update metro to v0.11.0

* Fix `@AssistedInject` usages

Now the injected variables in the factories must match the names in the constructors

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Jorge Martín <jorgem@element.io>
2026-02-25 16:19:47 +01:00
Benoit Marty
afd7fc51c4 Create HorizontalFloatingToolbar wrapper in our components. 2026-02-25 15:51:20 +01:00
Benoit Marty
ed3a56cb90 Fix deprecation issue 2026-02-25 15:51:20 +01:00
Jorge Martin Espinosa
fe4554703c Check if network access if blocked when fetching notifications (#6247)
* Add `NetworkMonitor.isNetworkBlocked()`, use it to check if Doze prevented us from loading notifications

* Only check if network is blocked after checking if we have a network available, otherwise it's always `true`

* Extract `NetworkBlockedChecker` to handle deprecations more carefully
2026-02-25 12:04:07 +00:00
Jorge Martin Espinosa
dc11430a73 Add some DB optimizations (#6249)
* Set a maximum journal size limit (WAL file size) of 25MB

The previous value was null, which meant unlimited growth. This can affect performance, since the WAL file performance as a cache will worsen the larger it is

* When scheduling the vacuum task, make sure the user has enough free disk storage, since vacuuming can duplicate the DB sizes in disk
2026-02-25 11:59:21 +00:00
Jorge Martin Espinosa
2f80b101c5 Add extra analytics for notification performance (#6237)
* Add extra analytics for notification performance

Add technical spans to track how long a notification fetching work request takes to run, then how long it takes to actually fetch the events for the notifications

* Remove `withContext(io)` for `FetchNotificationsWorker`

The default `Dispatchers.Default` dispatcher used should be good enough and more performant

* Add network check span
2026-02-24 13:39:32 +01:00
Jorge Martin Espinosa
496595f20d Disable the cross-process lock in the SDK (#6231)
* Disable the cross-process lock in the SDK

We don't use multiple process as iOS does, so we don't need it. It should improve DB performance a bit and overall waste less resources.
2026-02-23 15:31:59 +00:00
Benoit Marty
783585bd01 Merge pull request #6194 from vmfunc/feature/audio-focus-voice-recording
request audio focus when recording voice messages
2026-02-23 13:35:57 +01:00
bmarty
6c81e88689 Sync Strings from Localazy 2026-02-23 00:39:49 +00:00
renovate[bot]
1ce57d811e Update dependency org.matrix.rustcomponents:sdk-android to v26.02.19 (#6229)
* Update dependency org.matrix.rustcomponents:sdk-android to v26.02.19

* Fix breaking API changes: added `isLowPriority` to `RoomInfo` and `RoomSummary`.

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Jorge Martín <jorgem@element.io>
2026-02-20 09:01:07 +01:00
Jorge Martin Espinosa
7d412d9461 Remove all video metadata (#6224)
Use `InAppMp4Muxer` with a custom metadata provider that removes all metadata entries
2026-02-18 16:51:44 +00:00
renovate[bot]
bc295b3c97 Update dependency org.matrix.rustcomponents:sdk-android to v26.2.16 (#6211)
* Update dependency org.matrix.rustcomponents:sdk-android to v26.2.16

* Fix log rotation breaking changes. The new values match iOS (https://github.com/element-hq/element-x-ios/pull/5108/)

* Fix `aRustRoomInfo()` test fixture

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Jorge Martín <jorgem@element.io>
2026-02-17 10:42:31 +01:00
Jorge Martin Espinosa
1b73a15953 Try to fix common issue with the top app bar (#6187)
The exception is:

> Size(720 x -83) is out of range. Each dimension must be between 0 and 16777215.

So forcing the height to at least 0 should fix it (although it might cause UI glitches?)
2026-02-16 09:42:41 +01:00
Benoit Marty
d2ca80e7e8 Fix compilation issue after merging develop. 2026-02-13 16:44:42 +01:00
Benoit Marty
c1f3233dce Merge branch 'develop' into feature/bma/notificationCustomSound 2026-02-13 15:48:19 +01:00
Jorge Martin Espinosa
0f170b671b Remove explicit dependency androix.compose.material (#6199)
* Remove explicit dependency for `androix.compose.material` for compose library modules

* Ensure `Button` uses the `material3.Icon` instead of the `material.Icon`

* Remove entry in `libs.versions.toml`
2026-02-13 15:19:31 +01:00
vmfunc
73a3468dbc set willPausedWhenDucked to true for RecordVoiceMessage
per review feedback - need true here so the onFocusLost callback
actually fires on all Android versions

Signed-off-by: vmfunc <celeste@linux.com>
2026-02-12 19:50:11 +01:00
vmfunc
7bd157f032 add RecordVoiceMessage audio focus requester for recording
separates recording from playback focus - willPausedWhenDucked is false
for recording so notification sounds don't interrupt mid-recording

Signed-off-by: vmfunc <celeste@linux.com>
2026-02-12 18:39:39 +01:00
Benoit Marty
0233f4dde4 Add name parameters 2026-02-12 17:57:52 +01:00
Benoit Marty
88a104a6d4 Swap receiver and parameter for a nicer code. 2026-02-12 17:57:31 +01:00
Benoit Marty
130ff40e5c Fix typo 2026-02-12 14:42:58 +01:00
Benoit Marty
48fae51ef0 Ignore fallback notification when the room list is rendered.
Add more tests.
2026-02-12 13:30:46 +01:00
Benoit Marty
a651a1cd6f Improve FakeAppNavigationStateService 2026-02-12 13:30:06 +01:00
Benoit Marty
00fb4498f4 Dismiss fallback notification when the room list is rendered. 2026-02-12 13:26:53 +01:00
Benoit Marty
b9d5645853 Remove NavigationState.Space. (#6185)
* Remove `NavigationState.Space`.
We do not have the concept of current space.

* Fix test.
2026-02-12 13:24:51 +01:00
Jorge Martin Espinosa
33a78ecda3 When linkifying, adjust the URLSpan's url too (#6188) 2026-02-12 12:12:57 +00:00
Benoit Marty
ff4455b0ce Fix test. 2026-02-12 09:12:17 +01:00
Benoit Marty
44cab62fc3 Merge branch 'develop' into feature/bma/notificationFallbackCounter 2026-02-11 21:10:14 +01:00
Benoit Marty
9fbb21fb39 Add missing test 2026-02-11 21:06:19 +01:00
Benoit Marty
843e1a28b2 Cleanup 2026-02-11 20:51:05 +01:00
Benoit Marty
83fee6d9ba Remove NavigationState.Space.
We do not have the concept of current space.
2026-02-11 20:41:55 +01:00
Benoit Marty
e3ace3c87e Rely on the SessionObserver to detect a sign out. 2026-02-11 18:06:32 +01:00
Benoit Marty
4234600d06 Notification: implement a counter in the fallback notification. 2026-02-11 16:43:03 +01:00
Benoit Marty
71fef289d1 Cleanup: remove unused summaryLine field. 2026-02-11 15:36:12 +01:00
Benoit Marty
6e958f3132 Let enterprise build be able to use a different notification channel for noisy notification. 2026-02-11 11:57:01 +01:00
ganfra
a1a89c02b5 Merge pull request #6171 from element-hq/feature/fga/enable_spaces_ff
Enable space feature flags by default
2026-02-10 21:42:12 +01:00
Benoit Marty
7535258bae Remove file sound (it is the same file than the file in the main scope). 2026-02-10 18:13:09 +01:00
Benoit Marty
21595b2155 Format file. 2026-02-10 17:40:20 +01:00
ganfra
22e9e8d9bd Enable space feature flags by default 2026-02-10 16:33:10 +01:00
Benoit Marty
8cc2d77964 Fix issues detected by Paparazzi 2026-02-10 15:30:14 +01:00
Jorge Martin Espinosa
f6b8c189e1 When a background SDK task fails, react in the client (#6166)
- For initialization issues or errors, we just print and report them.
- For panics (unrecoverable errors) we also crash the app.
2026-02-10 12:28:24 +01:00
ganfra
ee0da6b15c Merge pull request #6150 from element-hq/feature/fga/space_ui_tweaks
Iterate on Space related UI
2026-02-10 11:36:09 +01:00
Benoit Marty
d351f7d471 Use correct bg color. 2026-02-10 10:17:41 +01:00
ganfra
91eeb7b773 Merge branch 'develop' into feature/fga/space_ui_tweaks 2026-02-10 09:31:50 +01:00
Benoit Marty
c03788526c QRCode login: treat not found error as expired error. (#6161)
Reorder some when cases.
2026-02-09 16:34:23 +01:00
ElementBot
6a101e7b65 Sync Strings from Localazy (#6155)
Co-authored-by: bmarty <3940906+bmarty@users.noreply.github.com>
2026-02-09 16:30:57 +01:00
Benoit Marty
c18ac905c8 QRCode login: treat not found error as expired error.
Reorder some when cases.
2026-02-09 15:14:18 +01:00
Skye Elliot
028ec221b0 Add history sharing badges to room details (#6132)
* feat: Add history sharing badges to room details view

* tests: Add snapshots for history sharing room details badges

* fix: Disable soft-wrapping in badges, use FlowRow

* tests: Add unit test for `RoomDetailsState` and history sharing badges.

* tests: Add `MatrixBadgeAtomNeutralWrappingPreview` to exceptions

* chore: Re-order `MatrixBadgeAtom` previews

* fix: Add `Immutable` annotation to `RoomHistoryVisibility`.

* fix: Correct translation for shared badge
2026-02-06 19:03:52 +00:00