修改用户存储的异步操作

This commit is contained in:
squallzhjch 2023-01-11 10:19:48 +08:00
parent b5ad8b596e
commit 6f5962c560
4 changed files with 14 additions and 25 deletions

View File

@ -15,5 +15,4 @@ interface PreferencesRepository {
suspend fun getString(key: String): Flow<String?>
suspend fun saveInt(key: String, content: Int)
suspend fun getInt(key: String): Flow<Int?>
fun getUserName(): String
}

View File

@ -51,16 +51,7 @@ class PreferencesRepositoryImp @Inject constructor(
it[intPreferencesKey(key)]
}
override fun loginUser(): Flow<LoginUser?> = loginUser.data
override fun getUserName(): String {
Log.e("jingo", "获取用户名 开始")
var username = ""
loginUser.data.map {
username = it.username
}
Log.e("jingo", "获取用户名 结束后 $username")
return username
override fun loginUser(): Flow<LoginUser?> {
return loginUser.data
}
}

View File

@ -63,13 +63,15 @@ class LoginFragment : BaseFragment() {
Toast.makeText(context, "请输入密码", Toast.LENGTH_SHORT).show()
return@setOnClickListener
}
viewModel.onClickLogin(
viewBinding.loginUsername.text.toString(),
viewBinding.loginPassword.text.toString()
)
findNavController().navigate(R.id.action_login_to_home)
lifecycleScope.launch{
repeatOnLifecycle(Lifecycle.State.STARTED){
viewModel.onClickLogin(
viewBinding.loginUsername.text.toString(),
viewBinding.loginPassword.text.toString()
)
findNavController().navigate(R.id.action_login_to_home)
}
}
}
}
}

View File

@ -7,6 +7,7 @@ import com.navinfo.volvo.repository.preferences.PreferencesRepository
import com.navinfo.volvo.util.asLiveData
//import com.navinfo.volvo.repository.preferences.PreferencesRepository
import dagger.hilt.android.lifecycle.HiltViewModel
import kotlinx.coroutines.Job
import kotlinx.coroutines.cancel
import kotlinx.coroutines.launch
import javax.inject.Inject
@ -17,12 +18,8 @@ class LoginViewModel @Inject constructor(private val repository: PreferencesRepo
val user = repository.loginUser()
fun onClickLogin(name: String, password: String) {
if (name != "") {
viewModelScope.launch {
repository.saveLoginUser(id = "", name = name, password = password)
}
}
suspend fun onClickLogin(name: String, password: String) {
repository.saveLoginUser(id = "", name = name, password = password)
}
// fun onClickLoginRegister(username: String, password: String) {