Commit graph

1877 commits

Author SHA1 Message Date
Jorge Martin Espinosa
eda0aa87ce
Keep the child state in AttachmentsPreviewPresenter up to date (#6039)
This makes the `handleEvents` function capture the reference and be able to check the updated state, unblocking the media sending flow
2026-01-20 10:09:30 +01:00
Richard van der Hoff
ad622b0ac2
Display a badge for messages decrypted using shared keys (#6023)
The EXA side of element-hq/element-meta#2877: if the keys for a message have been forwarded by another user, indicate that in the UI via the text shown when tapping the event shield.
2026-01-16 17:24:18 +00:00
Benoit Marty
c89a8b95df Add preview with a11y details. 2026-01-09 14:39:57 +01:00
Jorge Martin Espinosa
06c4b9488b
Adjust metrics to the new specifications (#5937)
* Add `AnalyticsTransactions` with a set of `TransactionDefinition` items matching those in the user story

* Use that for `AnalyticsLongRunningTransactions`, make sure we send the right fields (name, operation, description)

* Add `AnalyticsSendMessageWatcher` to track how long it takes for an event to be sent and for us to get a call back for that from sync

* Add `Noop` implementation for enterprise
2026-01-05 16:23:26 +01:00
Benoit Marty
7186044482
Merge pull request #5963 from element-hq/feature/bma/variablePlayBackSpeed
Voice message: variable play back speed
2026-01-05 13:58:01 +01:00
Benoit Marty
233d22367f Cleanup 2026-01-02 16:07:45 +01:00
Benoit Marty
07be3d01b2 Rename Button to ButtonType to avoid confusion. 2025-12-31 09:51:38 +01:00
Benoit Marty
a10ac8aaab VoiceMessageEvents -> VoiceMessageEvent 2025-12-31 09:48:46 +01:00
Benoit Marty
dc3c9da7e6 Extract PlaybackSpeedButton as an Atom. 2025-12-31 09:19:45 +01:00
Florian
0c004d933c
Merge branch 'develop' into feat/variable-playback-speed 2025-12-30 21:29:18 +01:00
Florian
2b81b187d5 Increase clickable area of playback speed button 2025-12-30 21:24:41 +01:00
Benoit Marty
a43c66f56d
fix(deps): update wysiwyg to v2.41.0 (#5921)
* fix(deps): update wysiwyg to v2.41.0

* Reuse already parsed document instead of parsing it again

* Fix `toPlainText` representation with formatting spans

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Jorge Martín <jorgem@element.io>
2025-12-29 09:59:37 +01:00
Benoit Marty
fe31d5972c
Merge pull request #5945 from element-hq/feature/bma/listItemFont
Use only font from compound
2025-12-29 09:24:01 +01:00
renovate[bot]
00dcbf4a7f
fix(deps): update kotlin to 2.3.0 (#5917)
* fix(deps): update kotlin to 2.3.0

* Cleanup - remove `datetime` compat version

* Fix several lint issues caused by the Kotlin compiler inference working better (checks in nullables, vars, etc.)

* Fix tests by removing mock in `File.readBytes`, it seems like it's no longer allowed. Using a tmp file works well enough.

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Benoit Marty <benoit@matrix.org>
Co-authored-by: Jorge Martín <jorgem@element.io>
2025-12-22 14:28:15 +01:00
Jorge Martín
a8ffe46d99 Transform MessageEventType and StateEventType into sealed interfaces to handle the Custom variant, also add missing variants 2025-12-22 11:19:37 +01:00
Benoit Marty
31d5aa7a33 Use typography instead of materialTypography. 2025-12-20 17:03:18 +01:00
Benoit Marty
5551f4e039
Merge pull request #5942 from element-hq/feature/bma/roomHistoryVisibilitySettings
Simplify the copy of the history visibility settings
2025-12-20 17:02:24 +01:00
Benoit Marty
2a9765ad33
Upgrade robolectric to version 4.16 (#5923)
* Update dependency org.robolectric:robolectric to v4.16

* Fix file size formatter output on API 26+

* Use more realistic value for maxUploadSize

* Update screenshots

* Fix test issue: "java.security.KeyStoreException: AndroidKeyStore not found"

* Add exceptions.

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: ElementBot <android@element.io>
2025-12-19 15:37:38 +01:00
Benoit Marty
beea921f2e Simplify the copy of the history visibility settings
Closes #5898
2025-12-19 14:53:06 +01:00
Skye Elliot
42277cf604
docs: Clarify purpose of LaunchedEffect as part of algorithm. 2025-12-19 11:09:19 +00:00
Skye Elliot
e9831d0e05
fix: Show history visibiliy banner for shared, not invited. 2025-12-18 16:05:22 +00:00
Jorge Martín
fe9224b807 Distinguish between indexable and non-indexable extra data 2025-12-18 14:08:38 +01:00
Benoit Marty
7def03be2a Use more realistic value for maxUploadSize 2025-12-18 11:18:25 +01:00
Jorge Martín
5809901391 Reuse already parsed document instead of parsing it again 2025-12-17 18:38:02 +01:00
Benoit Marty
b5d15ee787 Fix issue detected by lint. 2025-12-17 10:59:48 +01:00
Jorge Martin Espinosa
8e3e0951e7
Use the right video preset when sharing videos (#5892) 2025-12-16 16:40:44 +01:00
ElementBot
ad881c303a
Sync Strings from Localazy (#5904)
Co-authored-by: bmarty <3940906+bmarty@users.noreply.github.com>
2025-12-15 23:51:19 +01:00
ganfra
03ac70b662 misc(power level) : expose RoomMemberModerationPermissions after PR review 2025-12-15 11:42:06 +01:00
ganfra
d26f21a53b misc(power level) : update tests following api change 2025-12-12 11:52:24 +01:00
ganfra
d654280e30 misc(power level) : use new api 2025-12-12 11:26:54 +01:00
Benoit Marty
8a7e71b49e PermissionsEvents -> PermissionsEvent 2025-12-10 10:50:10 +01:00
Skye Elliot
59f51d8627
Add alert to encrypted rooms with visible history (Android). (#5709)
* feat: Add visible history alert to encrypted rooms.

- Adds a dismissable alert that is displayed whenever the user opens a
  room with `history_visibility` != `joined`. When cleared, this is
  recorded in the app's data store.
- When opening a room with `history_visibility` = `joined`, this flag is
  cleared.`

Issue: https://github.com/element-hq/element-meta/issues/2875

* chore: Fix linting issues.

* feat: Move alert showing logic into state presenter.

* chore: Fix linting issues.

* tests: Fixup tests.

* feat: Use real link.

* chore: Update license header.

* chore: Add (c) to license headers.

* chore: Add `.` to license header.

* feat: Lock alert behind history sharing developer setting.

* ci: Trigger record screenshots

* feat: Create repo key using session ID for multi-account support.

* feat: Use session ID hash for constructing data store.

* tests: Correct and update tests.

* tests: Update snapshots.

* feat: Prevent identity alert from displaying with history visibility alert.

* feat: Tidy up HistoryVisibleStatePresenter logic, update previews.

* chore: Remove unused import.

* chore: Update screenshots.

* feat: Add translation string.

* chore: Remove redundant temporary translation file.
2025-12-08 21:19:15 +01:00
Benoit Marty
54e742075d Detekt: enable rule exceptions.SwallowedException and fix existing issue. 2025-12-05 09:45:23 +01:00
Benoit Marty
35e75b944f Merge branch 'develop' into feature/bma/limitComposerHeight 2025-12-03 17:44:05 +01:00
Benoit Marty
2d3a7f9745
Merge pull request #5821 from element-hq/feature/bma/fixLongVoiceRecording
Fix long voice recording
2025-12-03 10:27:46 +01:00
ganfra
a23bdfb1d4
Merge pull request #5830 from element-hq/sync-localazy
Sync Strings
2025-12-02 20:58:45 +01:00
Benoit Marty
7f0912850c Let the composer takes at max half of the available height. The value will be different if the soft keyboard is displayed or not.
Closes #3851
2025-12-02 16:36:30 +01:00
Jorge Martin Espinosa
2e2d68ba83
Load JoinedRoom in home screen, pass it to the room flow (#5817)
* Load `JoinedRoom` in `HomeFlowNode.navigateToRoom`, then pass it to the next navigation nodes

* Add delayed loading indicator for cases when loading the room takes too long

* Avoid an extra FFI call in `RustRoomFactory`.

Use `RoomInfo.membership` instead.

Also use `computation` dispatcher, since it should reduce the delay when switching contexts.

* Remove the dispatcher usage when loading the room in `HomeFlowNode`, we immediately call a method that changes the dispatcher used

* Make sure only a single room is opened at a time
2025-12-02 15:22:55 +00:00
bmarty
32d56ea92d Sync Strings from Localazy 2025-12-01 00:23:54 +00:00
Jorge Martín
f265a47243 Make sure we don't finish NotificationTapOpensTimeline until we've actually rendered the timeline event we need to focus on 2025-11-28 14:15:54 +01:00
Jorge Martín
1c576fd42d Add AnalyticsService.cancelLongRunningTransaction and AnalyticsService.finishLongRunningTransaction 2025-11-28 14:15:54 +01:00
Jorge Martín
4b3796844f Add transaction trees for opening a room so we can have a nice trace view 2025-11-28 14:15:54 +01:00
Jorge Martín
10b31e3e72 Add OpenRoom long running analytic transaction 2025-11-28 14:15:54 +01:00
Jorge Martín
e1bd189ba0 Add a performance check for notification tap -> populated timeline time 2025-11-28 14:15:54 +01:00
Benoit Marty
d94e8e7a2c Rename VoiceMessageComposerEvents to VoiceMessageComposerEvent 2025-11-27 09:41:29 +01:00
Benoit Marty
b25b99c890 Add unit test to ensure that number of levels is limited. 2025-11-27 09:30:22 +01:00
Benoit Marty
0fbf156262 Use test extension 2025-11-27 09:02:31 +01:00
Benoit Marty
a344b11eaa Rename test class 2025-11-27 07:16:13 +01:00
Benoit Marty
f3d7b16463 Fix crash when recording long voice message. 2025-11-26 17:14:33 +01:00
ganfra
da57eaadf2
Merge pull request #5809 from element-hq/feature/fga/new_latest_event
misc : use newLatestEvent api from sdk
2025-11-26 12:30:34 +01:00