Commit graph

180 commits

Author SHA1 Message Date
renovate[bot]
03b801094b
fix(deps): update coil to v3.2.0 (#4712)
* fix(deps): update coil to v3.2.0

* Fix compilation issue. Need to provide an image for preview.

https://coil-kt.github.io/coil/compose/#previews

* Improve preview for images.

* Update screenshots

* More cleanup

* 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: ElementBot <android@element.io>
2025-06-05 09:49:27 +02:00
renovate[bot]
1ca2e9baf0
fix(deps): update telephoto to v0.16.0 (#4749)
* fix(deps): update telephoto to v0.16.0

* Opt in for ExperimentalTelephotoApi

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Benoit Marty <benoit@matrix.org>
2025-06-04 18:07:47 +02:00
Jorge Martin Espinosa
efdc10e60a
Add catchingExceptions method to replace runCatching (#4797)
- Add `runCatchingExceptions` and `mapCatchingExceptions` to replace `runCatching` and `mapCatching`.
- Make `tryOrNull { ... }` catch only exceptions too.
- Apply the changes to the whole project.
- Add new Rust fakes for tests to handle the code that's now unblocked - previously it just threw an `UnsatisfiedLinkError` which we ignored.
- Add a new `detekt-rules` project with a `RunCatchingRule` to prevent `runCatching` and `mapCatching` usages.
2025-06-04 09:02:26 +02:00
renovate[bot]
7bb1e24ff5
fix(deps): update dependency androidx.compose:compose-bom to v2025.04.01 (#4631)
* fix(deps): update dependency androidx.compose:compose-bom to v2025.04.01

* Fix autofill deprecations

* Adapt our custom BottomSheetState and scaffold to the new APIs

* Get rid of all the custom bottom sheet implementation

It doesn't seem to be needed anymore 🎉

* Replace `semantics { invisibleToUser() }`  with `hideFromAccessibility()`

* Update screenshots

* Add commit and cancel callbacks for autofill on the login view

* Fix broken tests caused mainly by https://issuetracker.google.com/issues/366255137

Add `LocalUiTestMode` composition local and helper functions.

* Remove dependency that caused a new license to need to be approved

* Let setSafeContent handle setting the value for LocalUiTestMode

* Fix broken test

* Apply fix to RoomMemberModerationViewTest and RoomListDeclineInviteMenuTest

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Jorge Martín <jorgem@element.io>
Co-authored-by: ElementBot <android@element.io>
Co-authored-by: Benoit Marty <benoit@matrix.org>
2025-06-03 21:05:43 +00:00
ElementBot
e8f29a38bf
Sync Strings (#4775) 2025-05-30 08:47:39 +00:00
Benoit Marty
0255111528
Improve audio focus management (#4707)
* Extract Audio focus management to its own modules.

* Request Audio focus when playing a voice message.

* Add missing dependency.
(and remove a duplicated one)

* Request Audio focus when playing a video/audio in the media viewer.

* Pause audio when audio focus is lost.

* Rename class

* Fix tests

* Fix detekt issue.

* Audio focus: let the system handle automatic ducking when playing media.

* Document and update API

* Remove useless space.
2025-05-13 09:54:58 +00:00
ElementBot
bfa05ece67
Sync Strings from Localazy (#4677)
Co-authored-by: bmarty <3940906+bmarty@users.noreply.github.com>
2025-05-05 12:11:22 +02:00
Benoit Marty
e502eb1971
Render kick and ban reason in the timeline when available (#4642)
* Map the reason to RoomMembershipContent

* Create function to create RoomMembershipContent.

* Render reason for kick and ban state event.
2025-04-30 18:13:53 +02:00
ElementBot
847f8fcbf6
Sync Strings from Localazy (#4648)
Co-authored-by: bmarty <3940906+bmarty@users.noreply.github.com>
2025-04-28 10:59:35 +02:00
Jorge Martin Espinosa
619aa6f2de
Split MatrixRoom into BaseRoom and JoinedRoom (#4561)
`JoinedRoom` will now contain both a mandatory live timeline reference and all the functionality associated to it.

`BaseRoom` on the other hand will contain only functionality that's shared for both joined and not joined rooms.

`NotJoinedRoom` is a wrapper around `RoomPreviewInfo` data and a possible local `BaseRoom`, if it exists.

The `RustRoomFactory` cache is now gone since the persistent event cache should have the same effect.
2025-04-23 15:53:40 +02:00
ElementBot
e3a32ba52e
Sync Strings from Localazy (#4612)
Co-authored-by: bmarty <3940906+bmarty@users.noreply.github.com>
2025-04-22 08:57:00 +02:00
ElementBot
d9bfcc6c52
Sync Strings (#4590)
* Sync Strings from Localazy

* Fix strings usage after some were moved

* Fix Norwegian string that was causing lint to fail

* Update screenshots

---------

Co-authored-by: bmarty <3940906+bmarty@users.noreply.github.com>
Co-authored-by: Jorge Martín <jorgem@element.io>
2025-04-14 11:24:28 +02:00
Jorge Martin Espinosa
3b359483a1
Add video autoplay to media gallery (#4499)
* Add video autoplay when opening the video from either the timeline or the media gallery

* Only autoplay when the video is first displayed
2025-04-01 07:44:06 +00:00
ganfra
07fb187b3d
Merge pull request #4488 from element-hq/renovate/media3
fix(deps): update media3 to v1.6.0
2025-03-28 15:10:53 +01:00
renovate[bot]
cb6473e525 fix(deps): update media3 to v1.6.0 2025-03-28 14:42:54 +01:00
Benoit Marty
28ee1f8b02
Check if Manifest.permission.REQUEST_INSTALL_PACKAGES is in the manifest before invoking canRequestPackageInstalls. (#4490) 2025-03-27 12:58:44 +01:00
Jorge Martin Espinosa
fccd881b1f
Update SDK version to 25.03.13 and fix breaking changes (#4406)
Breaking changes addressed:
* Make `MatrixClient.getNotificationSettings()` async, cache its result.
* Use `RoomInfo` for accessing the updated room's info.
* Refactor `MatrixRoom` so it always receives an initial `MatrixRoomInfo` value: this value will be used to make `MatrixRoom.roomInfoFlow` a `StateFlow` so we can assume the initial updated Room data will be present.
* Fetch encryption state when loading a room if it's unknown
2025-03-19 12:52:57 +01:00
Benoit Marty
c956c66921
Merge pull request #4414 from element-hq/feature/bma/openTxtDocument
Open txt document inside the application
2025-03-18 14:18:29 +01:00
Benoit Marty
74b7e7f4b6 Fix issues reported by Konsist. 2025-03-18 11:35:11 +01:00
Benoit Marty
cfdc595c84 Add preview for Text media. 2025-03-18 11:24:13 +01:00
Benoit Marty
bdb7eeec74 Fix test compilation error. 2025-03-17 09:29:45 +01:00
Benoit Marty
592120370c Ensure that a click on a media open the correct media. 2025-03-14 17:23:38 +01:00
Benoit Marty
3eb92a7849 Render txt files content.
PdfViewer increase the top padding.
2025-03-14 16:51:57 +01:00
Benoit Marty
9fd600383c Ensure the snackbar "No more media to show" is not render after the app is loading the first item. Closes #4345 2025-03-12 12:09:51 +01:00
Benoit Marty
15de3377d5 Sync strings (fix typo) 2025-03-10 09:30:13 +01:00
bmarty
9a75f40855 Sync Strings from Localazy 2025-03-10 00:28:38 +00:00
Benoit Marty
a70249769d Migrate to coil3 2025-03-03 12:30:26 +01:00
Benoit Marty
eda18f8b78 Replace Material icons with Compound icons wherever it's possible 2025-02-26 22:19:19 +01:00
ElementBot
0338a5008b
Sync Strings from Localazy (#4298)
Co-authored-by: bmarty <3940906+bmarty@users.noreply.github.com>
2025-02-24 09:14:29 +01:00
Benoit Marty
cc11677cd9 Improve MatrixRoom.createTimeline API. 2025-02-18 12:12:36 +01:00
Benoit Marty
2e9a158fb0 Update Matrix Room API and allow media swipe on pinned event only. 2025-02-17 16:45:25 +01:00
Benoit Marty
728a2c1a32
Merge pull request #4253 from element-hq/sync-localazy
Sync Strings - New translations to turkish
2025-02-17 12:24:53 +01:00
renovate[bot]
aca73dc08a
fix(deps): update telephoto to v0.15.1 (#4270)
* fix(deps): update telephoto to v0.15.1

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Jorge Martín <jorgem@element.io>
2025-02-17 11:01:40 +01:00
bmarty
f549e7bba2 Sync Strings from Localazy 2025-02-17 00:30:17 +00:00
Benoit Marty
07d4778ae5 Use ElementTheme instead of MaterialTheme 2025-02-06 15:10:15 +01:00
bmarty
be91da966a Sync Strings from Localazy 2025-02-03 00:29:01 +00:00
Benoit Marty
c059c3fd27 Protect access to member timeline with a Mutex and clean the code. 2025-01-29 10:35:52 +01:00
Benoit Marty
47763cc7a9 Move factory method to a dedicated files as they are used by tests also. 2025-01-29 10:24:58 +01:00
Benoit Marty
cb4fff87b9 Move galleryMode computation to MediaViewerDataSource 2025-01-29 10:16:22 +01:00
Benoit Marty
2d40e2248b Move some classes in new packages
- io.element.android.libraries.mediaviewer.impl.datasource
- package io.element.android.libraries.mediaviewer.impl.model
2025-01-29 10:09:17 +01:00
Benoit Marty
81d818041e Add tests on GroupedMediaItems.hasEvent 2025-01-28 12:47:05 +01:00
Benoit Marty
d44d3b7fce Add tests on DefaultFocusedTimelineMediaGalleryDataSourceFactory 2025-01-28 12:42:30 +01:00
Benoit Marty
b04bdbf585 Add tests on LiveMediaTimeline 2025-01-28 12:33:19 +01:00
Benoit Marty
1a0b8abbfc Add tests on FocusedMediaTimeline 2025-01-28 12:23:59 +01:00
Benoit Marty
822efe8baa Cleanup 2025-01-28 11:33:20 +01:00
Benoit Marty
1776d93a20 Add ability to swipe between media when opened from the timeline. 2025-01-28 09:58:44 +01:00
Benoit Marty
2a341b2fb2 Remove log. 2025-01-27 18:40:53 +01:00
Benoit Marty
792c350a1b Extract snackbar displayer to its own methods. 2025-01-27 15:08:51 +01:00
Benoit Marty
5eda0b28b4 Suppress large test class. 2025-01-27 14:29:31 +01:00
Benoit Marty
fd38d8ea9a Media Viewer: Add test on snackbar when reaching end of timeline 2025-01-27 12:11:01 +01:00