SignUpActivity Working JAVA
SignUpActivity Working JAVA
businessinventorymanagerapp;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.CompoundButton;
import android.widget.Toast;
import androidx.activity.EdgeToEdge;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import com.google.android.gms.tasks.OnFailureListener;
import com.google.android.gms.tasks.OnSuccessListener;
import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.firestore.DocumentReference;
import com.google.firebase.firestore.FirebaseFirestore;
import com.stream.businessinventorymanagerapp.databinding.ActivitySignUpBinding;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import java.util.Objects;
ActivitySignUpBinding bindingSignUp;
FirebaseAuth firebaseAuth;
FirebaseFirestore firebaseFirestore;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
EdgeToEdge.enable(this);
bindingSignUp = ActivitySignUpBinding.inflate(getLayoutInflater());
setContentView(bindingSignUp.getRoot());
firebaseAuth = FirebaseAuth.getInstance();
firebaseFirestore = FirebaseFirestore.getInstance();
if (firebaseAuth.getCurrentUser() != null)
{
Intent mainActivityIntent = new Intent(SignUpActivity.this,
MainActivity.class);
startActivity(mainActivityIntent);
finish();
}
setupBusinessTypeSpinner();
roleCheckBoxListeners();
bindingSignUp.userSubmitButtonSignUp.setOnClickListener(new
View.OnClickListener() {
@Override
public void onClick(View v) {
String checkedRole = "";
if (bindingSignUp.userRoleManagerSignUp.isChecked())
{
checkedRole = "Manager";
}
if (bindingSignUp.userRoleEditorSignUp.isChecked())
{
checkedRole = "Editor";
}
if (bindingSignUp.userRoleSupplierSignUp.isChecked())
{
checkedRole = "Supplier";
}
if (bindingSignUp.userRoleSellerSignUp.isChecked())
{
checkedRole = "Seller";
}
if (bindingSignUp.userRoleAdminSignUp.isChecked())
{
checkedRole = "Admin";
}
if (bindingSignUp.userRoleFinanceSignUp.isChecked())
{
checkedRole = "Finance";
}
if (checkedRole.isEmpty()) {
checkedRole = "Role Not Selected Yet";
return;
}
String userName =
bindingSignUp.userNameSignUp.getText().toString().trim();
String fullName =
bindingSignUp.userFullNameSignUp.getText().toString().trim();
String email =
bindingSignUp.userEmailSignUp.getText().toString().trim();
String phone =
bindingSignUp.userPhoneSignUp.getText().toString().trim();
// String role = finalCheckedRole.toString();
String businessName =
bindingSignUp.userBusinessNameSignUp.getText().toString().trim();
String businessType =
bindingSignUp.userBusinessTypeSignUp.getSelectedItem().toString().trim();
String storeLocation =
bindingSignUp.userStoreLocationSinUp.getText().toString().trim();
String password =
bindingSignUp.userPasswordSignUp.getText().toString().trim();
bindingSignUp.userDocumentUploadIndicator.setVisibility(View.VISIBLE);
firebaseAuth.createUserWithEmailAndPassword(email, password)
.addOnCompleteListener(task -> {
bindingSignUp.userDocumentUploadIndicator.setVisibility(View.GONE);
if (task.isSuccessful()) {
Toast.makeText(SignUpActivity.this, "Welcome, " +
fullName + "!", Toast.LENGTH_SHORT).show();
DocumentReference documentReference =
firebaseFirestore.collection("Users").document(email);
documentReference.set(userInformation).addOnSuccessListener(new
OnSuccessListener<Void>() {
@Override
public void onSuccess(Void unused) {
Log.d("User Profile Update", "OnSuccess :
Profile Successfully Created For " + userName);
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
Toast.makeText(SignUpActivity.this, "Error: " +
e.getMessage(), Toast.LENGTH_SHORT).show();
Log.d("User Profile Update", "OnFailure :
Profile Not Created");
}
});
bindingSignUp.userDocumentUploadIndicator.setVisibility(View.GONE);
}
});
}
});
bindingSignUp.userAlreadyHaveAccount.setOnClickListener(new
View.OnClickListener() {
@Override
public void onClick(View v) {
}
});
}
bindingSignUp.userRoleManagerSignUp.setOnCheckedChangeListener(new
CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean
isChecked) {
bindingSignUp.userRoleEditorSignUp.setChecked(false);
bindingSignUp.userRoleSupplierSignUp.setChecked(false);
bindingSignUp.userRoleSellerSignUp.setChecked(false);
bindingSignUp.userRoleAdminSignUp.setChecked(false);
bindingSignUp.userRoleFinanceSignUp.setChecked(false);
}
});
bindingSignUp.userRoleEditorSignUp.setOnCheckedChangeListener(new
CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean
isChecked) {
bindingSignUp.userRoleManagerSignUp.setChecked(false);
bindingSignUp.userRoleSupplierSignUp.setChecked(false);
bindingSignUp.userRoleSellerSignUp.setChecked(false);
bindingSignUp.userRoleAdminSignUp.setChecked(false);
bindingSignUp.userRoleFinanceSignUp.setChecked(false);
}
});
bindingSignUp.userRoleSupplierSignUp.setOnCheckedChangeListener(new
CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean
isChecked) {
bindingSignUp.userRoleManagerSignUp.setChecked(false);
bindingSignUp.userRoleEditorSignUp.setChecked(false);
bindingSignUp.userRoleSellerSignUp.setChecked(false);
bindingSignUp.userRoleAdminSignUp.setChecked(false);
bindingSignUp.userRoleFinanceSignUp.setChecked(false);
}
});
bindingSignUp.userRoleSellerSignUp.setOnCheckedChangeListener(new
CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean
isChecked) {
bindingSignUp.userRoleManagerSignUp.setChecked(false);
bindingSignUp.userRoleEditorSignUp.setChecked(false);
bindingSignUp.userRoleSupplierSignUp.setChecked(false);
bindingSignUp.userRoleAdminSignUp.setChecked(false);
bindingSignUp.userRoleFinanceSignUp.setChecked(false);
}
});
bindingSignUp.userRoleAdminSignUp.setOnCheckedChangeListener(new
CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean
isChecked) {
bindingSignUp.userRoleManagerSignUp.setChecked(false);
bindingSignUp.userRoleEditorSignUp.setChecked(false);
bindingSignUp.userRoleSellerSignUp.setChecked(false);
bindingSignUp.userRoleSupplierSignUp.setChecked(false);
bindingSignUp.userRoleFinanceSignUp.setChecked(false);
}
});
bindingSignUp.userRoleFinanceSignUp.setOnCheckedChangeListener(new
CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean
isChecked) {
bindingSignUp.userRoleManagerSignUp.setChecked(false);
bindingSignUp.userRoleEditorSignUp.setChecked(false);
bindingSignUp.userRoleSellerSignUp.setChecked(false);
bindingSignUp.userRoleAdminSignUp.setChecked(false);
bindingSignUp.userRoleAdminSignUp.setChecked(false);
}
});
}
if (!android.util.Patterns.EMAIL_ADDRESS.matcher(email).matches()) {
bindingSignUp.userEmailSignUp.setError("Enter a valid email");
return false;
}
if (!email.toLowerCase().endsWith("@gmail.com")) {
bindingSignUp.userEmailSignUp.setError("Only Gmail addresses are
allowed");
return false;
}
if (password.isEmpty()) {
bindingSignUp.userPasswordSignUp.setError("Password is required");
return false;
}
if (password.length() < 8) {
bindingSignUp.userPasswordSignUp.setError("Password should be at least
8 characters");
return false;
}
return true;
}
businessTypeAdapter.setDropDownViewResource(android.R.layout.simple_gallery_item);
bindingSignUp.userBusinessTypeSignUp.setAdapter(businessTypeAdapter);
}
}