Commit Graph

330 Commits

Author SHA1 Message Date
Benoit Marty
e8a489b5cd SAS emoji: use embedded drawable (#1953) 2023-12-06 14:10:05 +01:00
Benoit Marty
e9b7f3d52a Merge pull request #1961 from vector-im/feature/bma/keyBackupIteration
Key backup iteration
2023-12-06 11:18:50 +01:00
Benoit Marty
436220d6f6 Map new CALL_MEMBER state, and fix issue on fun canUserJoinCall(). 2023-12-06 10:40:59 +01:00
Benoit Marty
89a9da81e9 Map RecoveryException 2023-12-05 18:11:33 +01:00
Benoit Marty
1131bc88c9 Follow SDK method renaming: fix_recovery_issues() got renamed to recover() 2023-12-05 17:40:47 +01:00
Benoit Marty
c0dac24a60 Add notification setting to enable/disable being notified for room invite (#1944) 2023-12-04 17:50:21 +01:00
ganfra
1c56addb2b Merge pull request #1938 from vector-im/feature/fga/user_detail_direct_chat
Feature/fga/user detail direct chat
2023-12-01 13:46:01 +01:00
ganfra
8ff2454ed0 StartDMAction : small improvements after review 2023-12-01 11:28:29 +01:00
ganfra
270c4612f5 Merge pull request #1920 from vector-im/feature/fga/dynamic_room_list_incremental_load
RoomList: introduce incremental loading to improve performances.
2023-11-30 19:51:13 +01:00
ganfra
03a2e31d46 Merge branch 'develop' into feature/fga/user_detail_direct_chat 2023-11-30 18:10:51 +01:00
ganfra
cd28687eb4 StartDM : add tests 2023-11-30 18:05:26 +01:00
ganfra
118f1c1459 Add StartDMAction to further share code 2023-11-30 13:07:24 +01:00
Jorge Martin Espinosa
0a91184e4a Set a default power level to join calls in room (#1927)
* Set a default power level to join calls.

Also, create new rooms taking this power level into account.

* Modify test to make sure we display the disabled state even when there is an ongoing call

---------

Co-authored-by: ElementBot <benoitm+elementbot@element.io>
2023-11-30 09:47:48 +00:00
ganfra
69d0a5c7b1 Creates a startDM method so we can reuse it for the new flow 2023-11-29 16:16:09 +01:00
Jorge Martin Espinosa
c739ebc0ee Try to make all collections used in Compose code immutable (#1922)
* Try to make all collections used in Compose code immutable.

Mark sealed interfaces as `@Immutable` too

* Add gradle code to check the compose compiler reports

* Fix some more unstable classes
2023-11-29 15:02:08 +00:00
ganfra
a324e18982 RoomList: introduce incremental loading to improve performances. 2023-11-29 11:53:15 +01:00
Marco Romano
c6fdc79f83 Upgrade to rust sdk 0.1.71 (#1905)
https://github.com/matrix-org/matrix-rust-components-kotlin/releases/tag/sdk-v0.1.71

There are breaking changes as specified in: https://github.com/vector-im/element-x-android/issues/1898 plus the one related to the poll history feature.
2023-11-29 10:34:51 +01:00
Benoit Marty
04be1f0385 Use kotlin.time.Duration instead of java.time.Duration. Also use Duration in TimelineItemVideoContent, like in TimelineItemAudioContent and TimelineItemVoiceContent 2023-11-27 21:58:58 +01:00
jonnyandrew
634d8167ea Allow polls to be edited (#1869)
Polls can be edited if they do not have any votes

---------

Co-authored-by: ElementBot <benoitm+elementbot@element.io>
2023-11-24 16:47:58 +00:00
Benoit Marty
73a062451c Remove UnknownMessageType, should be handled by OtherMessageType now. 2023-11-23 20:18:53 +01:00
ganfra
6e4635b4cd Merge pull request #1865 from vector-im/feature/fga/room_list_dynamic_api
RoomList : rework a bit the api and make usage of entriesWithDynamicAdapter
2023-11-23 12:07:55 +01:00
Jorge Martin Espinosa
f55d347387 Add plain text representation of messages (#1850)
* Add plain text representation of messages.

This is used in the room list as the last message in a room, in the message summary when a message is selected, in the 'replying to' block, in the 'replied to' block in a message in the timeline, and in notifications.
2023-11-23 08:29:20 +01:00
ganfra
d04b26365d RoomList : rework a bit the api and make usage of entriesWithDynamicAdapters 2023-11-22 18:06:19 +01:00
Jorge Martin Espinosa
a52d78c3b3 Add intentional mentions (#1843)
* Add intentional mentions
2023-11-21 17:34:00 +01:00
Jorge Martin Espinosa
b8ee82a912 Integrate mentions in the composer (#1799)
* Integrate mentions in the composer:

    - Add `MentionSpanProvider`.
    - Add custom colors needed for mentions.
    - Use the span provider to render mentions in the composer.
    - Allow selecting users from the mentions suggestions to insert a mention.

---------

Co-authored-by: ElementBot <benoitm+elementbot@element.io>
2023-11-20 18:14:02 +01:00
Benoit Marty
71ef0c3c78 Merge pull request #1834 from vector-im/feature/bma/readReceipts
Render send state and read receipts
2023-11-20 14:39:13 +01:00
Benoit Marty
3c79390e45 BackupState.DISABLED has been removed. Now when the value is UNKNOWN, the app need to invoke EncryptionService.doesBackupExistOnServer() to check if a Backup exists. 2023-11-17 17:32:14 +01:00
Benoit Marty
3d2d0bff6a Read receipts: mapping 2023-11-16 14:05:00 +01:00
Benoit Marty
968a4d3fd0 Add a View to show the beginning of the timeline (parity with iOS) 2023-11-14 17:31:42 +01:00
Jorge Martin Espinosa
d29052eb47 Add active call icon to room list summaries (#1792)
Co-authored-by: ElementBot <benoitm+elementbot@element.io>
2023-11-13 15:35:11 +00:00
Benoit Marty
79806852ca Move Knit to Gradle catalog and use alias(libs.plugins.kotlin.serialization). Fix issue with JNA 2023-11-13 09:58:00 +01:00
Benoit Marty
765ede0093 Replace hard-coded value by value from gradle datalog 2023-11-10 16:25:58 +01:00
Marco Romano
8f1b699271 Don't leak MediaFileHandle when downloading voice messages (#1748)
Uses the new `MediaFile.persist()` [API](https://github.com/matrix-org/matrix-rust-sdk/pull/2789) to cache voice messages.
This allows to close the `MediaFile` handle after use and keeping the file.
Also disables rust sdk caching for voice messages as we'll use the app's cache dir for that purpose.

Fixes: https://github.com/vector-im/element-meta/issues/2175
2023-11-09 14:15:11 +00:00
Benoit Marty
18ec3ae7c8 Merge pull request #1769 from vector-im/feature/bma/chatBackupWaitingForSync
Ensure BackupState and RecoveryState values are set from the SDK only…
2023-11-09 09:21:51 +01:00
renovate[bot]
dd57197f32 Update kotlin (#1697)
* Update kotlin

* Lower Sonar RAM usage, remove redundant `Dkotlin.daemon.jvm.options`

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Jorge Martín <jorgem@element.io>
2023-11-08 12:58:14 +00:00
Benoit Marty
8d3af2a1fc Ensure BackupState and RecoveryState values are set from the SDK only when the first sync is finished. 2023-11-08 11:33:02 +01:00
Benoit Marty
8b85aa51e2 Konsist: check that if sealed interface is used in parameter of Composable, it has the @Stable or @Immutable annotation 2023-11-03 15:19:55 +01:00
Benoit Marty
c5f3562454 Konsist: check if sealed class could be sealed interface and fix existing issues. 2023-11-03 15:19:55 +01:00
Jorge Martin Espinosa
3fc8f1aaec Use Parallel GC and bump RAM usage (#1734)
* Use Parallel GC and bump RAM usage

* Build only `app` project in `Build APKs (debug)` flow.

* Remove redundant JNA dependency
2023-11-03 10:34:49 +01:00
Benoit Marty
72ba9997a2 Sign out: handle no network error. 2023-10-31 21:03:43 +01:00
Benoit Marty
898392dde2 Map new state BackupUploadState.Error 2023-10-31 21:03:43 +01:00
Jorge Martin Espinosa
f7f3925fc9 [Element Call] Keep MatrixClient alive while the call is working (#1695)
* Element Call: keep MatrixClient alive to get event updates
2023-10-31 16:58:33 +01:00
Benoit Marty
29e1e9b316 Secure Storage: improve API for waitForBackupUploadSteadyState() 2023-10-30 20:16:18 +01:00
Marco Romano
d05dd11485 Split VoiceMessageType from AudioMessageType (#1664)
Currently, for compatibility reasons, we implement MSC3245v1 which puts the voice data inside an audio message type. Though at times it seems impractical to deal with a single message type which effectively represents 2 different kinds of messages.

This PR creates a new message type called `VoiceMessageType` which is used whenever we receive an event with `"msgtype": "m.audio"` which also has the `"org.matrix.msc3245.voice": {}` field. This makes it easier to process voice messages as different entities throughout the rest of the codebase.
2023-10-27 16:02:16 +02:00
Marco Romano
1014380e32 Always treat waveform as List<Float> (#1663)
[MSC3246](https://github.com/matrix-org/matrix-spec-proposals/pull/3246) specifies the waveform as a list of ints because:

> Because floating point numbers are not allowed in Matrix events

Though DSP on audio data is almost always done using their floating point representation.
This PR brings the float<->int rescaling in the `matrix` module so that the application code can always work with float waveform samples.
2023-10-27 12:49:58 +00:00
Jorge Martin Espinosa
0bd9c78836 Initial support for member suggestions (#1631)
* Initial support for member suggestion (search and UI)

* Add custom `BottomSheetScaffold` implementation to workaround several scrolling bugs

* Start searching as soon as `@` is typed, add UI following initial designs

* Extract suggestion processing code

* Extract component, add previews, fix tests

* Add tests

* Add exception from kover to the forked bottom sheet code

* Add a feature flag for mentions

- Extract composer & mention suggestions to their composable.
- Extract mentions suggestions processing to its own class.
- Add `MatrixRoom.canTriggerRoomNotification` function.
- Update strings and conditions for displaying the `@room` mention.

---------

Co-authored-by: ElementBot <benoitm+elementbot@element.io>
2023-10-27 10:26:40 +00:00
Benoit Marty
b5ffa6eef3 SecureBackup: update matrix sdk module. 2023-10-26 18:02:34 +02:00
Jorge Martin Espinosa
c40a39bbfa Update the chat screen UI using RoomInfo. (#1640)
* Update the chat screen UI using `RoomInfo`.

This is specially useful for getting live values for `hasRoomCall`.

* Ensure the first `MatrixRoomInfo` is emitted ASAP

* Try excluding `*Present$present$*` inner functions from kover as separate entities

* Update strings

---------

Co-authored-by: ElementBot <benoitm+elementbot@element.io>
2023-10-26 14:27:42 +00:00
David Langley
e388ea21b6 Merge branch 'develop' into dla/feature/custom_room_notification_settings_list 2023-10-24 17:20:15 +01:00
Benoit Marty
1fa745dcbd Add BackupState and BackupStateMapper from the feature/bma/secureBackup branch to ensure that we do not upgrade the SDK with no support of KeyBackup.
This will act as a poison pill to avoid mistake when building new version of the SDK.
2023-10-24 11:12:06 +02:00