{"id":23413577,"url":"https://github.com/inmite/android-validation-komensky","last_synced_at":"2025-04-05T15:08:36.318Z","repository":{"id":68062553,"uuid":"13663078","full_name":"inmite/android-validation-komensky","owner":"inmite","description":"A simple library for validating user input in forms using annotations.","archived":false,"fork":false,"pushed_at":"2017-03-18T16:33:38.000Z","size":286,"stargazers_count":508,"open_issues_count":18,"forks_count":78,"subscribers_count":40,"default_branch":"master","last_synced_at":"2025-03-29T14:11:21.689Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/inmite.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2013-10-17T22:38:39.000Z","updated_at":"2024-10-22T09:55:43.000Z","dependencies_parsed_at":null,"dependency_job_id":"08052f88-0756-4434-a6dc-766f6ada7ec1","html_url":"https://github.com/inmite/android-validation-komensky","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/inmite%2Fandroid-validation-komensky","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/inmite%2Fandroid-validation-komensky/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/inmite%2Fandroid-validation-komensky/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/inmite%2Fandroid-validation-komensky/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/inmite","download_url":"https://codeload.github.com/inmite/android-validation-komensky/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247353746,"owners_count":20925329,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-12-22T19:38:21.850Z","updated_at":"2025-04-05T15:08:36.300Z","avatar_url":"https://github.com/inmite.png","language":"Java","funding_links":[],"categories":["Libs","Validation"],"sub_categories":["\u003cA NAME=\"Utility\"\u003e\u003c/A\u003eUtility"],"readme":"# ValidationKomensky for Android\nA simple library for validating user input in forms using annotations.\n\n![alt text](https://raw.github.com/inmite/android-validation-komensky/master/graphics/demo.png \"user input validations\")\n\nFeatures:\n\n - Validate **all views at once** and show feedback to user. _With one line of code._\n - **Live validation** - check user input as he moves between views with immediate feedback.\n - **Extensible** library - you can add your own validations or adapters for custom views.\n\n## How to include it in your project:\n\nWith Gradle:\n```groovy\ncompile 'eu.inmite.android.lib:android-validation-komensky:0.9.4@aar'\n```\n\nManually:\n\n - clone the project\n - add it as library project in your IDE\n\n## How to validate\n\nFirst, annotate your views like this:\n```java\n@NotEmpty(messageId = R.string.validation_name)\n@MinLength(value = 3, messageId = R.string.validation_name_length, order = 2)\nprivate EditText mNameEditText;\n```\n\nNow you are ready to:\n```java\nFormValidator.validate(this, new SimpleErrorPopupCallback(this));\n```\n\nYou will receive collection of all failed validations in a callback and you can present them to the user as you want.\nOr simply use prepared callbacks (like `SimpleErrorPopupCallback`).\n\n### Live validation\n\nTo start and stop live validation, simply call:\n```java\nFormValidator.startLiveValidation(this, new SimpleErrorPopupCallback(this));\nFormValidator.stopLiveValidation(this);\n```\n\n### List of all supported validation annotations\n\nValidations supported out of the box:\n - [NotEmpty](../master/library/src/main/java/eu/inmite/android/lib/validations/form/annotations/NotEmpty.java)\n\n```java\n@NotEmpty(messageId = R.string.validation_name, order = 1)\nprivate EditText mNameEditText;\n```\n - [MaxLength](../master/library/src/main/java/eu/inmite/android/lib/validations/form/annotations/MaxLength.java)\n - [MinLength](../master/library/src/main/java/eu/inmite/android/lib/validations/form/annotations/MinLength.java)\n\n```java\n@MinLength(value = 1, messageId = R.string.validation_participants, order = 2)\nprivate EditText mNameEditText;\n```\n - [MaxValue](../master/library/src/main/java/eu/inmite/android/lib/validations/form/annotations/MaxValue.java)\n - [MinValue](../master/library/src/main/java/eu/inmite/android/lib/validations/form/annotations/MinValue.java)\n\n```java\n@MinValue(value = 2L, messageId = R.string.validation_name_length)\nprivate EditText mEditNumberOfParticipants;\n```\n - [MaxNumberValue](../master/library/src/main/java/eu/inmite/android/lib/validations/form/annotations/MaxNumber.java)\n - [MinNumberValue](../master/library/src/main/java/eu/inmite/android/lib/validations/form/annotations/MinNumberValue.java)\n\n```java\n@MinNumberValue(value = \"5.5\", messageId = R.string.validation_name_length)\nprivate EditText mEditPotentialOfHydrogen;\n```\n - [RegExp](../master/library/src/main/java/eu/inmite/android/lib/validations/form/annotations/RegExp.java)\n\n```java\n@RegExp(value = EMAIL, messageId = R.string.validation_valid_email)\nprivate EditText mEditEmail;\n@RegExp(value = \"^[0-9]+$\", messageId = R.string.validation_valid_count)\nprivate EditText mEditCount;\n```\n - [DateInFuture](../master/library/src/main/java/eu/inmite/android/lib/validations/form/annotations/DateInFuture.java)\n\n```java\n@DateInFuture(messageId = R.string.validation_date)\nprivate TextView mTxtDate;\n```\n - [DateNoWeekend](../master/library/src/main/java/eu/inmite/android/lib/validations/form/annotations/DateNoWeekend.java)\n\n```java\n@DateNoWeekend(messageId = R.string.validation_date_weekend)\nprivate TextView mTxtDate;\n```\n - [Custom](../master/library/src/main/java/eu/inmite/android/lib/validations/form/annotations/Custom.java)\n\n```java\n@Custom(value = MyVeryOwnValidator.class, messageId = R.string.validation_custom)\nprivate EditText mNameEditText;\n```\n\n## Proguard\n\nShould you need to use the proguard, copy these rules:\n\n```proguard\n-keepattributes *Annotation*\n-keep class eu.inmite.android.lib.validations.form.annotations.** { *; }\n-keep class * implements eu.inmite.android.lib.validations.form.iface.ICondition\n-keep class * implements eu.inmite.android.lib.validations.form.iface.IValidator\n-keep class * implements eu.inmite.android.lib.validations.form.iface.IFieldAdapter\n-keepclassmembers class ** {\n\t@eu.inmite.android.lib.validations.form.annotations.** *;\n}\n```\n\n## Why 'Komensky'?\n\n\u003cimg src=\"http://upload.wikimedia.org/wikipedia/commons/c/ce/Johan_amos_comenius_1592-1671.jpg\" width=\"70\"  align=\"right\"/\u003e\n\n[Jan Ámos Komenský](http://en.wikipedia.org/wiki/John_Amos_Comenius)  was a famous Czech educator, father of modern education methods.\u0026nbsp;\nTeachers tend to correct you, just like this library. You won't miss any errors in the user input.\n\nSee [**our other Czech personalities**](http://inmite.github.io) who help with [#AndroidDev](https://plus.google.com/s/%23AndroidDev).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finmite%2Fandroid-validation-komensky","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Finmite%2Fandroid-validation-komensky","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finmite%2Fandroid-validation-komensky/lists"}