Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.example.rahul.mychatapp;
- import android.app.ProgressDialog;
- import android.content.Intent;
- import android.support.annotation.NonNull;
- import android.support.design.widget.TextInputLayout;
- import android.support.v7.app.AppCompatActivity;
- import android.os.Bundle;
- import android.support.v7.widget.Toolbar;
- import android.text.TextUtils;
- import android.view.View;
- import android.widget.Button;
- import android.widget.ProgressBar;
- import android.widget.Toast;
- import com.google.android.gms.tasks.OnCompleteListener;
- import com.google.android.gms.tasks.Task;
- import com.google.firebase.auth.AuthResult;
- import com.google.firebase.auth.FirebaseAuth;
- import com.google.firebase.auth.FirebaseUser;
- import com.google.firebase.database.DatabaseReference;
- import com.google.firebase.database.FirebaseDatabase;
- import org.w3c.dom.Text;
- import java.util.HashMap;
- public class RegisterActivity extends AppCompatActivity {
- //for getting all the fields from xml
- private TextInputLayout mDisplayName;
- private TextInputLayout mEmail;
- private TextInputLayout mPassword;
- Button createAccountButton;
- private Toolbar toolbar;
- private ProgressDialog dialog;
- //for firebase authentication
- private FirebaseAuth mAuth;
- //for firebase database reference
- DatabaseReference database;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_register);
- //dialog message
- dialog = new ProgressDialog(RegisterActivity.this);
- //firebase authentication
- mAuth = FirebaseAuth.getInstance();
- //TOOLBAR support
- toolbar = (Toolbar) findViewById(R.id.register_toolbar);
- setSupportActionBar(toolbar);
- getSupportActionBar().setDisplayHomeAsUpEnabled(true);
- getSupportActionBar().setTitle("CREATE ACCOUNT");
- //getting elements from xml
- mDisplayName = (TextInputLayout) findViewById(R.id.displayNameEditText);
- mEmail = (TextInputLayout) findViewById(R.id.emailEditText);
- mPassword = (TextInputLayout) findViewById(R.id.passwordEditText);
- createAccountButton = (Button) findViewById(R.id.createAccountButton);
- createAccountButton.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- String displayName = mDisplayName.getEditText().getText().toString();
- String email = mEmail.getEditText().getText().toString();
- String password = mPassword.getEditText().getText().toString();
- //checking if the fields are non empty
- if (!TextUtils.isEmpty(displayName) || !TextUtils.isEmpty(email) || !TextUtils.isEmpty(password)){
- dialog.setTitle("Registering User");
- dialog.setMessage("Please Wait");
- dialog.setCanceledOnTouchOutside(false);
- dialog.show();
- registerUser(displayName, email, password);
- }
- }
- });
- }
- private void registerUser(final String displayName, String email, String password) {
- mAuth.createUserWithEmailAndPassword(email, password).addOnCompleteListener(new OnCompleteListener<AuthResult>() {
- @Override
- public void onComplete(@NonNull Task<AuthResult> task) {
- if (task.isSuccessful()) {
- /*Storing data in database*/
- //getting user
- FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
- String uid = user.getUid();
- //database reference setup //child method creates a child of a database field
- database = FirebaseDatabase.getInstance().getReference().child("Users").child(uid);
- //creating a hashmap data structure to store it in database
- HashMap<String, String> userMap = new HashMap<>();
- userMap.put("name", displayName);
- userMap.put("status", "hey there , this is the status");
- userMap.put("image", "default");
- userMap.put("thumbnail", "default");
- //putting data into database if inserted successfully then start the new intend
- database.setValue(userMap).addOnCompleteListener(new OnCompleteListener<Void>() {
- @Override
- public void onComplete(@NonNull Task<Void> task) {
- if (task.isSuccessful()) {
- //finally start a new intent
- dialog.dismiss();
- Intent intent = new Intent(RegisterActivity.this, MainActivity.class);
- intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
- startActivity(intent);
- }
- }
- });
- }else{
- dialog.hide();
- Toast.makeText(RegisterActivity.this,task.getException().getMessage(), Toast.LENGTH_LONG).show();
- }
- }
- });
- }
- }
Add Comment
Please, Sign In to add comment