package com.hdl.photovoltaic.ui.me;
|
|
import androidx.appcompat.content.res.AppCompatResources;
|
|
import android.os.Bundle;
|
import android.text.Editable;
|
import android.text.TextUtils;
|
import android.text.TextWatcher;
|
import android.text.method.HideReturnsTransformationMethod;
|
import android.text.method.PasswordTransformationMethod;
|
import android.view.View;
|
import android.widget.EditText;
|
import android.widget.ImageView;
|
|
import com.hdl.linkpm.sdk.core.exception.HDLException;
|
import com.hdl.linkpm.sdk.user.HDLLinkPMUser;
|
import com.hdl.photovoltaic.R;
|
import com.hdl.photovoltaic.base.CustomBaseActivity;
|
import com.hdl.photovoltaic.config.UserConfigManage;
|
import com.hdl.photovoltaic.databinding.ActivityMeChangePasswordBinding;
|
import com.hdl.photovoltaic.listener.CloudCallBeak;
|
import com.hdl.photovoltaic.other.HdlAccountLogic;
|
import com.hdl.photovoltaic.other.HdlLogLogic;
|
import com.hdl.photovoltaic.other.HdlThreadLogic;
|
import com.hdl.photovoltaic.widget.ConfirmationCancelDialog;
|
|
/**
|
* 我的-修改密码-界面
|
*/
|
public class MeChangePasswordActivity extends CustomBaseActivity {
|
|
private ActivityMeChangePasswordBinding viewBinding;
|
|
@Override
|
public Object getContentView() {
|
viewBinding = ActivityMeChangePasswordBinding.inflate(getLayoutInflater());
|
return viewBinding.getRoot();
|
}
|
|
@Override
|
public void onBindView(Bundle savedInstanceState) {
|
setStatusBarTranslucent();
|
getWindow().setNavigationBarColor(getColor(R.color.text_FF000000));
|
//初始化
|
initView();
|
//初始化界面监听器
|
initEvent();
|
|
}
|
|
/**
|
* 初始化界面监听器
|
*/
|
private void initEvent() {
|
viewBinding.toolbarTopRl.topBackLl.setOnClickListener(new View.OnClickListener() {
|
@Override
|
public void onClick(View v) {
|
finish();
|
}
|
});
|
//原密码输入框
|
viewBinding.meChangePasswordOldIc.mePswEt.addTextChangedListener(oldPswTextWatcher);
|
//显示原密码图标
|
viewBinding.meChangePasswordOldIc.mePswHideIv.setOnClickListener(new View.OnClickListener() {
|
@Override
|
public void onClick(View v) {
|
setEditTextStyle(viewBinding.meChangePasswordOldIc.mePswEt, viewBinding.meChangePasswordOldIc.mePswHideIv);
|
}
|
});
|
//新密码输入框
|
viewBinding.meChangePasswordNewIc.mePswEt.addTextChangedListener(newPswTextWatcher);
|
//显示新密码图标
|
viewBinding.meChangePasswordNewIc.mePswHideIv.setOnClickListener(new View.OnClickListener() {
|
@Override
|
public void onClick(View v) {
|
setEditTextStyle(viewBinding.meChangePasswordNewIc.mePswEt, viewBinding.meChangePasswordNewIc.mePswHideIv);
|
}
|
});
|
//再次输入新密码输入框
|
viewBinding.meChangePasswordAffirmIc.mePswEt.addTextChangedListener(confirmPswTextWatcher);
|
//显示再次输入新密码图标
|
viewBinding.meChangePasswordAffirmIc.mePswHideIv.setOnClickListener(new View.OnClickListener() {
|
@Override
|
public void onClick(View v) {
|
setEditTextStyle(viewBinding.meChangePasswordAffirmIc.mePswEt, viewBinding.meChangePasswordAffirmIc.mePswHideIv);
|
}
|
});
|
//确认修改
|
viewBinding.homeAffirmTv.setOnClickListener(new View.OnClickListener() {
|
@Override
|
public void onClick(View v) {
|
String oldPsw = viewBinding.meChangePasswordOldIc.mePswEt.getText().toString().replaceAll(" ", "");
|
String newPsw = viewBinding.meChangePasswordNewIc.mePswEt.getText().toString().replaceAll(" ", "");
|
String affirmPsw = viewBinding.meChangePasswordAffirmIc.mePswEt.getText().toString().replaceAll(" ", "");
|
if (!isEditTextPassword(oldPsw, newPsw, affirmPsw)) {
|
return;
|
}
|
// 二次确认提示框
|
ConfirmationCancelDialog dialog = new ConfirmationCancelDialog(_mActivity);
|
dialog.setTitle(getString(R.string.loading_title_tip));
|
dialog.setContent(_mActivity.getString(R.string.home_password_changed_successfully_log_in));
|
dialog.show();
|
dialog.setYesOnclickListener(new ConfirmationCancelDialog.onYesOnclickListener() {
|
@Override
|
public void Confirm() {
|
sendChangePassword(oldPsw, newPsw);
|
}
|
});
|
dialog.setNoOnclickListener(new ConfirmationCancelDialog.onNoOnclickListener() {
|
@Override
|
public void Cancel() {
|
dialog.dismiss();
|
}
|
});
|
|
}
|
});
|
}
|
|
/**
|
* 发送更改个人密码指令
|
*
|
* @param oldPsw 原来密码
|
* @param newPsw 新密码
|
*/
|
private void sendChangePassword(String oldPsw, String newPsw) {
|
|
if (UserConfigManage.getInstance().isBAccount()) {
|
//B端更改个人密码
|
HdlAccountLogic.getInstance().updatePassword_B(oldPsw, newPsw, new CloudCallBeak<String>() {
|
@Override
|
public void onSuccess(String str) {
|
HdlLogLogic.print("B端更改个人密码退出登录--->", true);
|
// HdlThreadLogic.tipFlashingBox(_mActivity, true, getString(R.string.home_login_pws_reset_succeeded), 0);
|
HDLLinkPMUser.getInstance().logout(0);
|
}
|
|
@Override
|
public void onFailure(HDLException e) {
|
HdlThreadLogic.tipFlashingBox(_mActivity, false, e.getMsg(), e.getCode());
|
}
|
});
|
} else {
|
//C端更改个人密码
|
HdlAccountLogic.getInstance().updatePassword_C(oldPsw, newPsw, new CloudCallBeak<String>() {
|
@Override
|
public void onSuccess(String obj) {
|
HdlLogLogic.print("C端更改个人密码退出登录--->", true);
|
HDLLinkPMUser.getInstance().logout(0);
|
|
|
}
|
|
@Override
|
public void onFailure(HDLException e) {
|
HdlThreadLogic.tipFlashingBox(_mActivity, false, e.getMsg(), e.getCode());
|
}
|
});
|
|
}
|
}
|
|
|
/**
|
* 初始化
|
*/
|
private void initView() {
|
viewBinding.toolbarTopRl.topTitleTv.setText(R.string.home_login_change_password);
|
viewBinding.toolbarTopRl.topBackLl.setVisibility(View.VISIBLE);
|
viewBinding.meChangePasswordOldIc.mePswTitleTv.setText(R.string.home_login_old_pws);
|
viewBinding.meChangePasswordOldIc.mePswEt.setHint(R.string.home_login_input_old_pws);
|
viewBinding.meChangePasswordOldIc.lineV.setVisibility(View.GONE);
|
viewBinding.meChangePasswordNewIc.mePswTitleTv.setText(R.string.home_login_new_pws);
|
viewBinding.meChangePasswordNewIc.mePswEt.setHint(R.string.home_login_input_new_pws);
|
viewBinding.meChangePasswordNewIc.lineV.setVisibility(View.GONE);
|
viewBinding.meChangePasswordAffirmIc.mePswTitleTv.setText(R.string.home_login_affirm_psw);
|
viewBinding.meChangePasswordAffirmIc.mePswEt.setHint(R.string.home_login_input_affirm_psw);
|
viewBinding.meChangePasswordAffirmIc.lineV.setVisibility(View.GONE);
|
|
|
}
|
|
|
/**
|
* 校验按钮是否启用
|
*/
|
private void isCompleteEnabled() {
|
String oldPsw = viewBinding.meChangePasswordOldIc.mePswEt.getText().toString();
|
String newPsw = viewBinding.meChangePasswordNewIc.mePswEt.getText().toString();
|
String affirmPsw = viewBinding.meChangePasswordAffirmIc.mePswEt.getText().toString();
|
boolean isEnabled = oldPsw.length() > 0 && newPsw.length() > 0 && affirmPsw.length() > 0;
|
if (isEnabled) {
|
viewBinding.homeAffirmTv.setTextColor(getColor(R.color.text_E6FFFFFF));
|
} else {
|
viewBinding.homeAffirmTv.setTextColor(getColor(R.color.text_66FFFFFF));
|
}
|
viewBinding.homeAffirmTv.setEnabled(isEnabled);
|
}
|
|
/**
|
* 本地校验密码是否正确
|
*
|
* @param oldPsw 原来密码
|
* @param newPsw 新密码
|
* @param affirmPsw 再次确认新密码
|
* @return 一样返回true,否者false
|
*/
|
private boolean isEditTextPassword(String oldPsw, String newPsw, String affirmPsw) {
|
if (newPsw.length() < 6 || affirmPsw.length() < 6) {
|
HdlThreadLogic.tipFlashingBox(_mActivity, false, getString(R.string.home_login_least6), -1);
|
return false;
|
}
|
if (!newPsw.equals(affirmPsw)) {
|
//新密码和确认密码不一样
|
HdlThreadLogic.tipFlashingBox(_mActivity, false, getString(R.string.home_login_input_unlike_psw), -1);
|
return false;
|
}
|
if (oldPsw.equals(newPsw)) {
|
HdlThreadLogic.tipFlashingBox(_mActivity, false, getString(R.string.home_old_password_not_new_password), -1);
|
return false;
|
}
|
return true;
|
|
}
|
|
private void setEditTextStyle(EditText editText, ImageView imageView) {
|
if (imageView.isSelected()) {
|
imageView.setSelected(false);
|
imageView.setImageDrawable(AppCompatResources.getDrawable(_mActivity, R.drawable.hide));
|
editText.setTransformationMethod(PasswordTransformationMethod.getInstance());
|
} else {
|
imageView.setSelected(true);
|
imageView.setImageDrawable(AppCompatResources.getDrawable(_mActivity, R.drawable.show));
|
editText.setTransformationMethod(HideReturnsTransformationMethod.getInstance());
|
}
|
//设置光标位置
|
if (!TextUtils.isEmpty(editText.getText())) {
|
editText.setSelection(editText.length());
|
}
|
}
|
|
|
@Override
|
protected void onDestroy() {
|
super.onDestroy();
|
viewBinding.meChangePasswordOldIc.mePswEt.removeTextChangedListener(oldPswTextWatcher);
|
viewBinding.meChangePasswordNewIc.mePswEt.removeTextChangedListener(newPswTextWatcher);
|
viewBinding.meChangePasswordAffirmIc.mePswEt.removeTextChangedListener(confirmPswTextWatcher);
|
}
|
|
/**
|
* 输入原密码
|
*/
|
private final TextWatcher oldPswTextWatcher = new TextWatcher() {
|
@Override
|
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
|
|
}
|
|
@Override
|
public void onTextChanged(CharSequence s, int start, int before, int count) {
|
}
|
|
@Override
|
public void afterTextChanged(Editable s) {
|
isCompleteEnabled();
|
}
|
};
|
|
/**
|
* 输入新密码
|
*/
|
private final TextWatcher newPswTextWatcher = new TextWatcher() {
|
@Override
|
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
|
|
}
|
|
@Override
|
public void onTextChanged(CharSequence s, int start, int before, int count) {
|
}
|
|
@Override
|
public void afterTextChanged(Editable s) {
|
isCompleteEnabled();
|
}
|
};
|
/**
|
* 再次确认密码
|
*/
|
private final TextWatcher confirmPswTextWatcher = new TextWatcher() {
|
@Override
|
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
|
|
}
|
|
@Override
|
public void onTextChanged(CharSequence s, int start, int before, int count) {
|
}
|
|
@Override
|
public void afterTextChanged(Editable s) {
|
isCompleteEnabled();
|
}
|
};
|
|
|
}
|