Commit Graph

279 Commits

Author SHA1 Message Date
Benoit Marty 2f62779ad4 Sign out: handle no network error. 2023-10-31 21:03:43 +01:00
Benoit Marty 20d6383b8a Map new state BackupUploadState.Error 2023-10-31 21:03:43 +01:00
Jorge Martin Espinosa 355ee95964 [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 90b377b3a5 Secure Storage: improve API for waitForBackupUploadSteadyState() 2023-10-30 20:16:18 +01:00
Marco Romano a07286ace9 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 0e4141863b 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 44de6adb86 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 3a15b92eb6 SecureBackup: update matrix sdk module. 2023-10-26 18:02:34 +02:00
Jorge Martin Espinosa 030e86f56b 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 4784235f8d Merge branch 'develop' into dla/feature/custom_room_notification_settings_list 2023-10-24 17:20:15 +01:00
Benoit Marty 04ed06cf9a 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
Jorge Martin Espinosa fc8d16693b Set tracing of matrix_sdk_ui::timeline to trace (#1630) 2023-10-24 09:37:41 +02:00
renovate[bot] 244c45797f Update dependency org.matrix.rustcomponents:sdk-android to v0.1.63 (#1619)
* Update dependency org.matrix.rustcomponents:sdk-android to v0.1.63

* Update Element Call integrated APIs

* Take into account the new `MessageType.Other` from the SDK

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Jorge Martín <jorgem@element.io>
Co-authored-by: Benoit Marty <benoit@matrix.org>
2023-10-20 22:32:59 +02:00
Marco Romano f787867e87 Document the nuances in UserId and SessionId types. (#1616) 2023-10-20 12:25:20 +00:00
Jorge Martin Espinosa 46f78ef700 Integrate Element Call with widget API (#1581)
* Integrate Element Call with widget API.

- Add `appconfig` module and extract constants that can be overridden in forks there.
- Add an Element Call feature flag, disabled by default.
- Refactor the whole `ElementCallActivity`, move most logic out of it.
- Integrate with the Rust Widget Driver API (note the Rust SDK version used in this PR lacks some needed changes to make the calls actually work).
- Handle calls differently based on `CallType`.
- Add UI to create/join a call.

---------

Co-authored-by: ElementBot <benoitm+elementbot@element.io>
2023-10-19 15:38:43 +00:00
David Langley e2adecbcf4 Merge branch 'develop' into dla/feature/custom_room_notification_settings_list 2023-10-19 16:36:30 +01:00
Marco Romano 5a7f77bc92 Extract more content from audio messages. (#1607)
`TimelineItemAudioContent`:
- Use `java.time.Duration` instead of milliseconds. This will ease up things in the future because currently milliseconds are sent over the wire but in the future seconds will be sent (as per the stable MSC). Using `Duration` will allow our downstream code to be independent of what's passed over the wire.
- Rename `audioSource` property to `mediaSource` to better match its type.

`AudioMessageType`:
- Add and populate new fields `details` and `isVoiceMessage` to be used by voice messages.
2023-10-19 13:32:43 +02:00
David Langley 87b8bfe99d Merge branch 'develop' of https://github.com/vector-im/element-x-android into dla/feature/custom_room_notification_settings_list 2023-10-18 22:07:14 +01:00
renovate[bot] 054d0a7145 Update dependency org.matrix.rustcomponents:sdk-android to v0.1.62 (#1562)
* Update dependency org.matrix.rustcomponents:sdk-android to v0.1.62
* Add `sendVoiceMessage()` API from https://github.com/matrix-org/matrix-rust-sdk/pull/2697
* Fix other breaking changes

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Marco Romano <marcor@element.io>
2023-10-13 08:19:30 +00:00
Benoit Marty 7389748f3e Konsist: add rule obout test class name, and fix existing issue 2023-10-12 15:03:50 +02:00
Benoit Marty 7d985d4588 Merge pull request #1549 from vector-im/feature/bma/unknownMsgtype
Render unknown msgtype
2023-10-12 10:56:35 +02:00
Benoit Marty 88ca37984f Merge pull request #1520 from vector-im/feature/bma/sessionDb
Improve session db and improve deleted session behavior
2023-10-11 16:56:54 +02:00
Benoit Marty 8c2a5f281b MessageContent.type cannot be null 2023-10-11 16:14:15 +02:00
Benoit Marty 1b0e044565 Move OtherState to its own file. 2023-10-11 16:06:49 +02:00
Benoit Marty 8482e2da6f Move FormattedBody to its own file. 2023-10-11 16:05:47 +02:00
Benoit Marty d8a30f30c5 Move MembershipChange to its own file. 2023-10-11 16:05:19 +02:00
Benoit Marty 4c97a63cd3 Move MessageFormat to its own file. 2023-10-11 16:04:41 +02:00
Benoit Marty 9cb8537c4e Move MessageType to its own file. 2023-10-11 16:03:18 +02:00
Benoit Marty 2962032fe5 Move InReplyTo to its own file. 2023-10-11 16:01:36 +02:00
Benoit Marty 97fea4e6dd data object 2023-10-10 17:31:04 +02:00
Benoit Marty 6be984efc8 Do not restore session with invalid token. 2023-10-10 10:20:31 +02:00
Benoit Marty 124d6bf95f SignedOut mode - WIP 2023-10-10 10:20:31 +02:00
Jorge Martin Espinosa 6a7713a6f8 Improve coverage in permalinks package (#1502)
* Improve coverage in permalinks package
2023-10-06 11:37:26 +02:00
Benoit Marty 0edf53de5f Convert object to data object 2023-10-05 10:43:00 +02:00
Benoit Marty 34d05e01eb Fetch edited event in advanced (similar to reply mode). 2023-10-04 17:38:17 +02:00
Marco Romano fc205698c6 Display poll notifications in the notification drawer (#1467)
Display notifications for polls as if they were message events.
2023-09-29 16:57:03 +02:00
ganfra 74735605e4 Room : makes subscribeToSync/unsubscribeFromSync suspendable and makes sure we keep subscription count 2023-09-28 20:16:19 +02:00
Benoit Marty c9c7af6e06 Simplify the management of inReplyToEventTimelineItem 2023-09-27 11:31:12 +02:00
Benoit Marty a192a8823f Ensure getEventTimelineItemByEventId is called when we enter in reply mode. 2023-09-27 10:48:31 +02:00
Benoit Marty cf657df5fd Fix API break with Matrix SDK 0.1.58. 2023-09-27 09:44:58 +02:00
David Langley 752da37383 Add roomsWithUserDefinedRules data and render list
- get roomsWithUserDefinedRules from rust
- add to state in the presenter
- render in the edit defaults view as a list
2023-09-22 16:16:52 +01:00
David Langley bc29a31986 Merge branch 'develop' into dla/feature/room_list_decoration 2023-09-18 10:34:32 +01:00
Jorge Martín 149677a2e6 Add preference screen for user profile 2023-09-15 12:16:47 +02:00
David Langley 9a234a875c Merge branch 'develop' of https://github.com/vector-im/element-x-android into dla/feature/room_list_decoration 2023-09-14 19:30:02 +01:00
ganfra 239730702d Merge pull request #1298 from vector-im/feature/fga/timeline_thread_decoration
Feature/fga/timeline thread decoration
2023-09-14 18:45:33 +02:00
ganfra cc33e39dc6 Merge branch 'develop' into feature/fga/timeline_thread_decoration 2023-09-14 16:57:20 +02:00
Benoit Marty b4546118f9 Account management with OIDC: split account and session management. #1303 2023-09-14 16:38:13 +02:00
David Langley ed1949aa51 Show a room list decoration for notification setting applied
- Add the UI
- Rebuild room summaries when push rules change or when user disables notifications(hide them all)
2023-09-14 14:24:13 +01:00
David Langley 5e8cb958f8 Enabled NotificationSettings by default, Fix spacing, use activeMemberCount for isOneToOne.
- Enabled Notification Settings by default
- Fix spacing
- Use activeMemberCount for isOneToOne
2023-09-13 14:18:28 +01:00
David Langley 0d53626077 Merge branch 'develop' into dla/feature/connect_sdk_to_global_notifications_ui 2023-09-13 13:00:11 +01:00