55 lines
1.6 KiB
Kotlin
55 lines
1.6 KiB
Kotlin
package org.mosad.teapod.ui.components
|
|
|
|
import android.os.Bundle
|
|
import android.view.LayoutInflater
|
|
import android.view.View
|
|
import android.view.ViewGroup
|
|
import com.google.android.material.bottomsheet.BottomSheetDialogFragment
|
|
import org.mosad.teapod.databinding.ModalBottomSheetLoginBinding
|
|
|
|
/**
|
|
* A bottom sheet with login credential input fields.
|
|
*
|
|
* To initialize login or password values, use apply.
|
|
*/
|
|
class LoginModalBottomSheet : BottomSheetDialogFragment() {
|
|
|
|
private lateinit var binding: ModalBottomSheetLoginBinding
|
|
|
|
var login = ""
|
|
var password = ""
|
|
|
|
lateinit var positiveAction: LoginModalBottomSheet.() -> Unit
|
|
lateinit var negativeAction: LoginModalBottomSheet.() -> Unit
|
|
|
|
companion object {
|
|
const val TAG = "LoginModalBottomSheet"
|
|
}
|
|
|
|
override fun onCreateView(
|
|
inflater: LayoutInflater,
|
|
container: ViewGroup?,
|
|
savedInstanceState: Bundle?
|
|
): View {
|
|
binding = ModalBottomSheetLoginBinding.inflate(inflater, container, false)
|
|
return binding.root
|
|
}
|
|
|
|
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
|
super.onViewCreated(view, savedInstanceState)
|
|
|
|
binding.editTextLogin.setText(login)
|
|
binding.editTextPassword.setText(password)
|
|
|
|
binding.positiveButton.setOnClickListener {
|
|
login = binding.editTextLogin.text.toString()
|
|
password = binding.editTextPassword.text.toString()
|
|
|
|
positiveAction.invoke(this)
|
|
}
|
|
binding.negativeButton.setOnClickListener {
|
|
negativeAction.invoke(this)
|
|
}
|
|
}
|
|
}
|