Cleanup after PR review.

This commit is contained in:
Benoit Marty 2023-05-31 10:34:03 +02:00
parent 31e0120f46
commit bbacda4b45
5 changed files with 17 additions and 18 deletions

View file

@ -21,7 +21,10 @@ import androidx.activity.compose.BackHandler
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.statusBarsPadding
import androidx.compose.runtime.Composable
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.tooling.preview.Preview
@ -42,7 +45,7 @@ fun OidcView(
modifier: Modifier = Modifier,
) {
val oidcUrlParser = remember { OidcUrlParser() }
var webView: WebView? = null
var webView by remember { mutableStateOf<WebView?>(null) }
fun shouldOverrideUrl(url: String): Boolean {
val action = oidcUrlParser.parse(url)
if (action != null) {
@ -53,11 +56,7 @@ fun OidcView(
}
val oidcWebViewClient = remember {
OidcWebViewClient(eventListener = object : WebViewEventListener {
override fun shouldOverrideUrlLoading(url: String): Boolean {
return shouldOverrideUrl(url)
}
})
OidcWebViewClient(::shouldOverrideUrl)
}
BackHandler {
@ -71,8 +70,6 @@ fun OidcView(
Box(modifier = modifier.statusBarsPadding()) {
AndroidView(
modifier = Modifier
.statusBarsPadding(),
factory = { context ->
WebView(context).apply {
webViewClient = oidcWebViewClient

View file

@ -22,9 +22,10 @@ import android.os.Build
import android.webkit.WebResourceRequest
import android.webkit.WebView
import android.webkit.WebViewClient
import timber.log.Timber
class OidcWebViewClient(private val eventListener: WebViewEventListener) : WebViewClient() {
class OidcWebViewClient(
private val eventListener: WebViewEventListener,
) : WebViewClient() {
// We will revert to API 23, in the mean time ignore the warning here.
@SuppressLint("ObsoleteSdkInt")
@TargetApi(Build.VERSION_CODES.N)
@ -38,7 +39,7 @@ class OidcWebViewClient(private val eventListener: WebViewEventListener) : WebVi
}
private fun shouldOverrideUrl(url: String): Boolean {
Timber.d("shouldOverrideUrl: $url")
// Timber.d("shouldOverrideUrl: $url")
return eventListener.shouldOverrideUrlLoading(url)
}
}

View file

@ -16,14 +16,12 @@
package io.element.android.features.login.impl.oidc.webview
interface WebViewEventListener {
fun interface WebViewEventListener {
/**
* Triggered when a Webview loads an url.
*
* @param url The url about to be rendered.
* @return true if the method needs to manage some custom handling
*/
fun shouldOverrideUrlLoading(url: String): Boolean {
return false
}
fun shouldOverrideUrlLoading(url: String): Boolean
}