Commit Graph

708 Commits

Author SHA1 Message Date
Jorge Martin Espinosa
5701e98d77 Remove Element Call feature flag and revert base URL to call.element.io (#1809)
Co-authored-by: ElementBot <benoitm+elementbot@element.io>
2023-11-15 13:02:24 +00:00
Jorge Martin Espinosa
14cf2b0440 Iterate design on several screens: update icons, replace PreferenceTexts (#1771)
- Batch import new icons from the design team.
- Rename _september icons since they're just extra icons that need to be integrated in Compound in the future, and it should be ok if we don't distinguish between ic_september_*, ic_november_* etc., so all icons are now simply ic_* in the designsystem module.
- Create a new CompoundIconListPreviewProvider to add chunked lists of icons for previews. Add an exception for it to Konsist.
- Move some icons to use Compound icons.
- Remove most PreferenceText usages, use ListItem instead.

---------

Co-authored-by: ElementBot <benoitm+elementbot@element.io>
2023-11-15 10:52:37 +01:00
Benoit Marty
3db5d8bf68 Timeline: render TimelineItemReadMarkerModel 2023-11-14 18:10:26 +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
jonnyandrew
74b0c341ec Fix merge conflict (#1804) 2023-11-14 16:21:58 +00:00
Benoit Marty
280f6a9c0c Merge pull request #1798 from vector-im/feature/bma/config
Configs object in appconfig and move strings to dedicated modules.
2023-11-14 16:53:46 +01:00
Marco Romano
082631caa5 Allow to seek a voice message before playing it (#1780) 2023-11-14 16:23:51 +01:00
jonnyandrew
638fdf495c Show error dialog when voice message fails to send (#1796)
---------

Co-authored-by: ElementBot <benoitm+elementbot@element.io>
2023-11-14 15:05:07 +00:00
jonnyandrew
c7d308f6dd Delay displaying the voice message download indicator (#1793)
---------

Co-authored-by: ElementBot <benoitm+elementbot@element.io>
2023-11-14 15:04:43 +00:00
Marco Romano
eca784ce57 Persist state of VoiceMessagePresenter in memory (#1795)
Allows [VoiceMessagePresenter] instances to keep their progress and download states while going in and out of the timeline viewport.

This is implemented by caching each instance of a TimelineItem presenter inside the RoomScope. TimelineItem presenters can move some of their state outside of the `present()` function so that such state will survive scrollings of the timeline.
2023-11-14 14:24:24 +00:00
jonnyandrew
53f03335c3 Update voice message recording button behaviour (#1784)
Changes recording button behaviour so that
- tapping the record button starts a recording and displays the stop button
- tapping the stop button stops the recording
- tapping the delete button cancels the recording
- 'hold to record' tooltip is removed


---------

Co-authored-by: ElementBot <benoitm+elementbot@element.io>
2023-11-14 14:05:59 +00:00
Benoit Marty
23129b4c19 Fix rendering of emote when the message contains some formatting. 2023-11-14 14:28:15 +01:00
Benoit Marty
022c5221a8 Localazy: move report_content strings to the :features:messages:impl module. 2023-11-14 11:37:21 +01:00
Benoit Marty
0cebb0423f Localazy: move emoji_picker_category_ strings to the :features:messages:impl module. 2023-11-14 10:53:30 +01:00
ElementBot
38f1d9932b Sync Strings (#1789)
Co-authored-by: bmarty <bmarty@users.noreply.github.com>
2023-11-13 12:31:34 +01:00
jonnyandrew
7a4adf3e28 Enable seeking a recorded voice message (#1758) 2023-11-10 09:18:01 +00:00
Marco Romano
0dd9f23838 Voice message MediaPlayer: wait until player is ready (#1772)
Change to `MediaPlayer` API to allow waiting for the player to be in a ready state.
This is needed in order to perform some tasks (e.g. read the media duration, seek) after changing the media file.
2023-11-09 14:34:38 +00: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
e7a6e4039c Add preview for AttachmentThumbnail and fix issue rendering for AttachmentThumbnailType.Location for coherency. 2023-11-08 16:28:07 +01:00
Benoit Marty
ea9b222b0e If media source for thumbnail info is not available for image, use the source image as a fallback. But if it is available, use it. 2023-11-08 15:48:06 +01:00
Benoit Marty
062567fadc Merge pull request #1767 from vector-im/feature/bma/encryptedMessages
Feature/bma/encrypted messages
2023-11-08 11:58:38 +01:00
Jorge Martin Espinosa
5bb8efb728 Iterate design on Settings screen (#1763)
* Iterate design on Settings screen:

- Set new icons provided by design.
- Replace `PreferenceText` usages with `ListItem`.
- Add missing icons, and a new way to group them for previews.

---------

Co-authored-by: ElementBot <benoitm+elementbot@element.io>
2023-11-08 11:31:17 +01:00
Marco Romano
d1a9d5e377 Voice messages: Don't crash if mxc uri is invalid (#1756)
<!-- Please read [CONTRIBUTING.md](https://github.com/vector-im/element-x-android/blob/develop/CONTRIBUTING.md) before submitting your pull request -->
 
## Type of change

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

## Content

Code now checks whether the mx uri is invalid and handles the error condition properly.

## Motivation and context

https://github.com/vector-im/element-x-android/pull/1748#discussion_r1384557443

## Screenshots / GIFs

<!--
We have screenshot tests in the project, so attaching screenshots to a PR is not mandatory, as far as there
is a Composable Preview covering the changes. In this case, the change will appear in the file diff.
Note that all the UI composables should be covered by a Composable Preview.

Providing a video of the change is still very useful for the reviewer and for the history of the project.

You can use a table like this to show screenshots comparison.
Uncomment this markdown table below and edit the last line `|||`:
|copy screenshot of before here|copy screenshot of after here|

|Before|After|
|-|-|
|||
 -->

## Tests

<!-- Explain how you tested your development -->

- Step 1
- Step 2
- Step ...

## Tested devices

- [ ] Physical
- [ ] Emulator
- OS version(s):

## Checklist

<!-- Depending on the Pull Request content, it can be acceptable if some of the following checkboxes stay unchecked. -->

- [ ] Changes have been tested on an Android device or Android emulator with API 23
- [ ] UI change has been tested on both light and dark themes
- [ ] Accessibility has been taken into account. See https://github.com/vector-im/element-x-android/blob/develop/CONTRIBUTING.md#accessibility
- [ ] Pull request is based on the develop branch
- [ ] Pull request includes a new file under ./changelog.d. See https://github.com/vector-im/element-x-android/blob/develop/CONTRIBUTING.md#changelog
- [ ] Pull request includes screenshots or videos if containing UI changes
- [ ] Pull request includes a [sign off](https://matrix-org.github.io/synapse/latest/development/contributing_guide.html#sign-off)
- [ ] You've made a self review of your PR
2023-11-08 07:46:00 +01:00
Benoit Marty
a284f5cb03 UTD: Change wording from "Decryption error" to "Waiting for this message" 2023-11-07 17:52:06 +01:00
Jorge Martin Espinosa
92fa35e0c7 Message composer isn't resized when changing the replied to message (#1750) 2023-11-07 16:59:58 +01:00
Benoit Marty
5777ed0a76 Merge pull request #1742 from vector-im/sync-localazy
Sync Strings
2023-11-06 16:05:01 +01:00
Benoit Marty
044b6ac018 Use AsyncView in EditUserProfileView 2023-11-06 10:09:41 +01:00
Benoit Marty
41040f45ef Use AsyncView in ReportMessageView 2023-11-06 10:09:41 +01:00
bmarty
6014858aba Sync Strings from Localazy 2023-11-06 08:23:40 +00: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
jonnyandrew
413ec4b5db Display duration of recorded voice message (#1733)
---------

Co-authored-by: ElementBot <benoitm+elementbot@element.io>
2023-11-03 12:59:36 +00:00
Jorge Martin Espinosa
0e89080a50 Replace suffixes for @PreviewsDayNight annotation (#1736)
* Replace suffix for PreviewsDayNight annotation

* Rename Preview, since its filename was way too long

* Update screenshots

---------

Co-authored-by: ElementBot <benoitm+elementbot@element.io>
2023-11-03 12:19:12 +00:00
renovate[bot]
927552d2e5 Update dependency io.nlopez.compose.rules:detekt to v0.3.3 (#1638)
* Update dependency io.nlopez.compose.rules:detekt to v0.3.3

* Fix lint issues

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Jorge Martín <jorgem@element.io>
2023-11-02 13:11:42 +01:00
jonnyandrew
3e58e03a10 Add time to voice message composer UI (#1720)
---------

Co-authored-by: ElementBot <benoitm+elementbot@element.io>
2023-11-02 12:10:36 +00:00
jonnyandrew
e376feba22 Add analytics for voice messages (#1706) 2023-11-02 09:32:22 +00:00
Benoit Marty
654f344640 TimelineEncryptedHistoryBannerView: render depend on verification and key backup state (#1576) 2023-10-31 21:03:43 +01:00
jonnyandrew
c4ab264495 Fix long press on voice message with screen reader (#1704)
As a workaround, disable seeking within the waveform so that it does
not interfere with the long press menu.

Seeking behaviour is already suboptimal given that there is no spoken
feedback about the current seek position. No core functionality is
lost as voice messages can be played using a screen reader.
2023-10-31 13:00:08 +00:00
bmarty
340a4b5b4f Sync Strings from Localazy 2023-10-30 14:50:36 +00:00
jonnyandrew
6f49d689f4 Keep screen on during voice message recording (#1684) 2023-10-30 12:37:10 +00:00
Benoit Marty
84ddef3e6c Merge pull request #1680 from vector-im/sync-localazy
Sync Strings
2023-10-30 12:38:41 +01:00
Marco Romano
10ff9742e1 Voice message button: Show proper disabled color. (#1682)
Also changes a bit our own IconButton api to allow to mirror material's and allow color customization.
2023-10-30 10:51:22 +00:00
Marco Romano
5e43083f7c Add a11y label to voice messages (#1683) 2023-10-30 10:41:15 +00:00
bmarty
458e2a1b58 Sync Strings from Localazy 2023-10-30 00:10:04 +00:00
Marco Romano
08e2bed5db Don't show body in replies to voice messages but rather show "Voice message" string (#1673)
Story: https://github.com/vector-im/element-meta/issues/2106
2023-10-27 21:57:05 +00:00
jonnyandrew
4dfe8121b4 Show voice message preview player progress (#1675)
* Show voice message preview player progress

* Update screenshots

* Fix test

* Some nits over mediaplayer stuff

---------

Co-authored-by: ElementBot <benoitm+elementbot@element.io>
Co-authored-by: Marco Romano <marcor@element.io>
2023-10-27 20:43:52 +00:00
jonnyandrew
ac90b74a4f Merge pull request #1671 from vector-im/jonny/voice-message-fixes
Fix voice message preview player playing after delete/send
2023-10-27 16:49:38 +01:00
Marco Romano
b137e1f1ab Track errors in VoiceMessagePresenter (#1667)
Story: https://github.com/vector-im/element-meta/issues/2085
2023-10-27 15:23:53 +00:00
Marco Romano
ad01421b22 Enable swipe to reply on voice messages (#1668)
With the new waveform view it does not conflict anymore.
2023-10-27 15:10:56 +00:00
jonnyandrew
e3bb3c55b6 Ensure sending pauses audio 2023-10-27 16:05:35 +01:00