diff --git a/.idea/caches/build_file_checksums.ser b/.idea/caches/build_file_checksums.ser index a7732719..de320388 100644 Binary files a/.idea/caches/build_file_checksums.ser and b/.idea/caches/build_file_checksums.ser differ diff --git a/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/auth/DefaultAuthenticator.kt b/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/auth/DefaultAuthenticator.kt index f468a557..21ddbe3c 100644 --- a/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/auth/DefaultAuthenticator.kt +++ b/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/auth/DefaultAuthenticator.kt @@ -1,5 +1,6 @@ package im.vector.matrix.android.internal.auth +import android.util.Patterns import arrow.core.Either import arrow.core.leftIfNull import im.vector.matrix.android.api.MatrixCallback @@ -11,6 +12,7 @@ import im.vector.matrix.android.api.util.Cancelable import im.vector.matrix.android.internal.auth.data.Credentials import im.vector.matrix.android.internal.auth.data.PasswordLoginParams import im.vector.matrix.android.internal.auth.data.SessionParams +import im.vector.matrix.android.internal.auth.data.ThreePidMedium import im.vector.matrix.android.internal.network.executeRequest import im.vector.matrix.android.internal.session.DefaultSession import im.vector.matrix.android.internal.util.CancelableCoroutine @@ -53,7 +55,11 @@ class DefaultAuthenticator(private val retrofitBuilder: Retrofit.Builder, password: String): Either = withContext(coroutineDispatchers.io) { val authAPI = buildAuthAPI(homeServerConnectionConfig) - val loginParams = PasswordLoginParams.userIdentifier(login, password, "Mobile") + val loginParams = if (Patterns.EMAIL_ADDRESS.matcher(login).matches()) { + PasswordLoginParams.thirdPartyIdentifier(ThreePidMedium.EMAIL, login, password, "Mobile") + } else { + PasswordLoginParams.userIdentifier(login, password, "Mobile") + } executeRequest { apiCall = authAPI.login(loginParams) }.leftIfNull { diff --git a/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/auth/data/ThreePidMedium.kt b/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/auth/data/ThreePidMedium.kt new file mode 100644 index 00000000..ec24473c --- /dev/null +++ b/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/auth/data/ThreePidMedium.kt @@ -0,0 +1,6 @@ +package im.vector.matrix.android.internal.auth.data + +object ThreePidMedium { + const val EMAIL = "email" + const val MSISDN = "msisdn" +} \ No newline at end of file