From 63c8530afad37c1b6089fb1f1fa2776a2879a491 Mon Sep 17 00:00:00 2001 From: amirisback Date: Mon, 1 Sep 2025 15:40:57 +0700 Subject: [PATCH 1/4] update: webview ext --- .../com/frogobox/sdk/ext/FrogoWebViewExt.kt | 139 +++++------------- .../frogobox/sdk/ui/FrogoWebViewActivity.kt | 4 +- gradle/libs.versions.toml | 6 +- 3 files changed, 41 insertions(+), 108 deletions(-) diff --git a/core-sdk-android/src/main/java/com/frogobox/sdk/ext/FrogoWebViewExt.kt b/core-sdk-android/src/main/java/com/frogobox/sdk/ext/FrogoWebViewExt.kt index 808e4c4..d2cd5ea 100644 --- a/core-sdk-android/src/main/java/com/frogobox/sdk/ext/FrogoWebViewExt.kt +++ b/core-sdk-android/src/main/java/com/frogobox/sdk/ext/FrogoWebViewExt.kt @@ -1,7 +1,6 @@ package com.frogobox.sdk.ext import android.annotation.SuppressLint -import android.os.Build import android.view.View import android.webkit.CookieManager import android.webkit.WebChromeClient @@ -27,19 +26,20 @@ import com.frogobox.sdk.widget.webview.WebViewCallback */ @SuppressLint("SetJavaScriptEnabled") -fun WebView.loadUrlExt(url: String, auth: HashMap, callback: WebViewCallback) { - callback.onShowProgress() - - if (!url.contains("http") || !url.contains("https")) { - callback.onHideProgress() - callback.onFailed() +fun WebView.loadUrlFrogoExt( + url: String, + auth: HashMap? = null, + callback: WebViewCallback? = null, +) { + callback?.onShowProgress() + + if (url == "") { + callback?.onHideProgress() + callback?.onFailed() } else { CookieManager.getInstance().setAcceptCookie(true) - - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { - CookieManager.getInstance().setAcceptThirdPartyCookies(this, true); - } + CookieManager.getInstance().setAcceptThirdPartyCookies(this, true) apply { @@ -47,13 +47,16 @@ fun WebView.loadUrlExt(url: String, auth: HashMap, callback: Web settings.mediaPlaybackRequiresUserGesture = false settings.loadsImagesAutomatically = true settings.loadWithOverviewMode = true - settings.javaScriptEnabled = true - settings.domStorageEnabled = true + settings.useWideViewPort = true + settings.allowFileAccess = true + settings.allowContentAccess = true - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { - settings.mixedContentMode = WebSettings.MIXED_CONTENT_ALWAYS_ALLOW - } + settings.domStorageEnabled = true + settings.javaScriptCanOpenWindowsAutomatically = true + settings.javaScriptEnabled = true + + settings.mixedContentMode = WebSettings.MIXED_CONTENT_ALWAYS_ALLOW settings.setSupportZoom(true) settings.builtInZoomControls = true @@ -66,8 +69,8 @@ fun WebView.loadUrlExt(url: String, auth: HashMap, callback: Web webViewClient = object : WebViewClient() { override fun onPageFinished(view: WebView?, url: String?) { super.onPageFinished(view, url) - callback.onHideProgress() - callback.onFinish() + callback?.onHideProgress() + callback?.onFinish() } override fun onReceivedError( @@ -76,98 +79,28 @@ fun WebView.loadUrlExt(url: String, auth: HashMap, callback: Web error: WebResourceError?, ) { super.onReceivedError(view, request, error) - callback.onHideProgress() - callback.onFailed() + callback?.onHideProgress() + callback?.onFailed() } } - }.loadUrl(url, auth) - - } - -} - -@SuppressLint("SetJavaScriptEnabled") -fun WebView.loadUrlExt(url: String, callback: WebViewCallback) { - callback.onShowProgress() - - if (!url.contains("http") || !url.contains("https")) { - callback.onHideProgress() - callback.onFailed() - } else { - - CookieManager.getInstance().setAcceptCookie(true) - - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { - CookieManager.getInstance().setAcceptThirdPartyCookies(this, true) } - apply { - - settings.layoutAlgorithm = WebSettings.LayoutAlgorithm.NORMAL - settings.mediaPlaybackRequiresUserGesture = false - settings.loadsImagesAutomatically = true - settings.loadWithOverviewMode = true - settings.javaScriptEnabled = true - settings.domStorageEnabled = true - settings.useWideViewPort = true - - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { - settings.mixedContentMode = WebSettings.MIXED_CONTENT_ALWAYS_ALLOW - } - - settings.setSupportZoom(true) - settings.builtInZoomControls = true - settings.displayZoomControls = false - - scrollBarStyle = View.SCROLLBARS_INSIDE_OVERLAY - - webChromeClient = WebChromeClient() - - webViewClient = object : WebViewClient() { - override fun onPageFinished(view: WebView?, url: String?) { - super.onPageFinished(view, url) - callback.onHideProgress() - callback.onFinish() - } - - override fun onReceivedError( - view: WebView?, - request: WebResourceRequest?, - error: WebResourceError?, - ) { - super.onReceivedError(view, request, error) - callback.onHideProgress() - callback.onFailed() + if (url.contains("")) { + loadDataWithBaseURL(null, url, "text/html", "utf-8", null) + } else { + if (!url.contains("http") || !url.contains("https")) { + callback?.onHideProgress() + callback?.onFailed() + } else { + auth?.let { + loadUrl(url, it) + } ?: run { + loadUrl(url) } } - - }.loadUrl(url) + } } -} - -@SuppressLint("SetJavaScriptEnabled") -fun WebView.loadUrlExt(url: String, auth: HashMap) { - - loadUrlExt(url, auth, object : WebViewCallback { - override fun onShowProgress() {} - override fun onHideProgress() {} - override fun onFinish() {} - override fun onFailed() {} - }) - -} - -@SuppressLint("SetJavaScriptEnabled") -fun WebView.loadUrlExt(url: String) { - - loadUrlExt(url, object : WebViewCallback { - override fun onShowProgress() {} - override fun onHideProgress() {} - override fun onFinish() {} - override fun onFailed() {} - }) - -} +} \ No newline at end of file diff --git a/core-sdk-android/src/main/java/com/frogobox/sdk/ui/FrogoWebViewActivity.kt b/core-sdk-android/src/main/java/com/frogobox/sdk/ui/FrogoWebViewActivity.kt index 5ce121b..665c1ce 100644 --- a/core-sdk-android/src/main/java/com/frogobox/sdk/ui/FrogoWebViewActivity.kt +++ b/core-sdk-android/src/main/java/com/frogobox/sdk/ui/FrogoWebViewActivity.kt @@ -5,7 +5,7 @@ import android.content.Intent import android.os.Bundle import com.frogobox.sdk.databinding.ActivityFrogoWebViewBinding import com.frogobox.sdk.ext.gone -import com.frogobox.sdk.ext.loadUrlExt +import com.frogobox.sdk.ext.loadUrlFrogoExt import com.frogobox.sdk.ext.visible import com.frogobox.sdk.view.FrogoBindActivity import com.frogobox.sdk.widget.webview.WebViewCallback @@ -39,7 +39,7 @@ open class FrogoWebViewActivity : FrogoBindActivity private fun initView() { binding.apply { - webView.loadUrlExt(url, object : WebViewCallback { + webView.loadUrlFrogoExt(url = url, callback = object : WebViewCallback { override fun onShowProgress() { progressBar.visible() } diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index d49f4ea..b864cad 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,5 +1,5 @@ [versions] -agp = "8.12.1" +agp = "8.12.2" androidMavenGradlePlugin = "2.1" kotlin = "2.2.10" ksp = "2.2.10-2.0.2" @@ -8,7 +8,7 @@ appcompat = "1.7.1" activity = "1.10.1" fragment = "1.8.9" constraintlayout = "2.2.1" -liveCycle = "2.9.2" +liveCycle = "2.9.3" viewPager2 = "1.1.0" preference = "1.2.1" roomKtx = "2.7.2" @@ -24,7 +24,7 @@ retrofit = "3.0.0" rxandroid3 = "3.0.2" rxjava3 = "3.1.11" chucker = "4.2.0" -glide = "4.16.0" +glide = "5.0.3" customactivityoncrash = "2.4.0" circleimageview = "3.1.0" koin = "4.1.0" From 38115c3d802811142b6d53e28ee27050c21cd598 Mon Sep 17 00:00:00 2001 From: amirisback Date: Mon, 1 Sep 2025 15:58:11 +0700 Subject: [PATCH 2/4] update: webview ext --- gradle/libs.versions.toml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index b864cad..25170b6 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -25,6 +25,7 @@ rxandroid3 = "3.0.2" rxjava3 = "3.1.11" chucker = "4.2.0" glide = "5.0.3" +glideCompiler = "4.16.0" customactivityoncrash = "2.4.0" circleimageview = "3.1.0" koin = "4.1.0" @@ -82,7 +83,7 @@ github-chucker = { group = "com.github.chuckerteam.chucker", name = "library", v github-chucker-no-op = { module = "com.github.chuckerteam.chucker:library-no-op", version.ref = "chucker" } github-glide = { group = "com.github.bumptech.glide", name = "glide", version.ref = "glide" } -github-glide-compiler = { group = "com.github.bumptech.glide", name = "compiler", version.ref = "glide" } +github-glide-compiler = { group = "com.github.bumptech.glide", name = "compiler", version.ref = "glideCompiler" } github-customactivityoncrash = { group = "cat.ereza", name = "customactivityoncrash", version.ref = "customactivityoncrash" } github-circleimageview = { group = "de.hdodenhof", name = "circleimageview", version.ref = "circleimageview" } From 5726be16234b5c8fc81234e2911ff7432e771657 Mon Sep 17 00:00:00 2001 From: amirisback Date: Mon, 1 Sep 2025 16:10:37 +0700 Subject: [PATCH 3/4] Release v2.3.2 --- README.md | 9 ++++----- buildSrc/src/main/kotlin/ProjectSetting.kt | 2 +- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 2411ac9..9d8242d 100644 --- a/README.md +++ b/README.md @@ -13,11 +13,10 @@ This Is Latest Release - $version_release = 2.3.1 +Rel $version_release = 2.3.2 What's New?? - * Open Function Enable Edge To Edge * * Library Update Latest Version * ## Download this project @@ -55,7 +54,7 @@ allprojects { ```groovy dependencies { // library frogo-sdk - implementation 'com.github.frogobox:frogo-sdk:2.3.1' + implementation 'com.github.frogobox:frogo-sdk:2.3.2' } ``` @@ -64,14 +63,14 @@ dependencies { ```groovy dependencies { // library frogo-sdk - implementation("com.github.frogobox:frogo-sdk:2.3.1") + implementation("com.github.frogobox:frogo-sdk:2.3.2") } ``` ####