From 33f64ca5a10f17726113fe14139706506e23afe9 Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Wed, 10 Jun 2026 12:22:13 +0200 Subject: [PATCH] Merge commit from fork * Log error on unsupported OAuth URL. * Bump version to 26.06.2 --- .../element/android/libraries/oauth/impl/OAuthUrlParser.kt | 6 ++++-- .../libraries/oauth/impl/DefaultOAuthIntentResolverTest.kt | 6 ++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/libraries/oauth/impl/src/main/kotlin/io/element/android/libraries/oauth/impl/OAuthUrlParser.kt b/libraries/oauth/impl/src/main/kotlin/io/element/android/libraries/oauth/impl/OAuthUrlParser.kt index e62dea696f..7e2c4d03f5 100644 --- a/libraries/oauth/impl/src/main/kotlin/io/element/android/libraries/oauth/impl/OAuthUrlParser.kt +++ b/libraries/oauth/impl/src/main/kotlin/io/element/android/libraries/oauth/impl/OAuthUrlParser.kt @@ -12,6 +12,7 @@ import dev.zacsweers.metro.AppScope import dev.zacsweers.metro.ContributesBinding import io.element.android.libraries.matrix.api.auth.OAuthRedirectUrlProvider import io.element.android.libraries.oauth.api.OAuthAction +import timber.log.Timber fun interface OAuthUrlParser { fun parse(url: String): OAuthAction? @@ -38,7 +39,8 @@ class DefaultOAuthUrlParser( if (url.contains("error=access_denied")) return OAuthAction.GoBack() if (url.contains("code=")) return OAuthAction.Success(url) - // Other case not supported, let's crash the app for now - error("Not supported: $url") + // Other cases are not supported, log an error and return null + Timber.w("Unsupported OAuth url") + return null } } diff --git a/libraries/oauth/impl/src/test/kotlin/io/element/android/libraries/oauth/impl/DefaultOAuthIntentResolverTest.kt b/libraries/oauth/impl/src/test/kotlin/io/element/android/libraries/oauth/impl/DefaultOAuthIntentResolverTest.kt index ff34ae8220..159d7eeae9 100644 --- a/libraries/oauth/impl/src/test/kotlin/io/element/android/libraries/oauth/impl/DefaultOAuthIntentResolverTest.kt +++ b/libraries/oauth/impl/src/test/kotlin/io/element/android/libraries/oauth/impl/DefaultOAuthIntentResolverTest.kt @@ -13,7 +13,6 @@ import androidx.core.net.toUri import com.google.common.truth.Truth.assertThat import io.element.android.libraries.matrix.test.auth.FakeOAuthRedirectUrlProvider import io.element.android.libraries.oauth.api.OAuthAction -import org.junit.Assert.assertThrows import org.junit.Test import org.junit.runner.RunWith import org.robolectric.RobolectricTestRunner @@ -54,9 +53,8 @@ class DefaultOAuthIntentResolverTest { action = Intent.ACTION_VIEW data = "io.element.android:/invalid".toUri() } - assertThrows(IllegalStateException::class.java) { - sut.resolve(intent) - } + val result = sut.resolve(intent) + assertThat(result).isNull() } private fun createDefaultOAuthIntentResolver(): DefaultOAuthIntentResolver {