Commit graph

617 commits

Author SHA1 Message Date
Benoit Marty
21200df294 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
3092ca23f0 Konsist: check if sealed class could be sealed interface and fix existing issues. 2023-11-03 15:19:55 +01:00
Jorge Martin Espinosa
1f5a135072
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
a1b97fe99e Remove useless wrapping in lazy block, since the value was assigned later during object construction. 2023-11-02 16:14:21 +01:00
Benoit Marty
3e9710a0c1 Do not throw the exception. 2023-10-31 21:03:43 +01:00
Benoit Marty
2f62779ad4 Sign out: handle no network error. 2023-10-31 21:03:43 +01:00
Benoit Marty
4fb825b5cb TimelineEncryptedHistoryBannerView: render depend on verification and key backup state (#1576) 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
Jorge Martin Espinosa
3bbaf8e5e7
Improve the logs for TimelineException.CannotPaginate (#1708) 2023-10-31 15:43:18 +00:00
Benoit Marty
90b377b3a5 Secure Storage: improve API for waitForBackupUploadSteadyState() 2023-10-30 20:16:18 +01:00
Jorge Martin Espinosa
356a321788
Fix issues with stuck 'loading...' state and hangup (#1690)
* Fix issues with stuck 'loading...' state and hangu
2023-10-30 17:01:54 +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
Marco Romano
7d1b671426
Refactor of voice message playing code (#1643)
After PR review suggestions from @jonnyandrew 
User facing functionality doesn't change, but overall architecture and testing is better.
2023-10-26 12:51:12 +02:00
renovate[bot]
71ef76ad86
Update dependency org.matrix.rustcomponents:sdk-android to v0.1.65 (#1639)
* Update dependency org.matrix.rustcomponents:sdk-android to v0.1.65

* Fix broken verification flow

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Jorge Martín <jorgem@element.io>
2023-10-26 08:59:06 +02:00
David Langley
75e95333a8 Unit and Snapshot tests for error and loading states. 2023-10-24 21:39:53 +01: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
b4cc11ec1e Test coverage: Add test on DefaultNavigationStateService 2023-10-24 17:17:15 +02: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
David Langley
5adcaef569 Add new ui for room notifications screen
- Add new ui for room notifications screen
- Fix error when changing default notification setting.
2023-10-20 21:08:44 +01: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
David Langley
7505ac8eda Fix tests and lint 2023-10-19 16:17:57 +01:00
Marco Romano
33f5c8efb8
Add global context.cacheDir provider. (#1606)
## Type of change

- [ ] Feature
- [ ] Bugfix
- [x] Technical
- [ ] Other :

## Content

Dagger now provides the app's `cacheDir` when requesting a `@CacheDirectory File`  type.

## Motivation and context

To support some upcoming code that needs the `cacheDir` to be changed during tests.
2023-10-19 14:07:45 +02: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
David Langley
895a5332f2 Add tests 2023-10-17 16:08:35 +01:00
Benoit Marty
21e24990c4 Improve and fix build_rust_sdk.sh after PR review 2023-10-16 18:29:25 +02:00
Benoit Marty
cc2664c519 Use local SDK if the file exist 2023-10-16 13:31:26 +02:00
ganfra
76bbe4dbeb Misc: remove usage of blocking methods #1563 2023-10-13 12:16:31 +02: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