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