Added type property to fields validation check.

This commit is contained in:
Erik C. Thauvin 2016-09-05 22:14:29 -07:00
parent 048769bd46
commit a783cf9d1f

View file

@ -153,7 +153,7 @@ class ProgrammingActivity : AppCompatActivity(), AnkoLogger {
} }
onClick { onClick {
if (validateFields(fields, option)) { if (validateFields(params.type, fields, option)) {
val dtmf = Dtmf.build(params.type, params.master, params.ack, option, fields) val dtmf = Dtmf.build(params.type, params.master, params.ack, option, fields)
if (Dtmf.validate(dtmf, "${MainActivity.PAUSE}${params.ack}${params.alt}")) { if (Dtmf.validate(dtmf, "${MainActivity.PAUSE}${params.ack}${params.alt}")) {
val begin = if (params.begin.isNotBlank()) { val begin = if (params.begin.isNotBlank()) {
@ -198,7 +198,7 @@ class ProgrammingActivity : AppCompatActivity(), AnkoLogger {
floatingActionButton { floatingActionButton {
imageResource = R.drawable.fab_ic_call imageResource = R.drawable.fab_ic_call
onClick { onClick {
if (validateFields(fields, option)) { if (validateFields(params.type, fields, option)) {
val dtmf = Dtmf.build(params.type, params.master, params.ack, option, fields) val dtmf = Dtmf.build(params.type, params.master, params.ack, option, fields)
if (Dtmf.validate(dtmf, "${MainActivity.PAUSE}${params.ack}${params.alt}")) { if (Dtmf.validate(dtmf, "${MainActivity.PAUSE}${params.ack}${params.alt}")) {
ProgrammingActivityPermissionsDispatcher.callWithCheck( ProgrammingActivityPermissionsDispatcher.callWithCheck(
@ -238,23 +238,32 @@ class ProgrammingActivity : AppCompatActivity(), AnkoLogger {
makeCall("$phone${MainActivity.PAUSE}${MainActivity.PAUSE}$dtmf") makeCall("$phone${MainActivity.PAUSE}${MainActivity.PAUSE}$dtmf")
} }
fun validateFields(fields: ArrayList<EditText>, option: Option): Boolean { fun validateFields(type: String, fields: ArrayList<EditText>, option: Option): Boolean {
var isValid = true var isValid = true
fields.forEachIndexed { i, v -> fields.forEachIndexed { i, v ->
if (v.text.isNullOrBlank()) { if (!option.fields[i].alpha) {
v.error = getString(R.string.error_required) if (v.text.isNullOrBlank()) {
isValid = false v.error = getString(R.string.error_required)
} else { isValid = false
val size = if (option.fields[i].minSize > 0) {
option.fields[i].minSize
} else {
option.fields[i].size
} }
if (!option.fields[i].alpha &&
!validateSize(v.length(), option.fields[i].minSize, option.fields[i].size)) { val min = if ((!type.isDKS() && !option.fields[i].zeros) && option.fields[i].min > 0) {
v.error = getString(R.string.error_invalid_size, size, option.fields[i].min.toString().length
resources.getQuantityString(R.plurals.error_digit, size)) } else {
option.fields[i].minSize
}
if (!validateSize(v.length(), min, option.fields[i].size)) {
if (option.fields[i].minSize > 0) {
v.error = getString(R.string.error_invalid_size, option.fields[i].minSize,
resources.getQuantityString(R.plurals.error_digit, option.fields[i].minSize),
getString(R.string.error_minimum))
} else {
v.error = getString(R.string.error_invalid_size, option.fields[i].size,
resources.getQuantityString(R.plurals.error_digit, option.fields[i].size), "")
}
isValid = false isValid = false
} }
@ -269,6 +278,9 @@ class ProgrammingActivity : AppCompatActivity(), AnkoLogger {
isValid = false isValid = false
} }
} }
} else if (option.fields[i].minSize < 0 && v.text.isNullOrBlank()) {
v.error = getString(R.string.error_required)
isValid = false
} }
} }