diff --git a/example/src/main/java/pub/zilla/example/MainActivity.java b/example/src/main/java/pub/zilla/example/MainActivity.java
index 7d6cc75..ee97f4f 100644
--- a/example/src/main/java/pub/zilla/example/MainActivity.java
+++ b/example/src/main/java/pub/zilla/example/MainActivity.java
@@ -15,11 +15,16 @@
public class MainActivity extends AppCompatActivity {
- @Reg(error = R.string.reg_error,reg = "^0{0,1}(13[0-9]|15[7-9]|153|156|18[7-9])[0-9]{8}$")
- @NotNull(error = R.string.input_need)
+ @NotNull(value = 1, error = R.string.input_need)
+ @Reg(value = 2, error = R.string.reg_error, reg = "^0{0,1}(13[0-9]|15[7-9]|153|156|18[7-9])[0-9]{8}$")
@BindView(R.id.inputLayout)
TextInputLayout inputLayout;
+ @NotNull(value = 3, error = R.string.input_need)
+ @Reg(value = 4, error = R.string.reg_error, reg = "^[0-9][0-9]{5}$")
+ @BindView(R.id.zipcodeLayout)
+ TextInputLayout zipcodeLayout;
+
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@@ -33,7 +38,7 @@ public void onViewClicked() {
}
@ValiSuccess
- void onValiSuccess(){
- Toast.makeText(this,R.string.vali_success,Toast.LENGTH_LONG).show();
+ void onValiSuccess() {
+ Toast.makeText(this, R.string.vali_success, Toast.LENGTH_LONG).show();
}
}
diff --git a/example/src/main/res/layout/activity_main.xml b/example/src/main/res/layout/activity_main.xml
index 988c47f..ed3bc89 100644
--- a/example/src/main/res/layout/activity_main.xml
+++ b/example/src/main/res/layout/activity_main.xml
@@ -1,50 +1,41 @@
-
-
-
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content">
+
+
+
+
+
+ android:text="@string/validate" />
-
+
diff --git a/example/src/main/res/values/strings.xml b/example/src/main/res/values/strings.xml
index eeaa24a..fa7c6ad 100644
--- a/example/src/main/res/values/strings.xml
+++ b/example/src/main/res/values/strings.xml
@@ -3,4 +3,7 @@
The field is required
reg error
Validate success.
+ Validate
+ Phone Number
+ Zip Code
diff --git a/valizilla/src/main/java/pub/zilla/validzilla/ValiZilla.java b/valizilla/src/main/java/pub/zilla/validzilla/ValiZilla.java
index 60f4a5f..7090bd5 100644
--- a/valizilla/src/main/java/pub/zilla/validzilla/ValiZilla.java
+++ b/valizilla/src/main/java/pub/zilla/validzilla/ValiZilla.java
@@ -6,15 +6,14 @@
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
-import java.util.ArrayList;
import java.util.Collections;
+import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import pub.zilla.validzilla.an.NotNull;
import pub.zilla.validzilla.an.Reg;
import pub.zilla.validzilla.an.ValiSuccess;
-import pub.zilla.validzilla.model.AnnoModel;
import pub.zilla.validzilla.model.ValiModel;
import pub.zilla.validzilla.model.ValiWapper;
@@ -35,27 +34,31 @@ public static void vali(Object target) {
e.printStackTrace();
}
if (textInputLayout == null) return;
- for (ValiModel model : wapper.getValiModel()) {
+ List models = wapper.getValiModel();
+ Collections.sort(models, new Comparator() {
+ @Override
+ public int compare(ValiModel o1, ValiModel o2) {
+ return o1.getOrder() - o2.getOrder();
+ }
+ });
+ for (ValiModel model : models) {
try {
Class fieldType = model.getField().getType();
if (textInputLayout.isAssignableFrom(fieldType)) {//if is TextInputLayout or extends from TextInputLayout.
TextInputLayout targetField = (TextInputLayout) model.getField().get(target);
String result = targetField.getEditText().getText().toString();//result
- List annoModels = model.getAnnoModels();
- for (AnnoModel annoModel : annoModels) {
- if (TextUtils.isEmpty(annoModel.getReg())) {//not null check fail
- if (TextUtils.isEmpty(result)) {
- targetField.setError(targetField.getContext().getString(annoModel.getError()));
- return;
- } else {
- targetField.setError("");
- }
- } else if (!result.matches(annoModel.getReg())) {// reg check fail;
- targetField.setError(targetField.getContext().getString(annoModel.getError()));
+ if (TextUtils.isEmpty(model.getReg())) {//not null check fail
+ if (TextUtils.isEmpty(result)) {
+ targetField.setError(targetField.getContext().getString(model.getError()));
return;
} else {
targetField.setError("");
}
+ } else if (!result.matches(model.getReg())) {// reg check fail;
+ targetField.setError(targetField.getContext().getString(model.getError()));
+ return;
+ } else {
+ targetField.setError("");
}
}
} catch (IllegalAccessException e) {
@@ -71,7 +74,6 @@ public static void vali(Object target) {
e.printStackTrace();
}
}
-
}
/**
@@ -100,16 +102,14 @@ private static ValiWapper getFieldsFromCache(Class c) {
notNull = field.getAnnotation(NotNull.class);
reg = field.getAnnotation(Reg.class);
if (notNull != null || reg != null) {
- ValiModel valiModel = new ValiModel(field);
if (notNull != null) {
- AnnoModel annoModel = new AnnoModel(notNull.error(), null);
- valiModel.addAnnoModel(annoModel);
+ ValiModel valiModel = new ValiModel(notNull.value(), notNull.error(), null, field);
+ wapper.addValiModel(valiModel);
}
if (reg != null) {
- AnnoModel annoModel = new AnnoModel(reg.error(), reg.reg());
- valiModel.addAnnoModel(annoModel);
+ ValiModel valiModel = new ValiModel(reg.value(), reg.error(), reg.reg(), field);
+ wapper.addValiModel(valiModel);
}
- wapper.addValiModel(valiModel);
}
}
//Method
diff --git a/valizilla/src/main/java/pub/zilla/validzilla/an/NotNull.java b/valizilla/src/main/java/pub/zilla/validzilla/an/NotNull.java
index 3d8c153..a8303ba 100644
--- a/valizilla/src/main/java/pub/zilla/validzilla/an/NotNull.java
+++ b/valizilla/src/main/java/pub/zilla/validzilla/an/NotNull.java
@@ -17,7 +17,7 @@
*
* @return
*/
-// int value();
+ int value();
/**
* Error message
diff --git a/valizilla/src/main/java/pub/zilla/validzilla/an/Reg.java b/valizilla/src/main/java/pub/zilla/validzilla/an/Reg.java
index 6ad463c..22ba6fa 100644
--- a/valizilla/src/main/java/pub/zilla/validzilla/an/Reg.java
+++ b/valizilla/src/main/java/pub/zilla/validzilla/an/Reg.java
@@ -17,7 +17,7 @@
*
* @return
*/
-// int value();
+ int value();
/**
* Error message
diff --git a/valizilla/src/main/java/pub/zilla/validzilla/model/AnnoModel.java b/valizilla/src/main/java/pub/zilla/validzilla/model/AnnoModel.java
deleted file mode 100644
index fa62f98..0000000
--- a/valizilla/src/main/java/pub/zilla/validzilla/model/AnnoModel.java
+++ /dev/null
@@ -1,44 +0,0 @@
-package pub.zilla.validzilla.model;
-
-/**
- * validate annotation model
- * Created by zilla on 9/15/17.
- */
-
-public class AnnoModel {
- private int error;
- private String reg;
-
- public AnnoModel() {
-
- }
-
- public AnnoModel(int error, String reg) {
- this.error = error;
- this.reg = reg;
- }
-
- public int getError() {
- return error;
- }
-
- public void setError(int error) {
- this.error = error;
- }
-
- public String getReg() {
- return reg;
- }
-
- public void setReg(String reg) {
- this.reg = reg;
- }
-
- @Override
- public String toString() {
- return "AnnoModel{" +
- ", error=" + error +
- ", reg='" + reg + '\'' +
- '}';
- }
-}
diff --git a/valizilla/src/main/java/pub/zilla/validzilla/model/ValiModel.java b/valizilla/src/main/java/pub/zilla/validzilla/model/ValiModel.java
index db8056b..9070540 100644
--- a/valizilla/src/main/java/pub/zilla/validzilla/model/ValiModel.java
+++ b/valizilla/src/main/java/pub/zilla/validzilla/model/ValiModel.java
@@ -1,9 +1,6 @@
package pub.zilla.validzilla.model;
import java.lang.reflect.Field;
-import java.lang.reflect.Method;
-import java.util.ArrayList;
-import java.util.List;
/**
* Validate field model
@@ -11,8 +8,12 @@
*/
public class ValiModel {
+ private int order;
+ private int error;
+ private String reg;
+
private Field field;
- private List annoModels;
+
public ValiModel() {
@@ -22,40 +23,59 @@ public ValiModel(Field field) {
this.field = field;
}
- public ValiModel(Field field, List annoModels) {
+ /**
+ * constructor
+ * @param order
+ * @param error
+ * @param reg
+ * @param field
+ */
+ public ValiModel(int order, int error, String reg, Field field) {
+ this.order = order;
+ this.error = error;
+ this.reg = reg;
this.field = field;
- this.annoModels = annoModels;
}
- public Field getField() {
- return field;
+ public int getOrder() {
+ return order;
}
- public void setField(Field field) {
- this.field = field;
+ public void setOrder(int order) {
+ this.order = order;
+ }
+
+ public int getError() {
+ return error;
}
- public List getAnnoModels() {
- return annoModels;
+ public void setError(int error) {
+ this.error = error;
}
- public void setAnnoModels(List annoModels) {
- this.annoModels = annoModels;
+ public String getReg() {
+ return reg;
}
- public void addAnnoModel(AnnoModel annoModel) {
- if (annoModels == null) {
- annoModels = new ArrayList<>();
- }
- annoModels.add(annoModel);
+ public void setReg(String reg) {
+ this.reg = reg;
}
+ public Field getField() {
+ return field;
+ }
+
+ public void setField(Field field) {
+ this.field = field;
+ }
@Override
public String toString() {
return "ValiModel{" +
- "field=" + field +
- ", annoModels=" + annoModels +
+ "order=" + order +
+ ", error=" + error +
+ ", reg='" + reg + '\'' +
+ ", field=" + field +
'}';
}
}