Quellcode durchsuchen

Merge branch 'develop' of https://github.com/swict/LifePlusAndroid into develop

# Conflicts:
#	app/src/main/java/kr/co/zumo/app/lifeplus/view/dialog/PhoneIdentifyDialog.java
#	app/src/main/java/kr/co/zumo/app/lifeplus/view/presenter/signup/SignUpUserViewModel.java
#	app/src/main/res/layout/sign_up_phone_identify.xml
hyodong.min vor 7 Jahren
Ursprung
Commit
dd7b75fabc

+ 131 - 0
app/src/main/java/kr/co/zumo/app/lifeplus/view/custom/ClearEditText.java

@@ -0,0 +1,131 @@
+package kr.co.zumo.app.lifeplus.view.custom;
+
+import android.content.Context;
+import android.graphics.drawable.Drawable;
+import android.support.v4.content.ContextCompat;
+import android.support.v4.graphics.drawable.DrawableCompat;
+import android.support.v7.widget.AppCompatEditText;
+import android.text.Editable;
+import android.text.TextWatcher;
+import android.util.AttributeSet;
+import android.view.MotionEvent;
+import android.view.View;
+
+import kr.co.zumo.app.R;
+
+/**
+ * ClearEditText
+ * <pre>
+ *   custom clearEditText 구현
+ * </pre>
+ *
+ * @author 하세미
+ * @version 1.0
+ * @history 하세미   [2018-09-17]   [최초 작성]
+ * @since 2018-09-17
+ */
+public class ClearEditText extends AppCompatEditText implements TextWatcher, View.OnTouchListener, View.OnFocusChangeListener {
+
+  private Drawable clearDrawable;
+  private OnFocusChangeListener onFocusChangeListener;
+  private OnTouchListener onTouchListener;
+
+  public ClearEditText(Context context) {
+    super(context);
+    init();
+  }
+
+  public ClearEditText(Context context, AttributeSet attrs) {
+    super(context, attrs);
+    init();
+  }
+
+  public ClearEditText(Context context, AttributeSet attrs, int defStyleAttr) {
+    super(context, attrs, defStyleAttr);
+    init();
+  }
+
+  @Override
+  public void setOnFocusChangeListener(OnFocusChangeListener onFocusChangeListener) {
+    this.onFocusChangeListener = onFocusChangeListener;
+  }
+
+  @Override
+  public void setOnTouchListener(OnTouchListener onTouchListener) {
+    this.onTouchListener = onTouchListener;
+  }
+
+  /**
+   * clear icon setting 및 eventListener setting
+   */
+  public void init() {
+    Drawable tempDrawable = ContextCompat.getDrawable(getContext(), R.drawable.cancel);
+    clearDrawable = DrawableCompat.wrap(tempDrawable);
+    DrawableCompat.setTintList(clearDrawable, getHintTextColors());
+    clearDrawable.setBounds(0, 0, clearDrawable.getIntrinsicWidth(), clearDrawable.getIntrinsicHeight());
+    setClearIconVisible(false);
+
+    super.setOnTouchListener(this);
+    super.setOnFocusChangeListener(this);
+    addTextChangedListener(this);
+  }
+
+  @Override
+  public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
+
+  }
+
+  @Override
+  public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
+    if (isFocused()) {
+      setClearIconVisible(charSequence.length() > 0);
+    }
+  }
+
+  @Override
+  public void afterTextChanged(Editable editable) {
+
+  }
+
+  @Override
+  public boolean onTouch(View view, MotionEvent motionEvent) {
+    final int x = (int) motionEvent.getX();
+    if (clearDrawable.isVisible() && x > getWidth() - getPaddingRight() - clearDrawable.getIntrinsicWidth()) {
+      if (motionEvent.getAction() == MotionEvent.ACTION_UP) {
+        setError(null);
+        setText(null);
+      }
+      return true;
+    }
+
+    if (onTouchListener != null) {
+      return onTouchListener.onTouch(view, motionEvent);
+    }
+    else {
+      return false;
+    }
+  }
+
+  /**
+   * icon visible 설정, icon이 보여야 할 경우 Edit Text의 오른쪽에 위치 시킨다.
+   * @param visible
+   */
+  private void setClearIconVisible(boolean visible) {
+    clearDrawable.setVisible(visible, false);
+    setCompoundDrawables(null, null, visible ? clearDrawable : null, null);
+  }
+
+  @Override
+  public void onFocusChange(View view, boolean hasFocus) {
+    if (hasFocus) {
+      setClearIconVisible(getText().length() > 0);
+    }
+    else {
+      setClearIconVisible(false);
+    }
+
+    if (onFocusChangeListener != null) {
+      onFocusChangeListener.onFocusChange(view, hasFocus);
+    }
+  }
+}

+ 70 - 0
app/src/main/java/kr/co/zumo/app/lifeplus/view/dialog/IPhoneIdentifyDialog.java

@@ -0,0 +1,70 @@
+package kr.co.zumo.app.lifeplus.view.dialog;
+
+/**
+ * IPhoneIdentifyDialog
+ * <pre>
+ * </pre>
+ *
+ * @author 하세미
+ * @version 1.0
+ * @history 하세미   [2018-09-17]   [최초 작성]
+ * @since 2018-09-17
+ */
+public interface IPhoneIdentifyDialog {
+  /**
+   * name validation check
+   * @param inputName
+   */
+  void doNameValidationMessage(String inputName);
+
+  /**
+   * nationality validation check
+   * @param inputNationality
+   */
+  void doNationalityValidationMessage(String inputNationality);
+
+  /**
+   * birth date validation check
+   * @param inputBirthDate
+   */
+  void doBirthDateValidationMessage(String inputBirthDate);
+
+  /**
+   * gender validation check
+   * @param inputGender
+   */
+  void doGenderValidationMessage(String inputGender);
+
+  /**
+   * 전체 동의 체크 버튼  클릭 event
+   * @param isAllChecked
+   */
+  void onAllAgreedCheckBoxChecked(boolean isAllChecked);
+
+  /**
+   * 핸드폰 번호 validation check
+   * @param inputPhoneNumber
+   */
+  void doPhoneNumberCheckedValidationMessage(String inputPhoneNumber);
+
+  /**
+   * 인증번호 validation check
+   * @param inputAuthorizedNumber
+   */
+  void doAuthorizedNumberValidationMessage(String inputAuthorizedNumber);
+
+  /**
+   * 인증 확인 button click event
+   */
+  void onIdentifyConfirmButtonClick();
+
+  /**
+   * 인증번호 발송 click event
+   */
+  void onIdentifyNumberSendButtonClick();
+
+  /**
+   * 인증번호 발송 후 시간 연장 버튼 click event
+   */
+  void onIdentifyTimeDelayButtonClick();
+}

+ 300 - 17
app/src/main/java/kr/co/zumo/app/lifeplus/view/dialog/PhoneIdentifyDialog.java

@@ -2,20 +2,26 @@ package kr.co.zumo.app.lifeplus.view.dialog;
 
 
 import android.app.Dialog;
-import android.databinding.DataBindingUtil;
 import android.os.Bundle;
 import android.support.annotation.Nullable;
 import android.support.v4.app.DialogFragment;
+import android.text.Editable;
+import android.text.TextWatcher;
 import android.util.Log;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
+import android.widget.AdapterView;
 import android.widget.Button;
+import android.widget.CheckBox;
+import android.widget.CompoundButton;
+import android.widget.EditText;
+import android.widget.RadioButton;
+import android.widget.Spinner;
 import android.widget.TextView;
 
 import kr.co.zumo.app.R;
-import kr.co.zumo.app.databinding.SignUpPhoneIdentifyBinding;
-import kr.co.zumo.app.lifeplus.view.presenter.signup.SignUpUserViewModel;
+import kr.co.zumo.app.lifeplus.view.presenter.signup.SignUpUserPresenter;
 
 /**
  * PhoneIdentifyDialog
@@ -28,30 +34,49 @@ import kr.co.zumo.app.lifeplus.view.presenter.signup.SignUpUserViewModel;
  * @history 하세미   [2018-09-14]   [최초 작성]
  * @since 2018-09-14
  */
-public class PhoneIdentifyDialog extends DialogBase {
+public class PhoneIdentifyDialog extends DialogBase implements View.OnClickListener, IPhoneIdentifyDialog {
+
+  private Button buttonConfirm;
+  private Button buttonTimeDelay;
+  private Button buttonIdentifyNumberSend;
+
+  private EditText editTextName;
+  private RadioButton radioSelectLocal;
+  private EditText editTextBirthDate;
+  private RadioButton radioSelectMale;
+  private CheckBox checkBoxAllAgree;
+  private CheckBox checkBoxAgree1;
+  private CheckBox checkBoxAgree2;
+  private CheckBox checkBoxAgree3;
+  private CheckBox checkBoxAgree4;
+  private Spinner spinnerMobileCompany;
+  private Spinner spinnerFirstPhoneNumber;
+  private EditText editTextPhoneNumber;
+  private EditText editTextAuthorizedNumber;
+  private TextView textViewPhoneIdentifyTime;
+
+  private SignUpUserPresenter presenter;
+
 
-  Button buttonConfirm;
-  Button buttonTimeDelay;
-  Button buttonIdentifyNumberSend;
-  
   public PhoneIdentifyDialog() {
     super();
   }
 
   /**
    * 전체적인 customDialog 스타일 지정
+   *
    * @param savedInstanceState
    */
   @Override
   public void onCreate(Bundle savedInstanceState) {
     setStyle(DialogFragment.STYLE_NORMAL, R.style.CustomDialog);
+    presenter = new SignUpUserPresenter(this);
     super.onCreate(savedInstanceState);
-
   }
 
   /**
-   *
    * CustomDialog view 화면 리턴, 상단바 타이틀 제목을 설정하여 띄운다.
+   *
    * @param inflater
    * @param container
    * @param savedInstanceState
@@ -64,11 +89,9 @@ public class PhoneIdentifyDialog extends DialogBase {
     Log.e("APP#  PhoneIdentifyDialog | onCreateView", "|" + "onCreateView");
     getDialog().setTitle(R.string.sign_up_mobile_identify_pop_up);
     addButtonToDialogTitle(getDialog());
+    View view = inflater.inflate(R.layout.sign_up_phone_identify, container, false);
 
-    SignUpPhoneIdentifyBinding binding = DataBindingUtil.inflate(inflater, R.layout.sign_up_phone_identify, container, false);
-    View view = binding.getRoot();
-    SignUpUserViewModel model = new SignUpUserViewModel(getResources());
-    binding.setModel(model);
+    initView(view);
 
     return view;
   }
@@ -87,6 +110,7 @@ public class PhoneIdentifyDialog extends DialogBase {
 
   /**
    * 상단 바의 닫힘 버튼 구현 및 버튼 클릭 이벤트 발생
+   *
    * @param dialog
    */
   private void addButtonToDialogTitle(final Dialog dialog) {
@@ -98,7 +122,266 @@ public class PhoneIdentifyDialog extends DialogBase {
     });
 
   }
-  
-  
-  
+
+  /**
+   * view item setting
+   *
+   * @param view
+   */
+  private void initView(View view) {
+
+    buttonConfirm = view.findViewById(R.id.button_phone_identify_confirm);
+    buttonTimeDelay = view.findViewById(R.id.button_phone_identify_time_delay);
+    buttonIdentifyNumberSend = view.findViewById(R.id.button_identify_number_send);
+    editTextName = view.findViewById(R.id.edit_text_name);
+    radioSelectLocal = view.findViewById(R.id.radio_button_local);
+    editTextBirthDate = view.findViewById(R.id.edit_text_birth_date);
+    radioSelectMale = view.findViewById(R.id.radio_button_male);
+    checkBoxAllAgree = view.findViewById(R.id.checkbox_all_agree);
+    checkBoxAgree1 = view.findViewById(R.id.checkbox_agree1);
+    checkBoxAgree2 = view.findViewById(R.id.checkbox_agree2);
+    checkBoxAgree3 = view.findViewById(R.id.checkbox_agree3);
+    checkBoxAgree4 = view.findViewById(R.id.checkbox_agree4);
+    spinnerMobileCompany = view.findViewById(R.id.spinner_mobile_company);
+    spinnerFirstPhoneNumber = view.findViewById(R.id.spinner_first_phone_number);
+    editTextPhoneNumber = view.findViewById(R.id.edit_text_phone_number);
+    editTextAuthorizedNumber = view.findViewById(R.id.edit_text_authorized_number);
+    textViewPhoneIdentifyTime = view.findViewById(R.id.text_view_phone_identify_time);
+
+    buttonConfirm.setOnClickListener(this);
+    buttonTimeDelay.setOnClickListener(this);
+    buttonIdentifyNumberSend.setOnClickListener(this);
+
+    editTextName.addTextChangedListener(new TextWatcher() {
+      @Override
+      public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
+
+      }
+
+      @Override
+      public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
+        presenter.onNameTextChanged(charSequence.toString());
+      }
+
+      @Override
+      public void afterTextChanged(Editable editable) {
+        Log.e("APP#  PhoneIdentifyDialog | afterTextChanged", "|" + "afterTextChanged");
+      }
+    });
+
+    editTextBirthDate.addTextChangedListener(new TextWatcher() {
+      @Override
+      public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
+
+      }
+
+      @Override
+      public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
+        presenter.onBirthDateTextChanged(charSequence.toString());
+      }
+
+      @Override
+      public void afterTextChanged(Editable editable) {
+
+      }
+    });
+
+    editTextPhoneNumber.addTextChangedListener(new TextWatcher() {
+      @Override
+      public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
+
+      }
+
+      @Override
+      public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
+        presenter.onPhoneNumberTextChanged(charSequence.toString());
+      }
+
+      @Override
+      public void afterTextChanged(Editable editable) {
+
+      }
+    });
+
+    editTextAuthorizedNumber.addTextChangedListener(new TextWatcher() {
+      @Override
+      public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
+
+      }
+
+      @Override
+      public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
+        presenter.onAuthorizedNumberChanged(charSequence.toString());
+      }
+
+      @Override
+      public void afterTextChanged(Editable editable) {
+
+      }
+    });
+
+    radioSelectMale.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
+      @Override
+      public void onCheckedChanged(CompoundButton compoundButton, boolean b) {
+        presenter.setOnGenderCheckedChanged(b);
+      }
+    });
+
+    radioSelectLocal.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
+      @Override
+      public void onCheckedChanged(CompoundButton compoundButton, boolean b) {
+        presenter.onNationalCheckedChanged(b);
+      }
+    });
+
+    spinnerFirstPhoneNumber.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
+      @Override
+      public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
+        presenter.onFirstPhoneNumberSelectChanged(adapterView.getSelectedItem().toString());
+      }
+
+      @Override
+      public void onNothingSelected(AdapterView<?> adapterView) {
+
+      }
+    });
+
+    spinnerMobileCompany.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
+      @Override
+      public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
+        presenter.onFirstMobileCompanySelectChanged(adapterView.getSelectedItem().toString());
+      }
+
+      @Override
+      public void onNothingSelected(AdapterView<?> adapterView) {
+
+      }
+    });
+
+    checkBoxAllAgree.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
+      @Override
+      public void onCheckedChanged(CompoundButton compoundButton, boolean b) {
+        presenter.onAllAgreeCheckedChanged(b);
+        Log.e("APP#  PhoneIdentifyDialog | onCheckedChanged", "|" + b);
+      }
+    });
+
+    checkBoxAgree1.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
+      @Override
+      public void onCheckedChanged(CompoundButton compoundButton, boolean b) {
+        Log.e("APP#  PhoneIdentifyDialog | onCheckedChanged", "|" + b);
+        presenter.onAgree1CheckedChanged(b);
+
+      }
+    });
+
+    checkBoxAgree2.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
+      @Override
+      public void onCheckedChanged(CompoundButton compoundButton, boolean b) {
+        Log.e("APP#  PhoneIdentifyDialog | onCheckedChanged", "|" + b);
+        presenter.onAgree2CheckedChanged(b);
+      }
+    });
+
+    checkBoxAgree3.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
+      @Override
+      public void onCheckedChanged(CompoundButton compoundButton, boolean b) {
+        Log.e("APP#  PhoneIdentifyDialog | onCheckedChanged", "|" + b);
+        presenter.onAgree3CheckedChanged(b);
+      }
+    });
+
+    checkBoxAgree4.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
+      @Override
+      public void onCheckedChanged(CompoundButton compoundButton, boolean b) {
+        Log.e("APP#  PhoneIdentifyDialog | onCheckedChanged", "|" + b);
+        presenter.onAgree4CheckedChanged(b);
+      }
+    });
+  }
+
+
+  @Override
+  public void onClick(View view) {
+
+    switch (view.getId()) {
+      case R.id.button_phone_identify_confirm:
+        presenter.onIdentifyConfirmButtonClick();
+        break;
+      case R.id.button_phone_identify_time_delay:
+        presenter.onIdentifyTimeDelayButtonClick();
+        break;
+      case R.id.button_identify_number_send:
+        presenter.onIdentifyNumberSendButtonClick();
+        break;
+      default:
+        break;
+    }
+
+  }
+
+
+  @Override
+  public void doNameValidationMessage(String inputName) {
+
+  }
+
+  @Override
+  public void doNationalityValidationMessage(String inputNationality) {
+
+  }
+
+  @Override
+  public void doBirthDateValidationMessage(String inputBirthDate) {
+
+  }
+
+  @Override
+  public void doGenderValidationMessage(String inputGender) {
+
+  }
+
+  @Override
+  public void onAllAgreedCheckBoxChecked(boolean isAllChecked) {
+    if (isAllChecked) {
+      checkBoxAgree1.setChecked(true);
+      checkBoxAgree2.setChecked(true);
+      checkBoxAgree3.setChecked(true);
+      checkBoxAgree4.setChecked(true);
+
+    }
+    else {
+      checkBoxAgree1.setChecked(false);
+      checkBoxAgree2.setChecked(false);
+      checkBoxAgree3.setChecked(false);
+      checkBoxAgree4.setChecked(false);
+    }
+
+  }
+
+  @Override
+  public void doPhoneNumberCheckedValidationMessage(String inputPhoneNumber) {
+
+  }
+
+  @Override
+  public void doAuthorizedNumberValidationMessage(String inputAuthorizedNumber) {
+
+  }
+
+  @Override
+  public void onIdentifyConfirmButtonClick() {
+
+  }
+
+  @Override
+  public void onIdentifyNumberSendButtonClick() {
+    textViewPhoneIdentifyTime.setVisibility(View.VISIBLE);
+    buttonTimeDelay.setVisibility(View.VISIBLE);
+  }
+
+  @Override
+  public void onIdentifyTimeDelayButtonClick() {
+
+  }
 }

+ 135 - 0
app/src/main/java/kr/co/zumo/app/lifeplus/view/presenter/bean/SignUpUserBean.java

@@ -0,0 +1,135 @@
+package kr.co.zumo.app.lifeplus.view.presenter.bean;
+
+/**
+ * SignUpUserBean
+ * <pre>
+ * </pre>
+ *
+ * @author 하세미
+ * @version 1.0
+ * @history 하세미   [2018-09-17]   [최초 작성]
+ * @since 2018-09-17
+ */
+public class SignUpUserBean extends JsonBeanBase {
+
+  private String name;
+  private String nationality;
+  private String birthDate;
+  private String gender;
+  private String mobileCompany;
+  private String firstPhoneNumber;
+  private String phoneNumber;
+  private String authorizedNumber;
+  private boolean isAllAgreed;
+  private boolean isAgreed1;
+  private boolean isAgreed2;
+  private boolean isAgreed3;
+  private boolean isAgreed4;
+
+  public SignUpUserBean() {
+  }
+
+  public String getFirstPhoneNumber() {
+    return firstPhoneNumber;
+  }
+
+  public void setFirstPhoneNumber(String firstPhoneNumber) {
+    this.firstPhoneNumber = firstPhoneNumber;
+  }
+
+  public String getName() {
+    return name;
+  }
+
+  public void setName(String name) {
+    this.name = name;
+  }
+
+  public String getNationality() {
+    return nationality;
+  }
+
+  public void setNationality(String nationality) {
+    this.nationality = nationality;
+  }
+
+  public String getBirthDate() {
+    return birthDate;
+  }
+
+  public void setBirthDate(String birthDate) {
+    this.birthDate = birthDate;
+  }
+
+  public String getGender() {
+    return gender;
+  }
+
+  public void setGender(String gender) {
+    this.gender = gender;
+  }
+
+  public String getMobileCompany() {
+    return mobileCompany;
+  }
+
+  public void setMobileCompany(String mobileCompany) {
+    this.mobileCompany = mobileCompany;
+  }
+
+  public String getPhoneNumber() {
+    return phoneNumber;
+  }
+
+  public void setPhoneNumber(String phoneNumber) {
+    this.phoneNumber = phoneNumber;
+  }
+
+  public String getAuthorizedNumber() {
+    return authorizedNumber;
+  }
+
+  public void setAuthorizedNumber(String authorizedNumber) {
+    this.authorizedNumber = authorizedNumber;
+  }
+
+  public boolean isAllAgreed() {
+    return isAllAgreed;
+  }
+
+  public void setAllAgreed(boolean allAgreed) {
+    isAllAgreed = allAgreed;
+  }
+
+  public boolean isAgreed1() {
+    return isAgreed1;
+  }
+
+  public void setAgreed1(boolean agreed1) {
+    isAgreed1 = agreed1;
+  }
+
+  public boolean isAgreed2() {
+    return isAgreed2;
+  }
+
+  public void setAgreed2(boolean agreed2) {
+    isAgreed2 = agreed2;
+  }
+
+  public boolean isAgreed3() {
+    return isAgreed3;
+  }
+
+  public void setAgreed3(boolean agreed3) {
+    isAgreed3 = agreed3;
+  }
+
+  public boolean isAgreed4() {
+    return isAgreed4;
+  }
+
+  public void setAgreed4(boolean agreed4) {
+    isAgreed4 = agreed4;
+  }
+}

+ 190 - 0
app/src/main/java/kr/co/zumo/app/lifeplus/view/presenter/signup/SignUpUserPresenter.java

@@ -0,0 +1,190 @@
+package kr.co.zumo.app.lifeplus.view.presenter.signup;
+
+import android.util.Log;
+
+import kr.co.zumo.app.lifeplus.view.dialog.IPhoneIdentifyDialog;
+import kr.co.zumo.app.lifeplus.view.presenter.bean.SignUpUserBean;
+
+/**
+ * IdentifyViewModel
+ * <pre>
+ * </pre>
+ *
+ * @author 하세미
+ * @version 1.0
+ * @history 하세미   [2018-09-14]   [최초 작성]
+ * @since 2018-09-14
+ */
+public class SignUpUserPresenter {
+
+  private SignUpUserBean userBean = new SignUpUserBean();
+  private IPhoneIdentifyDialog view;
+
+  public SignUpUserPresenter(IPhoneIdentifyDialog iPhoneIdentifyDialog) {
+    this.view = iPhoneIdentifyDialog;
+  }
+
+  /**
+   * name 필드의 입력시 호출
+   *
+   * @param inputName
+   */
+  public void onNameTextChanged(String inputName) {
+    Log.e("APP#  SignUpUserPresenter | doNameValidationMessage", "|" + inputName);
+    userBean.setName(inputName);
+  }
+
+  /**
+   * 생년월일 입력시 호출
+   *
+   * @param inputBirthDate
+   */
+  public void onBirthDateTextChanged(String inputBirthDate) {
+    Log.e("APP#  SignUpUserPresenter | onBirthDateTextChanged", "|" + inputBirthDate);
+    userBean.setBirthDate(inputBirthDate);
+  }
+
+  /**
+   * 휴대전화 뒤 7-8자리 입력시 호출
+   *
+   * @param phoneNumber
+   */
+  public void onPhoneNumberTextChanged(String phoneNumber) {
+    Log.e("APP#  SignUpUserPresenter | onPhoneNumberCheckedValidationMessage", "|" + phoneNumber);
+    userBean.setPhoneNumber(phoneNumber);
+  }
+
+  /**
+   * 인증번호 6자리 입력시 호출
+   *
+   * @param authorizedNumber
+   */
+  public void onAuthorizedNumberChanged(String authorizedNumber) {
+    Log.e("APP#  SignUpUserPresenter | onPhoneNumberCheckedValidationMessage", "|" + authorizedNumber);
+    userBean.setAuthorizedNumber(authorizedNumber);
+  }
+
+  /**
+   * default 선택 값 남자의 체크유무 판별 후 성별 체크
+   *
+   * @param isMale
+   */
+  public void setOnGenderCheckedChanged(boolean isMale) {
+    if (isMale) {
+      userBean.setGender("남자");
+    }
+    else {
+      userBean.setGender("여자");
+    }
+  }
+
+  /**
+   * default 선택 값 내국인의 체크유무 판별 후 국적 체크
+   *
+   * @param isLocal
+   */
+  public void onNationalCheckedChanged(boolean isLocal) {
+    if (isLocal) {
+      userBean.setNationality("내국인");
+    }
+    else {
+      userBean.setNationality("외국인");
+    }
+  }
+
+  /**
+   * 핸드폰 번호 앞자리 spinner 선택시 호출
+   *
+   * @param firstPhoneNumber
+   */
+  public void onFirstPhoneNumberSelectChanged(String firstPhoneNumber) {
+    Log.e("APP#  SignUpUserPresenter | onFirstPhoneNumberSelectChanged", "|" + firstPhoneNumber);
+    userBean.setFirstPhoneNumber(firstPhoneNumber);
+  }
+
+  /**
+   * 통신사 spinner 선택시 호출
+   *
+   * @param mobileCompany
+   */
+  public void onFirstMobileCompanySelectChanged(String mobileCompany) {
+    Log.e("APP#  SignUpUserPresenter | onFirstPhoneNumberSelectChanged", "|" + mobileCompany);
+    userBean.setMobileCompany(mobileCompany);
+  }
+
+  /**
+   * 전체동의 체크 버튼 클릭시 호출
+   *
+   * @param isChecked
+   */
+  public void onAllAgreeCheckedChanged(boolean isChecked) {
+    Log.e("APP#  SignUpUserPresenter | onAllAgreeCheckedChanged", "|" + isChecked);
+    userBean.setAllAgreed(isChecked);
+    view.onAllAgreedCheckBoxChecked(isChecked);
+
+
+  }
+
+  /**
+   * 동의버튼1  클릭시 호출
+   *
+   * @param isChecked
+   */
+  public void onAgree1CheckedChanged(boolean isChecked) {
+    userBean.setAgreed1(isChecked);
+
+  }
+
+  /**
+   * 동의버튼2  클릭시 호출
+   *
+   * @param isChecked
+   */
+  public void onAgree2CheckedChanged(boolean isChecked) {
+    userBean.setAgreed2(isChecked);
+
+  }
+
+  /**
+   * 동의버튼3  클릭시 호출
+   *
+   * @param isChecked
+   */
+  public void onAgree3CheckedChanged(boolean isChecked) {
+    userBean.setAgreed3(isChecked);
+  }
+
+  /**
+   * 동의버튼4  클릭시 호출
+   *
+   * @param isChecked
+   */
+  public void onAgree4CheckedChanged(boolean isChecked) {
+    userBean.setAgreed4(isChecked);
+  }
+
+
+  /**
+   * 인증 확인 버튼 클릭, 인증 번호 확인 후 가입 완료.
+   */
+  public void onIdentifyConfirmButtonClick() {
+    String authorizedNumber = userBean.getAuthorizedNumber();
+    Log.e("APP#  SignUpUserPresenter | onIdentifyConfirmButtonClick", "|" + "click");
+  }
+
+  /**
+   * 인증번호 발송 버튼 클릭, 인증 번호 발송 전 user 정보 data 준비.
+   */
+  public void onIdentifyNumberSendButtonClick() {
+    view.onIdentifyNumberSendButtonClick();
+    Log.e("APP#  SignUpUserPresenter | onIdentifyNumberSendButtonClick", "|" + userBean.toJson());
+
+  }
+
+  /**
+   * 인증번호 시간 지연 버튼 클릭
+   */
+  public void onIdentifyTimeDelayButtonClick() {
+
+  }
+}

+ 0 - 138
app/src/main/java/kr/co/zumo/app/lifeplus/view/presenter/signup/SignUpUserViewModel.java

@@ -1,138 +0,0 @@
-package kr.co.zumo.app.lifeplus.view.presenter.signup;
-
-import android.content.res.Resources;
-import android.databinding.ObservableBoolean;
-import android.databinding.ObservableField;
-import android.databinding.ObservableInt;
-import android.util.Log;
-
-import java.util.Arrays;
-import java.util.List;
-
-import kr.co.zumo.app.R;
-
-/**
- * IdentifyViewModel
- * <pre>
- * </pre>
- *
- * @author 하세미
- * @version 1.0
- * @history 하세미   [2018-09-14]   [최초 작성]
- * @since 2018-09-14
- */
-public class SignUpUserViewModel{
-
-  private Resources resources;
-
-  public SignUpUserViewModel(Resources resources) {
-    this.resources = resources;
-  }
-
-  public ObservableField<String> name = new ObservableField<>();
-
-  //국적 및 성별 default 값 세팅
-  private String selectNationality = "내국인";
-  private String selectGender = "남자";
-
-  public ObservableField<String> birthDate = new ObservableField<>();
-  public ObservableBoolean isAgreed1 = new ObservableBoolean(false);
-  public ObservableBoolean isAgreed2 = new ObservableBoolean(false);
-  public ObservableBoolean isAgreed3 = new ObservableBoolean(false);
-  public ObservableBoolean isAgreed4 = new ObservableBoolean(false);
-  public ObservableInt mobileCompany = new ObservableInt();
-  public ObservableInt firstPhoneNumber = new ObservableInt();
-
-  private String selectMobileCompany = null;
-  private String selectFirstPhoneNumber = null;
-
-  public ObservableField<String> phoneNumber = new ObservableField<>();
-  public ObservableField<String> authorizedNumber = new ObservableField<>();
-
-  /**
-   * 인증번호 발송 버튼 클릭
-   */
-  public void onSendAuthorizationCodeButtonClick() {
-    Log.e("APP#  SignUpUserViewModel | onSendAuthorizationCode", "|" + "onSendAuthorizationCode()");
-  }
-
-  /**
-   * 인증번호 6자리 입력후 확인 버튼 클릭
-   */
-  public void onConfirmButtonClick() {
-
-
-    getSelectMobileCompany(resources);
-    getSelectPhoneNumber(resources);
-
-    Log.e("APP#  SignUpUserViewModel | onConfirmButtonClick", "|" + "name " + name.get());
-    Log.e("APP#  SignUpUserViewModel | onConfirmButtonClick", "|" + "nationality " + selectNationality);
-    Log.e("APP#  SignUpUserViewModel | onConfirmButtonClick", "|" + "gender " + selectGender);
-    Log.e("APP#  SignUpUserViewModel | onConfirmButtonClick", "|" + "birthdate " + birthDate.get());
-    Log.e("APP#  SignUpUserViewModel | onConfirmButtonClick", "|" + "agreed " + isAgreed1.get() + ", "+ isAgreed2.get() + ", " + isAgreed3.get() + "," + isAgreed4.get());
-    Log.e("APP#  SignUpUserViewModel | onConfirmButtonClick", "|" + "mobileCompany" + selectMobileCompany);
-    Log.e("APP#  SignUpUserViewModel | onConfirmButtonClick", "|" + "phoneNumber" + selectFirstPhoneNumber + phoneNumber.get());
-    Log.e("APP#  SignUpUserViewModel | onConfirmButtonClick", "|" + "authorizedNumber" + authorizedNumber.get());
-  }
-
-  /**
-   * 시간 연장 버튼 클릭
-   */
-  public void onTimeDelayButtonClick() {
-    Log.e("APP#  SignUpUserViewModel | onTimeDelayButtonClick", "|" + "onTimeDelayButtonClick");
-  }
-
-  public void switchNationality(String nationality) {
-    Log.e("APP#  SignUpUserViewModel | setNationality", "|" + nationality);
-    selectNationality = nationality;
-  }
-
-  public void switchGender(String gender) {
-    Log.e("APP#  SignUpUserViewModel | setGender", "|" + gender);
-    selectGender = gender;
-  }
-
-  public void onCheckedChanged1(boolean isChecked) {
-    Log.e("APP#  SignUpUserViewModel | onCheckedChanged1", "|" + isChecked);
-    if (isChecked) {
-      isAgreed1.set(true);
-    }
-
-  }
-
-  public void onCheckedChanged2(boolean isChecked) {
-    Log.e("APP#  SignUpUserViewModel | onCheckedChanged1", "|" + isChecked);
-    if (isChecked) {
-      isAgreed2.set(true);
-    }
-  }
-
-  public void onCheckedChanged3(boolean isChecked) {
-    Log.e("APP#  SignUpUserViewModel | onCheckedChanged1", "|" + isChecked);
-    if (isChecked) {
-      isAgreed3.set(true);
-    }
-  }
-
-  public void onCheckedChanged4(boolean isChecked) {
-    Log.e("APP#  SignUpUserViewModel | onCheckedChanged1", "|" + isChecked);
-    if (isChecked) {
-      isAgreed4.set(true);
-    }
-  }
-
-  public void getSelectMobileCompany(Resources resources) {
-
-    List<String> mobileCompanyList = Arrays.asList(resources.getStringArray(R.array.mobile_company));
-    selectMobileCompany = mobileCompanyList.get(mobileCompany.get());
-  }
-
-  public void getSelectPhoneNumber(Resources resources) {
-    List<String> phoneNumberList = Arrays.asList(resources.getStringArray(R.array.phone_number));
-    selectFirstPhoneNumber = phoneNumberList.get(firstPhoneNumber.get());
-
-  }
-
-
-
-}

BIN
app/src/main/res/drawable/cancel.png


+ 301 - 321
app/src/main/res/layout/sign_up_phone_identify.xml

@@ -1,368 +1,348 @@
 <?xml version="1.0" encoding="utf-8"?>
-<layout>
 
-  <data>
-    <variable
-      name="model"
-      type="kr.co.zumo.app.lifeplus.view.presenter.signup.SignUpUserViewModel"/>
+<ScrollView
+  xmlns:android="http://schemas.android.com/apk/res/android"
+  xmlns:tools="http://schemas.android.com/tools"
+  android:layout_width="match_parent"
+  android:layout_height="match_parent"
+  android:orientation="vertical">
 
-  </data>
-
-  <ScrollView
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:tools="http://schemas.android.com/tools"
+  <LinearLayout
     android:layout_width="match_parent"
     android:layout_height="match_parent"
-    android:orientation="vertical">
+    android:background="@color/white"
+    android:orientation="vertical"
+    >
 
     <LinearLayout
       android:layout_width="match_parent"
-      android:layout_height="match_parent"
-      android:background="@color/white"
-      android:orientation="vertical"
-      >
+      android:layout_height="wrap_content"
+      android:layout_marginTop="5pt"
+      android:orientation="vertical">
 
-      <LinearLayout
+      <TextView
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
-        android:layout_marginTop="5pt"
-        android:orientation="vertical">
+        android:layout_margin="5pt"
+        android:text="@string/phone_identify_name"
+        android:textSize="20dp"/>
 
-        <TextView
-          android:layout_width="match_parent"
-          android:layout_height="wrap_content"
-          android:layout_margin="5pt"
-          android:text="@string/phone_identify_name"
-          android:textSize="20dp"/>
+    </LinearLayout>
 
-      </LinearLayout>
+    <LinearLayout
+      android:layout_width="match_parent"
+      android:layout_height="wrap_content"
+      android:layout_marginBottom="10pt"
+      android:orientation="horizontal">
 
-      <LinearLayout
-        android:layout_width="match_parent"
+
+      <kr.co.zumo.app.lifeplus.view.custom.ClearEditText
+        android:id="@+id/edit_text_name"
+        android:layout_width="165dp"
         android:layout_height="wrap_content"
-        android:layout_marginBottom="10pt"
+        android:layout_marginLeft="5pt"
+        android:layout_marginRight="-15pt"
+        android:layout_weight="2"
+        android:background="@drawable/input_border"
+        android:baselineAligned="false"
+        android:hint="@string/phone_identify_name_hint"
+        android:inputType="textPersonName"
+        android:padding="3pt"/>
+
+      <RadioGroup
+        android:id="@+id/radio_group_nationality"
+        android:layout_width="wrap_content"
+        android:layout_height="40dp"
+        android:layout_marginLeft="50dp"
+        android:layout_marginRight="50dp"
+        android:layout_weight="2"
+        android:background="@drawable/swicth_out_line"
+        android:checkedButton="@+id/offer"
         android:orientation="horizontal">
 
-
-        <EditText
-          android:id="@+id/phone_identify_input_name"
-          android:layout_width="165dp"
-          android:layout_height="wrap_content"
-          android:layout_marginLeft="5pt"
-          android:layout_marginRight="-15pt"
-          android:layout_weight="2"
-          android:background="@drawable/input_border"
-          android:hint="@string/phone_identify_name_hint"
+        <RadioButton
+          android:id="@+id/radio_button_local"
+          android:layout_width="92dp"
+          android:layout_height="match_parent"
+          android:layout_marginBottom="1dp"
+          android:layout_marginLeft="1dp"
+          android:layout_marginTop="1dp"
+          android:layout_weight="1"
+          android:background="@drawable/toggle_widget_background"
+          android:button="@null"
+          android:checked="true"
+          android:gravity="center"
           android:padding="3pt"
-          android:text="@={model.name}"
-          />
+          android:text="@string/phone_identify_local"/>
 
-        <RadioGroup
-          android:id="@+id/toggle"
-          android:layout_width="wrap_content"
+        <RadioButton
+          android:id="@+id/radio_button_foreign"
+          android:layout_width="85dp"
           android:layout_height="40dp"
-          android:layout_marginLeft="50dp"
-          android:layout_marginRight="50dp"
-          android:layout_weight="2"
-          android:background="@drawable/swicth_out_line"
-          android:checkedButton="@+id/offer"
-          android:orientation="horizontal">
-
-          <RadioButton
-            android:id="@+id/search"
-            android:layout_width="92dp"
-            android:layout_height="match_parent"
-            android:layout_marginBottom="1dp"
-            android:layout_marginLeft="1dp"
-            android:layout_marginTop="1dp"
-            android:layout_weight="1"
-            android:background="@drawable/toggle_widget_background"
-            android:button="@null"
-            android:checked="true"
-            android:onClick="@{()-> model.switchNationality(@string/phone_identify_local)}"
-            android:gravity="center"
-            android:padding="3pt"
-            android:text="@string/phone_identify_local"/>
-
-          <RadioButton
-            android:id="@+id/offer"
-            android:layout_width="85dp"
-            android:layout_height="40dp"
-            android:layout_marginBottom="1dp"
-            android:layout_marginRight="1dp"
-            android:layout_marginTop="1dp"
-            android:layout_weight="1"
-            android:background="@drawable/toggle_widget_background"
-            android:button="@null"
-            android:gravity="center"
-            android:onClick="@{()-> model.switchNationality(@string/phone_identify_foreign)}"
-            android:padding="3pt"
-            android:text="@string/phone_identify_foreign"/>
-        </RadioGroup>
-
-      </LinearLayout>
-
-
-      <LinearLayout
+          android:layout_marginBottom="1dp"
+          android:layout_marginRight="1dp"
+          android:layout_marginTop="1dp"
+          android:layout_weight="1"
+          android:background="@drawable/toggle_widget_background"
+          android:button="@null"
+          android:gravity="center"
+          android:padding="3pt"
+          android:text="@string/phone_identify_foreign"/>
+      </RadioGroup>
+
+    </LinearLayout>
+
+
+    <LinearLayout
+      android:layout_width="match_parent"
+      android:layout_height="wrap_content"
+      android:orientation="vertical"
+      >
+
+      <TextView
+        android:id="@+id/textView10"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
-        android:orientation="vertical"
+        android:layout_margin="5pt"
+        android:text="@string/phone_identify_birth"
+        android:textSize="20dp"/>
+
+    </LinearLayout>
+
+    <LinearLayout
+      android:layout_width="match_parent"
+      android:layout_height="wrap_content"
+      android:layout_marginBottom="15pt"
+      android:orientation="horizontal">
+
+
+      <kr.co.zumo.app.lifeplus.view.custom.ClearEditText
+        android:id="@+id/edit_text_birth_date"
+        android:layout_width="165dp"
+        android:layout_height="wrap_content"
+        android:layout_marginLeft="5pt"
+        android:layout_marginRight="-15pt"
+        android:layout_weight="2"
+        android:background="@drawable/input_border"
+        android:hint="@string/phone_identify_birth_hint"
+        android:inputType="number"
+        android:padding="3pt"/>
+
+      <RadioGroup
+        android:id="@+id/radio_group_gender"
+        android:layout_width="wrap_content"
+        android:layout_height="40dp"
+        android:layout_marginLeft="50dp"
+        android:layout_marginRight="50dp"
+        android:layout_weight="2"
+        android:background="@drawable/swicth_out_line"
+        android:checkedButton="@+id/offer"
+        android:orientation="horizontal"
         >
 
-        <TextView
-          android:id="@+id/textView10"
-          android:layout_width="match_parent"
-          android:layout_height="wrap_content"
-          android:layout_margin="5pt"
-          android:text="@string/phone_identify_birth"
-          android:textSize="20dp"/>
+        <RadioButton
+          android:id="@+id/radio_button_male"
+          android:layout_width="92dp"
+          android:layout_height="match_parent"
+          android:layout_marginBottom="1dp"
+          android:layout_marginLeft="1dp"
+          android:layout_marginTop="1dp"
+          android:layout_weight="1"
+          android:background="@drawable/toggle_widget_background"
+          android:button="@null"
+          android:checked="true"
+          android:gravity="center"
+          android:padding="3pt"
+          android:text="@string/phone_identify_male"/>
+
+        <RadioButton
+          android:id="@+id/radio_button_female"
+          android:layout_width="85dp"
+          android:layout_height="40dp"
+          android:layout_marginBottom="1dp"
+          android:layout_marginRight="1dp"
+          android:layout_marginTop="1dp"
+          android:layout_weight="1"
+          android:background="@drawable/toggle_widget_background"
+          android:button="@null"
+          android:gravity="center"
+          android:padding="3pt"
+          android:text="@string/phone_identify_female"/>
+      </RadioGroup>
 
-      </LinearLayout>
+    </LinearLayout>
 
-      <LinearLayout
+    <LinearLayout
+      android:layout_width="match_parent"
+      android:layout_height="wrap_content"
+      android:layout_marginBottom="10pt"
+      android:orientation="vertical">
+
+      <CheckBox
+        android:id="@+id/checkbox_all_agree"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
-        android:layout_marginBottom="15pt"
-        android:orientation="horizontal">
+        android:layout_marginBottom="3pt"
+        android:layout_marginLeft="5pt"
+        android:text="@string/phone_identify_all_agree"
+        android:textIsSelectable="false"
+        android:textSize="20dp"/>
 
+      <View
+        android:layout_width="match_parent"
+        android:layout_height="2dp"
+        android:layout_centerInParent="true"
+        android:layout_marginLeft="5pt"
+        android:layout_marginRight="5pt"
+        android:background="@color/darkGrey"/>
 
-        <EditText
-          android:id="@+id/birth"
-          android:layout_width="165dp"
-          android:layout_height="wrap_content"
-          android:layout_marginLeft="5pt"
-          android:layout_marginRight="-15pt"
-          android:layout_weight="2"
-          android:text="@{String.valueOf(model.birthDate)}"
-          android:background="@drawable/input_border"
-          android:hint="@string/phone_identify_birth_hint"
-          android:padding="3pt"/>
-
-        <RadioGroup
-          android:id="@+id/toggle2"
-          android:layout_width="wrap_content"
-          android:layout_height="40dp"
-          android:layout_marginLeft="50dp"
-          android:layout_marginRight="50dp"
-          android:layout_weight="2"
-          android:background="@drawable/swicth_out_line"
-          android:checkedButton="@+id/offer"
-          android:orientation="horizontal"
-          >
-
-          <RadioButton
-            android:id="@+id/man"
-            android:layout_width="92dp"
-            android:layout_height="match_parent"
-            android:layout_marginBottom="1dp"
-            android:layout_marginLeft="1dp"
-            android:layout_marginTop="1dp"
-            android:layout_weight="1"
-            android:background="@drawable/toggle_widget_background"
-            android:button="@null"
-            android:gravity="center"
-            android:padding="3pt"
-            android:checked="true"
-            android:onClick="@{()-> model.switchGender(@string/phone_identify_male)}"
-            android:text="@string/phone_identify_male"/>
-
-          <RadioButton
-            android:id="@+id/woman"
-            android:layout_width="85dp"
-            android:layout_height="40dp"
-            android:layout_marginBottom="1dp"
-            android:layout_marginRight="1dp"
-            android:layout_marginTop="1dp"
-            android:layout_weight="1"
-            android:background="@drawable/toggle_widget_background"
-            android:button="@null"
-            android:gravity="center"
-            android:padding="3pt"
-            android:onClick="@{()-> model.switchGender(@string/phone_identify_female)}"
-            android:text="@string/phone_identify_female"/>
-        </RadioGroup>
-
-      </LinearLayout>
-
-      <LinearLayout
+
+      <CheckBox
+        android:id="@+id/checkbox_agree1"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
-        android:layout_marginBottom="10pt"
-        android:orientation="vertical">
-
-        <CheckBox
-          android:id="@+id/identifyChk1"
-          android:layout_width="match_parent"
-          android:layout_height="wrap_content"
-          android:layout_marginBottom="3pt"
-          android:layout_marginLeft="5pt"
-          android:text="@string/phone_identify_all_agree"
-          android:textIsSelectable="false"
-          android:textSize="20dp"/>
-
-        <View
-          android:layout_width="match_parent"
-          android:layout_height="2dp"
-          android:layout_centerInParent="true"
-          android:layout_marginLeft="5pt"
-          android:layout_marginRight="5pt"
-          android:background="@color/darkGrey"/>
-
-
-        <CheckBox
-          android:id="@+id/identifyChk2"
-          android:layout_width="match_parent"
-          android:layout_height="wrap_content"
-          android:layout_marginLeft="5pt"
-          android:layout_marginTop="3pt"
-          android:onCheckedChanged="@{(v, checked) -> model.onCheckedChanged1(checked)}"
-          android:text="@string/phone_identify_agree1"
-          android:textSize="20dp"/>
-
-        <CheckBox
-          android:id="@+id/identifyChk3"
-          android:layout_width="match_parent"
-          android:layout_height="wrap_content"
-          android:layout_marginLeft="5pt"
-          android:text="@string/phone_identify_agree2"
-          android:onCheckedChanged="@{(v, checked) -> model.onCheckedChanged2(checked)}"
-          android:textSize="20dp"/>
-
-        <CheckBox
-          android:id="@+id/identifyChk4"
-          android:layout_width="match_parent"
-          android:layout_height="wrap_content"
-          android:layout_marginLeft="5pt"
-          android:onCheckedChanged="@{(v, checked) -> model.onCheckedChanged3(checked)}"
-          android:text="@string/phone_identify_agree3"
-          android:textSize="20dp"/>
-
-        <CheckBox
-          android:id="@+id/identifyChk5"
-          android:layout_width="match_parent"
-          android:layout_height="wrap_content"
-          android:layout_marginLeft="5pt"
-          android:onCheckedChanged="@{(v, checked) -> model.onCheckedChanged4(checked)}"
-          android:text="@string/phone_identify_agree4"
-          android:textSize="20dp"/>
-
-
-      </LinearLayout>
-
-      <LinearLayout
+        android:layout_marginLeft="5pt"
+        android:layout_marginTop="3pt"
+        android:text="@string/phone_identify_agree1"
+        android:textSize="20dp"/>
+
+      <CheckBox
+        android:id="@+id/checkbox_agree2"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
-        android:orientation="horizontal"
-        android:weightSum="4">
-
-
-        <Spinner
-          android:id="@+id/spinner"
-          android:layout_width="0dp"
-          android:layout_height="wrap_content"
-          android:layout_marginLeft="5pt"
-          android:layout_marginRight="5pt"
-          android:layout_weight="2"
-          android:selectedItemPosition="@={model.mobileCompany}"
-          android:entries="@array/mobile_company"/>
-
-        <Spinner
-          android:id="@+id/spinner2"
-          android:layout_width="0dp"
-          android:layout_height="wrap_content"
-          android:layout_marginRight="5pt"
-          android:layout_weight="2"
-          android:selectedItemPosition="@={model.firstPhoneNumber}"
-          android:entries="@array/phone_number"/>
-
-      </LinearLayout>
-
-      <LinearLayout
+        android:layout_marginLeft="5pt"
+        android:text="@string/phone_identify_agree2"
+        android:textSize="20dp"/>
+
+      <CheckBox
+        android:id="@+id/checkbox_agree3"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
-        android:orientation="vertical">
-
-        <EditText
-          android:id="@+id/phone"
-          android:layout_width="match_parent"
-          android:layout_height="wrap_content"
-          android:layout_margin="5pt"
-          android:background="@drawable/input_border"
-          android:hint="@string/phone_identify_phone_hint"
-          android:text="@{model.phoneNumber}"
-          android:padding="3pt"/>
-
-        <Button
-          android:id="@+id/button_identify_number_send"
-          android:layout_width="match_parent"
-          android:layout_height="wrap_content"
-          android:layout_marginBottom="5pt"
-          android:layout_marginLeft="5pt"
-          android:layout_marginRight="5pt"
-          android:text="@string/phone_identify_submit"
-          android:onClick="@{()->model.onSendAuthorizationCodeButtonClick()}"
-          />
-
-
-      </LinearLayout>
-
-      <LinearLayout
+        android:layout_marginLeft="5pt"
+        android:text="@string/phone_identify_agree3"
+        android:textSize="20dp"/>
+
+      <CheckBox
+        android:id="@+id/checkbox_agree4"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
-        android:orientation="horizontal"
-        android:weightSum="4">
-
-        <EditText
-          android:id="@+id/identifyNumber"
-          android:layout_width="0dp"
-          android:layout_height="wrap_content"
-          android:layout_margin="5pt"
-          android:layout_weight="3"
-          android:background="@drawable/input_border"
-          android:text="@{model.authorizedNumber}"
-          android:hint="@string/phone_identify_six_characters"
-
-          android:padding="3pt"/>
-
-        <Button
-          android:id="@+id/button_phone_identify_confirm"
-          android:layout_width="0dp"
-          android:layout_height="60dp"
-          android:layout_marginBottom="5pt"
-          android:layout_marginRight="5pt"
-          android:layout_marginTop="5pt"
-          android:layout_weight="1"
-          android:onClick="@{()->model.onConfirmButtonClick()}"
-          android:text="@string/phone_identify_confirm"
-          />
+        android:layout_marginLeft="5pt"
+        android:text="@string/phone_identify_agree4"
+        android:textSize="20dp"/>
+
+
+    </LinearLayout>
+
+    <LinearLayout
+      android:layout_width="match_parent"
+      android:layout_height="wrap_content"
+      android:orientation="horizontal"
+      android:weightSum="4">
+
+
+      <Spinner
+        android:id="@+id/spinner_mobile_company"
+        android:layout_width="0dp"
+        android:layout_height="wrap_content"
+        android:layout_marginLeft="5pt"
+        android:layout_marginRight="5pt"
+        android:layout_weight="2"
+        android:entries="@array/mobile_company"/>
+
+      <Spinner
+        android:id="@+id/spinner_first_phone_number"
+        android:layout_width="0dp"
+        android:layout_height="wrap_content"
+        android:layout_marginRight="5pt"
+        android:layout_weight="2"
+        android:entries="@array/phone_number"/>
+
+    </LinearLayout>
 
-      </LinearLayout>
+    <LinearLayout
+      android:layout_width="match_parent"
+      android:layout_height="wrap_content"
+      android:orientation="vertical">
 
-      <LinearLayout
+      <kr.co.zumo.app.lifeplus.view.custom.ClearEditText
+        android:id="@+id/edit_text_phone_number"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
-        android:orientation="horizontal"
-        android:weightSum="5">
+        android:layout_margin="5pt"
+        android:background="@drawable/input_border"
+        android:hint="@string/phone_identify_phone_hint"
+        android:inputType="number"
+        android:padding="3pt"/>
+
+      <Button
+        android:id="@+id/button_identify_number_send"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginBottom="5pt"
+        android:layout_marginLeft="5pt"
+        android:layout_marginRight="5pt"
+        android:text="@string/phone_identify_submit"
+        />
 
-        <TextView
-          android:layout_width="0dp"
-          android:layout_height="wrap_content"
-          android:layout_margin="5pt"
-          android:layout_weight="3"
-          android:padding="3pt"
-          android:text="@string/phone_identify_time"/>
 
-        <Button
-          android:id="@+id/button_phone_identify_time_delay"
-          android:layout_width="0dp"
-          android:layout_height="wrap_content"
-          android:layout_weight="2"
-          android:text="@string/phone_identify_time_delay"
-          android:onClick="@{()->model.onTimeDelayButtonClick()}"
-          />
+    </LinearLayout>
 
-      </LinearLayout>
+    <LinearLayout
+      android:layout_width="match_parent"
+      android:layout_height="wrap_content"
+      android:orientation="horizontal"
+      android:weightSum="4">
+
+      <kr.co.zumo.app.lifeplus.view.custom.ClearEditText
+        android:id="@+id/edit_text_authorized_number"
+        android:layout_width="0dp"
+        android:layout_height="wrap_content"
+        android:layout_margin="5pt"
+        android:layout_weight="3"
+        android:background="@drawable/input_border"
+        android:hint="@string/phone_identify_six_characters"
+        android:inputType="number"
+
+        android:padding="3pt"/>
+
+      <Button
+        android:id="@+id/button_phone_identify_confirm"
+        android:layout_width="0dp"
+        android:layout_height="60dp"
+        android:layout_marginBottom="5pt"
+        android:layout_marginRight="5pt"
+        android:layout_marginTop="5pt"
+        android:layout_weight="1"
+        android:text="@string/phone_identify_confirm"
+        />
+
+    </LinearLayout>
+
+    <LinearLayout
+      android:layout_width="match_parent"
+      android:layout_height="wrap_content"
+      android:orientation="horizontal"
+      android:weightSum="5">
+
+      <TextView
+        android:id="@+id/text_view_phone_identify_time"
+        android:layout_width="0dp"
+        android:layout_height="wrap_content"
+        android:layout_margin="5pt"
+        android:layout_weight="3"
+        android:padding="3pt"
+        android:text="@string/phone_identify_time"
+        android:visibility="gone"/>
+
+      <Button
+        android:id="@+id/button_phone_identify_time_delay"
+        android:layout_width="0dp"
+        android:layout_height="wrap_content"
+        android:layout_weight="2"
+        android:text="@string/phone_identify_time_delay"
+        android:visibility="gone"/>
 
     </LinearLayout>
-  </ScrollView>
-</layout>
+
+  </LinearLayout>
+</ScrollView>

+ 23 - 16
app/src/main/res/values/arrays.xml

@@ -1,23 +1,30 @@
 <?xml version="1.0" encoding="utf-8"?>
 <resources>
-    <string-array name="mobile_company">
-        <item>통신사 선택</item>
-        <item >SKT</item>
-        <item >KT</item>
-        <item >LG U+</item>
-    </string-array>
+  <string-array name="mobile_company">
+    <item>통신사 선택</item>
+    <item>SKT</item>
+    <item>KT</item>
+    <item>LG U+</item>
+    <item>SKT(알뜰폰)</item>
+    <item>KT(알뜰폰)</item>
+    <item>LG U+(알뜰폰)</item>
+  </string-array>
 
-    <string-array name="phone_number">
-        <item >010</item>
-        <item >011</item>
-    </string-array>
+  <string-array name="phone_number">
+    <item>010</item>
+    <item>011</item>
+    <item>016</item>
+    <item>017</item>
+    <item>018</item>
+    <item>019</item>
+  </string-array>
 
-    <string-array name="email">
-        <item>직접 입력</item>
-        <item>naver.com</item>
-        <item>hanmail.net</item>
-        <item>gmail.com</item>
-    </string-array>
+  <string-array name="email">
+    <item>직접 입력</item>
+    <item>naver.com</item>
+    <item>hanmail.net</item>
+    <item>gmail.com</item>
+  </string-array>
 
 
 </resources>