From 23c784f2cd145dfbfcf99a966d7fdbc7bc45caf6 Mon Sep 17 00:00:00 2001 From: Varun Patil Date: Tue, 23 May 2023 20:03:11 -0700 Subject: [PATCH] webview: match host --- app/src/main/java/gallery/memories/MainActivity.kt | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/gallery/memories/MainActivity.kt b/app/src/main/java/gallery/memories/MainActivity.kt index 3b094602..97eb5d7e 100644 --- a/app/src/main/java/gallery/memories/MainActivity.kt +++ b/app/src/main/java/gallery/memories/MainActivity.kt @@ -42,6 +42,7 @@ import gallery.memories.databinding.ActivityMainBinding private var mNeedRefresh = false private val memoriesRegex = Regex("/apps/memories/.*$") + private var host: String? = null override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) @@ -118,8 +119,9 @@ import gallery.memories.databinding.ActivityMainBinding // Intercept local APIs binding.webview.webViewClient = object : WebViewClient() { override fun shouldOverrideUrlLoading(view: WebView, request: WebResourceRequest): Boolean { - // TODO: check host as well - if (request.url.path?.matches(memoriesRegex) == true) { + val pathMatches = request.url.path?.matches(memoriesRegex) == true + val hostMatches = request.url.host.equals(host) + if (pathMatches && hostMatches) { return false } @@ -178,6 +180,10 @@ import gallery.memories.databinding.ActivityMainBinding // Load app interface if authenticated if (authHeader != null && memoriesUrl != null) { + // Get host name + host = Uri.parse(memoriesUrl).host + + // Set authorization header binding.webview.loadUrl(memoriesUrl, mapOf( "Authorization" to authHeader ))