Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,10 @@ import android.net.Uri
import android.webkit.ValueCallback
import android.webkit.WebChromeClient
import android.webkit.WebView
import to.dev.dev_android.databinding.ActivityMainBinding


class CustomWebChromeClient(
val baseURL: String,
val binding: ActivityMainBinding,
private val baseURL: String,
private val listener: CustomListener
) : WebChromeClient() {

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package to.dev.dev_android.view.main.view

import android.content.Context
import android.content.Intent
import android.graphics.Color
import android.net.Uri
import android.os.Build
Expand All @@ -10,9 +9,11 @@ import android.webkit.CookieManager
import android.webkit.WebView
import android.webkit.WebViewClient
import androidx.browser.customtabs.CustomTabsIntent
import to.dev.dev_android.databinding.ActivityMainBinding

class CustomWebViewClient(private val context: Context, private val binding: ActivityMainBinding) : WebViewClient() {
class CustomWebViewClient(
private val context: Context,
private val onPageFinish: () -> Unit
) : WebViewClient() {

private val overrideUrlList = listOf(
"://dev.to",
Expand All @@ -21,8 +22,9 @@ class CustomWebViewClient(private val context: Context, private val binding: Act
"github.com/login",
"github.com/sessions/"
)

override fun onPageFinished(view: WebView, url: String?) {
binding.splash.visibility = View.GONE
onPageFinish()
view.visibility = View.VISIBLE
super.onPageFinished(view, url)
}
Expand All @@ -39,22 +41,15 @@ class CustomWebViewClient(private val context: Context, private val binding: Act
}
}

for (i in 0 until overrideUrlList.size) {
if (url.contains(overrideUrlList[i])) {
return false
}
if (overrideUrlList.any { url.contains(it) }) {
return false
}

val builder = CustomTabsIntent.Builder()
builder.setToolbarColor(Color.parseColor("#00000000"))
val customTabsIntent = builder.build()
customTabsIntent.launchUrl(context, Uri.parse(url))
return true
}
CustomTabsIntent.Builder()
.setToolbarColor(Color.parseColor("#00000000"))
.build()
.also { it.launchUrl(context, Uri.parse(url)) }

private fun openBrowser(url: String): Boolean {
val intent = Intent(Intent.ACTION_VIEW, Uri.parse(url))
context.startActivity(intent)
return true
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import android.app.Activity
import android.content.Intent
import android.net.Uri
import android.os.Bundle
import android.view.View
import android.webkit.ValueCallback
import androidx.core.app.ActivityCompat
import to.dev.dev_android.R
Expand Down Expand Up @@ -51,8 +52,10 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), CustomWebChromeClient.
binding.webView.settings.javaScriptEnabled = true
binding.webView.settings.domStorageEnabled = true
binding.webView.addJavascriptInterface(webViewBridge, "androidWebViewBridge")
binding.webView.webViewClient = CustomWebViewClient(this@MainActivity, binding)
binding.webView.webChromeClient = CustomWebChromeClient(BuildConfig.baseUrl, binding, this)
binding.webView.webViewClient = CustomWebViewClient(this@MainActivity) {
binding.splash.visibility = View.GONE
}
binding.webView.webChromeClient = CustomWebChromeClient(BuildConfig.baseUrl, this)
}

private fun restoreState(savedInstanceState: Bundle) {
Expand Down