Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.rahulsinghkamboj.android.quizappkotlin
- import android.content.DialogInterface
- import android.os.Bundle
- import android.support.v7.app.AlertDialog
- import android.support.v7.app.AppCompatActivity
- import android.view.LayoutInflater
- import android.view.View
- import android.widget.Button
- import android.widget.Toast
- import com.google.firebase.database.DataSnapshot
- import com.google.firebase.database.DatabaseError
- import com.google.firebase.database.DatabaseReference
- import com.google.firebase.database.FirebaseDatabase
- import com.google.firebase.database.ValueEventListener
- import com.rahulsinghkamboj.android.quizappkotlin.Model.User
- import com.rengwuxian.materialedittext.MaterialEditText
- class SplashActivity : AppCompatActivity() {
- internal var edtNewUser: MaterialEditText
- internal var edtNewPassword: MaterialEditText
- internal var edtNewEmail: MaterialEditText //for sign Up
- internal var edtUser: MaterialEditText
- internal var edtPassword: MaterialEditText //for sign in
- internal var btnSignUp: Button
- internal var btnSignIn: Button
- internal var database: FirebaseDatabase
- internal var users: DatabaseReference
- override fun onCreate(savedInstanceState: Bundle?) {
- super.onCreate(savedInstanceState)
- setContentView(R.layout.activity_splash)
- //Firebase
- database = FirebaseDatabase.getInstance()
- users = database.getReference("Users")
- edtUser = findViewById(R.id.edtUser) as MaterialEditText
- edtPassword = findViewById(R.id.edtPassword) as MaterialEditText
- btnSignIn = findViewById(R.id.btn_sign_in) as Button
- btnSignUp = findViewById(R.id.btn_sign_up) as Button
- btnSignUp.setOnClickListener { showSignUpDialog() }
- btnSignIn.setOnClickListener { signIn(edtUser.text.toString(), edtPassword.text.toString()) }
- }
- private fun signIn(user: String, pwd: String) {
- users.addListenerForSingleValueEvent(object : ValueEventListener {
- override fun onDataChange(dataSnapshot: DataSnapshot) {
- if (dataSnapshot.child(user).exists()) {
- if (!user.isEmpty()) {
- val login = dataSnapshot.child(user).getValue<User>(User::class.java)
- if (login.getPassword() == pwd)
- Toast.makeText(this@SplashActivity, "Login Success", Toast.LENGTH_SHORT).show()
- else
- Toast.makeText(this@SplashActivity, "Wrong password", Toast.LENGTH_SHORT).show()
- } else {
- Toast.makeText(this@SplashActivity, "Please Enter Username", Toast.LENGTH_SHORT).show()
- }
- } else
- Toast.makeText(this@SplashActivity, "User doesn't exists", Toast.LENGTH_SHORT).show()
- }
- override fun onCancelled(databaseError: DatabaseError) {
- }
- })
- }
- private fun showSignUpDialog() {
- val alertDialog = AlertDialog.Builder(this@SplashActivity)
- alertDialog.setTitle("Sign Up")
- val inflater = this.layoutInflater
- val sign_up_layout = inflater.inflate(R.layout.sign_up_layout, null)
- edtNewUser = sign_up_layout.findViewById<View>(R.id.edtNewUserName) as MaterialEditText
- edtNewEmail = sign_up_layout.findViewById<View>(R.id.edtNewEmail) as MaterialEditText
- edtNewPassword = sign_up_layout.findViewById<View>(R.id.edtNewPassword) as MaterialEditText
- alertDialog.setView(sign_up_layout)
- alertDialog.setIcon(R.drawable.ic_account_circle_black_24dp)
- alertDialog.setNegativeButton("No") { dialogInterface, i -> dialogInterface.dismiss() }
- alertDialog.setPositiveButton("Yes") { dialogInterface, i ->
- val user = User(edtNewUser.text.toString(), edtNewPassword.text.toString(), edtNewEmail.text.toString())
- users.addListenerForSingleValueEvent(object : ValueEventListener {
- override fun onDataChange(dataSnapshot: DataSnapshot) {
- if (dataSnapshot.child(user.userName).exists()) {
- Toast.makeText(this@SplashActivity, "User Already Exists in Database", Toast.LENGTH_SHORT).show()
- } else {
- users.child(user.userName).setValue(user)
- Toast.makeText(this@SplashActivity, "Registration Successful", Toast.LENGTH_SHORT).show()
- }
- }
- override fun onCancelled(databaseError: DatabaseError) {
- }
- })
- dialogInterface.dismiss()
- }
- alertDialog.show()
- }
- }
Add Comment
Please, Sign In to add comment