Merge pull request #1382 from bnjbvr/use-raw-homeserver-url

feat: use the raw homeserver URL instead of manually removing the scheme
This commit is contained in:
Benoit Marty 2023-09-19 21:00:10 +02:00 committed by GitHub
commit aacef46a0f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 3 additions and 8 deletions

1
changelog.d/1382.feature Normal file
View file

@ -0,0 +1 @@
Let the SDK figure the best scheme given an homeserver URL (thus allowing HTTP homeservers)

View file

@ -27,11 +27,9 @@ import io.element.android.features.login.impl.error.ChangeServerError
import io.element.android.libraries.architecture.Async
import io.element.android.libraries.architecture.Presenter
import io.element.android.libraries.architecture.runCatchingUpdatingState
import io.element.android.libraries.core.data.tryOrNull
import io.element.android.libraries.matrix.api.auth.MatrixAuthenticationService
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.launch
import java.net.URL
import javax.inject.Inject
class ChangeServerPresenter @Inject constructor(
@ -65,8 +63,7 @@ class ChangeServerPresenter @Inject constructor(
changeServerAction: MutableState<Async<Unit>>,
) = launch {
suspend {
val domain = tryOrNull { URL(data.title) }?.host ?: data.title
authenticationService.setHomeserver(domain).map {
authenticationService.setHomeserver(data.title).map {
authenticationService.getHomeserverDetails().value!!
// Valid, remember user choice
accountProviderDataSource.userSelection(data)

View file

@ -35,11 +35,9 @@ import io.element.android.features.login.impl.oidc.customtab.DefaultOidcActionFl
import io.element.android.libraries.architecture.Async
import io.element.android.libraries.architecture.Presenter
import io.element.android.libraries.architecture.runCatchingUpdatingState
import io.element.android.libraries.core.data.tryOrNull
import io.element.android.libraries.matrix.api.auth.MatrixAuthenticationService
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.launch
import java.net.URL
class ConfirmAccountProviderPresenter @AssistedInject constructor(
@Assisted private val params: Params,
@ -97,8 +95,7 @@ class ConfirmAccountProviderPresenter @AssistedInject constructor(
loginFlowAction: MutableState<Async<LoginFlow>>,
) = launch {
suspend {
val domain = tryOrNull { URL(homeserverUrl) }?.host ?: homeserverUrl
authenticationService.setHomeserver(domain).map {
authenticationService.setHomeserver(homeserverUrl).map {
val matrixHomeServerDetails = authenticationService.getHomeserverDetails().value!!
if (matrixHomeServerDetails.supportsOidcLogin) {
// Retrieve the details right now