Opening links from RiotX reuses browser tab (#599)
This commit is contained in:
parent
36c5f9af13
commit
3f8ddbe880
|
@ -19,6 +19,7 @@ Bugfix:
|
||||||
- after login, the icon in the top left is a green 'A' for (all communities) rather than my avatar (#267)
|
- after login, the icon in the top left is a green 'A' for (all communities) rather than my avatar (#267)
|
||||||
- Picture uploads are unreliable, pictures are shown in wrong aspect ratio on desktop client (#517)
|
- Picture uploads are unreliable, pictures are shown in wrong aspect ratio on desktop client (#517)
|
||||||
- Invitation notifications are not dismissed automatically if room is joined from another client (#347)
|
- Invitation notifications are not dismissed automatically if room is joined from another client (#347)
|
||||||
|
- Opening links from RiotX reuses browser tab (#599)
|
||||||
|
|
||||||
Translations:
|
Translations:
|
||||||
-
|
-
|
||||||
|
|
|
@ -50,6 +50,7 @@ fun openUrlInExternalBrowser(context: Context, uri: Uri?) {
|
||||||
uri?.let {
|
uri?.let {
|
||||||
val browserIntent = Intent(Intent.ACTION_VIEW, it).apply {
|
val browserIntent = Intent(Intent.ACTION_VIEW, it).apply {
|
||||||
putExtra(Browser.EXTRA_APPLICATION_ID, context.packageName)
|
putExtra(Browser.EXTRA_APPLICATION_ID, context.packageName)
|
||||||
|
putExtra(Browser.EXTRA_CREATE_NEW_TAB, true)
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
|
|
@ -785,7 +785,7 @@ class RoomDetailFragment :
|
||||||
// TimelineEventController.Callback ************************************************************
|
// TimelineEventController.Callback ************************************************************
|
||||||
|
|
||||||
override fun onUrlClicked(url: String): Boolean {
|
override fun onUrlClicked(url: String): Boolean {
|
||||||
return permalinkHandler.launch(requireActivity(), url, object : NavigateToRoomInterceptor {
|
val managed = permalinkHandler.launch(requireActivity(), url, object : NavigateToRoomInterceptor {
|
||||||
override fun navToRoom(roomId: String, eventId: String?): Boolean {
|
override fun navToRoom(roomId: String, eventId: String?): Boolean {
|
||||||
// Same room?
|
// Same room?
|
||||||
if (roomId == roomDetailArgs.roomId) {
|
if (roomId == roomDetailArgs.roomId) {
|
||||||
|
@ -803,6 +803,14 @@ class RoomDetailFragment :
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
if (!managed) {
|
||||||
|
// Open in external browser, in a new Tab
|
||||||
|
openUrlInExternalBrowser(requireContext(), url)
|
||||||
|
}
|
||||||
|
|
||||||
|
// In fact it is always managed
|
||||||
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onUrlLongClicked(url: String): Boolean {
|
override fun onUrlLongClicked(url: String): Boolean {
|
||||||
|
|
Loading…
Reference in New Issue