diff options
Diffstat (limited to 'androidApp/src/main/java/mx/trackermap/TrackerMap/android/session/UserInformationActivity.kt')
-rw-r--r-- | androidApp/src/main/java/mx/trackermap/TrackerMap/android/session/UserInformationActivity.kt | 40 |
1 files changed, 21 insertions, 19 deletions
diff --git a/androidApp/src/main/java/mx/trackermap/TrackerMap/android/session/UserInformationActivity.kt b/androidApp/src/main/java/mx/trackermap/TrackerMap/android/session/UserInformationActivity.kt index cda8072..f384173 100644 --- a/androidApp/src/main/java/mx/trackermap/TrackerMap/android/session/UserInformationActivity.kt +++ b/androidApp/src/main/java/mx/trackermap/TrackerMap/android/session/UserInformationActivity.kt @@ -7,12 +7,16 @@ import android.os.Bundle import android.view.View import android.widget.Toast import androidx.appcompat.app.AppCompatActivity -import androidx.core.app.NavUtils +import com.zhuinden.liveevent.observe +import kotlinx.coroutines.DelicateCoroutinesApi import mx.trackermap.TrackerMap.android.R import mx.trackermap.TrackerMap.android.databinding.UserInformationActivityBinding import mx.trackermap.TrackerMap.client.models.User +import mx.trackermap.TrackerMap.controllers.ReportController +import mx.trackermap.TrackerMap.controllers.SessionController import org.koin.androidx.viewmodel.ext.android.viewModel +@DelicateCoroutinesApi class UserInformationActivity : AppCompatActivity() { private var _binding: UserInformationActivityBinding? = null @@ -45,19 +49,29 @@ class UserInformationActivity : AppCompatActivity() { } private fun setupObservers() { - userInformationViewModel.userInformation.observe(this) { userInformation -> + userInformationViewModel.loginState.observe(this) { userInformation -> when (userInformation) { - UserInformationViewModel.InformationState.Loading -> setLoading(true) - UserInformationViewModel.InformationState.Failure -> failure() - is UserInformationViewModel.InformationState.Success -> display(userInformation.user) - UserInformationViewModel.InformationState.Signout -> signOut() + SessionController.LoginState.Loading -> setLoading(true) + SessionController.LoginState.Failure -> failure() + SessionController.LoginState.SignOut -> signOut() + else -> {} + } + } + userInformationViewModel.user.observe(this) { user -> + setLoading(false) + binding.apply { + usernameInfo.text = user.name ?: "" + emailInfo.text = user.email ?: "" + idInfo.text = "${user.id ?: "--"}" + deviceLimitInfo.text = "${user.deviceLimit ?: "--"}" + adminInfo.text = "${user.administrator}" } } } private fun setupEvents() { binding.backButton.setOnClickListener { onBackPressed() } - binding.signoutButton.setOnClickListener { userInformationViewModel.signout() } + binding.signoutButton.setOnClickListener { userInformationViewModel.signOut() } binding.sourceCodeButton.setOnClickListener { openURL(getString(R.string.app_source_code_url)) } @@ -77,18 +91,6 @@ class UserInformationActivity : AppCompatActivity() { Toast.makeText(this, "Something went wrong...", Toast.LENGTH_LONG).show() } - private fun display(user: User) { - setLoading(false) - - binding.apply { - usernameInfo.text = user.name ?: "" - emailInfo.text = user.email ?: "" - idInfo.text = "${user.id ?: "--"}" - deviceLimitInfo.text = "${user.deviceLimit ?: "--"}" - adminInfo.text = "${user.administrator}" - } - } - private fun openURL(url: String) { val uri = Uri.parse(url) val intent = Intent(Intent.ACTION_VIEW, uri) |