Skip to content

Commit 9f021d5

Browse files
authored
Merge pull request #128 from Trendyol/class-cast-exception
Update WebViewDownloadConfigurator and WebViewConfigurator signature
2 parents bd07020 + e66fbaf commit 9f021d5

File tree

6 files changed

+23
-7
lines changed

6 files changed

+23
-7
lines changed

libraries/dialogs/src/main/java/com/trendyol/uicomponents/dialogs/DialogFragment.kt

+2-2
Original file line numberDiff line numberDiff line change
@@ -198,7 +198,7 @@ class DialogFragment internal constructor() : BaseBottomSheetDialog() {
198198
webChromeClient = WebChromeClient()
199199
webViewClient = WebViewClient()
200200
findWebViewConfigurator(requireFragmentManager())
201-
?.configureWebView(webViewContent)
201+
?.configureWebView(this@DialogFragment, webViewContent)
202202
loadWebViewContent(viewState.webViewContent)
203203
if (dialogArguments.isFullHeightWebView) {
204204
binding.webViewContent.layoutParams.height =
@@ -280,7 +280,7 @@ class DialogFragment internal constructor() : BaseBottomSheetDialog() {
280280
override fun onResume() {
281281
super.onResume()
282282
findWebViewDownloadConfigurator(requireFragmentManager())
283-
?.configureDownloadListener(binding.webViewContent)
283+
?.configureDownloadListener(this, binding.webViewContent)
284284
}
285285

286286
override fun onPause() {

libraries/dialogs/src/main/java/com/trendyol/uicomponents/dialogs/configurator/WebViewConfigurator.kt

+5-1
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,14 @@
11
package com.trendyol.uicomponents.dialogs.configurator
22

33
import android.webkit.WebView
4+
import com.trendyol.uicomponents.dialogs.DialogFragment
45

56
interface WebViewConfigurator {
67

7-
fun configureWebView(webView: WebView)
8+
fun configureWebView(
9+
dialogFragment: DialogFragment,
10+
webView: WebView
11+
)
812

913
companion object {
1014
const val TAG: String = "WebViewConfigurator"

libraries/dialogs/src/main/java/com/trendyol/uicomponents/dialogs/configurator/WebViewDownloadConfigurator.kt

+5-1
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,14 @@
11
package com.trendyol.uicomponents.dialogs.configurator
22

33
import android.webkit.WebView
4+
import com.trendyol.uicomponents.dialogs.DialogFragment
45

56
interface WebViewDownloadConfigurator {
67

7-
fun configureDownloadListener(webView: WebView)
8+
fun configureDownloadListener(
9+
fragment: DialogFragment,
10+
webView: WebView
11+
)
812

913
companion object {
1014
const val TAG: String = "WebViewDownloadConfigurator"

sample/src/main/java/com/trendyol/uicomponents/WebViewDomAndJSEnabler.kt

+7-1
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,17 @@
11
package com.trendyol.uicomponents
22

3+
import android.webkit.WebView
34
import android.webkit.WebViewClient
45
import androidx.fragment.app.Fragment
6+
import com.trendyol.uicomponents.dialogs.DialogFragment
57
import com.trendyol.uicomponents.dialogs.configurator.WebViewConfigurator
68

79
class WebViewDomAndJSEnabler : WebViewConfigurator, Fragment() {
8-
override fun configureWebView(webView: android.webkit.WebView) {
10+
11+
override fun configureWebView(
12+
dialogFragment: DialogFragment,
13+
webView: WebView
14+
) {
915
webView.settings.javaScriptEnabled = true
1016
webView.settings.domStorageEnabled = true
1117
webView.webViewClient = WebViewClient()

sample/src/main/java/com/trendyol/uicomponents/WebViewDownloadListenerConfigurator.kt

+2-1
Original file line numberDiff line numberDiff line change
@@ -9,14 +9,15 @@ import android.webkit.WebView
99
import androidx.core.content.ContextCompat
1010
import androidx.core.os.bundleOf
1111
import androidx.fragment.app.Fragment
12+
import com.trendyol.uicomponents.dialogs.DialogFragment
1213
import com.trendyol.uicomponents.dialogs.configurator.WebViewDownloadConfigurator
1314

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

19-
override fun configureDownloadListener(webView: WebView) {
20+
override fun configureDownloadListener(fragment: DialogFragment, webView: WebView) {
2021
webView.setDownloadListener(DownloadListener { url, _, contentDisposition, mimetype, _ ->
2122
val downloadRequest = DownloadManager.Request(Uri.parse(url))
2223
.setTitle(requireArguments().getString("title"))

sample/src/main/java/com/trendyol/uicomponents/WebViewJavascriptEnabler.kt

+2-1
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,12 @@ package com.trendyol.uicomponents
22

33
import android.webkit.WebView
44
import androidx.fragment.app.Fragment
5+
import com.trendyol.uicomponents.dialogs.DialogFragment
56
import com.trendyol.uicomponents.dialogs.configurator.WebViewConfigurator
67

78
class WebViewJavascriptEnabler : WebViewConfigurator, Fragment() {
89

9-
override fun configureWebView(webView: WebView) {
10+
override fun configureWebView(dialogFragment: DialogFragment, webView: WebView) {
1011
webView.settings.javaScriptEnabled = true
1112
}
1213
}

0 commit comments

Comments
 (0)