code: public static void startLiveValidation(final Object target, final View formContainer, final IValidationCallback callback) {
  		if (formContainer == null) {
  			throw new IllegalArgumentException("form container view cannot be null");
  		}
  		if (target == null) {
  			throw new IllegalArgumentException("target cannot be null");
  		}
  
  		if (sLiveValidations == null) {
  			sLiveValidations = new HashMap<>();
  		} else if (sLiveValidations.containsKey(target)) {
  			// validation is already running
  			return;
  		}
  
  		final Map<View, FieldInfo> infoMap = FieldFinder.getFieldsForTarget(target);
  		final ViewGlobalFocusChangeListener listener = new ViewGlobalFocusChangeListener(infoMap, formContainer, target, callback);
  		final ViewTreeObserver observer = formContainer.getViewTreeObserver();
  		observer.addOnGlobalFocusChangeListener(listener);
  
  		sLiveValidations.put(target, listener);
  	}
docs: Start live validation - whenever focus changes from view with validations upon itself, validators will run.<br/>
  Don't forget to call {@link #stopLiveValidation(Object)} once you are done.
  
  @param target target with views to validate, there can be only one continuous validation per target
  @param formContainer view that contains our form (views to validate)
  @param callback callback invoked whenever there is some validation fail, can be null
  
  @throws IllegalArgumentException if formContainer or target is null