Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class SignUpActivity extends AppCompatActivity {
- private EditText inputUsername, inputEmail, inputPassword;
- private Button btnSignIn, btnSignUp;
- private ProgressBar progressBar;
- private FirebaseAuth auth;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- auth = FirebaseAuth.getInstance();
- FirebaseUser user = auth.getCurrentUser();
- if (user != null) {
- if (user.isEmailVerified()) {
- startActivity(new Intent(SignUpActivity.this, MainActivity.class));
- finish();
- }
- }
- setContentView(R.layout.activity_sign_up);
- btnSignIn = findViewById(R.id.sign_in_button);
- btnSignUp = findViewById(R.id.sign_up_button);
- inputUsername = findViewById(R.id.username);
- inputEmail = findViewById(R.id.email);
- inputPassword = findViewById(R.id.password);
- progressBar = findViewById(R.id.progressBar);
- btnSignIn.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- startActivity(new Intent(SignUpActivity.this, SignInActivity.class));
- }
- });
- btnSignUp.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- final String username = inputUsername.getText().toString().trim();
- final String email = inputEmail.getText().toString().trim();
- final String password = inputPassword.getText().toString().trim();
- if (TextUtils.isEmpty(username)) {
- Toast.makeText(getApplicationContext(), "Enter username!", Toast.LENGTH_SHORT).show();
- return;
- }
- if (TextUtils.isEmpty(email)) {
- Toast.makeText(getApplicationContext(), "Enter email address!", Toast.LENGTH_SHORT).show();
- return;
- }
- if (TextUtils.isEmpty(password)) {
- Toast.makeText(getApplicationContext(), "Enter password!", Toast.LENGTH_SHORT).show();
- return;
- }
- if (password.length() < 6) {
- Toast.makeText(getApplicationContext(), "Password too short, enter minimum 6 characters!", Toast.LENGTH_SHORT).show();
- return;
- }
- progressBar.setVisibility(View.VISIBLE);
- auth.createUserWithEmailAndPassword(email, password)
- .addOnCompleteListener(SignUpActivity.this, new OnCompleteListener<AuthResult>() {
- @Override
- public void onComplete(@NonNull Task<AuthResult> task) {
- progressBar.setVisibility(View.GONE);
- if (!task.isSuccessful()) {
- Toast.makeText(SignUpActivity.this, "Authentication failed.", Toast.LENGTH_SHORT).show();
- } else {
- new GenerateUserAsyncTask().execute(username, email, password, 0);
- }
- }
- });
- }
- class GenerateUserAsyncTask extends AsyncTask<Object, Void, Void> {
- @Override
- protected Void doInBackground(Object... params) {
- String username = (String) params[0];
- String email = (String) params[1];
- String password = (String) params[2];
- int score = (int) params[3];
- generateUser(username, email, password, score);
- return null;
- }
- @Override
- protected void onPostExecute(Void result) {
- sendVerificationEmail();
- }}
- });
- }
- public void sendVerificationEmail() {
- FirebaseUser user = auth.getCurrentUser();
- if (user != null) {
- user.sendEmailVerification()
- .addOnCompleteListener(new OnCompleteListener<Void>() {
- @Override
- public void onComplete(@NonNull Task<Void> task) {
- if (task.isSuccessful()) {
- Toast.makeText(SignUpActivity.this, "Signup successful, verification email sent", Toast.LENGTH_SHORT).show();
- auth.signOut();
- startActivity(new Intent(SignUpActivity.this, SignInActivity.class));
- finish();
- } else {
- Toast.makeText(SignUpActivity.this, "Failed to send email!", Toast.LENGTH_SHORT).show();
- }
- progressBar.setVisibility(View.GONE);
- }
- });
- }
- }
- public void generateUser(String username, String email, String password, int score) {
- FirebaseDatabase database = Utils.getDatabase();
- DatabaseReference users = database.getReference("users");
- User user = new User(username, email, password, score);
- users.child(auth.getUid()).setValue(user);
- }
- }
Add Comment
Please, Sign In to add comment