Skip to content

Commit 3179dc1

Browse files
committed
Update regex for email address
1 parent 979324d commit 3179dc1

File tree

3 files changed

+14
-3
lines changed

3 files changed

+14
-3
lines changed

matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/extensions/Strings.kt

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,13 +16,23 @@
1616

1717
package org.matrix.android.sdk.api.extensions
1818

19+
import java.util.regex.Pattern
20+
21+
const val emailPattern = "^[a-zA-Z0-9_!#\$%&'*+/=?`{|}~^-]+(?:\\.[a-zA-Z0-9_!#\$%&'*+/=?`{|}~^-]+)*@[a-zA-Z0-9-]+(?:\\.[a-zA-Z0-9-]+)*\$"
22+
val emailAddress: Pattern = Pattern.compile(emailPattern)
23+
1924
fun CharSequence.ensurePrefix(prefix: CharSequence): CharSequence {
2025
return when {
2126
startsWith(prefix) -> this
2227
else -> "$prefix$this"
2328
}
2429
}
2530

31+
/**
32+
* Check if a CharSequence is an email.
33+
*/
34+
fun CharSequence.isEmail() = emailAddress.matcher(this).matches()
35+
2636
/**
2737
* Append a new line and then the provided string.
2838
*/

matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/auth/login/DefaultLoginWizard.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,11 @@
1616

1717
package org.matrix.android.sdk.internal.auth.login
1818

19-
import android.util.Patterns
2019
import org.matrix.android.sdk.api.auth.LoginType
2120
import org.matrix.android.sdk.api.auth.login.LoginProfileInfo
2221
import org.matrix.android.sdk.api.auth.login.LoginWizard
2322
import org.matrix.android.sdk.api.auth.registration.RegisterThreePid
23+
import org.matrix.android.sdk.api.extensions.isEmail
2424
import org.matrix.android.sdk.api.session.Session
2525
import org.matrix.android.sdk.api.util.JsonDict
2626
import org.matrix.android.sdk.internal.auth.AuthAPI
@@ -59,7 +59,7 @@ internal class DefaultLoginWizard(
5959
initialDeviceName: String,
6060
deviceId: String?
6161
): Session {
62-
val loginParams = if (Patterns.EMAIL_ADDRESS.matcher(login).matches()) {
62+
val loginParams = if (login.isEmail()) {
6363
PasswordLoginParams.thirdPartyIdentifier(
6464
medium = ThreePidMedium.EMAIL,
6565
address = login,

vector/src/main/java/im/vector/app/core/extensions/BasicExtensions.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ import com.google.i18n.phonenumbers.NumberParseException
2121
import com.google.i18n.phonenumbers.PhoneNumberUtil
2222
import org.matrix.android.sdk.api.MatrixPatterns
2323
import org.matrix.android.sdk.api.extensions.ensurePrefix
24+
import org.matrix.android.sdk.api.extensions.isEmail
2425

2526
fun Boolean.toOnOff() = if (this) "ON" else "OFF"
2627

@@ -29,7 +30,7 @@ inline fun <T> T.ooi(block: (T) -> Unit): T = also(block)
2930
/**
3031
* Check if a CharSequence is an email.
3132
*/
32-
fun CharSequence.isEmail() = Patterns.EMAIL_ADDRESS.matcher(this).matches()
33+
fun CharSequence.isEmail() = this.isEmail()
3334

3435
fun CharSequence.isMatrixId() = MatrixPatterns.isUserId(this.toString())
3536

0 commit comments

Comments
 (0)