Skip to content

Commit

Permalink
[Feat/#5] SignInActivity - ViewModel 분리
Browse files Browse the repository at this point in the history
  • Loading branch information
SYAAINN committed Sep 19, 2024
1 parent a2752a4 commit 2341e06
Show file tree
Hide file tree
Showing 2 changed files with 46 additions and 10 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ package com.sopt.now.presentation.ui.auth.signin
import android.content.Intent
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import androidx.lifecycle.ViewModelProvider
import com.sopt.now.R
import com.sopt.now.data.User
import com.sopt.now.databinding.ActivitySigninBinding
Expand All @@ -14,33 +15,42 @@ import com.sopt.now.presentation.utils.showToast

class SignInActivity : AppCompatActivity() {
private lateinit var binding: ActivitySigninBinding
private var user: User? = null
private lateinit var viewModel: SignInViewModel

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivitySigninBinding.inflate(layoutInflater)
setContentView(binding.root)
viewModel = ViewModelProvider(this)[SignInViewModel::class.java]

getUserInfo()
setupObservers()
onSignInClicked()
onSignUpClicked()
}

private fun getUserInfo() {
user = intent.getSafeParcelable(KeyStorage.USER_INFO, User::class.java)
val user = intent.getSafeParcelable(KeyStorage.USER_INFO, User::class.java)
viewModel.setUser(user)
}

private fun setupObservers() {
viewModel.signInState.observe(this) { isSuccess ->
if (isSuccess) {
showToast(this, getString(R.string.signin_signin_success))
navigateToMain()
} else {
showToast(this, getString(R.string.signin_signin_failure))
}
}
}

private fun onSignInClicked() {
binding.btnSignInSignIn.setOnClickListener {
with(binding) {
val inputId = etSignInId.text.toString()
val inputPassword = etSignInPw.text.toString()

if (inputId == user?.id && inputPassword == user?.password) {
showToast(this@SignInActivity, getString(R.string.signin_signin_success))
navigateToMain()
} else {
showToast(this@SignInActivity, getString(R.string.signin_signin_failure))
}
viewModel.validateSignIn(inputId, inputPassword)
}
}
}
Expand All @@ -53,7 +63,7 @@ class SignInActivity : AppCompatActivity() {

private fun navigateToMain() {
val intent = Intent(this@SignInActivity, MainActivity::class.java)
intent.putExtra(KeyStorage.USER_INFO, user)
intent.putExtra(KeyStorage.USER_INFO, viewModel.user.value)
startActivity(intent)
}

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
package com.sopt.now.presentation.ui.auth.signin

import androidx.lifecycle.LiveData
import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.ViewModel
import com.sopt.now.data.User

class SignInViewModel : ViewModel() {
private val _user = MutableLiveData<User?>()
val user: LiveData<User?> = _user

private val _signInState = MutableLiveData<Boolean>()
val signInState: LiveData<Boolean> = _signInState

fun setUser(user: User?) {
_user.value = user
}

fun validateSignIn(inputId: String, inputPassword: String) {
if (inputId == _user.value?.id && inputPassword == _user.value?.password) {
_signInState.value = true
} else {
_signInState.value = false
}
}
}

0 comments on commit 2341e06

Please sign in to comment.