0% found this document useful (0 votes)
3 views

SignUpActivity Working JAVA

Copyright
© © All Rights Reserved
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
3 views

SignUpActivity Working JAVA

Copyright
© © All Rights Reserved
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 6

package com.stream.

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;

public class SignUpActivity extends AppCompatActivity {

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 finalCheckedRole = checkedRole;

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();

if (!validateInputs(email, password)) return;

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);

Map<String, Object> userInformation = new HashMap<>();


userInformation.put("UserName", userName);
userInformation.put("FullName", fullName);
userInformation.put("Email", email);
userInformation.put("Phone", phone);
userInformation.put("Role", finalCheckedRole);
userInformation.put("BusinessName", businessName);
userInformation.put("BusinessType", businessType);
userInformation.put("StoreLocation", storeLocation);
userInformation.put("Password", password);

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");
}
});

Intent mainActivityIntent = new


Intent(SignUpActivity.this, MainActivity.class);
startActivity(mainActivityIntent);
finish();
} else {
String errorMessage = task.getException() != null ?
task.getException().getMessage() : "Unknown error occurred";
Toast.makeText(SignUpActivity.this, "Error: " +
errorMessage, Toast.LENGTH_SHORT).show();

bindingSignUp.userDocumentUploadIndicator.setVisibility(View.GONE);
}
});

}
});
bindingSignUp.userAlreadyHaveAccount.setOnClickListener(new
View.OnClickListener() {
@Override
public void onClick(View v) {

Intent signInActivityIntent = new Intent(SignUpActivity.this,


SignInActivity.class);
startActivity(signInActivityIntent);

}
});
}

private void roleCheckBoxListeners() {

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);
}
});
}

private boolean validateInputs(String email, String password) {


if (email.isEmpty()) {
bindingSignUp.userEmailSignUp.setError("Email is required");
return 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;
}

public void setupBusinessTypeSpinner() {


ArrayList<String> businessTypeList = new ArrayList<>();
businessTypeList.add("Retail Business");
businessTypeList.add("E-commerce Store");
businessTypeList.add("Wholesale and Distribution");
businessTypeList.add("Manufacturing Business");
businessTypeList.add("Service-Based Business");
businessTypeList.add("Healthcare and Pharmaceutical");
businessTypeList.add("Hospitality Business");
businessTypeList.add("Construction and Maintenance");
businessTypeList.add("Agricultural Business");
businessTypeList.add("Technology and Electronics");
businessTypeList.add("Education and Institution");
businessTypeList.add("Specialty Store");
businessTypeList.add("Other ...");

ArrayAdapter<String> businessTypeAdapter = new ArrayAdapter<>(this,


android.R.layout.simple_spinner_dropdown_item, businessTypeList);

businessTypeAdapter.setDropDownViewResource(android.R.layout.simple_gallery_item);
bindingSignUp.userBusinessTypeSignUp.setAdapter(businessTypeAdapter);
}
}

You might also like