Commit graph

195 commits

Author SHA1 Message Date
Benoit Marty
8c5caabed4 Sign in with Classic 2026-04-13 11:16:05 +02:00
ganfra
1c5037f6e2 Add localazy config for location sharing 2026-03-24 11:13:40 +01:00
Benoit Marty
faa97ff2f1 Update wording from "Enter recovery key" to "Use recovery key" 2026-03-16 17:19:49 +01:00
Skye Elliot
1e268b0709
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
Benoit Marty
e8b14e62cf Sync all strings and fix compilation issue. 2026-01-26 14:13:06 +01:00
ganfra
e9a55ea79a Sync strings 2026-01-21 19:49:47 +01:00
ganfra
57b89d241f Add proper localization for space room removal UI 2026-01-15 12:14:08 +01:00
ganfra
7645588b0f localazy : sync strings
# Conflicts:
#	features/roomdetails/impl/src/main/res/values/localazy.xml
#	features/securityandprivacy/impl/src/main/res/values/localazy.xml
#	libraries/ui-strings/src/main/res/values/localazy.xml
2025-12-23 15:23:45 +01:00
Benoit Marty
3ea10c2c62
Merge pull request #5909 from element-hq/feature/bma/qrCodeLogin
Link new device using QrCode - First version
2025-12-18 16:08:21 +01:00
Benoit Marty
a073117d62 Link new device using QrCode. 2025-12-16 16:14:04 +01:00
ganfra
c4a542dbf1 localazy: download strings to match module 2025-12-10 15:14:35 +01:00
ganfra
c08de1f904 change(room details edit): move to his own module 2025-12-03 14:30:05 +01:00
ganfra
c6ba2f5d10 change(security and privacy) : extract code to a separate module 2025-11-26 12:32:06 +01:00
ElementBot
eff221645e
Sync Strings (#5792)
* Sync Strings from Localazy

* Update localazy config and sync strings.

* Use the new localazy key.

* Sync strings again

* Sync strings again and fix compilation issue.

* Update screenshots

---------

Co-authored-by: bmarty <3940906+bmarty@users.noreply.github.com>
Co-authored-by: Benoit Marty <benoit@matrix.org>
2025-11-24 17:28:49 +01:00
Jorge Martin Espinosa
95c9e768f4
Use regex to check forbidden terms. (#5784)
We were returning and `Elementul` as a match for the forbidden term `Element`. It now checks for the full word.
2025-11-21 17:01:01 +01:00
Benoit Marty
017a259f1c Update notification content 2025-11-14 15:40:31 +01:00
Benoit Marty
eb31505dc7 Copyright: Add Element Creations Ltd. copyright 2025-11-10 11:05:05 +01:00
Benoit Marty
f86431e663 Copyright: Add final period 2025-11-10 10:13:41 +01:00
Benoit Marty
c4e0370f41 Copyright: run command uv run license-editor --repository ../element-x-android 2025-11-10 10:09:26 +01:00
ganfra
d9695ae6a0 change(roles and permissions): change title for space 2025-11-05 21:42:51 +01:00
ganfra
83a4457d6e Merge branch 'develop' into feature/fga/role_and_permissions_rework 2025-11-05 20:29:04 +01:00
ganfra
ec207a548b change(roles and permissions): fix localazy strings 2025-11-03 18:35:18 +01:00
ganfra
4a56b13ecc feature(space) : update some strings 2025-10-31 15:01:03 +01:00
Benoit Marty
a584a5c1c6 Update Localazy config and sync all the strings. 2025-10-07 15:53:53 +02:00
Jorge Martin Espinosa
9714abe032
Add Labs screen for beta testing of public features (#5465)
* Add Labs screen:

- Make `Feature` have an `isInLabs` boolean to distinguish private feature flags from public ones.
- Have `FeatureFlagsService` provide the list of available flags.
- Display the labs item in the settings screen only if there are available public features.
- Remove public feature toggles from developer options.
- Implement the labs screen with the public features.
- Add a clear cache step to the threads feature toggle
- Update screenshots

---------

Co-authored-by: ElementBot <android@element.io>
2025-10-07 10:02:54 +00:00
Benoit Marty
2907f762f6 Announcement for Spaces 2025-10-03 00:15:27 +02:00
Benoit Marty
74c2ee46d8 Leave space - Add screen to leave a space. 2025-09-26 14:14:00 +02:00
Benoit Marty
fa14e4c106 Add notification troubleshoot test about blocked users. 2025-09-23 08:59:40 +02:00
Benoit Marty
003249faa6 Use string from Localazy. 2025-08-14 11:46:28 +02:00
Benoit Marty
186d06c73e Cleanup Localazy config and do a sync. 2025-08-13 17:41:44 +02:00
ganfra
41cf1afce3 refactor (start chat) : start splitting things (create room, invite people, start chat) 2025-08-13 11:06:42 +02:00
Jorge Martin Espinosa
adc61b3826
Add media file limit size warning and media quality selection (#5131)
* Add `VideoCompressorPreset` enum

This represents the different compression presets used for processing videos before uploading them

* Add `VideoCompressorHelper` util class to calculate the scaled output size of the video given an input size and its optimal bitrate

Also add `MediaOptimizationConfig` which will be used to decide how to apply compression in `MediaPreProcessor`

* Add `RustMatrixClient.getMaxFileUploadSize()` function and `MaxUploadSizeProvider` so we can import only this functionality into other components

* Try preloading the max file upload size the first time we get network connectivity - it's a best effort

This should help ensure we'll have this value available later, even if we still need to load it asynchronously.

* Split the `compressMedia` preference into `compressImages` and `compressMediaPreset`

* Modify the media processing parts to use the new classes and utils

* Add `MediaOptimizationSelectorPresenter`, which will retrieve the compression values and the max file upload size, also estimating the compressed video file sizes if needed.

* Add a feature flag to allow selecting the media upload quality per upload

* Integrate the previous changes with the attachments preview screen

Add strings from localazy too.

* Adapt the rest of the app calls to upload media to using the media optimization configs

* Allow modifying the default compression values in advanced settings, based on the feature flag value

* Pass the `fileSize` in `MediaUploadInfo` too, to be able to check it against the `maxUploadSize`

* Update screenshots

---------

Co-authored-by: ElementBot <android@element.io>
2025-08-11 17:22:46 +02:00
Jorge Martin Espinosa
1a335698c0
Force last owner of a room to pass ownership when leaving (#5094)
* Move `ChangeRoles*` classes to their own module so they can be shared

* Hook the change roles screen to the leave room action, add confirmation dialogs

* Use enum instead of sealed interface for `ChangeRoomMemberRolesListType`

* Try to improve communications between nodes

* refactor (leave room) : makes sure to expose only necessary code from api module

* Add `:libraries:previewutils` module to share some test fixtures used for UI previews

* Update screenshots

---------

Co-authored-by: ElementBot <android@element.io>
Co-authored-by: ganfra <francoisg@matrix.org>
2025-08-05 17:24:14 +02:00
renovate[bot]
040fde7f22
Update dependency org.matrix.rustcomponents:sdk-android to v25.7.23 (#5073)
* Update dependency org.matrix.rustcomponents:sdk-android to v25.7.23

* Adapt to SDK changes:

- Add 'creator' role, adapt existing logic to it.
- Remove `ReplyParameters`, replace with `EventId` where possible.
- Fix changes in OIDC auth methods.
- Add more join rules.

* Make sure both creators and users with power level >= 150 are displayed as 'owners' in the room member list.

* Don't close the roles and permissions screen if the user is a creator

* Use `MediaPreviewValue.DEFAULT` for `MediaPreviewConfig.DEFAULT` too

* Improve APIs around checking roles and power levels:
    - Ensure `RoomInfo.RoomPowerLevels.users` can't be directly used to check power levels since it can't check the power levels for creators.
    - Add a few helper functions to handle actions that relied on the previous `users` property, and docs to explain their usages.

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Jorge Martín <jorgem@element.io>
2025-07-24 11:58:30 +02:00
Benoit Marty
36ad2432e1 Use icon for Spaces and update label and navigation bar design and behavior. 2025-07-08 10:28:26 +02:00
Benoit Marty
60083ad5ea Rename module roomlist to home 2025-06-27 15:24:50 +02:00
ganfra
e2b1ab2632 Merge branch 'develop' into feature/fga/room-version-upgrade 2025-06-16 20:46:28 +02:00
Benoit Marty
8f94b4cd0e
Merge pull request #4845 from element-hq/feature/bma/batteryOptimization
Add a banner to ask the user to disable battery optimization when Event cannot be resolved from Push
2025-06-16 11:19:15 +02:00
Jorge Martin Espinosa
c598b0699e
Disable BT audio devices for Element Call on Android < 12 (#4876)
Display an error dialog muting the call when a bluetooth audio device is selected on Android 11 or lower, re-enable the audio once another device is used.
2025-06-13 16:29:07 +02:00
Benoit Marty
d15a352f74 Improve accessibility of Poll answers. 2025-06-13 10:15:37 +02:00
Benoit Marty
d5dfceded7 Battery optimization banner: update wording. 2025-06-12 17:40:38 +02:00
ganfra
94e678a905 feature (room upgrade) : sync translations 2025-06-11 10:46:40 +02:00
ganfra
abc5547aa3 Merge branch 'develop' into feature/fga/user_moderation_bottomsheet 2025-06-03 10:46:12 +02:00
Jorge Martin Espinosa
d5b97ed5af
Use Localazy's langAliases for Indonesian (#4801) 2025-06-02 12:05:55 +02:00
ganfra
2e1eb900a4 Merge branch 'develop' into feature/fga/user_moderation_bottomsheet 2025-05-23 17:28:48 +02:00
ganfra
b1441e1afd change (member moderation) : sync strings 2025-05-21 18:30:45 +02:00
Benoit Marty
150239bcd8
Merge on boarding module to login module (#4746)
* Move onboarding code to the login module.

* Remove OnBoardingEntryPoint, move the flow to LoginFlowNode

* Update screenshots

---------

Co-authored-by: ElementBot <android@element.io>
2025-05-20 08:54:23 +02:00
ganfra
58d9b12ab3 change (member moderation) : extract in a separate module 2025-05-14 11:19:07 +02:00
ganfra
0b83e66733
Feature : Report room (#4654)
* feature (report room) : introduce all presentation classes.

* feature (report room) : branch entry point in the room list

* refactor (matrix ui) : move some code from appnav to matrix ui

* feature (report room) : add api on room

* feature (report room) : adjust ui

* feature (report room) : branch api

* feature (decline invite and block) : move things around and introduce presentation classes

* feature (decline invite and block) : continue to move things

* feature (report room) : remove reference to "conversation" for now

* feature (report room) : add report room action to room detail screen

* feature (report room) : enabled button state

* feature (report room) : improve code and reuse

* feature (report room) : add feature flag

* feature (report room) : change feature flag to static bool

* feature (report room) : add tests

* feature (report room) : fix ui with new api on ListItem

* feature (report room) : clean up and add more tests.

* Update screenshots

* feature (report room) : more test and fix issue

* feature (report room) : update strings

* feature (report room) : fix konsist preview

* feature (report room) : disable feature

* Update screenshots

* var -> val

* Improve preview of AcceptDeclineInviteView

* Improve preview consistency

* Add missing test on DismissErrorAndHideContent

* Update screenshots

* Add missing tests

---------

Co-authored-by: ElementBot <android@element.io>
Co-authored-by: Benoit Marty <benoit@matrix.org>
2025-05-02 12:25:19 +02:00
Benoit Marty
c7f0566dc1
Introduce PushHistoryService to store data about the received push (#4573)
* Introduce PushHistoryService to store data about the received push

Add a push database.

* Update screenshots

* Improve preview.

* Update screenshots

* Add missing test.

* Add test for PushHistoryView

* Fix configuration issue.

Was: w: /libraries/troubleshoot/impl/src/test/kotlin/io/element/android/libraries/troubleshoot/impl/history/PushHistoryPresenterTest.kt:35:27 Cannot access class 'PushProvider' in the expression type. While it may work, this case indicates a configuration mistake and can lead to avoidable compilation errors, so it may be forbidden soon. Check your module classpath for missing or conflicting dependencies.

---------

Co-authored-by: ElementBot <android@element.io>
2025-04-11 12:56:54 +02:00