Commit Graph

410 Commits

Author SHA1 Message Date
Benoit Marty 6989e10c19 Add string to Localazy 2025-08-13 16:59:12 +02:00
Benoit Marty 0dba05be0a Cleanup codebase 2025-08-13 16:56:33 +02:00
ganfra 1edd419915 refactor (start chat) : properly finish create room flow 2025-08-13 11:06:45 +02:00
ganfra 74f6a83219 refactor (start chat) : use invite people module in room details screen 2025-08-13 11:06:45 +02:00
ganfra bfd1182baf refactor (start chat) : remove useless code 2025-08-13 11:06:44 +02:00
ganfra b4a8b17391 refactor (start chat) : create invite people module and start branching them 2025-08-13 11:06:43 +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
Benoit Marty 27ad6217ec Cleanup: Remove unused class 2025-08-05 09:17:06 +02:00
Benoit Marty 41783eb599 [a11y] Improve accessibility on avatar when creating a room. 2025-07-17 16:46:34 +02:00
ElementBot d9ede0544c Sync Strings from Localazy (#4983)
Co-authored-by: bmarty <3940906+bmarty@users.noreply.github.com>
2025-07-04 14:37:59 +00:00
Benoit Marty 70aa31df00 [a11y] Ensure that heading() is applied to all screen titles. 2025-07-04 12:15:42 +02:00
bmarty 284241a4ec Sync Strings from Localazy 2025-06-30 00:33:54 +00:00
Benoit Marty 045ca6fbb2 Ensure AvatarSize is correctly used in UnsavedAvatar, instead of hard coded size. 2025-06-24 09:58:16 +02:00
Benoit Marty 3669128e60 Introduce AvatarType to be able to render space avatars 2025-06-23 17:08:14 +02:00
ElementBot 520c1293b6 Sync Strings from Localazy (#4842)
Co-authored-by: bmarty <3940906+bmarty@users.noreply.github.com>
2025-06-11 14:13:33 +02:00
Jorge Martin Espinosa 07af7cc643 fix: Make Client.findDM return a Result (#4816) 2025-06-04 08:41:26 +00:00
Jorge Martin Espinosa efdc10e60a Add catchingExceptions method to replace runCatching (#4797)
- Add `runCatchingExceptions` and `mapCatchingExceptions` to replace `runCatching` and `mapCatching`.
- Make `tryOrNull { ... }` catch only exceptions too.
- Apply the changes to the whole project.
- Add new Rust fakes for tests to handle the code that's now unblocked - previously it just threw an `UnsatisfiedLinkError` which we ignored.
- Add a new `detekt-rules` project with a `RunCatchingRule` to prevent `runCatching` and `mapCatching` usages.
2025-06-04 09:02:26 +02:00
renovate[bot] 7bb1e24ff5 fix(deps): update dependency androidx.compose:compose-bom to v2025.04.01 (#4631)
* fix(deps): update dependency androidx.compose:compose-bom to v2025.04.01

* Fix autofill deprecations

* Adapt our custom BottomSheetState and scaffold to the new APIs

* Get rid of all the custom bottom sheet implementation

It doesn't seem to be needed anymore 🎉

* Replace `semantics { invisibleToUser() }`  with `hideFromAccessibility()`

* Update screenshots

* Add commit and cancel callbacks for autofill on the login view

* Fix broken tests caused mainly by https://issuetracker.google.com/issues/366255137

Add `LocalUiTestMode` composition local and helper functions.

* Remove dependency that caused a new license to need to be approved

* Let setSafeContent handle setting the value for LocalUiTestMode

* Fix broken test

* Apply fix to RoomMemberModerationViewTest and RoomListDeclineInviteMenuTest

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Jorge Martín <jorgem@element.io>
Co-authored-by: ElementBot <android@element.io>
Co-authored-by: Benoit Marty <benoit@matrix.org>
2025-06-03 21:05:43 +00:00
ElementBot 87c376cfb6 Sync Strings from Localazy (#4804)
Co-authored-by: bmarty <3940906+bmarty@users.noreply.github.com>
2025-06-02 12:05:08 +02:00
ElementBot e8f29a38bf Sync Strings (#4775) 2025-05-30 08:47:39 +00:00
ElementBot bfa05ece67 Sync Strings from Localazy (#4677)
Co-authored-by: bmarty <3940906+bmarty@users.noreply.github.com>
2025-05-05 12:11:22 +02:00
ElementBot 847f8fcbf6 Sync Strings from Localazy (#4648)
Co-authored-by: bmarty <3940906+bmarty@users.noreply.github.com>
2025-04-28 10:59:35 +02:00
Jorge Martin Espinosa 619aa6f2de Split MatrixRoom into BaseRoom and JoinedRoom (#4561)
`JoinedRoom` will now contain both a mandatory live timeline reference and all the functionality associated to it.

`BaseRoom` on the other hand will contain only functionality that's shared for both joined and not joined rooms.

`NotJoinedRoom` is a wrapper around `RoomPreviewInfo` data and a possible local `BaseRoom`, if it exists.

The `RustRoomFactory` cache is now gone since the persistent event cache should have the same effect.
2025-04-23 15:53:40 +02:00
ElementBot e3a32ba52e Sync Strings from Localazy (#4612)
Co-authored-by: bmarty <3940906+bmarty@users.noreply.github.com>
2025-04-22 08:57:00 +02:00
ElementBot d9bfcc6c52 Sync Strings (#4590)
* Sync Strings from Localazy

* Fix strings usage after some were moved

* Fix Norwegian string that was causing lint to fail

* Update screenshots

---------

Co-authored-by: bmarty <3940906+bmarty@users.noreply.github.com>
Co-authored-by: Jorge Martín <jorgem@element.io>
2025-04-14 11:24:28 +02:00
Benoit Marty a230b83e99 Remember flows (#4533)
* Add Konsist test to ensure that the result of a function returning a flow is remembered.

* Remember flows before they are collected by state.

* Fix compilation issue

* Make isOnline a val.

* Make selectedUsers() a val.

* Make flow() a val.

* Make getUserConsent(), didAskUserConsent() and getAnalyticsId() some val.

* Remove Timeline.paginationStatus() and replace by direct access to the underlined flow.

* Simplify test

* userConsentFlow must be initialized before because it's used in observeUserConsent

* Fix test compilation
2025-04-04 16:50:43 +02:00
ElementBot c3ee00ed09 Sync Strings from Localazy (#4506)
Co-authored-by: bmarty <3940906+bmarty@users.noreply.github.com>
2025-03-31 10:58:46 +02:00
ElementBot 8f0075e367 Sync Strings (#4461)
* Sync Strings from Localazy

* Fix UI tests

---------

Co-authored-by: bmarty <3940906+bmarty@users.noreply.github.com>
Co-authored-by: Jorge Martín <jorgem@element.io>
2025-03-24 16:45:24 +00:00
ElementBot 17193ad35a Sync Strings from Localazy (#4421)
Co-authored-by: bmarty <3940906+bmarty@users.noreply.github.com>
2025-03-17 09:54:03 +01:00
bmarty 9a75f40855 Sync Strings from Localazy 2025-03-10 00:28:38 +00:00
ganfra 3bbf9bbad4 Merge pull request #4348 from element-hq/feature/fga/move_room_directory_entry
change(room directory) : move the the room directory entry
2025-03-04 11:23:39 +01:00
ganfra 6af226dc00 change(room directory) : move the the room directory entry from room list filter to start chat screen. 2025-03-04 10:56:16 +01:00
Benoit Marty 491bb1d8fe Merge pull request #4346 from element-hq/sync-localazy
Sync Strings
2025-03-03 11:00:16 +01:00
bmarty 46acf414c1 Sync Strings from Localazy 2025-03-03 00:29:16 +00:00
ganfra 8e68490215 change(create room) : use history visibility "invited" when creating private room 2025-02-27 17:26:10 +01:00
ganfra 25d39c285b feat(join by alias) : add TextFieldValidity.None instead of nullable 2025-02-25 20:27:54 +01:00
ganfra 6f8ca62261 feat(join by alias) : format code 2025-02-25 15:56:14 +01:00
ganfra 14082bcd5b feat(join by alias) : add tests 2025-02-25 15:55:42 +01:00
ganfra c220fb085a feat(join by alias) : makes sure to pass server names 2025-02-25 15:55:42 +01:00
ganfra 818af20f39 feat(join by alias) : use localazy strings 2025-02-25 15:55:42 +01:00
ganfra b42825c5a3 feat(join by alias) : use correct room icon 2025-02-25 15:45:43 +01:00
ganfra 676032d0fb feat(join by alias) : improve state management 2025-02-25 15:45:43 +01:00
ganfra 41fe0f1c75 feat(join by alias) : better address keyboard config 2025-02-25 15:45:43 +01:00
ganfra 786c2adc97 design(text field) : allow setting validity (instead of just isError bool) 2025-02-25 15:45:43 +01:00
ganfra 498f63e25e feat(join by alias) : introduce the JoinRoomByAddress 2025-02-25 15:45:42 +01:00
ganfra 2bfa62922c feat(join by alias) : refactor navigation for create room flow 2025-02-25 15:45:42 +01:00
bmarty f549e7bba2 Sync Strings from Localazy 2025-02-17 00:30:17 +00:00
Benoit Marty 5456f0e38e Merge pull request #4226 from element-hq/feature/bma/themeOverride
Theme override
2025-02-06 16:48:16 +01:00
Jorge Martin Espinosa 3c87fb05b2 Create SyncOrchestrator (#4176)
* Create `SyncOrchestrator` to centralise the sync start/stop flow through the whole app: the decision is based on several inputs: sync state, network available, app in foreground, app in call, app needing to sync an event for a notification.

* Make network monitor return network connectivity status, not internet connectivity

* Don't stop the `SyncService` when network connection is lost, let it fail instead. This prevents an issue when using the offline mode of the SDK, which made the wrong UI states to be shown when the `SyncState` is `Idle` (that is, after the service being manually stopped).

* Rename `NetworkStatus.Online/Offline` to `Connected/Disconnected` so they're not easily mistaken with internet connectivity instead
2025-02-06 16:36:57 +01:00