扫一扫
This commit is contained in:
130
app/src/main/java/com/juhabi/birds/mine/ModifyPsdActivity.kt
Normal file
130
app/src/main/java/com/juhabi/birds/mine/ModifyPsdActivity.kt
Normal file
@@ -0,0 +1,130 @@
|
||||
package com.juhabi.birds.mine
|
||||
|
||||
import android.os.Bundle
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import com.gyf.immersionbar.ImmersionBar
|
||||
import com.juhabi.birds.R
|
||||
import com.juhabi.birds.base.BaseActivity
|
||||
import com.juhabi.birds.databinding.ActivityMineCenterBinding
|
||||
import com.juhabi.birds.databinding.ModifyPsdLayoutBinding
|
||||
import com.juhabi.birds.main.model.AppVersionInfo
|
||||
import com.juhabi.birds.mine.model.MineUserInfo
|
||||
import com.juhabi.birds.mine.mvp.MineContract
|
||||
import com.juhabi.birds.mine.mvp.MineImpl
|
||||
import com.juhabi.birds.mine.mvp.MinePresenter
|
||||
import com.juhabi.birds.util.ToastUtil
|
||||
|
||||
/**
|
||||
* 旧密码,修改新密码
|
||||
*/
|
||||
class ModifyPsdActivity : BaseActivity<ModifyPsdLayoutBinding, MinePresenter>(),
|
||||
MineContract.MineView, View.OnClickListener {
|
||||
override fun createBinding(inflater: LayoutInflater): ModifyPsdLayoutBinding {
|
||||
return ModifyPsdLayoutBinding.inflate(inflater)
|
||||
}
|
||||
|
||||
override fun createPresenter(): MinePresenter? {
|
||||
return MinePresenter(MineImpl())
|
||||
}
|
||||
|
||||
override fun initWindows() {
|
||||
ImmersionBar.with(this)
|
||||
.statusBarView(binding.statusBarView)
|
||||
.statusBarDarkFont(true)
|
||||
.navigationBarColor(R.color.color_zhu)
|
||||
.navigationBarDarkIcon(true)
|
||||
.init()
|
||||
}
|
||||
|
||||
|
||||
override fun initView(savedInstanceState: Bundle?) {
|
||||
listOf(
|
||||
binding.oldPsdVisibilityButton,
|
||||
binding.passwordVisibilityButton,
|
||||
binding.confirmPasswordVisibilityButton,
|
||||
binding.confirmButton,
|
||||
binding.includedTitle.imgBack,
|
||||
).forEach { button ->
|
||||
button.setOnClickListener(this)
|
||||
}
|
||||
}
|
||||
|
||||
override fun onClick(view: View) {
|
||||
when(view.id){
|
||||
R.id.img_back ->{
|
||||
finish()
|
||||
}
|
||||
|
||||
R.id.confirmButton ->{//确认修改
|
||||
val oldPassword = binding.oldPasswordEditText.text.toString()
|
||||
val newPassword = binding.passwordEditText.text.toString()
|
||||
val confirmPassword = binding.confirmPasswordEditText.text.toString()
|
||||
|
||||
// 按顺序校验输入项,避免无效数据提交到服务端。
|
||||
if (oldPassword.isBlank()) {
|
||||
ToastUtil.showShort(mContext, "当前密码不能为空")
|
||||
return
|
||||
}
|
||||
if (newPassword.isBlank()) {
|
||||
ToastUtil.showShort(mContext, "新密码不能为空")
|
||||
return
|
||||
}
|
||||
if (confirmPassword.isBlank()) {
|
||||
ToastUtil.showShort(mContext, "请再次输入新密码")
|
||||
return
|
||||
}
|
||||
if (oldPassword == newPassword) {
|
||||
ToastUtil.showShort(mContext, "新密码不能与当前密码相同")
|
||||
return
|
||||
}
|
||||
if (newPassword != confirmPassword) {
|
||||
ToastUtil.showShort(mContext, "两次输入的新密码不一致")
|
||||
return
|
||||
}
|
||||
if (!isValidPassword(newPassword)) {
|
||||
ToastUtil.showShort(mContext, "密码需为8-20位,且包含大小写字母和数字")
|
||||
return
|
||||
}
|
||||
|
||||
presenter?.modifyPassword(oldPassword, newPassword)
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
override fun showError(message: String) {
|
||||
hideLoading()
|
||||
ToastUtil.showShort(mContext, message)
|
||||
}
|
||||
|
||||
override fun onModifyPasswordSuccess(message: String) {
|
||||
hideLoading()
|
||||
ToastUtil.showShort(mContext, message.ifBlank { "密码修改成功" })
|
||||
finish()
|
||||
}
|
||||
|
||||
/** 8-20 位,且同时包含大写、小写字母和数字。 */
|
||||
private fun isValidPassword(password: String): Boolean {
|
||||
if (password.length !in PASSWORD_MIN_LENGTH..PASSWORD_MAX_LENGTH) return false
|
||||
return password.any { it.isUpperCase() } &&
|
||||
password.any { it.isLowerCase() } &&
|
||||
password.any { it.isDigit() }
|
||||
}
|
||||
|
||||
private companion object {
|
||||
const val PASSWORD_MIN_LENGTH = 8
|
||||
const val PASSWORD_MAX_LENGTH = 20
|
||||
}
|
||||
|
||||
override fun getUserInfoSuccess(userInfo: MineUserInfo) {
|
||||
}
|
||||
|
||||
override fun onVersionChecked(versionInfo: AppVersionInfo) {
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user