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