Commit graph

5191 commits

Author SHA1 Message Date
ElementBot
e1b7171839
Sync Strings (#6626)
* Sync Strings from Localazy

* Use the previous plurals as plain strings

* Add extra case for 1 vs multiple users

* Update screenshots

---------

Co-authored-by: Jorge Martín <jorgem@element.io>
2026-04-20 17:09:10 +00:00
Jorge Martin Espinosa
f80a140cf9
Cleanup FetchPushForegroundService (#6577)
* Rename `PushHandlingWakeLock` to `FetchPushForegroundServiceManager`. Move the start/stop logic from `FetchPushForegroundService.Companion` to it.

* Add more tests using Robolectric.

* Remove `FeatureFlags.SyncNotificationsWithWorkManager` and associated code: this should have been removed in one of the previous refactors, since we don't have the 2 ways to sync notifications anymore, everything uses the `WorkManager`

---------

Co-authored-by: Benoit Marty <benoit@matrix.org>
2026-04-20 16:03:12 +02:00
Benoit Marty
ae94e0c746
Merge pull request #6441 from timurgilfanov/feature-oled-black
Add Black theme option for battery saving on OLED displays
2026-04-17 15:41:49 +02:00
Benoit Marty
269d367130
Merge pull request #6464 from kalix127/feat/reply-with-voice-message
Support replying to messages with voice recordings
2026-04-17 14:49:04 +02:00
Jorge Martin Espinosa
a341a1a59e
Replace rustls-platform-verifier-android.aar with single class (#6610)
* Replace the `rustls-platform-verifier-android.aar` with the actual source code

* Exclude the platform-verifier code from linters

* Add manual update instructions

* Exclude from Kover too
2026-04-17 14:48:50 +02:00
Benoit Marty
4e5542396f
Merge branch 'develop' into feature-oled-black 2026-04-17 14:47:15 +02:00
bxdxnn
6a4fed2baf
Natural media viewer swiping order (#6431) 2026-04-17 11:30:21 +02:00
Benoit Marty
a1c9994385 Settings UI update.
- Reorder items
- Minor UI update
- Improve the previews of the Composable
- Merge manage account and manage devices
- Add missing tests
2026-04-17 09:49:59 +02:00
Jorge Martín
7cdad11753 Use Devices.PHONE directly in the landscape preview 2026-04-15 15:51:06 +02:00
Jorge Martín
69fb344517 Use WindowSizeClass instead of just checking portrait/landscape orientation 2026-04-15 15:51:06 +02:00
Jorge Martín
42a572cce2 Add landscape previews 2026-04-15 15:51:06 +02:00
Jorge Martín
70e45d9bfe Some tweaks for landscape and insets 2026-04-15 15:51:06 +02:00
bxdxnn
f389eae868 Make media captions scrollable (#6498) 2026-04-15 15:51:06 +02:00
Jorge Martin Espinosa
0058de9bca
Add extra logs for timeline pagination (#6589)
We found some possible rare issues with pagination these could help understand.
2026-04-15 15:14:42 +02:00
Jorge Martin Espinosa
66513bc905
Take into account homeserver capabilities (#6507)
* Take into account homeserver capabilities: add `HomeserverCapabilitiesProvider` to check if the HS allows changing the user's display name or avatar. Also, modify the edit user profile screen to reflect these values.

* Add `/myavatar` command. Filter both `/nick` and `/myavatar` commands based on the homeserver capabilities.

* Update screenshots

* Assume the use can change their display name and avatar url if the capabilities check fails: if they try to change those, the HS will return an error anyway.

* Disable also `/myroomname` and `/myroomavatar` based on the HS capabilities.

---------

Co-authored-by: ElementBot <android@element.io>
2026-04-15 12:29:41 +00:00
Jorge Martin Espinosa
80470b3792
Feature: add room threads list (#6575)
Add threads list screen for rooms:

- Add `ThreadsListService` to subscribe to thread changes in the room.
- Create `ThreadsListView` and its associated node a presenters (the UI may change).
- Add a menu icon in the room screen to open it.

This is still pending info about unread threads, so several UI components related to it will be hidden.

* Add feature flag and use it to hide the access to this new screen

---------

Co-authored-by: ElementBot <android@element.io>
2026-04-15 12:14:22 +00:00
Skye Elliot
897c68e7b7
Add confirmation dialog when inviting users with unknown identities (#6523)
* feat: Add confirmation modal when inviting unknown users

* tests: Add preview tests for invite confirmation modal

* tests: Add unit tests for invite confirmation modal

* feat: Switch confirmation sheet contents based on identity state

* tests: Add history sharing unit tests for `DefaultStartDMActionTest`

* tests: Update snapshots for `CreateDmConfirmationBottomSheet`

* chore: Fix tiny nits

* fix: Remove default param on `ConfirmingStartDmWithMatrixUser`

* refactor: Use new AsyncAction over boolean flag

* fix: Add sleeps to tests

* refactor: Remove `PromptOrInvite` and switch on async action

* fix: Remove redundant `assertThat`

* feat: Alllow invite confirmation modal to be dismissed

* tests: Update snapshots for InvitePeopleView

* fix: Adjust `CreateDmConfirmationBottomSheet` to conform to design

* feat: Use localazy translations and plurals

* fix: When users are unselected, unselect them in search results too

* tests: Use aMatrixUserList to provide multiple users

* Update screenshots

* fix: Add missing parameter in UserProfilePresenterTest

---------

Co-authored-by: Andy Balaam <andy.balaam@matrix.org>
Co-authored-by: ElementBot <android@element.io>
2026-04-15 10:25:58 +01:00
Jorge Martin Espinosa
e0554bbaf3
Use Coil3 for ZoomableAsyncImage (#6582)
The `-coil` version uses Coil 2.X, there is a `-coil3` version using the latest one, which matches the one we use in the rest of the app.
2026-04-15 07:58:03 +00:00
Benoit Marty
4b8368f242
Merge pull request #6296 from element-hq/feature/bma/signInWithElementClassicFinal
Sign in with element classic final
2026-04-14 23:00:47 +02:00
Jorge Martin Espinosa
7a7a5a68b9
Fix isInAirGappedEnvironment check for older APIs (#6573)
* Fix `isInAirGappedEnvironment` check for older APIs: use `networkCapabilities.hasCapability` instead of `networkCapabilities.capabilities.contains`, which only works on Android 12 and newer versions

* Check for air-gapped env in the FOSS app too: this unifies the notification behaviour on EXA and Element Pro
2026-04-14 15:52:41 +02:00
Timur Gilfanov
f7cfa6cda8
Merge branch 'develop' into feature-oled-black 2026-04-14 10:13:46 +04:00
ganfra
9a4da33340 Fix breaking change, will implement in a separate PR 2026-04-13 20:37:15 +02:00
Benoit Marty
8c5caabed4 Sign in with Classic 2026-04-13 11:16:05 +02:00
bmarty
23c1112dcf Sync Strings from Localazy 2026-04-13 00:48:40 +00:00
Benoit Marty
dc4c1c265b
Merge pull request #6560 from element-hq/feature/bma/removeSpacesFF
Remove spaces features flags
2026-04-10 09:17:51 +02:00
Benoit Marty
c3a999e45a
Merge pull request #6559 from element-hq/feature/bma/fixModuleDependencies
Fix module dependencies
2026-04-10 09:17:34 +02:00
Benoit Marty
6ff6a0a86b
Merge pull request #6553 from element-hq/renovate/org.matrix.rustcomponents-sdk-android-26.x
Update dependency org.matrix.rustcomponents:sdk-android to v26.04.8
2026-04-09 13:17:58 +02:00
Benoit Marty
8cbc03b9a2 Fix test compilation issue. 2026-04-09 12:09:51 +02:00
Benoit Marty
5eb9bed386 Remove FF RoomListSpaceFilters 2026-04-09 11:33:08 +02:00
Benoit Marty
64b0a7eef3 Remove FF CreateSpaces 2026-04-09 11:28:24 +02:00
Benoit Marty
b6ce6a95c0 Remove FF SpaceSettings 2026-04-09 10:54:54 +02:00
Benoit Marty
85823b3e62 Fix compilation issue: RoomAliases does not exist anymore. 2026-04-09 09:52:40 +02:00
Benoit Marty
df73b44279 Depend on api not impl module. 2026-04-08 18:10:32 +02:00
Benoit Marty
035e527101 Depend on api not impl module. 2026-04-08 18:04:46 +02:00
Benoit Marty
dae308fcf7 Fix crash, ensure that super.onTimeout(startId) is not called when the method is not available. 2026-04-08 11:15:51 +02:00
Gianluca Iavicoli
523ede744a
Fix portrait image metadata when uploading without media optimization (#6362)
* fix(media): preserve image orientation metadata without optimization

* style: linting
2026-04-08 11:01:54 +02:00
Benoit Marty
e63a50b512
Merge pull request #6517 from element-hq/feature/bma/compound10
Sync compound tokens https://github.com/element-hq/compound-design-tokens/releases/tag/v10.0.0
2026-04-08 09:40:14 +02:00
ElementBot
6ad85d4dfc
Sync Strings (#6537)
* Sync Strings from Localazy

* Sync strings.

---------

Co-authored-by: bmarty <3940906+bmarty@users.noreply.github.com>
Co-authored-by: Benoit Marty <benoit@matrix.org>
2026-04-07 16:02:12 +02:00
Timur Gilfanov
fd92a2eef2 Remove default value for allowBlackTheme in mapToTheme 2026-04-05 12:34:25 +04:00
Timur Gilfanov
43bef7f1df Add isBlackThemeAllowed as a key to theme remember block 2026-04-05 12:34:07 +04:00
Timur Gilfanov
f19295d63d
Merge branch 'develop' into feature-oled-black 2026-04-05 12:06:20 +04:00
Timur Gilfanov
5e6a6af409 Add "Allow black theme" feature flag 2026-04-05 12:03:50 +04:00
Gianluca Iavicoli
4586ee31ea
fix: re-focus text input after voice recording ends 2026-04-02 22:20:13 +02:00
Gianluca Iavicoli
9a81ec5569
refactor: remove keyboard dismissal logic during voice recording 2026-04-02 22:14:04 +02:00
Benoit Marty
4ad495d36c
Add support for slash commands (under Feature Flag) (#6482)
* Add support for slash commands

* Update screenshots

* Rename module `slash` to `slashcommands`

* Rename `SlashCommand` to `SlashCommandService`

* Introduce MsgType in order to send text message with a different msgtype value.

* Format file and add parameter names, add default values and cleanup

* Add isSupported parameter to filter out unsupported yet commands.

* Slash commands: disable suggestions if the feature is disabled.

* Fix sending shrug command.

* Add missing test on SuggestionsProcessor

* Add tests on MessageComposerPresenter about slash command.

* Fix import ordering

* Add missing tests on CommandExecutor

* Add missing tests in MarkdownTextEditorStateTest

* Slash commands: Improve code when sending message with prefix.

* Slash commands: Add support for /unflip

---------

Co-authored-by: ElementBot <android@element.io>
2026-04-02 16:15:32 +02:00
Jorge Martin Espinosa
860def3965
Tentative fix for ForegroundServiceStartNotAllowedException (#6509)
* Tentative fix for `ForegroundServiceStartNotAllowedException`

When failing to start the service in foreground, don't crash. This is a helper to speed up the scheduling by keeping the CPU awake, not a critical part that should succeed

* Simplify `DefaultPushHandlingWakeLock`

It seems like restarting the service from background won't work in some cases, so don't try it.
2026-04-02 11:10:47 +02:00
ElementBot
13de580a51 Update screenshots 2026-04-02 07:52:20 +00:00
Benoit Marty
e401619017 Changer border color of InReplyTo to separatorPrimary 2026-04-02 09:37:15 +02:00
Benoit Marty
fe05c27232 Import token v10.0.0./tools/compound/import_tokens.sh -b v10.0.0 2026-04-01 18:08:32 +02:00
Jorge Martin Espinosa
410a3d132b
Add floating/sticky date badge in the timeline (#6496)
* Add floating date indicator while scrolling the timeline (#6433)

* Add `FeatureFlags.FloatingDateBadge`. This enables displaying the floating date badge in the timeline as you scroll.

* Don't display the floating badge if the timeline isn't reversed. Otherwise, this will affect talkback users and break the existing navigation

* Use `TimelineItem.formattedDate()` to get the date to display. Always try finding the closest one (usually it will be just the 1st one we try).

* Align designs with iOS. Also fix shadows in fade animation by adding some paddings.

* Update screenshots

---------

Co-authored-by: Gianluca Iavicoli <gianluca.iavicoli04@gmail.com>
Co-authored-by: ElementBot <android@element.io>
2026-04-01 10:45:57 +00:00