1
+ package dev.redfox.planetpulse.auth
2
+
3
+ import android.content.Context
4
+ import android.content.Intent
5
+ import android.net.Uri
6
+ import android.os.Bundle
7
+ import android.widget.Toast
8
+ import androidx.appcompat.app.AppCompatActivity
9
+ import com.google.firebase.auth.*
10
+ import com.google.firebase.database.DatabaseReference
11
+ import com.google.firebase.database.FirebaseDatabase
12
+ import com.google.firebase.storage.FirebaseStorage
13
+ import dev.redfox.planetpulse.auth.LoginActivity
14
+ import dev.redfox.planetpulse.databinding.ActivitySignUpBinding
15
+
16
+
17
+ class SignUpActivity : AppCompatActivity () {
18
+ private lateinit var binding: ActivitySignUpBinding
19
+ private lateinit var firebaseAuth: FirebaseAuth
20
+ private lateinit var database: DatabaseReference
21
+ private lateinit var auth: FirebaseAuth
22
+ private lateinit var fdatabase: FirebaseDatabase
23
+ private lateinit var storage: FirebaseStorage
24
+ private lateinit var selectedImg: Uri
25
+ private lateinit var email: String
26
+
27
+ override fun onCreate (savedInstanceState : Bundle ? ) {
28
+ super .onCreate(savedInstanceState)
29
+
30
+ binding = ActivitySignUpBinding .inflate(layoutInflater)
31
+ setContentView(binding.root)
32
+
33
+ firebaseAuth = FirebaseAuth .getInstance()
34
+
35
+ fdatabase = FirebaseDatabase .getInstance()
36
+ storage = FirebaseStorage .getInstance()
37
+ auth = FirebaseAuth .getInstance()
38
+
39
+ binding.tvSignIn.setOnClickListener {
40
+ val intent = Intent (this , LoginActivity ::class .java)
41
+ intent.addFlags(Intent .FLAG_ACTIVITY_CLEAR_TOP )
42
+ startActivity(intent)
43
+
44
+ }
45
+
46
+ binding.btnSignUp.setOnClickListener {
47
+ email = binding.etEmail.text.toString()
48
+ val name = binding.etName.text.toString()
49
+ var pass = binding.etPassword.text.toString()
50
+ var confirmPass = binding.confirmPassEt.text.toString()
51
+
52
+ val sharedPref = getSharedPreferences(" LOGIN" , Context .MODE_PRIVATE )
53
+ val editor2 = sharedPref.edit()
54
+ editor2.putBoolean(" hasLoggedIn" , true )
55
+ editor2.apply ()
56
+
57
+ val sharedPreference = getSharedPreferences(" EMAIL" , Context .MODE_PRIVATE )
58
+ val editor = sharedPreference.edit()
59
+ editor.putString(" email" , email)
60
+ editor.apply ()
61
+
62
+
63
+ if (email.isNotEmpty() && name.isNotEmpty() && confirmPass.isNotEmpty() && pass.isNotEmpty()
64
+ ) {
65
+
66
+ firebaseAuth.createUserWithEmailAndPassword(email, pass)
67
+ .addOnSuccessListener {
68
+
69
+ database = FirebaseDatabase .getInstance().getReference(" employees" )
70
+
71
+ database.child(EncodeString (email).toString()).child(" Name" ).setValue(name)
72
+ database.child(EncodeString (email).toString()).child(" Email" )
73
+ .setValue(EncodeString (email).toString())
74
+
75
+ // binding.etEmail.text?.clear()
76
+ // binding.etName.text?.clear()
77
+
78
+ Toast .makeText(this , " Success" , Toast .LENGTH_SHORT ).show()
79
+
80
+
81
+ }.addOnFailureListener {
82
+ if (it is FirebaseAuthInvalidUserException ) {
83
+ Toast .makeText(
84
+ this ,
85
+ " Email cannot be used to create account" ,
86
+ Toast .LENGTH_SHORT
87
+ ).show()
88
+ } else if (it is FirebaseAuthUserCollisionException ) {
89
+ Toast .makeText(this , " Email Already Exists" , Toast .LENGTH_SHORT ).show()
90
+ } else if (pass != confirmPass) {
91
+ Toast .makeText(this , " Check Password" , Toast .LENGTH_SHORT ).show()
92
+ } else if (it is FirebaseAuthWeakPasswordException ) {
93
+ Toast .makeText(this , " Weak Password" , Toast .LENGTH_SHORT ).show()
94
+ } else if (it is FirebaseAuthEmailException ) {
95
+ Toast .makeText(this , " Incorrect Email" , Toast .LENGTH_SHORT ).show()
96
+ } else {
97
+ Toast .makeText(this , " Unknown error" , Toast .LENGTH_SHORT ).show()
98
+ }
99
+ it.printStackTrace()
100
+ }
101
+
102
+ } else {
103
+ Toast .makeText(this , " Empty Fields Are not Allowed !!" , Toast .LENGTH_SHORT ).show()
104
+
105
+ }
106
+ }
107
+ }
108
+
109
+
110
+
111
+ fun EncodeString (string : String ): String? {
112
+ return string.replace(" ." , " ," )
113
+ }
114
+
115
+ fun DecodeString (string : String ): String? {
116
+ return string.replace(" ," , " ." )
117
+ }
118
+ }
0 commit comments