aboutsummaryrefslogtreecommitdiff
path: root/androidApp/src/main/java/mx/trackermap/TrackerMap/android/session
diff options
context:
space:
mode:
authorIsidro Henoch <imhenoch@protonmail.com>2021-12-08 02:09:47 -0600
committerIsidro Henoch <imhenoch@protonmail.com>2021-12-08 02:09:47 -0600
commitd2ee6a21355c390a4aaefc6ea847060c8e47c6ae (patch)
tree3a4000d6c933109a91add937827168ab0a18c1b7 /androidApp/src/main/java/mx/trackermap/TrackerMap/android/session
parentc80ece3087b862e1849ad5c2972b9b13fec2eb3f (diff)
downloadetbsa-trackermap-mobile-d2ee6a21355c390a4aaefc6ea847060c8e47c6ae.tar.gz
etbsa-trackermap-mobile-d2ee6a21355c390a4aaefc6ea847060c8e47c6ae.tar.bz2
etbsa-trackermap-mobile-d2ee6a21355c390a4aaefc6ea847060c8e47c6ae.zip
WIP: Starts implementing the main activity
- Removes the MainActivity and the shared code it was using - Adds the UnitsActivity - Implements the Map/List toggle functionality
Diffstat (limited to 'androidApp/src/main/java/mx/trackermap/TrackerMap/android/session')
-rw-r--r--androidApp/src/main/java/mx/trackermap/TrackerMap/android/session/LoginFragment.kt21
-rw-r--r--androidApp/src/main/java/mx/trackermap/TrackerMap/android/session/LoginViewModel.kt29
2 files changed, 28 insertions, 22 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
index 82d11d1..cc84f06 100644
--- a/androidApp/src/main/java/mx/trackermap/TrackerMap/android/session/LoginFragment.kt
+++ b/androidApp/src/main/java/mx/trackermap/TrackerMap/android/session/LoginFragment.kt
@@ -1,5 +1,6 @@
package mx.trackermap.TrackerMap.android.session
+import android.content.Intent
import android.os.Bundle
import android.util.Log
import android.view.LayoutInflater
@@ -10,10 +11,10 @@ import androidx.core.widget.doAfterTextChanged
import androidx.fragment.app.Fragment
import com.zhuinden.liveevent.observe
import mx.trackermap.TrackerMap.android.databinding.LoginBinding
+import mx.trackermap.TrackerMap.android.units.UnitsActivity
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()
@@ -53,23 +54,27 @@ class LoginFragment : Fragment() {
}
private fun setupObservers() {
- loginViewModel.loginResult.observe(this) { result ->
+ loginViewModel.loginState.observe(this) { result ->
Log.d("LoginFragment", result.toString())
when (result) {
- LoginViewModel.LoginResult.Loading -> {
+ LoginViewModel.LoginState.Loading -> {
Toast.makeText(context, "Loading...", Toast.LENGTH_SHORT).show()
}
- LoginViewModel.LoginResult.EmailMissing -> {
+ LoginViewModel.LoginState.EmailMissing -> {
Toast.makeText(context, "Email is missing", Toast.LENGTH_SHORT).show()
}
- LoginViewModel.LoginResult.PasswordMissing -> {
+ LoginViewModel.LoginState.PasswordMissing -> {
Toast.makeText(context, "Password is missing", Toast.LENGTH_SHORT).show()
}
- LoginViewModel.LoginResult.Failure -> {
+ LoginViewModel.LoginState.Failure -> {
Toast.makeText(context, "Failed login", Toast.LENGTH_SHORT).show()
}
- LoginViewModel.LoginResult.Success -> {
- Toast.makeText(context, "Success", Toast.LENGTH_SHORT).show()
+ LoginViewModel.LoginState.Success -> {
+ val activity = requireActivity()
+ val intent = Intent(activity.applicationContext, UnitsActivity::class.java)
+ intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TASK
+ startActivity(intent)
+ activity.finish()
}
}
}
diff --git a/androidApp/src/main/java/mx/trackermap/TrackerMap/android/session/LoginViewModel.kt b/androidApp/src/main/java/mx/trackermap/TrackerMap/android/session/LoginViewModel.kt
index 82c5bf9..8f53b7e 100644
--- a/androidApp/src/main/java/mx/trackermap/TrackerMap/android/session/LoginViewModel.kt
+++ b/androidApp/src/main/java/mx/trackermap/TrackerMap/android/session/LoginViewModel.kt
@@ -15,26 +15,27 @@ class LoginViewModel(
savedStateHandle: SavedStateHandle
) : ViewModel() {
- sealed class LoginResult {
- object Loading: LoginResult()
- object EmailMissing : LoginResult()
- object PasswordMissing : LoginResult()
- object Failure : LoginResult()
- object Success : LoginResult()
+ sealed class LoginState {
+ object Loading: LoginState()
+ object EmailMissing : LoginState()
+ object PasswordMissing : LoginState()
+ object Failure : LoginState()
+ object Success : LoginState()
}
val email: MutableLiveData<String> = savedStateHandle.getLiveData("user", "")
val password: MutableLiveData<String> = savedStateHandle.getLiveData("password", "")
- private val loginResultEmitter = EventEmitter<LoginResult>()
- val loginResult: EventSource<LoginResult> = loginResultEmitter
+ private val loginStateEmitter = EventEmitter<LoginState>()
+ val loginState: EventSource<LoginState> = loginStateEmitter
fun restoreSession() {
+ loginStateEmitter.emit(LoginState.Loading);
viewModelScope.launch {
try {
val user = sessionApi.sessionGet()
Log.d("LoginViewModel", user.toString())
- loginResultEmitter.emit(LoginResult.Success)
+ loginStateEmitter.emit(LoginState.Success)
} catch (e: Exception) {
Log.d("LoginViewModel", "No session")
}
@@ -46,23 +47,23 @@ class LoginViewModel(
val password = password.value!!.toString().trim()
if (email.isEmpty()) {
- loginResultEmitter.emit(LoginResult.EmailMissing)
+ loginStateEmitter.emit(LoginState.EmailMissing)
return
}
if (password.isEmpty()) {
- loginResultEmitter.emit(LoginResult.PasswordMissing)
+ loginStateEmitter.emit(LoginState.PasswordMissing)
return
}
- loginResultEmitter.emit(LoginResult.Loading)
+ loginStateEmitter.emit(LoginState.Loading)
viewModelScope.launch {
try {
val user = sessionApi.sessionPost(email, password)
Log.d("LoginViewModel", user.toString())
- loginResultEmitter.emit(LoginResult.Success)
+ loginStateEmitter.emit(LoginState.Success)
} catch (e: Exception) {
- loginResultEmitter.emit(LoginResult.Failure)
+ loginStateEmitter.emit(LoginState.Failure)
}
}
}