Guest User

Untitled

a guest
Oct 27th, 2017
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.61 KB | None | 0 0
  1. package com.rahulsinghkamboj.android.quizappkotlin
  2.  
  3. import android.content.DialogInterface
  4. import android.os.Bundle
  5. import android.support.v7.app.AlertDialog
  6. import android.support.v7.app.AppCompatActivity
  7. import android.view.LayoutInflater
  8. import android.view.View
  9. import android.widget.Button
  10. import android.widget.Toast
  11.  
  12. import com.google.firebase.database.DataSnapshot
  13. import com.google.firebase.database.DatabaseError
  14. import com.google.firebase.database.DatabaseReference
  15. import com.google.firebase.database.FirebaseDatabase
  16. import com.google.firebase.database.ValueEventListener
  17. import com.rahulsinghkamboj.android.quizappkotlin.Model.User
  18. import com.rengwuxian.materialedittext.MaterialEditText
  19.  
  20. class SplashActivity : AppCompatActivity() {
  21.  
  22. internal var edtNewUser: MaterialEditText
  23. internal var edtNewPassword: MaterialEditText
  24. internal var edtNewEmail: MaterialEditText //for sign Up
  25. internal var edtUser: MaterialEditText
  26. internal var edtPassword: MaterialEditText //for sign in
  27.  
  28. internal var btnSignUp: Button
  29. internal var btnSignIn: Button
  30.  
  31. internal var database: FirebaseDatabase
  32. internal var users: DatabaseReference
  33.  
  34. override fun onCreate(savedInstanceState: Bundle?) {
  35. super.onCreate(savedInstanceState)
  36. setContentView(R.layout.activity_splash)
  37.  
  38. //Firebase
  39.  
  40. database = FirebaseDatabase.getInstance()
  41. users = database.getReference("Users")
  42.  
  43. edtUser = findViewById(R.id.edtUser) as MaterialEditText
  44. edtPassword = findViewById(R.id.edtPassword) as MaterialEditText
  45.  
  46. btnSignIn = findViewById(R.id.btn_sign_in) as Button
  47.  
  48. btnSignUp = findViewById(R.id.btn_sign_up) as Button
  49.  
  50. btnSignUp.setOnClickListener { showSignUpDialog() }
  51.  
  52. btnSignIn.setOnClickListener { signIn(edtUser.text.toString(), edtPassword.text.toString()) }
  53.  
  54.  
  55. }
  56.  
  57. private fun signIn(user: String, pwd: String) {
  58. users.addListenerForSingleValueEvent(object : ValueEventListener {
  59. override fun onDataChange(dataSnapshot: DataSnapshot) {
  60. if (dataSnapshot.child(user).exists()) {
  61. if (!user.isEmpty()) {
  62. val login = dataSnapshot.child(user).getValue<User>(User::class.java)
  63. if (login.getPassword() == pwd)
  64. Toast.makeText(this@SplashActivity, "Login Success", Toast.LENGTH_SHORT).show()
  65. else
  66. Toast.makeText(this@SplashActivity, "Wrong password", Toast.LENGTH_SHORT).show()
  67. } else {
  68. Toast.makeText(this@SplashActivity, "Please Enter Username", Toast.LENGTH_SHORT).show()
  69.  
  70. }
  71. } else
  72. Toast.makeText(this@SplashActivity, "User doesn't exists", Toast.LENGTH_SHORT).show()
  73. }
  74.  
  75. override fun onCancelled(databaseError: DatabaseError) {
  76.  
  77. }
  78. })
  79.  
  80.  
  81. }
  82.  
  83.  
  84. private fun showSignUpDialog() {
  85. val alertDialog = AlertDialog.Builder(this@SplashActivity)
  86. alertDialog.setTitle("Sign Up")
  87.  
  88.  
  89. val inflater = this.layoutInflater
  90. val sign_up_layout = inflater.inflate(R.layout.sign_up_layout, null)
  91.  
  92. edtNewUser = sign_up_layout.findViewById<View>(R.id.edtNewUserName) as MaterialEditText
  93. edtNewEmail = sign_up_layout.findViewById<View>(R.id.edtNewEmail) as MaterialEditText
  94. edtNewPassword = sign_up_layout.findViewById<View>(R.id.edtNewPassword) as MaterialEditText
  95.  
  96. alertDialog.setView(sign_up_layout)
  97. alertDialog.setIcon(R.drawable.ic_account_circle_black_24dp)
  98.  
  99.  
  100. alertDialog.setNegativeButton("No") { dialogInterface, i -> dialogInterface.dismiss() }
  101.  
  102. alertDialog.setPositiveButton("Yes") { dialogInterface, i ->
  103. val user = User(edtNewUser.text.toString(), edtNewPassword.text.toString(), edtNewEmail.text.toString())
  104.  
  105.  
  106. users.addListenerForSingleValueEvent(object : ValueEventListener {
  107. override fun onDataChange(dataSnapshot: DataSnapshot) {
  108. if (dataSnapshot.child(user.userName).exists()) {
  109. Toast.makeText(this@SplashActivity, "User Already Exists in Database", Toast.LENGTH_SHORT).show()
  110. } else {
  111. users.child(user.userName).setValue(user)
  112. Toast.makeText(this@SplashActivity, "Registration Successful", Toast.LENGTH_SHORT).show()
  113. }
  114. }
  115.  
  116. override fun onCancelled(databaseError: DatabaseError) {
  117.  
  118. }
  119. })
  120.  
  121. dialogInterface.dismiss()
  122. }
  123.  
  124. alertDialog.show()
  125. }
  126.  
  127.  
  128. }
Add Comment
Please, Sign In to add comment