LoginDialog.kt 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. package ru.yotc.demoex
  2. import android.app.Dialog
  3. import android.content.DialogInterface
  4. import android.os.Bundle
  5. import android.view.View
  6. import android.widget.TextView
  7. import androidx.appcompat.app.AlertDialog
  8. import androidx.fragment.app.DialogFragment
  9. class LoginDialog(private val callback: (login: String, password: String)->Unit) : DialogFragment() {
  10. override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
  11. return activity?.let {
  12. val builder = AlertDialog.Builder(it)
  13. val loginLayout = layoutInflater.inflate(R.layout.activity_login, null)
  14. val loginText = loginLayout.findViewById<com.google.android.material.textfield.TextInputEditText>(R.id.login)
  15. val loginError = loginLayout.findViewById<com.google.android.material.textfield.TextInputLayout>(R.id.login_error)
  16. val passwordText = loginLayout.findViewById<com.google.android.material.textfield.TextInputEditText>(R.id.password)
  17. val passwordError = loginLayout.findViewById<com.google.android.material.textfield.TextInputLayout>(R.id.password_error)
  18. val loginButton = loginLayout.findViewById<TextView>(R.id.login_button)
  19. val myDialog = builder.setView(loginLayout)
  20. .setTitle("Авторизация!")
  21. .setIcon(R.mipmap.ico)
  22. .create()
  23. loginButton.setOnClickListener {
  24. var hasErrors = false
  25. if(loginText.text.isNullOrEmpty()){
  26. hasErrors = true
  27. loginError.error = "Поле должно быть заполнено"
  28. }
  29. else
  30. loginError.error = ""
  31. if(passwordText.text.isNullOrEmpty()){
  32. hasErrors = true
  33. passwordError.error = "Поле должно быть заполнено"
  34. } else
  35. passwordError.error = ""
  36. if(!hasErrors) {
  37. myDialog.dismiss()
  38. callback.invoke(
  39. loginText.text.toString(),
  40. passwordText.text.toString()
  41. )
  42. }
  43. }
  44. myDialog
  45. } ?: throw IllegalStateException("Activity cannot be null")
  46. }
  47. }