Skip to content

Commit

Permalink
Share Duck Player links as YouTube URLs
Browse files Browse the repository at this point in the history
  • Loading branch information
CrisBarreiro committed Jul 31, 2024
1 parent 4a370c6 commit c024579
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -2362,7 +2362,7 @@ class BrowserTabViewModel @Inject constructor(

fun onShareSelected() {
url?.let {
command.value = ShareLink(removeAtbAndSourceParamsFromSearch(it), title.orEmpty())
command.value = ShareLink(transformUrlToShare(it), title.orEmpty())
}
}

Expand All @@ -2380,6 +2380,16 @@ class BrowserTabViewModel @Inject constructor(
command.value = NavigationCommand.NavigateToHistory(stackIndex)
}

private fun transformUrlToShare(url: String): String {
return if (duckDuckGoUrlDetector.isDuckDuckGoQueryUrl(url)) {
removeAtbAndSourceParamsFromSearch(url)
} else if (duckPlayer.isDuckPlayerUri(url)) {
transformDuckPlayerUrl(url)
} else {
url
}
}

private fun removeAtbAndSourceParamsFromSearch(url: String): String {
if (!duckDuckGoUrlDetector.isDuckDuckGoQueryUrl(url)) {
return url
Expand All @@ -2398,6 +2408,14 @@ class BrowserTabViewModel @Inject constructor(
return builder.build().toString()
}

private fun transformDuckPlayerUrl(url: String): String {
return if (duckPlayer.isDuckPlayerUri(url)) {
duckPlayer.createYoutubeWatchUrlFromDuckPlayer(url.toUri()) ?: url
} else {
url
}
}

fun saveWebViewState(
webView: WebView?,
tabId: String,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -110,6 +110,8 @@ class RealDuckPlayer @Inject constructor(
override fun createYoutubeWatchUrlFromDuckPlayer(uri: Uri): String? {
uri.getQueryParameter("v")?.let { videoID ->
return "https://$YOUTUBE_HOST/watch?v=$videoID"
} ?: uri.pathSegments.firstOrNull()?.let { videoID ->
return "https://$YOUTUBE_HOST/watch?v=$videoID"
}
return null
}
Expand Down

0 comments on commit c024579

Please sign in to comment.