Commit Graph

77 Commits

Author SHA1 Message Date
Jorge Martin Espinosa
f72fb9650b Close the media preview screen ASAP with sending queue enabled (#4089)
* Close the attachment preview screen ASAP when sending media with the send queue is enabled

* When the send queue FF is not enabled make sure to dismiss the screen after the media has been sent

* Make sure we get a scaled thumbnail from videos too, not only for images

* Unify several state holders into `SendActionState`.

* Fix lint issues, add `Flow.firstInstanceOf` extension fun

* Update screenshots

---------

Co-authored-by: ElementBot <android@element.io>
2025-01-08 15:49:17 +00:00
Benoit Marty
05fc76822a Apply dual licenses: AGPL + Element Commercial to file headers.
2 replace all actions have been performed:
- "SPDX-License-Identifier: AGPL-3.0-only" to "SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial"
- "Please see LICENSE in the repository root for full details." to "Please see LICENSE files in the repository root for full details."
2025-01-07 10:05:04 +01:00
Benoit Marty
c88b54fe2b Remove default parameter values.
This improve code coverage since some default value was never used.
2024-11-26 09:18:11 +01:00
Benoit Marty
67274bcc68 Remove blank line 2024-11-26 09:17:39 +01:00
Benoit Marty
7215786239 Pre-process media during the attachment preview 2024-11-25 17:11:31 +01:00
Benoit Marty
d6ee0846b3 Fix tests 2024-11-21 09:45:27 +01:00
Benoit Marty
ece62b7978 Allow caption for audio and file.
Need to preview all the attachments now, to be able to type a caption.
2024-11-21 09:45:26 +01:00
Benoit Marty
22bb8796ef Delete temporary created files. 2024-11-08 10:11:06 +01:00
Benoit Marty
be42821352 Add a log when deleting a file. 2024-11-08 10:11:06 +01:00
Benoit Marty
f138ae90aa Do not delete the original file when sending a media. Fixes #3800. 2024-11-08 10:11:06 +01:00
Benoit Marty
495e4b3d60 MediaPreProcessor: remove default value of parameter deleteOriginal. No functional change here. 2024-11-08 10:11:06 +01:00
Benoit Marty
19c56cdbe3 Send caption with media 2024-11-04 14:24:39 +01:00
Jorge Martin Espinosa
e841faa737 Remove all GPS metadata from images uploaded as media (#3781)
Previously a minimal set of tags were removed, but we should make sure every single one of them is removed.
2024-11-04 10:31:55 +01:00
Benoit Marty
1b6a759847 Fix test. 2024-10-31 18:05:13 +01:00
Benoit Marty
7d54cb8f63 Rename file. 2024-10-31 18:01:56 +01:00
Benoit Marty
26d8b74255 Compress png file and generate png thumbnail for png files.
Fix tests
2024-10-31 15:51:45 +01:00
Benoit Marty
9f0461166e Optimize media: Compress Png to Png. 2024-10-31 11:04:11 +01:00
Benoit Marty
ea73ee0481 Optimize media: always compress video to have maximum 1080 at the greatest size. 2024-10-31 10:53:44 +01:00
Benoit Marty
e6f7300be6 Improve FakeMatrixRoom to be able to check all the parameters. 2024-10-30 18:39:55 +01:00
Benoit Marty
7c4f389d0b Fix test. 2024-10-28 13:52:53 +01:00
Benoit Marty
2531ccf8e9 Add media upload setting.
Compress media regarding the settings.
Image compression change quality to 78%
Video compression change size to 720 x 48
2024-10-28 10:56:58 +01:00
Jorge Martin Espinosa
2efdb3ae45 Centralise the DI code generation logic (#3562)
* Create Anvil extension helper

* Use the helper everywhere
2024-09-30 12:20:28 +00:00
Benoit Marty
2b016227e9 Migrate license to AGPL.
Run script `uv run license-editor --repository ../element-x-android`
2024-09-06 17:19:19 +02:00
Benoit Marty
94f38f1af5 Rework FakeMatrixRoom so that it contains only lambdas. (#3229)
* Upgrade lint to 8.7.0-alpha01

* FakeMatrixRoom: lambda everywhere

Fix test compilation issues
2024-07-22 10:39:48 +02:00
Jorge Martin Espinosa
950e502ca6 Improve screenshot testing with ComposablePreviewScanner (#3125)
* Use ComposablePreviewScanner to rework how screenshot testing works
* Add test sharding
* Update screenshots
* Fixes for Element Gallery

---------

Co-authored-by: ElementBot <benoitm+elementbot@element.io>
Co-authored-by: Benoit Marty <benoit@matrix.org>
2024-07-03 13:05:06 +02:00
Benoit Marty
cdf6f48112 Change Test class suffix. 2024-05-30 10:11:18 +02:00
Jorge Martin Espinosa
801f0b955d Notifications: simplify the flow by removing persistence (#2924)
* Notifications: simplify the flow by removing persistence. 
* Bump of minSdk to `24` (Android 7).
* Add migration to remove `notification.bin` file
2024-05-29 08:03:23 +00:00
Jorge Martín
f2d240c66d Fix SDK integration 2024-03-20 09:36:35 +01:00
Benoit Marty
378692f743 Fix moar ktlint issues 2024-01-11 10:02:10 +01:00
renovate[bot]
7e9cda3aa9 Update plugin ktlint to v12.1.0 (#2200)
* Update plugin ktlint to v12.1.0

* Run `./gradlew ktlintFormat` and fix some issues manually.

* Fix other issues reproted by Ktlint

* Limit false positives, KtLint removes unnecessary curly brace in String templates.

* Remove useless Unit

* Minor improvements over ktlint changes

* Restore `AlertDialogContent` behaviour

* Update screenshots

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Benoit Marty <benoit@matrix.org>
Co-authored-by: Jorge Martín <jorgem@element.io>
Co-authored-by: ElementBot <benoitm+elementbot@element.io>
2024-01-10 16:22:24 +01:00
Benoit Marty
3d963df4fe Move files to correct package. 2023-12-19 11:07:12 +01:00
Benoit Marty
e156cf0515 Restore test for image sending, now that computing Thumbnail can fail. 2023-12-19 11:05:40 +01:00
Benoit Marty
4cd3faf936 ThumbnailUtils.createImageThumbnail can throw IOException, and we can ignore it. 2023-12-19 10:47:31 +01:00
Benoit Marty
0f7af2b7fc blurhash cannot be null here 2023-12-19 10:43:28 +01:00
Benoit Marty
55ce9068ef Providing a thumbnail when sending a media is now optional. 2023-12-19 10:41:44 +01:00
Benoit Marty
955b315597 Cleanup 2023-11-29 17:27:16 +01:00
Benoit Marty
8bf5d5eee8 Disable failing tests for AndroidMediaPreProcessor 2023-11-29 17:03:27 +01:00
Benoit Marty
fcd8b86c64 Add tests for AndroidMediaPreProcessor 2023-11-29 17:03:27 +01:00
Benoit Marty
3e166e3d89 Using Exception is OK here. 2023-11-29 17:03:27 +01:00
Benoit Marty
475bf376f9 Provide CoroutineDispatchers to ImageCompressor 2023-11-29 17:02:38 +01:00
Benoit Marty
4f32299280 Use MimeTypes object instead of hard-coded strings. 2023-11-27 21:58:58 +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
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
jonnyandrew
5c582bba1b Record and send voice messages (#1596)
---------

Co-authored-by: ElementBot <benoitm+elementbot@element.io>
2023-10-23 17:28:00 +00:00
Jorge Martin Espinosa
0502b21ff8 Fix: WebP images can't be sent as media. (#1501)
* Fix: WebP images can't be sent as media.

* Place the `BitmapFactory.Options` mode change and comment where it belongs.
2023-10-06 09:18:11 +00:00
Jorge Martin Espinosa
b16dc45754 Fix the orientation of sent images (#1190)
* Fix the orientation of sent images

---------

Co-authored-by: Benoit Marty <benoit@matrix.org>
2023-08-30 17:02:37 +00:00
Benoit Marty
1a6376e723 Merge branch 'develop' into feature/bma/dataObject 2023-08-28 10:56:02 +02:00
Jorge Martin Espinosa
6457f3c4f5 Fix sent videos being cropped (#1124) 2023-08-24 09:41:58 +02:00
Benoit Marty
52853101d9 migrate object to data object (#1135) 2023-08-24 09:32:44 +02:00
Jorge Martin Espinosa
814c8edc4f Media upload cancellation (#1058)
* Initial implementation of media upload cancellation

* Add tests

* Add changelog

* Update screenshots

* Add documentation

* Fix lint issues

* Fix review comments

---------

Co-authored-by: ElementBot <benoitm+elementbot@element.io>
2023-08-17 09:02:03 +00:00