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)
|
||
|
}
|
||
|
}
|
||
|
}
|