Commit Graph

4280 Commits

Author SHA1 Message Date
ElementBot
de011c0dcb Update screenshots 2023-10-27 12:23:14 +00:00
David Langley
c79d24d943 Merge branch 'develop' of https://github.com/vector-im/element-x-android into langleyd/live_waveform 2023-10-27 13:10:32 +01:00
David Langley
34dda1b568 Fix naming and waveform previews 2023-10-27 13:06:33 +01:00
jonnyandrew
38de57bb02 Add waveform to voice message preview UI (#1661)
* Add waveform to preview UI

* Update screenshots

* Make random waveform function deterministic

* Update screenshots

---------

Co-authored-by: ElementBot <benoitm+elementbot@element.io>
2023-10-27 11:33:35 +00:00
David Langley
ad81e2898c Merge branch 'develop' of https://github.com/vector-im/element-x-android into langleyd/live_waveform 2023-10-27 12:28:46 +01: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
David Langley
05c8a286d1 Merge branch 'langleyd/live_waveform' of https://github.com/vector-im/element-x-android into langleyd/live_waveform 2023-10-27 10:56:48 +01:00
David Langley
cd41875c08 Fix tests 2023-10-27 10:56:45 +01:00
Marco Romano
d7ce326612 Show correct UI when replying to a voice message (#1658)
Shows voice messages in the room summary.
Shows voice messages in the reply context menu and composer.
Show replies to voice messages in the timeline. 

(before this PR voice messages were shown the same as audio messages)

Story: https://github.com/vector-im/element-meta/issues/2106
2023-10-27 11:30:57 +02:00
Benoit Marty
61d59913bb Merge pull request #1651 from vector-im/feature/bma/uiUpdate
Preparatory work for SecureBackup: UI update
2023-10-27 11:03:29 +02:00
ElementBot
e2f6346b44 Update screenshots 2023-10-27 08:51:51 +00:00
David Langley
0c4e7547a2 Merge branch 'develop' into langleyd/live_waveform 2023-10-27 09:37:21 +01:00
David Langley
d0664dae0d Fix tests 2023-10-27 09:32:05 +01:00
ganfra
723431052f Merge pull request #1655 from vector-im/renovate/com.google.firebase-firebase-appdistribution-gradle-4.x
Update dependency com.google.firebase:firebase-appdistribution-gradle to v4.0.1
2023-10-27 10:30:06 +02:00
Marco Romano
eb223deba1 Move MediaPlayer from messages module to new dedicated library module (#1654) 2023-10-27 09:58:17 +02:00
David Langley
7425c3905b lint 2023-10-27 08:45:20 +01:00
David Langley
1db2adae7e Merge branch 'develop' of https://github.com/vector-im/element-x-android into langleyd/live_waveform 2023-10-27 08:44:25 +01:00
David Langley
d20ae3f6b9 FIx height and concurrent exception
- Fix live waveform hight
- Fix concurrent modification exception when sharing levels
- Tidy up width of live waveform
2023-10-27 08:41:08 +01:00
Benoit Marty
22c7b587a9 Merge pull request #1653 from vector-im/feature/bma/secureBackupSdk
SecureBackup: update matrix sdk module.
2023-10-27 09:35:19 +02:00
renovate[bot]
7456d87bde Update plugin com.google.firebase.appdistribution to v4.0.1 (#1656)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-27 08:12:44 +02:00
renovate[bot]
f914de4486 Update dependency com.google.firebase:firebase-bom to v32.4.1 (#1657)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-27 07:37:33 +02:00
David Langley
510b1f63b9 Simple live waveform implementation. 2023-10-26 23:46:03 +01:00
renovate[bot]
0b19f64997 Update dependency com.google.firebase:firebase-appdistribution-gradle to v4.0.1 2023-10-26 21:47:50 +00:00
Marco Romano
a67560c74b Convert mx waveform to floats as early as possible in the chain (#1652)
This way we're sure that internally we always deal with [0;1] float samples. the [0;1024] int range is used only at the rust sdk boundary.
2023-10-26 16:58:00 +00:00
Benoit Marty
b5ffa6eef3 SecureBackup: update matrix sdk module. 2023-10-26 18:02:34 +02:00
Benoit Marty
f9cf3c814d Fix warning: Composable functions should only be emitting content into the composition from one source at their top level. 2023-10-26 17:49:13 +02:00
Benoit Marty
c93470b6e4 Rename file. 2023-10-26 17:40:51 +02:00
ElementBot
6a96d6e00b Update screenshots 2023-10-26 17:40:51 +02:00
Benoit Marty
b12f9ff3a8 Use DialogLikeBannerMolecule in NotificationSettingsView. 2023-10-26 17:40:51 +02:00
Benoit Marty
243c47682f Design: extract DialogLikeBannerMolecule from RequestVerificationHeader 2023-10-26 17:40:51 +02:00
Benoit Marty
c6ddc33be7 Preference: Add badge to the icon preference. 2023-10-26 17:40:51 +02:00
Benoit Marty
f34fdcc87b Design kit: add destructive dialog action 2023-10-26 17:40:51 +02:00
Benoit Marty
1af4bfb1d8 Design kit: add destructive buttons. 2023-10-26 17:40:51 +02:00
Benoit Marty
6f4335bd02 Add RedIndicatorAtom 2023-10-26 17:40:51 +02:00
Marco Romano
4a390296cf Include waveform when sending voice messages (#1650)
- New `AudioLevelCalculator` that outputs dB0v rescaled to the [0;1] range.
- `VoiceRecorder` now stores the audio levels sampled while recording, then resamples them to 100 samples to use as waveform preview.
- Waveform data is carried all the way as a `List<Float>` and converted to `List<Int>` in the [0;1024] range as per matrix spec only before sending it.
2023-10-26 17:37:24 +02:00
jonnyandrew
517b422992 Add voice message preview player (#1646)
---------

Co-authored-by: ElementBot <benoitm+elementbot@element.io>
2023-10-26 15:33:58 +00:00
jonnyandrew
8258bdcf80 Move waveform UI to design system library (#1649) 2023-10-26 15:15:42 +00:00
ganfra
35d32c0500 Merge pull request #1642 from vector-im/feature/fga/pin_settings
PIN : settings and branch flow
2023-10-26 16:40:38 +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
ElementBot
27d4cab217 Update screenshots 2023-10-26 13:45:59 +00:00
ganfra
4b36eb0374 PIN: address PR review 2023-10-26 15:28:18 +02:00
ganfra
b8ce848a0c PIN : fix quality 2023-10-26 15:25:40 +02:00
Marco Romano
4d9a3bddaf Use Float instead of Double for all the level metering logic. (#1645)
This is in preparation of further changes to the way the audio level is computed and to allow recording and sending of the waveform. The main reasoning behind the change is twofold:
1) We don't need the precision of Double in our context (we just need a rough indication of the changes in audio level to successfully draw a level meter or a waveform in our UI).
2) Performance: It is true that on 64 bit CPUs single operations involving Floats or Doubles take the same amount of time (i.e one clock cycle). But there are other aspects here that vouch in favor of Floats:
	- A float takes half the space in memory compared to a double, so when storing long lists of them this can add up.
	- On Android O and greater the ART runtime can "vectorize" certain operations on lists and make use of the CPU's SIMD registers which are generally 128 bits. So by using floats 4 of them can fit and be computed at the same time whilst with doubles only 2 will fit halving the throughput.

References:
- https://source.android.com/docs/core/runtime/improvements
- https://www.slideshare.net/linaroorg/automatic-vectorization-in-art-android-runtime-sfo17216
2023-10-26 12:55:23 +00:00
David Langley
5c7cffff19 Merge pull request #1641 from vector-im/langleyd/custom_waveform
Add custom waveform with cursor and nice gesture support.
2023-10-26 13:52:47 +01:00
ganfra
bd9179dd45 PIN : Fix SetupPinPresenterTest 2023-10-26 14:39:13 +02:00
ganfra
1e3cfcdbd6 PIN : Fix test compilation 2023-10-26 13:10:25 +02:00
Marco Romano
10ce75f74e Merge branch 'develop' into langleyd/custom_waveform 2023-10-26 13:07:45 +02:00
Marco Romano
40e19349b5 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
ElementBot
537068cb32 Update screenshots 2023-10-26 09:32:15 +00:00
ganfra
fae051ef82 Merge branch 'develop' into feature/fga/pin_settings 2023-10-26 11:13:52 +02:00