Advertisement
Guest User

Untitled

a guest
Dec 13th, 2018
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.76 KB | None | 0 0
  1. package com.vienna.mypregnancy.ui.login.registration;
  2.  
  3. import android.annotation.SuppressLint;
  4. import android.content.Context;
  5. import android.content.Intent;
  6. import android.os.Bundle;
  7. import android.support.annotation.StringRes;
  8. import android.text.Editable;
  9. import android.text.TextWatcher;
  10. import android.view.KeyEvent;
  11. import android.widget.Toast;
  12.  
  13. import com.arellomobile.mvp.presenter.InjectPresenter;
  14. import com.rengwuxian.materialedittext.MaterialEditText;
  15. import com.terrakok.phonematter.PhoneFormat;
  16. import com.vienna.mypregnancy.R;
  17. import com.vienna.mypregnancy.mvp.login.registration.RegistrationPresenter;
  18. import com.vienna.mypregnancy.mvp.login.registration.RegistrationView;
  19. import com.vienna.mypregnancy.ui.base.BaseActivity;
  20.  
  21. import java.util.Objects;
  22.  
  23. import butterknife.BindView;
  24. import butterknife.OnClick;
  25.  
  26. import static com.vienna.mypregnancy.config.DebugConfig.DEV_BUILD;
  27. import static com.vienna.mypregnancy.utils.Constants.TEST_PHONE_NUMBER;
  28. import static com.vienna.mypregnancy.utils.ContextUtils.clearFocusFromAllViews;
  29. import static com.vienna.mypregnancy.utils.ContextUtils.hideSoftKeyboard;
  30.  
  31. public class RegistrationActivity extends BaseActivity implements RegistrationView, TextWatcher {
  32.  
  33. @InjectPresenter
  34. RegistrationPresenter mvpPresenter;
  35.  
  36. @BindView(R.id.et_phone_number)
  37. MaterialEditText etPhoneNumber;
  38.  
  39. private PhoneFormat phoneFormat;
  40. private int keyDel;
  41.  
  42. public static Intent getIntent(Context context) {
  43. return new Intent(context, RegistrationActivity.class);
  44. }
  45.  
  46. @Override
  47. protected int getLayoutResourceId() {
  48. return R.layout.activity_registration;
  49. }
  50.  
  51. @Override
  52. protected void onCreate(Bundle savedInstanceState) {
  53. super.onCreate(savedInstanceState);
  54. mvpPresenter.init(dataLayer, this);
  55. etPhoneNumber.addTextChangedListener(this);
  56. phoneFormat = new PhoneFormat("kk", this);
  57. if (DEV_BUILD) {
  58. etPhoneNumber.setText(TEST_PHONE_NUMBER);
  59. }
  60. }
  61.  
  62. @Override
  63. protected void onDestroy() {
  64. super.onDestroy();
  65. mvpPresenter.onDestroy();
  66. }
  67.  
  68. private void showInputFieldError(MaterialEditText inputField, @StringRes int errorRes) {
  69. inputField.setError(getString(errorRes));
  70. }
  71.  
  72. @Override
  73. public void showPhoneError(int errorRes) {
  74. showInputFieldError(etPhoneNumber, errorRes);
  75. }
  76.  
  77. @Override
  78. public void onSendPhoneNumberClick() {
  79. mvpPresenter.sendPhoneNumberClick();
  80. }
  81.  
  82. @Override
  83. public void showSecondRegistrationScreen() {
  84. startActivity(RegistrationVerificationActivity.getIntent(this));
  85. }
  86.  
  87. @OnClick(R.id.btn_send_phone_number)
  88. void sendPhoneNumberClick() {
  89. clearFocusFromAllViews(fl_container);
  90. hideSoftKeyboard(fl_container);
  91. mvpPresenter.setPhone(Objects.requireNonNull(etPhoneNumber.getText()).toString());
  92. mvpPresenter.generalValidate();
  93. }
  94.  
  95. @Override
  96. public void beforeTextChanged(CharSequence s, int start, int count, int after) {
  97.  
  98. }
  99.  
  100. @Override
  101. public void onTextChanged(CharSequence s, int start, int before, int count) {
  102.  
  103. }
  104.  
  105. @SuppressLint("SetTextI18n")
  106. @Override
  107. public void afterTextChanged(Editable s) {
  108. etPhoneNumber.setOnKeyListener((v, keyCode, event) -> {
  109. // if (keyCode == KeyEvent.KEYCODE_DEL || keyCode == KeyEvent.KEYCODE_BACK) keyDel = 1;
  110. // Toast.makeText(this, "DEL", Toast.LENGTH_SHORT).show();
  111. // return false;
  112. if (event.getAction() == KeyEvent.ACTION_DOWN
  113. && event.getKeyCode() == KeyEvent.KEYCODE_DEL)
  114. keyDel = 1;
  115. return false;
  116. });
  117.  
  118. if (keyDel == 0) {
  119. int len = Objects.requireNonNull(etPhoneNumber.getText()).length();
  120. if (len == 2) {
  121. etPhoneNumber.setText(etPhoneNumber.getText() + " (");
  122. etPhoneNumber.setSelection(etPhoneNumber.getText().length());
  123. keyDel = 1;
  124. } else if (len == 7) {
  125. etPhoneNumber.setText(etPhoneNumber.getText() + ") - ");
  126. etPhoneNumber.setSelection(etPhoneNumber.getText().length());
  127. keyDel = 1;
  128. } else if (len == 14) {
  129. etPhoneNumber.setText(etPhoneNumber.getText() + " - ");
  130. etPhoneNumber.setSelection(etPhoneNumber.getText().length());
  131. keyDel = 1;
  132. } else if (len == 19) {
  133. etPhoneNumber.setText(etPhoneNumber.getText() + " - ");
  134. etPhoneNumber.setSelection(etPhoneNumber.getText().length());
  135. keyDel = 1;
  136. }
  137.  
  138. } else {
  139. keyDel = 1;
  140. }
  141.  
  142. }
  143. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement