package kr.co.zumo.app.lifeplus.view.custom;

import android.support.annotation.StringRes;

import kr.co.zumo.app.lifeplus.view.Event;

/**
 * IMobileAuthorizationView
 * <pre>
 * </pre>
 *
 * @author 하세미
 * @version 1.0
 * @history 하세미   [2018-09-17]   [최초 작성]
 * @since 2018-09-17
 */
public interface IMobileAuthorizationView {

  /**
   * hide key board
   */
  void doHideKeyBoard();

  /**
   * clear validation name textView
   */
  void doClearNameValidationTextView();

  /**
   * name validation check
   *
   * @param StringId
   */
  void doNameValidationMessage(int StringId);

  /**
   * clear validation birthDate textView
   */
  void doClearBirthDateValidationTextView();

  /**
   * birthDate validation message
   */
  void doBirthDateValidationMessage(int StringId);

  /**
   * clear validation Phone Number textView
   */
  void doClearPhoneNumberValidationTextView();

  /**
   * Phone Number validation check
   *
   * @param stringId
   */
  void doPhoneNumberCheckedValidationMessage(int stringId);


  /**
   * 인증 정보 입력 UI 활성/비활성 시킴
   *
   * @param isEnabled
   */
  void setEnabledRequestNumberButton(boolean isEnabled);

  /**
   * 재 발송 버튼 활성 카운트
   *
   * @param str
   */
  void renderRetryButton(String str);

  /**
   * 인증번호 validation check
   *
   * @param stringId
   */
  void doAuthorizedNumberValidationMessage(@StringRes int stringId);

  /**
   * clear validation Authorized Number textView
   */
  void doClearAuthorizedNumberValidationTextView();

  /**
   * 남은 시간 레이아웃 표시하기;
   */
  void showRemainTime(boolean isVisible);

  /**
   * 남은 시간 표시
   *
   * @param time
   */
  void renderRemainTime(String time);

  /**
   * 시간 연장 버튼 활성/비활성
   *
   * @param isEnabled
   */
  void setEnabledExpansionTimeButton(boolean isEnabled);

  /**
   * 인증 번호 확인 버튼 활성/비활성
   *
   * @param isEnabled
   */
  void setEnabledRequestConfirmButton(boolean isEnabled);

  /**
   * 인즌 번호 입력 필드 활성/비활성
   *
   * @param isEnabled
   */
  void setEnabledRequestConfirmTextView(boolean isEnabled);

  /**
   * 인증 번호 입력 칸 클리어
   */
  void doClearRequestConfirmTextView();

  /**
   * 결과를 view 로 전달하기위한 delegate
   *
   * @param event
   */
  void onResultDelegate(Event event);
}
