30
30
import com .vijay .jsonwizard .validators .edittext .MinLengthValidator ;
31
31
import com .vijay .jsonwizard .validators .edittext .MinNumericValidator ;
32
32
import com .vijay .jsonwizard .validators .edittext .ReferenceValidator ;
33
- import com .vijay .jsonwizard .validators .edittext .RelativeMaxNumericValidator ;
33
+ import com .vijay .jsonwizard .validators .edittext .RelativeNumericValidator ;
34
34
import com .vijay .jsonwizard .validators .edittext .RequiredValidator ;
35
35
import com .vijay .jsonwizard .views .JsonFormFragmentView ;
36
36
45
45
46
46
import static com .vijay .jsonwizard .constants .JsonFormConstants .DEFAULT_CUMULATIVE_VALIDATION_ERR ;
47
47
import static com .vijay .jsonwizard .constants .JsonFormConstants .DEFAULT_RELATIVE_MAX_VALIDATION_ERR ;
48
+ import static com .vijay .jsonwizard .constants .JsonFormConstants .DEFAULT_RELATIVE_MIN_VALIDATION_ERR ;
48
49
import static com .vijay .jsonwizard .constants .JsonFormConstants .KEY ;
49
50
import static com .vijay .jsonwizard .constants .JsonFormConstants .RELATED_FIELDS ;
50
- import static com .vijay .jsonwizard .constants .JsonFormConstants .RELATIVE_MAX_VALIDATION_EXCEPTION ;
51
+ import static com .vijay .jsonwizard .constants .JsonFormConstants .RELATIVE_VALIDATION_EXCEPTION ;
51
52
import static com .vijay .jsonwizard .constants .JsonFormConstants .STEP1 ;
52
53
import static com .vijay .jsonwizard .constants .JsonFormConstants .V_CUMULATIVE_TOTAL ;
53
54
import static com .vijay .jsonwizard .constants .JsonFormConstants .V_RELATIVE_MAX ;
55
+ import static com .vijay .jsonwizard .constants .JsonFormConstants .V_RELATIVE_MIN ;
54
56
import static com .vijay .jsonwizard .utils .FormUtils .fields ;
55
57
import static com .vijay .jsonwizard .utils .FormUtils .getFieldJSONObject ;
56
58
@@ -150,7 +152,8 @@ protected void attachLayout(String stepName, Context context, JsonFormFragment f
150
152
addUrlValidator (jsonObject , editText );
151
153
addNumericValidator (jsonObject , editText );
152
154
addNumericIntegerValidator (jsonObject , editText );
153
- addRelativeNumericIntegerValidator (jsonObject , formFragment , editText );
155
+ addRelativeNumericIntegerValidator (jsonObject , formFragment , editText , true );
156
+ addRelativeNumericIntegerValidator (jsonObject , formFragment , editText , false );
154
157
addCumulativeTotalValidator (jsonObject , formFragment , editText , stepName , (JsonApi ) context );
155
158
// edit type check
156
159
String editType = jsonObject .optString (JsonFormConstants .EDIT_TYPE );
@@ -304,8 +307,8 @@ private void addNumericIntegerValidator(JSONObject jsonObject, MaterialEditText
304
307
}
305
308
306
309
private void addRelativeNumericIntegerValidator (JSONObject editTextJSONObject , JsonFormFragment formFragment ,
307
- MaterialEditText editText ) throws JSONException {
308
- JSONObject relativeMaxValidationJSONObject = editTextJSONObject .optJSONObject (V_RELATIVE_MAX );
310
+ MaterialEditText editText , boolean isMaxValidator ) throws JSONException {
311
+ JSONObject relativeMaxValidationJSONObject = editTextJSONObject .optJSONObject (isMaxValidator ? V_RELATIVE_MAX : V_RELATIVE_MIN );
309
312
if (relativeMaxValidationJSONObject != null ) {
310
313
// validate that the relative max field exists
311
314
String relativeMaxValidationKey = relativeMaxValidationJSONObject .optString (JsonFormConstants .VALUE , null );
@@ -315,20 +318,21 @@ private void addRelativeNumericIntegerValidator(JSONObject editTextJSONObject, J
315
318
if (relativeMaxFieldJSONObject != null ) {
316
319
// RELATIVE_MAX_VALIDATION_EXCEPTION, should never be set to Integer.MIN_VALUE in the native form json
317
320
int relativeMaxValidationException = relativeMaxValidationJSONObject
318
- .optInt (RELATIVE_MAX_VALIDATION_EXCEPTION , 0 );
321
+ .optInt (RELATIVE_VALIDATION_EXCEPTION , 0 );
319
322
if (relativeMaxValidationException != Integer .MIN_VALUE ) {
320
323
// add validator
321
324
String relativeMaxValidationErrorMsg = relativeMaxValidationJSONObject
322
325
.optString (JsonFormConstants .ERR , null );
323
- String defaultErrMsg = String .format (DEFAULT_RELATIVE_MAX_VALIDATION_ERR , relativeMaxValidationKey );
326
+ String defaultErrMsg = String .format (isMaxValidator ? DEFAULT_RELATIVE_MAX_VALIDATION_ERR : DEFAULT_RELATIVE_MIN_VALIDATION_ERR , relativeMaxValidationKey );
324
327
relativeMaxValidationException = relativeMaxValidationJSONObject
325
- .optInt (RELATIVE_MAX_VALIDATION_EXCEPTION , Integer .MIN_VALUE );
326
- editText .addValidator (new RelativeMaxNumericValidator (
328
+ .optInt (RELATIVE_VALIDATION_EXCEPTION , Integer .MIN_VALUE );
329
+ editText .addValidator (new RelativeNumericValidator (
327
330
relativeMaxValidationErrorMsg == null ? defaultErrMsg : relativeMaxValidationErrorMsg ,
328
331
formFragment ,
329
332
relativeMaxValidationKey ,
330
333
relativeMaxValidationException ,
331
- STEP1 ));
334
+ STEP1 ,
335
+ isMaxValidator ));
332
336
}
333
337
}
334
338
}
0 commit comments