PageRenderTime 50ms CodeModel.GetById 24ms RepoModel.GetById 0ms app.codeStats 0ms

/Messenger/app/src/main/java/com/mobile/c/frag/RegisterActivity.java

https://bitbucket.org/BohyunBarry/boundservice
Java | 153 lines | 130 code | 20 blank | 3 comment | 4 complexity | b96521f4e0ab60ab01006debc557d68b MD5 | raw file
  1. package com.mobile.c.frag;
  2. import android.animation.Animator;
  3. import android.animation.AnimatorListenerAdapter;
  4. import android.content.Intent;
  5. import android.os.Build;
  6. import android.os.Bundle;
  7. import android.support.design.widget.FloatingActionButton;
  8. import android.support.v7.app.AppCompatActivity;
  9. import android.support.v7.widget.CardView;
  10. import android.transition.Transition;
  11. import android.transition.TransitionInflater;
  12. import android.view.View;
  13. import android.view.ViewAnimationUtils;
  14. import android.view.animation.AccelerateInterpolator;
  15. import android.widget.EditText;
  16. import android.widget.Toast;
  17. import com.mobile.c.R;
  18. import com.mobile.c.data.StaticConfig;
  19. import java.util.regex.Matcher;
  20. import java.util.regex.Pattern;
  21. /**
  22. * Created by BohyunBartowski on 3/9/2018 0009.
  23. */
  24. public class RegisterActivity extends AppCompatActivity {
  25. FloatingActionButton fab;
  26. CardView cvAdd;
  27. private final Pattern VALID_EMAIL_ADDRESS_REGEX =
  28. Pattern.compile("^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,6}$", Pattern.CASE_INSENSITIVE);
  29. private EditText editTextUsername, editTextPassword, editTextRepeatPassword;
  30. public static String STR_EXTRA_ACTION_REGISTER = "register";
  31. @Override
  32. protected void onCreate(Bundle savedInstanceState) {
  33. super.onCreate(savedInstanceState);
  34. setContentView(R.layout.activity_register);
  35. fab = (FloatingActionButton) findViewById(R.id.fab);
  36. cvAdd = (CardView) findViewById(R.id.cv_add);
  37. editTextUsername = (EditText) findViewById(R.id.et_username);
  38. editTextPassword = (EditText) findViewById(R.id.et_password);
  39. editTextRepeatPassword = (EditText) findViewById(R.id.et_repeatpassword);
  40. if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
  41. ShowEnterAnimation();
  42. }
  43. fab.setOnClickListener(new View.OnClickListener() {
  44. @Override
  45. public void onClick(View v) {
  46. animateRevealClose();
  47. }
  48. });
  49. }
  50. private void ShowEnterAnimation() {
  51. Transition transition = TransitionInflater.from(this).inflateTransition(R.transition.fabtransition);
  52. getWindow().setSharedElementEnterTransition(transition);
  53. transition.addListener(new Transition.TransitionListener() {
  54. @Override
  55. public void onTransitionStart(Transition transition) {
  56. cvAdd.setVisibility(View.GONE);
  57. }
  58. @Override
  59. public void onTransitionEnd(Transition transition) {
  60. transition.removeListener(this);
  61. animateRevealShow();
  62. }
  63. @Override
  64. public void onTransitionCancel(Transition transition) {
  65. }
  66. @Override
  67. public void onTransitionPause(Transition transition) {
  68. }
  69. @Override
  70. public void onTransitionResume(Transition transition) {
  71. }
  72. });
  73. }
  74. public void animateRevealShow() {
  75. Animator mAnimator = ViewAnimationUtils.createCircularReveal(cvAdd, cvAdd.getWidth()/2,0, fab.getWidth() / 2, cvAdd.getHeight());
  76. mAnimator.setDuration(500);
  77. mAnimator.setInterpolator(new AccelerateInterpolator());
  78. mAnimator.addListener(new AnimatorListenerAdapter() {
  79. @Override
  80. public void onAnimationEnd(Animator animation) {
  81. super.onAnimationEnd(animation);
  82. }
  83. @Override
  84. public void onAnimationStart(Animator animation) {
  85. cvAdd.setVisibility(View.VISIBLE);
  86. super.onAnimationStart(animation);
  87. }
  88. });
  89. mAnimator.start();
  90. }
  91. public void animateRevealClose() {
  92. Animator mAnimator = ViewAnimationUtils.createCircularReveal(cvAdd,cvAdd.getWidth()/2,0, cvAdd.getHeight(), fab.getWidth() / 2);
  93. mAnimator.setDuration(500);
  94. mAnimator.setInterpolator(new AccelerateInterpolator());
  95. mAnimator.addListener(new AnimatorListenerAdapter() {
  96. @Override
  97. public void onAnimationEnd(Animator animation) {
  98. cvAdd.setVisibility(View.INVISIBLE);
  99. super.onAnimationEnd(animation);
  100. fab.setImageResource( R.drawable.ic_signup);
  101. RegisterActivity.super.onBackPressed();
  102. }
  103. @Override
  104. public void onAnimationStart(Animator animation) {
  105. super.onAnimationStart(animation);
  106. }
  107. });
  108. mAnimator.start();
  109. }
  110. @Override
  111. public void onBackPressed() {
  112. animateRevealClose();
  113. }
  114. public void clickRegister(View view) {
  115. String username = editTextUsername.getText().toString();
  116. String password = editTextPassword.getText().toString();
  117. String repeatPassword = editTextRepeatPassword.getText().toString();
  118. if(validate(username, password, repeatPassword)){
  119. Intent data = new Intent();
  120. data.putExtra(StaticConfig.STR_EXTRA_USERNAME, username);
  121. data.putExtra(StaticConfig.STR_EXTRA_PASSWORD, password);
  122. data.putExtra( StaticConfig.STR_EXTRA_ACTION, STR_EXTRA_ACTION_REGISTER);
  123. setResult(RESULT_OK, data);
  124. finish();
  125. }else {
  126. Toast.makeText(this, "Invalid email or not match password", Toast.LENGTH_SHORT).show();
  127. }
  128. }
  129. private boolean validate(String emailStr, String password, String repeatPassword) {
  130. Matcher matcher = VALID_EMAIL_ADDRESS_REGEX .matcher(emailStr);
  131. return password.length() > 0 && repeatPassword.equals(password) && matcher.find();
  132. }
  133. }