From e69bb574691ba89ba43bd1da9d9c989fe845ba31 Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Wed, 30 Apr 2025 12:22:49 +0200 Subject: [PATCH 1/2] Remove unused SUPPORT_EMAIL_ADDRESS --- plugins/src/main/kotlin/config/BuildTimeConfig.kt | 1 - 1 file changed, 1 deletion(-) diff --git a/plugins/src/main/kotlin/config/BuildTimeConfig.kt b/plugins/src/main/kotlin/config/BuildTimeConfig.kt index 95eb4061b43..0f0d05415cb 100644 --- a/plugins/src/main/kotlin/config/BuildTimeConfig.kt +++ b/plugins/src/main/kotlin/config/BuildTimeConfig.kt @@ -21,7 +21,6 @@ object BuildTimeConfig { val URL_ACCEPTABLE_USE: String? = null val URL_PRIVACY: String? = null val URL_POLICY: String? = null - val SUPPORT_EMAIL_ADDRESS: String? = null val SERVICES_MAPTILER_BASE_URL: String? = null val SERVICES_MAPTILER_APIKEY: String? = null val SERVICES_MAPTILER_LIGHT_MAPID: String? = null From 837b56646adcf87eb929fee70b2718cf26b0cac2 Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Wed, 30 Apr 2025 09:39:53 +0200 Subject: [PATCH 2/2] Improve the callback uri format and customization. Use io.element.android for the scheme of Oidc redirection for Element X. For nightly the scheme will be io.element.android.nightly For debug the scheme will be io.element.android.debug Element Pro is using `io.element` --- app/build.gradle.kts | 17 +++++++++++ app/src/main/AndroidManifest.xml | 3 +- .../x/oidc/DefaultOidcRedirectUrlProvider.kt | 25 +++++++++++++++++ .../DefaultOidcRedirectUrlProviderTest.kt | 28 +++++++++++++++++++ .../appnav/intent/IntentResolverTest.kt | 15 ++++++---- docs/oidc.md | 4 +-- libraries/matrix/api/build.gradle.kts | 7 ----- .../libraries/matrix/api/auth/OidcConfig.kt | 5 ---- .../api/auth/OidcRedirectUrlProvider.kt | 12 ++++++++ .../impl/auth/OidcConfigurationProvider.kt | 4 ++- .../auth/OidcConfigurationProviderTest.kt | 10 ++++--- .../RustMatrixAuthenticationServiceTest.kt | 6 +++- .../test/auth/FakeOidcRedirectUrlProvider.kt | 18 ++++++++++++ .../libraries/matrix/test/core/BuildMeta.kt | 2 +- .../libraries/oidc/impl/OidcUrlParser.kt | 21 ++++++++++---- .../libraries/oidc/impl/webview/OidcNode.kt | 3 ++ .../libraries/oidc/impl/webview/OidcView.kt | 3 +- ...serTest.kt => DefaultOidcUrlParserTest.kt} | 27 +++++++++++------- tools/adb/oidc.sh | 4 +-- 19 files changed, 166 insertions(+), 48 deletions(-) create mode 100644 app/src/main/kotlin/io/element/android/x/oidc/DefaultOidcRedirectUrlProvider.kt create mode 100644 app/src/test/kotlin/io/element/android/x/oidc/DefaultOidcRedirectUrlProviderTest.kt create mode 100644 libraries/matrix/api/src/main/kotlin/io/element/android/libraries/matrix/api/auth/OidcRedirectUrlProvider.kt create mode 100644 libraries/matrix/test/src/main/kotlin/io/element/android/libraries/matrix/test/auth/FakeOidcRedirectUrlProvider.kt rename libraries/oidc/impl/src/test/kotlin/io/element/android/libraries/oidc/impl/{OidcUrlParserTest.kt => DefaultOidcUrlParserTest.kt} (52%) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 8e6d68bada4..cd484c95b02 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -106,14 +106,25 @@ android { logger.warnInBox("Building ${defaultConfig.applicationId} ($baseAppName)") buildTypes { + val oidcRedirectSchemeBase = BuildTimeConfig.METADATA_HOST_REVERSED ?: "io.element.android" getByName("debug") { resValue("string", "app_name", "$baseAppName dbg") + resValue( + "string", + "login_redirect_scheme", + "$oidcRedirectSchemeBase.debug", + ) applicationIdSuffix = ".debug" signingConfig = signingConfigs.getByName("debug") } getByName("release") { resValue("string", "app_name", baseAppName) + resValue( + "string", + "login_redirect_scheme", + oidcRedirectSchemeBase, + ) signingConfig = signingConfigs.getByName("debug") postprocessing { @@ -131,6 +142,11 @@ android { applicationIdSuffix = ".nightly" versionNameSuffix = "-nightly" resValue("string", "app_name", "$baseAppName nightly") + resValue( + "string", + "login_redirect_scheme", + "$oidcRedirectSchemeBase.nightly", + ) matchingFallbacks += listOf("release") signingConfig = signingConfigs.getByName("nightly") @@ -284,6 +300,7 @@ dependencies { testImplementation(libs.test.truth) testImplementation(libs.test.turbine) testImplementation(projects.libraries.matrix.test) + testImplementation(projects.services.toolbox.test) koverDependencies() } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index c867a817f44..c26c9a5a513 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -60,8 +60,7 @@ - - +