Guest User

Untitled

a guest
Oct 29th, 2017
118
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.30 KB | None | 0 0
  1. public class SignUpActivity extends AppCompatActivity {
  2.  
  3. private EditText inputUsername, inputEmail, inputPassword;
  4. private Button btnSignIn, btnSignUp;
  5. private ProgressBar progressBar;
  6. private FirebaseAuth auth;
  7.  
  8. @Override
  9. protected void onCreate(Bundle savedInstanceState) {
  10. super.onCreate(savedInstanceState);
  11.  
  12. auth = FirebaseAuth.getInstance();
  13. FirebaseUser user = auth.getCurrentUser();
  14.  
  15. if (user != null) {
  16. if (user.isEmailVerified()) {
  17. startActivity(new Intent(SignUpActivity.this, MainActivity.class));
  18. finish();
  19. }
  20. }
  21.  
  22. setContentView(R.layout.activity_sign_up);
  23.  
  24. btnSignIn = findViewById(R.id.sign_in_button);
  25. btnSignUp = findViewById(R.id.sign_up_button);
  26. inputUsername = findViewById(R.id.username);
  27. inputEmail = findViewById(R.id.email);
  28. inputPassword = findViewById(R.id.password);
  29. progressBar = findViewById(R.id.progressBar);
  30.  
  31. btnSignIn.setOnClickListener(new View.OnClickListener() {
  32. @Override
  33. public void onClick(View v) {
  34. startActivity(new Intent(SignUpActivity.this, SignInActivity.class));
  35. }
  36. });
  37.  
  38. btnSignUp.setOnClickListener(new View.OnClickListener() {
  39. @Override
  40. public void onClick(View v) {
  41.  
  42. final String username = inputUsername.getText().toString().trim();
  43. final String email = inputEmail.getText().toString().trim();
  44. final String password = inputPassword.getText().toString().trim();
  45.  
  46. if (TextUtils.isEmpty(username)) {
  47. Toast.makeText(getApplicationContext(), "Enter username!", Toast.LENGTH_SHORT).show();
  48. return;
  49. }
  50.  
  51. if (TextUtils.isEmpty(email)) {
  52. Toast.makeText(getApplicationContext(), "Enter email address!", Toast.LENGTH_SHORT).show();
  53. return;
  54. }
  55.  
  56. if (TextUtils.isEmpty(password)) {
  57. Toast.makeText(getApplicationContext(), "Enter password!", Toast.LENGTH_SHORT).show();
  58. return;
  59. }
  60.  
  61. if (password.length() < 6) {
  62. Toast.makeText(getApplicationContext(), "Password too short, enter minimum 6 characters!", Toast.LENGTH_SHORT).show();
  63. return;
  64. }
  65.  
  66. progressBar.setVisibility(View.VISIBLE);
  67.  
  68. auth.createUserWithEmailAndPassword(email, password)
  69. .addOnCompleteListener(SignUpActivity.this, new OnCompleteListener<AuthResult>() {
  70. @Override
  71. public void onComplete(@NonNull Task<AuthResult> task) {
  72. progressBar.setVisibility(View.GONE);
  73. if (!task.isSuccessful()) {
  74. Toast.makeText(SignUpActivity.this, "Authentication failed.", Toast.LENGTH_SHORT).show();
  75. } else {
  76. new GenerateUserAsyncTask().execute(username, email, password, 0);
  77. }
  78. }
  79. });
  80. }
  81.  
  82. class GenerateUserAsyncTask extends AsyncTask<Object, Void, Void> {
  83.  
  84. @Override
  85. protected Void doInBackground(Object... params) {
  86. String username = (String) params[0];
  87. String email = (String) params[1];
  88. String password = (String) params[2];
  89. int score = (int) params[3];
  90. generateUser(username, email, password, score);
  91. return null;
  92. }
  93.  
  94. @Override
  95. protected void onPostExecute(Void result) {
  96. sendVerificationEmail();
  97. }}
  98. });
  99.  
  100. }
  101.  
  102. public void sendVerificationEmail() {
  103. FirebaseUser user = auth.getCurrentUser();
  104.  
  105. if (user != null) {
  106. user.sendEmailVerification()
  107. .addOnCompleteListener(new OnCompleteListener<Void>() {
  108. @Override
  109. public void onComplete(@NonNull Task<Void> task) {
  110. if (task.isSuccessful()) {
  111. Toast.makeText(SignUpActivity.this, "Signup successful, verification email sent", Toast.LENGTH_SHORT).show();
  112. auth.signOut();
  113. startActivity(new Intent(SignUpActivity.this, SignInActivity.class));
  114. finish();
  115. } else {
  116. Toast.makeText(SignUpActivity.this, "Failed to send email!", Toast.LENGTH_SHORT).show();
  117. }
  118. progressBar.setVisibility(View.GONE);
  119. }
  120. });
  121. }
  122.  
  123. }
  124.  
  125. public void generateUser(String username, String email, String password, int score) {
  126. FirebaseDatabase database = Utils.getDatabase();
  127. DatabaseReference users = database.getReference("users");
  128. User user = new User(username, email, password, score);
  129. users.child(auth.getUid()).setValue(user);
  130. }
  131. }
Add Comment
Please, Sign In to add comment