diff options
author | Isidro Henoch <imhenoch@protonmail.com> | 2021-12-06 01:04:55 -0600 |
---|---|---|
committer | Isidro Henoch <imhenoch@protonmail.com> | 2021-12-06 01:04:55 -0600 |
commit | 93c204bcd190b242f1dea49e52f28c795e4d0b92 (patch) | |
tree | 7fc0b2908afa4a63a1f144bc2d2718d91500333d /androidApp/src/main/java/mx/trackermap/TrackerMap/android/session/LoginFragment.kt | |
parent | e51f039b61b0a653b02f5d4d577bfe8f83286a16 (diff) | |
download | etbsa-trackermap-mobile-93c204bcd190b242f1dea49e52f28c795e4d0b92.tar.gz etbsa-trackermap-mobile-93c204bcd190b242f1dea49e52f28c795e4d0b92.tar.bz2 etbsa-trackermap-mobile-93c204bcd190b242f1dea49e52f28c795e4d0b92.zip |
WIP: Implements the Login functionality
- Adds multiple android dependencies, for DI and some utilities
- Updates colors and styles
- Adds an Application
- Adds the Login Fragment and ViewModel
Diffstat (limited to 'androidApp/src/main/java/mx/trackermap/TrackerMap/android/session/LoginFragment.kt')
-rw-r--r-- | androidApp/src/main/java/mx/trackermap/TrackerMap/android/session/LoginFragment.kt | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/androidApp/src/main/java/mx/trackermap/TrackerMap/android/session/LoginFragment.kt b/androidApp/src/main/java/mx/trackermap/TrackerMap/android/session/LoginFragment.kt new file mode 100644 index 0000000..5039a7c --- /dev/null +++ b/androidApp/src/main/java/mx/trackermap/TrackerMap/android/session/LoginFragment.kt @@ -0,0 +1,76 @@ +package mx.trackermap.TrackerMap.android.session + +import android.os.Bundle +import android.util.Log +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.Toast +import androidx.core.widget.doAfterTextChanged +import androidx.fragment.app.Fragment +import com.zhuinden.liveevent.observe +import mx.trackermap.TrackerMap.android.databinding.LoginBinding +import org.koin.androidx.viewmodel.ext.android.viewModel + +class LoginFragment : Fragment() { + + private var _binding: LoginBinding? = null + private val binding get() = _binding!! + private val loginViewModel: LoginViewModel by viewModel() + + override fun onCreateView( + inflater: LayoutInflater, + container: ViewGroup?, + savedInstanceState: Bundle? + ): View { + _binding = LoginBinding.inflate(inflater, container, false) + return binding.root + } + + override fun onViewCreated(view: View, savedInstanceState: Bundle?) { + super.onViewCreated(view, savedInstanceState) + + setupEvents() + setupObservers() + } + + override fun onDestroyView() { + super.onDestroyView() + _binding = null + } + + private fun setupEvents() { + binding.usernameEditText.doAfterTextChanged { + loginViewModel.email.value = it.toString() + } + binding.passwordEditText.doAfterTextChanged { + loginViewModel.password.value = it.toString() + } + binding.signinButton.setOnClickListener { + loginViewModel.login() + } + } + + private fun setupObservers() { + loginViewModel.loginResult.observe(this) { result -> + Log.d("LoginFragment", result.toString()) + when (result) { + LoginViewModel.LoginResult.Loading -> { + Toast.makeText(context, "Loading...", Toast.LENGTH_SHORT).show() + } + LoginViewModel.LoginResult.EmailMissing -> { + Toast.makeText(context, "Email is missing", Toast.LENGTH_SHORT).show() + } + LoginViewModel.LoginResult.PasswordMissing -> { + Toast.makeText(context, "Password is missing", Toast.LENGTH_SHORT).show() + } + LoginViewModel.LoginResult.Failure -> { + Toast.makeText(context, "Failed login", Toast.LENGTH_SHORT).show() + } + LoginViewModel.LoginResult.Success -> { + Toast.makeText(context, "Success", Toast.LENGTH_SHORT).show() + } + } + } + } +}
\ No newline at end of file |