diff --git a/app/src/main/java/org/koitharu/kotatsu/browser/BrowserActivity.kt b/app/src/main/java/org/koitharu/kotatsu/browser/BrowserActivity.kt index a46ce10fd..885e99b70 100644 --- a/app/src/main/java/org/koitharu/kotatsu/browser/BrowserActivity.kt +++ b/app/src/main/java/org/koitharu/kotatsu/browser/BrowserActivity.kt @@ -29,6 +29,7 @@ class BrowserActivity : BaseActivity(), BrowserCallback javaScriptEnabled = true } binding.webView.webViewClient = BrowserClient(this) + binding.webView.webChromeClient = ProgressChromeClient(binding.progressBar) if (savedInstanceState != null) { return } diff --git a/app/src/main/java/org/koitharu/kotatsu/browser/ProgressChromeClient.kt b/app/src/main/java/org/koitharu/kotatsu/browser/ProgressChromeClient.kt new file mode 100644 index 000000000..0d890397e --- /dev/null +++ b/app/src/main/java/org/koitharu/kotatsu/browser/ProgressChromeClient.kt @@ -0,0 +1,31 @@ +package org.koitharu.kotatsu.browser + +import android.webkit.WebChromeClient +import android.webkit.WebView +import androidx.core.view.isVisible +import com.google.android.material.progressindicator.BaseProgressIndicator +import org.koitharu.kotatsu.utils.ext.setIndeterminateCompat + +private const val PROGRESS_MAX = 100 + +class ProgressChromeClient( + private val progressIndicator: BaseProgressIndicator<*>, +) : WebChromeClient() { + + init { + progressIndicator.max = PROGRESS_MAX + } + + override fun onProgressChanged(view: WebView?, newProgress: Int) { + super.onProgressChanged(view, newProgress) + if (!progressIndicator.isVisible) { + return + } + if (newProgress in 1 until PROGRESS_MAX) { + progressIndicator.setIndeterminateCompat(false) + progressIndicator.setProgressCompat(newProgress.coerceAtMost(PROGRESS_MAX), true) + } else { + progressIndicator.setIndeterminateCompat(true) + } + } +} \ No newline at end of file diff --git a/app/src/main/res/layout/activity_browser.xml b/app/src/main/res/layout/activity_browser.xml index b9a3c6992..729f00739 100644 --- a/app/src/main/res/layout/activity_browser.xml +++ b/app/src/main/res/layout/activity_browser.xml @@ -6,22 +6,6 @@ android:layout_width="match_parent" android:layout_height="match_parent"> - - - - - - + + + + + + \ No newline at end of file