Commit Graph

6642 Commits

Author SHA1 Message Date
Jorge Martin Espinosa 3d198d8065 Fix flaky test in TimelinePresenterTest (#7702)
The problem seemed to be sometimes the background work to switch from live timeline to a focused event timeline wasn't finished in time and an assertion failed from time to time.

By providing the coroutine to run this on we can pass a `TestScope` and force it to reliably run immediately instead in unit tests.
2026-09-14 15:19:14 +02:00
Jorge Martin Espinosa 8cd3750cde Make global search use a Joined filter for room results (#7695)
Before this, global search returned also invites, which wasn't planned.
2026-09-11 17:36:38 +02:00
Benoit Marty 58b0f2ebc3 Merge pull request #7591 from element-hq/bma/iterateOnClientCreation
Iterate on client creation
2026-09-11 13:22:42 +02:00
Benoit Marty 1ee156f480 Remove Showkase from the project. 2026-09-09 15:56:25 +02:00
Benoit Marty a817b6f219 Rename methods and update documentation. 2026-09-08 17:06:53 +02:00
Benoit Marty 1f18a18917 Iterate on hooks implementation 2026-09-08 16:47:57 +02:00
ganfra 9a4beb4278 Fix stability on UserLocationState 2026-09-08 10:15:03 +02:00
ganfra 6c01ad1364 Fix formating 2026-09-07 19:04:13 +02:00
ganfra 7773ead79b Prevent location bottomsheet from being hidden 2026-09-07 18:56:25 +02:00
ganfra f72e1ad2cc Support Google Play Services fused location backend 2026-09-07 18:11:38 +02:00
ganfra 3754258d88 Adapt location feature to updated maplibre-compose API 2026-09-07 15:25:39 +02:00
ganfra 7507475afd Use vulkan runtime 2026-09-07 15:25:39 +02:00
ElementBot aced1ea64d Sync Strings (#7657)
* Sync Strings from Localazy

* Update screenshots

---------

Co-authored-by: jmartinesp <480955+jmartinesp@users.noreply.github.com>
2026-09-07 14:19:38 +02:00
Jorge Martin Espinosa 79f4e2e06f Stop clearing the remote config when clearing the cache (#7662) 2026-09-07 13:05:15 +02:00
Benoit Marty 66c502853c Merge pull request #7647 from element-hq/feature/bma/cleaupProguardFiles
Clean up ProGuard keep rules files
2026-09-04 17:37:53 +02:00
Benoit Marty 0e12d4e119 Revert "Say so when this session has no secrets to verify another one with" (#7644) 2026-09-04 14:39:50 +02:00
Benoit Marty 5c0c330bbd Import string from Localazy. (#7645) 2026-09-04 14:38:37 +02:00
Benoit Marty 55bfcac6ff Remove empty (or comment only) proguard files. 2026-09-04 11:51:59 +02:00
Jorge Martin Espinosa dcd0bc782f Make sure enforce_element_pro is taken into account in FOSS (#7631)
* Make sure `enforce_element_pro` is taken into account in FOSS

* Make sure we crate `RustTemporaryMatrixClient` instances with a proper `serverName` value
2026-09-03 10:05:40 +02:00
hayyaksi d2f540ae79 Expose the timeline item long press and swipe to reply as TalkBack actions (#7458)
* Expose the timeline item gestures as TalkBack actions

Long pressing a timeline item opens the action list, and swiping it
starts a reply. Neither gesture is reachable with a screen reader
enabled, so those two actions were unavailable to TalkBack users.

Publish them as accessibility custom actions on the event row, reusing
the existing "Message actions" and "Reply" strings. The reply action is
only offered when the user is allowed to reply, matching the swipe.

* Update screenshots

---------

Co-authored-by: ElementBot <android@element.io>
2026-09-02 16:58:26 +02:00
Benoit Marty 94bfcc41a6 Merge pull request #7628 from element-hq/sync-localazy
Let's merge before we get a conflict.
2026-09-02 15:03:21 +02:00
Benoit Marty 992da95e4c Merge pull request #7551 from hayaksi1/fix/5344-verification-unavailable
Say so when this session has no secrets to verify another one with
2026-09-02 14:56:51 +02:00
jmartinesp dfccde93c6 Sync Strings from Localazy 2026-09-02 10:07:17 +00:00
Benoit Marty 7a2f3952cb Move Gallery and Knock feature flags to Labs. 2026-09-02 10:59:51 +02:00
Jorge Martin Espinosa e5065d9baa Fix invalid placeholders in translations (#7612)
* Add logic to find invalid string placeholders in `checkForbiddenTerms.py`

* Fix found invalid placeholder in Chinese translations
2026-09-01 12:40:05 +02:00
Benoit Marty 52fcc797b7 Merge pull request #7523 from hayaksi1/fix/1874-empty-formatted-body
Fall back to the message body when the formatted body has nothing to render
2026-09-01 11:37:59 +02:00
Benoit Marty 012c5a1f81 Do some renaming now that user can select multiple answers per poll 2026-08-31 15:45:14 +02:00
Benoit Marty 0ad3ab1d9d Merge pull request #6477 from bxdxnn/feat/polls-max-selections
Support multi-select polls
2026-08-31 15:26:35 +02:00
hayyaksi c6fe9786a9 Stop rescanning message bodies for emoji only on every recomposition (#7531)
Deciding whether a text message is emoji only compares the formatted body to
the plain one and runs a grapheme scan over the whole message. Nothing was
remembered, so both ran again on every recomposition of every visible message.

Remember the decision against the body and the formatted body. The preview
branch moves into the same computation, so the composable wrapper around
containsOnlyEmojis, which had a single caller and existed only to read
LocalInspectionMode, is no longer needed.
2026-08-31 12:23:01 +02:00
Benoit Marty 9855224e50 Merge pull request #7600 from toger5/toger5/fix-crash-on-circular-obj-logging
Fix crash due to JSON.stringify on a cirular structure in injectes js.
2026-08-31 12:19:23 +02:00
Timo K. dc2d05f9da also add try catch block 2026-08-30 13:12:57 +02:00
Timo K. 7e8efebe4d Fix crash due to JSON.stringify on a cirular structure in injectes js. 2026-08-30 12:38:04 +02:00
hayaksi1 b15125289b Merge branch 'develop' into fix/1874-empty-formatted-body 2026-08-30 02:04:57 +03:00
Benoit Marty c47446bfb9 Merge pull request #7588 from element-hq/feature/bma/avoidNullableCallback
Limit usage of nullable callback.
2026-08-28 22:09:29 +02:00
Benoit Marty c4606e59ef Fix test compilation issue. 2026-08-28 19:02:43 +02:00
Benoit Marty c204d867a2 Merge pull request #7585 from element-hq/rav/app_startup_hook
Implement a hook allowing enterprise modules to perform actions on startup
2026-08-28 16:06:25 +02:00
Benoit Marty cca60ebc3a Limit usage of nullable callback. 2026-08-28 11:01:54 +02:00
Benoit Marty 4d12ec3682 Merge pull request #7536 from hayaksi1/fix/3434-mention-suggestion-ranking
Rank the mention suggestions by how well they match what was typed
2026-08-28 10:39:24 +02:00
Richard van der Hoff f6da347fff Merge remote-tracking branch 'origin/develop' into rav/app_startup_hook 2026-08-27 23:06:37 +01:00
Richard van der Hoff 712fe5b217 Implement a hook allowing enterprise modules to perform actions on startup
Add an interface `io.element.android.features.enterprise.api.AppStartupHook`,
which can be implemented in the enterprise build to perform certain actions on
startup.

It's a bit of a kludge for now since it doesn't block the rest of the app from
proceeding, but it will serve our purposes for now.
2026-08-27 22:36:47 +01:00
bxdxnn 84cd878069 Merge remote-tracking branch 'origin/develop' into HEAD 2026-08-27 18:40:10 +00:00
hayaksi1 e8e67dc0c5 Merge remote-tracking branch 'upstream/develop' into fix/5356-sender-name-fallback
# Conflicts:
#	features/messages/impl/src/test/kotlin/io/element/android/features/messages/impl/timeline/factories/TimelineItemsFactoryTest.kt
2026-08-27 21:19:35 +03:00
hayaksi1 0832b7de23 Merge remote-tracking branch 'upstream/develop' into fix/7397-keep-thread-after-redaction
# Conflicts:
#	features/messages/impl/src/test/kotlin/io/element/android/features/messages/impl/timeline/TimelinePresenterTest.kt
#	features/messages/impl/src/test/kotlin/io/element/android/features/messages/impl/timeline/factories/TimelineItemsFactoryTest.kt
#	features/messages/impl/src/test/kotlin/io/element/android/features/messages/impl/voicemessages/timeline/RedactedVoiceMessageManagerTest.kt
#	libraries/mediaviewer/impl/src/test/kotlin/io/element/android/libraries/mediaviewer/impl/datasource/EventItemFactoryTest.kt
2026-08-27 16:27:18 +03:00
Benoit Marty d3ab1ce43c Merge pull request #7562 from hayaksi1/fix/1548-dm-preview-sender
Drop the sender's name from the room list preview of two-person rooms
2026-08-27 11:19:32 +02:00
Benoit Marty d9c39e8f98 Merge pull request #7480 from bxdxnn/fix/deleted-messages-thread
Fix removed messages hiding its thread on deletion
2026-08-27 10:04:36 +02:00
Benoit Marty 740e3b621b Merge pull request #7344 from hayaksi1/fix/6371-save-file-name-conflicts
Keep saving files to Downloads once 32 files share the same name
2026-08-27 10:01:57 +02:00
Benoit Marty c56001fc98 Merge pull request #7572 from hayaksi1/fix/6730-keep-caption-formatting
Keep the formatting of a caption that is being edited
2026-08-26 16:47:59 +02:00
Benoit Marty dba8f1b276 Merge pull request #7577 from element-hq/feature/bma/explorePushRules
Add a "Push rules" entry in the developer options
2026-08-26 13:54:07 +02:00
Benoit Marty 2fcf806f59 Pretty print the push rules content before displaying it
The raw push rules returned by the SDK are a single long line of json, which is
hard to read on a phone. Re-encode the content with a pretty printer using a two
space indentation before handing it to the file viewer.

Parsing to a JsonElement and re-encoding preserves the order of the keys, so the
rules are still listed in the order the server returned them. Content which
cannot be parsed is passed through unchanged, so that a malformed payload remains
viewable.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-26 12:55:07 +02:00
Benoit Marty 373d2f1eb5 Add a Push rules entry to the developer options
Add a "Push rules" item in the Notifications section of the developer options,
above "Push history". It displays the raw push rules of the account, which were
only available as a rageshake attachment so far.

The content is read using NotificationSettingsService.getRawPushRules(), then
rendered by the new FileViewerEntryPoint, so that the screen looks like the media
viewer rendering a file, with Share and Download actions on a
push_rules<userId>.json file. The user id contains a colon, which is not a valid
file name character on all the file systems, so it is replaced by an underscore.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-26 12:11:16 +02:00