From 99d6aef9930b377bb069697f3fbe2230a696c819 Mon Sep 17 00:00:00 2001 From: Blatzar <46196380+Blatzar@users.noreply.github.com> Date: Wed, 17 Aug 2022 00:17:50 +0200 Subject: [PATCH] Add webview support for cloudstreamrepo uri --- .../com/lagradost/cloudstream3/MainActivity.kt | 3 ++- .../cloudstream3/ui/WebviewFragment.kt | 17 +++++++++++++---- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/com/lagradost/cloudstream3/MainActivity.kt b/app/src/main/java/com/lagradost/cloudstream3/MainActivity.kt index 6f01e055..1a6f3ef9 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/MainActivity.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/MainActivity.kt @@ -93,6 +93,7 @@ import com.lagradost.cloudstream3.utils.Coroutines.main import com.lagradost.cloudstream3.utils.Event import kotlinx.coroutines.delay import java.lang.ref.WeakReference +import java.net.URI const val VLC_PACKAGE = "org.videolan.vlc" @@ -375,7 +376,7 @@ class MainActivity : AppCompatActivity(), ColorPickerDialogListener { } } } - } else if (str.contains(appStringRepo)) { + } else if (URI(str).scheme == appStringRepo) { val url = str.replaceFirst(appStringRepo, "https") loadRepository(url) } else { diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/WebviewFragment.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/WebviewFragment.kt index 81e6e728..4fa2ee92 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/ui/WebviewFragment.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/ui/WebviewFragment.kt @@ -11,8 +11,10 @@ import android.webkit.WebViewClient import androidx.navigation.fragment.findNavController import com.lagradost.cloudstream3.R import com.lagradost.cloudstream3.USER_AGENT +import com.lagradost.cloudstream3.syncproviders.AccountManager.Companion.appStringRepo import com.lagradost.cloudstream3.utils.AppUtils.loadRepository import kotlinx.android.synthetic.main.fragment_webview.* +import java.net.URI class WebviewFragment : Fragment() { override fun onViewCreated(view: View, savedInstanceState: Bundle?) { @@ -27,10 +29,17 @@ class WebviewFragment : Fragment() { request: WebResourceRequest? ): Boolean { val requestUrl = request?.url.toString() - if (requestUrl.startsWith("https://cs.repo")) { - val realUrl = "https://" + requestUrl.substringAfter("?") - println("Repository url: $realUrl :::: $requestUrl") - activity?.loadRepository(realUrl) + + val repoUrl = if (requestUrl.startsWith("https://cs.repo")) { + "https://" + requestUrl.substringAfter("?") + } else if (URI(requestUrl).scheme == appStringRepo) { + "https://" + requestUrl.replaceFirst(appStringRepo, "https") + } else { + null + } + + if (repoUrl != null) { + activity?.loadRepository(repoUrl) findNavController().popBackStack() return true }