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