Skip to content

Commit f061944

Browse files
committed
optional parameters can be added to skip from validation
1 parent 2b283e0 commit f061944

3 files changed

Lines changed: 21 additions & 6 deletions

File tree

app/src/main/java/com/oneclickaway/opensource/formvalidationsexample/MainActivity.kt

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,10 @@ class MainActivity : AppCompatActivity(), OnResponseListener , View.OnClickListe
4242

4343
when(view.id){
4444
R.id.submitFormBTN -> {
45-
FormValidator().isFormValidated( onResponseListener = this, viewGroup = mainActivityMainBinding.mainLinearLayoutLL, showErrors = false)
45+
46+
val optionalInput = intArrayOf(R.id.optionalFirstET, R.id.optionalSecondET)
47+
48+
FormValidator().isFormValidated( onResponseListener = this, viewGroup = mainActivityMainBinding.mainLinearLayoutLL, showErrors = true, optionalParams = optionalInput)
4649
}
4750

4851
}

app/src/main/res/layout/activity_main.xml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232

3333

3434
<EditText
35+
android:id="@+id/optionalFirstET"
3536
android:layout_width="match_parent"
3637
android:layout_height="wrap_content" />
3738

@@ -57,6 +58,7 @@
5758

5859

5960
<EditText
61+
android:id="@+id/optionalSecondET"
6062
android:layout_width="match_parent"
6163
android:layout_height="wrap_content" />
6264

validation/src/main/java/com/oneclickaway/opensource/validation/model/FormValidator.kt

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,22 @@
11
package com.oneclickaway.opensource.validation.model
22

33
import android.os.AsyncTask
4+
import android.util.Log
45
import android.view.View
56
import android.view.ViewGroup
67
import android.widget.EditText
78
import com.oneclickaway.opensource.validation.interfaces.OnResponseListener
9+
import java.util.stream.IntStream
810

911
class FormValidator {
1012

1113
/*optional arrays*/
12-
fun isFormValidated(showErrors: Boolean, onResponseListener: OnResponseListener, viewGroup: ViewGroup, optionalParams: Array<Int>?){
14+
fun isFormValidated(showErrors: Boolean, onResponseListener: OnResponseListener, viewGroup: ViewGroup, optionalParams: IntArray = intArrayOf()){
1315
ValidateForm(optionalParams =optionalParams, showErrors = showErrors, onResponseListener = onResponseListener).execute(viewGroup)
1416
}
1517
}
1618

17-
private class ValidateForm (var optionalParams:Array<Int>? , var showErrors: Boolean, var onResponseListener: OnResponseListener) : AsyncTask<ViewGroup, View, Void>() {
19+
private class ValidateForm (var showErrors: Boolean, var onResponseListener: OnResponseListener, var optionalParams:IntArray ) : AsyncTask<ViewGroup, View, Void>() {
1820

1921
var isFormFilled: Boolean = true
2022

@@ -29,7 +31,6 @@ private class ValidateForm (var optionalParams:Array<Int>? , var showErrors: Bo
2931
isFormFilled = false
3032
}
3133

32-
3334
override fun onPostExecute(aVoid: Void?) {
3435
super.onPostExecute(aVoid)
3536
onResponseListener.onResponse(isFormFilled)
@@ -38,9 +39,18 @@ private class ValidateForm (var optionalParams:Array<Int>? , var showErrors: Bo
3839
fun checkIfFieldLeftBlank(v: ViewGroup) {
3940
for (i in 0 until v.childCount) {
4041
if (v.getChildAt(i) is EditText) {
41-
// v.getChildAt(i).id != optionalParams.
42-
if ((v.getChildAt(i) as EditText).text.toString().isEmpty() ) {
42+
if ((v.getChildAt(i) as EditText).text.toString().isEmpty() && !(optionalParams.contains(v.getChildAt(i).id))) {
43+
/*edit text is empty*/
4344
publishProgress(v.getChildAt(i))
45+
/*for(j in 0 until optionalParams!!.size){
46+
if (v.getChildAt(i).id == optionalParams!![j]){
47+
isOptional = true
48+
}
49+
if (!isOptional){
50+
isOptional = false
51+
52+
}
53+
}*/
4454
}
4555
} else if (v.getChildAt(i) is ViewGroup) {
4656
checkIfFieldLeftBlank(v.getChildAt(i) as ViewGroup)

0 commit comments

Comments
 (0)