Adding field verification during registration
continuous-integration/drone/push Build is passing
Details
continuous-integration/drone/push Build is passing
Details
parent
b7337e679a
commit
b835f1a4f4
@ -0,0 +1,54 @@
|
|||||||
|
package fr.iut.alldev.allin.ext
|
||||||
|
|
||||||
|
import android.util.Patterns
|
||||||
|
import androidx.annotation.StringRes
|
||||||
|
import androidx.compose.runtime.Composable
|
||||||
|
import androidx.compose.ui.res.stringResource
|
||||||
|
import fr.iut.alldev.allin.R
|
||||||
|
|
||||||
|
const val ALLOWED_SYMBOLS = "~`!@#\$%^&*()_-+={[}]|\\:;\"'<,>.?/"
|
||||||
|
|
||||||
|
sealed class FieldErrorState(
|
||||||
|
private val messageId: Int? = null,
|
||||||
|
private val messageArgs:Array<out Any> = emptyArray()
|
||||||
|
){
|
||||||
|
object NoError: FieldErrorState()
|
||||||
|
|
||||||
|
data class TooShort(val fieldName: String, val minChar: Int)
|
||||||
|
: FieldErrorState(R.string.FieldError_TooShort, arrayOf(fieldName, minChar))
|
||||||
|
|
||||||
|
data class BadFormat(val fieldName: String, val format: String)
|
||||||
|
: FieldErrorState(R.string.FieldError_BadFormat, arrayOf(fieldName, format))
|
||||||
|
|
||||||
|
object NotIdentical: FieldErrorState(R.string.FieldError_NotIdentical)
|
||||||
|
|
||||||
|
data class NoSpecialCharacter(val fieldName: String, val characters: String = ALLOWED_SYMBOLS) :
|
||||||
|
FieldErrorState(R.string.FieldError_NoSpecialCharacter, arrayOf(fieldName, characters))
|
||||||
|
|
||||||
|
@Composable
|
||||||
|
fun errorResource() = stringResourceOrNull(id = messageId, messageArgs)
|
||||||
|
}
|
||||||
|
|
||||||
|
fun String.isEmail() = Patterns.EMAIL_ADDRESS.matcher(this).matches()
|
||||||
|
|
||||||
|
fun String.containsCharacter(characters: CharSequence): Boolean {
|
||||||
|
var contains = false
|
||||||
|
characters.forEach {
|
||||||
|
if(this.contains(it)){
|
||||||
|
contains = true
|
||||||
|
return@forEach
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return contains
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Composable
|
||||||
|
fun stringResourceOrNull(@StringRes id: Int?, args: Array<out Any>) = id?.let {
|
||||||
|
stringResource(id = id, *args)
|
||||||
|
}
|
||||||
|
|
||||||
|
@Composable
|
||||||
|
fun stringResourceOrNull(@StringRes id: Int?) = id?.let {
|
||||||
|
stringResource(id = id)
|
||||||
|
}
|
Loading…
Reference in new issue