Cleanup after PR review.
This commit is contained in:
parent
31e0120f46
commit
bbacda4b45
5 changed files with 17 additions and 18 deletions
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue