0% found this document useful (0 votes)
4 views6 pages

SignUpActivity Working JAVA

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
4 views6 pages

SignUpActivity Working JAVA

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
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

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy