Skip to content

Commit

Permalink
Merge pull request #128 from Trendyol/class-cast-exception
Browse files Browse the repository at this point in the history
Update WebViewDownloadConfigurator and WebViewConfigurator signature
  • Loading branch information
MertNYuksel authored Aug 8, 2024
2 parents bd07020 + e66fbaf commit 9f021d5
Show file tree
Hide file tree
Showing 6 changed files with 23 additions and 7 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -198,7 +198,7 @@ class DialogFragment internal constructor() : BaseBottomSheetDialog() {
webChromeClient = WebChromeClient()
webViewClient = WebViewClient()
findWebViewConfigurator(requireFragmentManager())
?.configureWebView(webViewContent)
?.configureWebView(this@DialogFragment, webViewContent)
loadWebViewContent(viewState.webViewContent)
if (dialogArguments.isFullHeightWebView) {
binding.webViewContent.layoutParams.height =
Expand Down Expand Up @@ -280,7 +280,7 @@ class DialogFragment internal constructor() : BaseBottomSheetDialog() {
override fun onResume() {
super.onResume()
findWebViewDownloadConfigurator(requireFragmentManager())
?.configureDownloadListener(binding.webViewContent)
?.configureDownloadListener(this, binding.webViewContent)
}

override fun onPause() {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,14 @@
package com.trendyol.uicomponents.dialogs.configurator

import android.webkit.WebView
import com.trendyol.uicomponents.dialogs.DialogFragment

interface WebViewConfigurator {

fun configureWebView(webView: WebView)
fun configureWebView(
dialogFragment: DialogFragment,
webView: WebView
)

companion object {
const val TAG: String = "WebViewConfigurator"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,14 @@
package com.trendyol.uicomponents.dialogs.configurator

import android.webkit.WebView
import com.trendyol.uicomponents.dialogs.DialogFragment

interface WebViewDownloadConfigurator {

fun configureDownloadListener(webView: WebView)
fun configureDownloadListener(
fragment: DialogFragment,
webView: WebView
)

companion object {
const val TAG: String = "WebViewDownloadConfigurator"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,17 @@
package com.trendyol.uicomponents

import android.webkit.WebView
import android.webkit.WebViewClient
import androidx.fragment.app.Fragment
import com.trendyol.uicomponents.dialogs.DialogFragment
import com.trendyol.uicomponents.dialogs.configurator.WebViewConfigurator

class WebViewDomAndJSEnabler : WebViewConfigurator, Fragment() {
override fun configureWebView(webView: android.webkit.WebView) {

override fun configureWebView(
dialogFragment: DialogFragment,
webView: WebView
) {
webView.settings.javaScriptEnabled = true
webView.settings.domStorageEnabled = true
webView.webViewClient = WebViewClient()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,14 +9,15 @@ import android.webkit.WebView
import androidx.core.content.ContextCompat
import androidx.core.os.bundleOf
import androidx.fragment.app.Fragment
import com.trendyol.uicomponents.dialogs.DialogFragment
import com.trendyol.uicomponents.dialogs.configurator.WebViewDownloadConfigurator

class WebViewDownloadListenerConfigurator : WebViewDownloadConfigurator, Fragment() {
private val downloadManager: DownloadManager? by lazy(LazyThreadSafetyMode.NONE) {
ContextCompat.getSystemService(requireContext(), DownloadManager::class.java)
}

override fun configureDownloadListener(webView: WebView) {
override fun configureDownloadListener(fragment: DialogFragment, webView: WebView) {
webView.setDownloadListener(DownloadListener { url, _, contentDisposition, mimetype, _ ->
val downloadRequest = DownloadManager.Request(Uri.parse(url))
.setTitle(requireArguments().getString("title"))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,12 @@ package com.trendyol.uicomponents

import android.webkit.WebView
import androidx.fragment.app.Fragment
import com.trendyol.uicomponents.dialogs.DialogFragment
import com.trendyol.uicomponents.dialogs.configurator.WebViewConfigurator

class WebViewJavascriptEnabler : WebViewConfigurator, Fragment() {

override fun configureWebView(webView: WebView) {
override fun configureWebView(dialogFragment: DialogFragment, webView: WebView) {
webView.settings.javaScriptEnabled = true
}
}

0 comments on commit 9f021d5

Please sign in to comment.