diff --git a/app/src/main/java/com/casic/xz/meterage/view/LoginActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/LoginActivity.kt index 9919f1d..b8c31ec 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/LoginActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/LoginActivity.kt @@ -22,6 +22,8 @@ private lateinit var authenticateViewModel: AuthenticateViewModel private lateinit var userViewModel: UserViewModel + private lateinit var userPhone: String + private lateinit var userPassword: String override fun initData() { PageNavigationManager.addActivity(this) @@ -32,7 +34,30 @@ SaveKeyValues.getValue(LocaleConstant.PRIVACY_CHECK_BOX, false) as Boolean authenticateViewModel = ViewModelProvider(this)[AuthenticateViewModel::class.java] + authenticateViewModel.keyModel.observe(this) { keyModel -> + if (keyModel.code == 200) { + val keyString = keyModel.data!!.publicKey!! + /** + * 修改密码需要用到key,先存着 + * */ + AuthenticationHelper.savePublicKey(keyString) + val publicKey = RSAUtils.keyStrToPublicKey(keyString) + + val dataByPublicKey = RSAUtils.encryptDataByPublicKey( + userPassword.toByteArray(), publicKey!! + ) + userViewModel.enter(keyModel.data!!.sid!!, userPhone, dataByPublicKey) + } + } + userViewModel = ViewModelProvider(this)[UserViewModel::class.java] + userViewModel.loginResult.observe(this) { + if (it.code == 200) { + AuthenticationHelper.saveToken(it.data!!.token!!) + PageNavigationManager.finishAllActivity() + navigatePageTo() + } + } } override fun initEvent() { @@ -51,29 +76,9 @@ SaveKeyValues.putValue(LocaleConstant.ACCOUNT, userPhone) SaveKeyValues.putValue(LocaleConstant.PASSWORD, userPassword) + this.userPhone = userPhone + this.userPassword = userPassword authenticateViewModel.obtainPublicKey() - authenticateViewModel.keyModel.observe(this) { keyModel -> - if (keyModel.code == 200) { - val keyString = keyModel.data!!.publicKey!! - /** - * 修改密码需要用到key,先存着 - * */ - AuthenticationHelper.savePublicKey(keyString) - val publicKey = RSAUtils.keyStrToPublicKey(keyString) - - val dataByPublicKey = RSAUtils.encryptDataByPublicKey( - userPassword.toByteArray(), publicKey!! - ) - userViewModel.enter(keyModel.data!!.sid!!, userPhone, dataByPublicKey) - userViewModel.loginResult.observe(this) { - if (it.code == 200) { - AuthenticationHelper.saveToken(it.data!!.token!!) - PageNavigationManager.finishAllActivity() - navigatePageTo() - } - } - } - } } else { "请先勾选隐私政策".show(this) }