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
9 changes: 4 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,10 @@

This Is Latest Release

$version_release = 2.3.1
$version_release = 2.3.2

What's New??

* Open Function Enable Edge To Edge *
* Library Update Latest Version *

## Download this project
Expand Down Expand Up @@ -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'
}
```

Expand All @@ -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")
}
```

#### <Option 3> libs.versions.toml
```yml
[versions]
frogoAndroid = "2.3.1"
frogoAndroid = "2.3.2"

[libraries]
frogo-android = { group = "com.github.frogobox", name = "frogo-sdk", version.ref = "frogoAndroid" }
Expand Down
2 changes: 1 addition & 1 deletion buildSrc/src/main/kotlin/ProjectSetting.kt
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ object ProjectSetting {

const val VERSION_MAJOR = 2
const val VERSION_MINOR = 3
const val VERSION_PATCH = 1
const val VERSION_PATCH = 2

// ---------------------------------------------------------------------------------------------

Expand Down
139 changes: 36 additions & 103 deletions core-sdk-android/src/main/java/com/frogobox/sdk/ext/FrogoWebViewExt.kt
Original file line number Diff line number Diff line change
@@ -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
Expand All @@ -27,33 +26,37 @@ import com.frogobox.sdk.widget.webview.WebViewCallback
*/

@SuppressLint("SetJavaScriptEnabled")
fun WebView.loadUrlExt(url: String, auth: HashMap<String, String>, callback: WebViewCallback) {
callback.onShowProgress()

if (!url.contains("http") || !url.contains("https")) {
callback.onHideProgress()
callback.onFailed()
fun WebView.loadUrlFrogoExt(
url: String,
auth: HashMap<String, String>? = 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 {

settings.layoutAlgorithm = WebSettings.LayoutAlgorithm.NORMAL
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
Expand All @@ -66,8 +69,8 @@ fun WebView.loadUrlExt(url: String, auth: HashMap<String, String>, 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(
Expand All @@ -76,98 +79,28 @@ fun WebView.loadUrlExt(url: String, auth: HashMap<String, String>, 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("</html>")) {
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<String, String>) {

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() {}
})

}
}
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -39,7 +39,7 @@ open class FrogoWebViewActivity : FrogoBindActivity<ActivityFrogoWebViewBinding>

private fun initView() {
binding.apply {
webView.loadUrlExt(url, object : WebViewCallback {
webView.loadUrlFrogoExt(url = url, callback = object : WebViewCallback {
override fun onShowProgress() {
progressBar.visible()
}
Expand Down
9 changes: 5 additions & 4 deletions gradle/libs.versions.toml
Original file line number Diff line number Diff line change
@@ -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"
Expand All @@ -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"
Expand All @@ -24,7 +24,8 @@ retrofit = "3.0.0"
rxandroid3 = "3.0.2"
rxjava3 = "3.1.11"
chucker = "4.2.0"
glide = "4.16.0"
glide = "5.0.3"
glideCompiler = "4.16.0"
customactivityoncrash = "2.4.0"
circleimageview = "3.1.0"
koin = "4.1.0"
Expand Down Expand Up @@ -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" }

Expand Down