Commit graph

9836 commits

Author SHA1 Message Date
Colin S
ebdd9459e7
messages: separate custom tab links from normal links
Some links in the `MessagesView` are part of Element X itself,
such as the help pages in `LearnMoreConfig` [1]. These links
should open in an "in-app" Chrome Custom Tab, because they are
basically part of the app.

Web links from chat messages, on the other hand, should open in
the user's preferred web browser as regular tabs.

Separate "regular" links from "custom tab" links with a new
parameter `onLinkClick(..., customTab)`. If true, the link
opens in a custom tab.

Links within `TimelineView` are always opened in a normal tab.

[1]: appconfig/src/main/kotlin/io/element/android/appconfig/LearnMoreConfig.kt
2025-01-28 20:53:22 -06:00
Colin S
31c3b0c881
messages: open web links in full web browser
In [1], all hyperlinks within `MessagesNode` switched to using

    activity.openUrlInChromeCustomTab()

instead of with `openUrlInExternalApp()`.

This causes web links in chat messages to open in an "in-app"
Chrome Custom Tab [2] instead of the user's configured "full"
web browser. This is a UX nuisance. Open web links in a full
browser instead.

Closes #3885 [3].

[1]: 5baefd479f (Identity change: handle click on "learn more")

[2]: https://developer.chrome.com/docs/android/custom-tabs/guide-get-started#opening_a_custom_tab

[3]: https://github.com/element-hq/element-x-android/issues/3885
2025-01-25 21:07:22 -06:00
Benoit Marty
3668e861f7
Merge pull request #4161 from element-hq/feature/bma/mediaNavigation
Media navigation with swipe gesture
2025-01-23 18:33:52 +01:00
Benoit Marty
da22758ce3 Fix pagination restart issue and cover by unit test. 2025-01-23 17:49:42 +01:00
ElementBot
ba0502cb7f Update screenshots 2025-01-23 14:56:31 +00:00
Benoit Marty
4d2edfaccd Improve code clarity 2025-01-23 15:43:33 +01:00
Benoit Marty
05660fbc18 Cleanup 2025-01-23 15:42:00 +01:00
Benoit Marty
beb835c97d Fix color for media viewer according to Figma. 2025-01-23 15:37:09 +01:00
Benoit Marty
7dd797b595 Use Black for code clarity. 2025-01-23 15:08:40 +01:00
Benoit Marty
a5515b01c1 Add name to argument for clarity. 2025-01-23 15:06:10 +01:00
Benoit Marty
afd8161d1a Add documentation on buildMediaViewerPageList. 2025-01-23 15:03:40 +01:00
Benoit Marty
2fde015fe8 Simplify 2025-01-23 14:57:59 +01:00
Benoit Marty
54182b0d8e Simplify with code coerceAtLeast(0)` 2025-01-23 14:57:05 +01:00
Benoit Marty
dff9005a70 Remove useless parameter 2025-01-23 14:49:18 +01:00
Benoit Marty
0b04e40e1e
Merge pull request #4187 from element-hq/feature/bma/calver
Migrate to CalVer like versioning
2025-01-23 14:46:52 +01:00
Benoit Marty
1d30e28f0f
Merge pull request #4186 from element-hq/renovate/wysiwyg
Update wysiwyg to v2.38.2
2025-01-23 12:48:28 +01:00
Benoit Marty
90af825621 Migrate to CalVer-like versioning - update release script. 2025-01-23 11:30:27 +01:00
renovate[bot]
6e457cf9ba
Update wysiwyg to v2.38.2 2025-01-23 10:29:27 +00:00
Benoit Marty
536832dcac Migrate to CalVer-like versioning 2025-01-23 11:10:53 +01:00
Benoit Marty
77887f90b6 Fix formatting. 2025-01-23 09:56:51 +01:00
Benoit Marty
1580c732db Ensure gallery is paginating to get new items. 2025-01-23 09:29:37 +01:00
ElementBot
74be5a59a4 Update screenshots 2025-01-22 16:24:36 +01:00
Benoit Marty
b72f4bb3f1 Fix tests. 2025-01-22 16:24:35 +01:00
Benoit Marty
bac69c4a35 Add timestamp to trigger back pagination. 2025-01-22 16:24:34 +01:00
Benoit Marty
dfda13ac20 Restore overlay when user cancel the dragging 2025-01-22 16:24:34 +01:00
Benoit Marty
e496bc38ad Introduce MediaViewerFlickToDismiss and extract to its own file 2025-01-22 16:24:32 +01:00
Benoit Marty
621558a134 MediaViewer: add error case in the UI. 2025-01-22 16:24:32 +01:00
Benoit Marty
18c3b5b43b Add test on MediaViewerDataSource 2025-01-22 16:24:31 +01:00
Benoit Marty
428b81ccab Add test on SingleMediaGalleryDataSource 2025-01-22 16:24:30 +01:00
Benoit Marty
f286f6d464 Small cleanup 2025-01-22 16:24:30 +01:00
Benoit Marty
a4cf1d7e08 Restore caption rendering 2025-01-22 16:24:29 +01:00
Benoit Marty
aa68a35581 sync strings 2025-01-22 16:24:29 +01:00
Benoit Marty
6c904a403c Add exception for Konsist 2025-01-22 16:24:28 +01:00
Benoit Marty
d6ebec8d9a Improve loading state and add preview. 2025-01-22 16:24:27 +01:00
Benoit Marty
c0542c8702 Fix and write tests 2025-01-22 16:23:46 +01:00
ganfra
3248041d90 media viewer : use collectAsState in the DataSource 2025-01-22 16:22:19 +01:00
Benoit Marty
bad45663d1 Remove unused import 2025-01-22 16:22:18 +01:00
Benoit Marty
d26414f1d3 Provide duration 2025-01-22 16:22:18 +01:00
ganfra
98a786bfa3 media viewer : create MediaViewerDataSource 2025-01-22 16:22:17 +01:00
Benoit Marty
8d6550bfdf If not displayed, make sure to pause the audio / video 2025-01-22 16:22:17 +01:00
Benoit Marty
ca5c06f20b Open in SingleMedia mode when coming from the timeline 2025-01-22 16:22:16 +01:00
Benoit Marty
7df65b0350 Add support for files navigation (when coming from the gallery) 2025-01-22 16:22:15 +01:00
Benoit Marty
32db42aebb Suppress Detekt false positive (?) 2025-01-22 16:22:15 +01:00
Benoit Marty
a06607f530 Remove RetryLoading (use LoadMedia) 2025-01-22 16:22:14 +01:00
Benoit Marty
cbf7bf0fd4 Let MediaGalleryDataSource be an interface 2025-01-22 16:22:11 +01:00
Benoit Marty
35cc5df2b5 Create MediaGalleryDataSource and extract logic from MediaGalleryPresenter. 2025-01-22 16:21:37 +01:00
Benoit Marty
e4768a8850
Merge pull request #4183 from element-hq/renovate/org.matrix.rustcomponents-sdk-android-0.x
Update dependency org.matrix.rustcomponents:sdk-android to v0.2.76
2025-01-22 16:16:07 +01:00
Benoit Marty
7d73758cda
Merge pull request #4184 from element-hq/feature/bma/removeFirstIfSingle
Replace our firstIfSingle extension with singleOrNull from the Kotlin library
2025-01-22 16:14:11 +01:00
Benoit Marty
2e5323853c Replace our firstIfSingle extension with singleOrNull from the Kotlin library. 2025-01-22 15:49:41 +01:00
Benoit Marty
2bebb5ed0a Fix API break 2025-01-22 15:42:08 +01:00