wjc
2025-04-01 31e89a8697d049410c9d8d5c333cba33223bc9dc
app/src/main/java/com/hdl/photovoltaic/ui/account/ChangePassword.java
@@ -27,12 +27,17 @@
import com.hdl.photovoltaic.config.AppConfigManage;
import com.hdl.photovoltaic.config.UserConfigManage;
import com.hdl.photovoltaic.databinding.ActivityChangePasswordBinding;
import com.hdl.photovoltaic.enums.VerifyType;
import com.hdl.photovoltaic.listener.CloudCallBeak;
import com.hdl.photovoltaic.other.HdlAccountLogic;
import com.hdl.photovoltaic.other.HdlCommonLogic;
import com.hdl.photovoltaic.other.HdlThreadLogic;
import com.hdl.photovoltaic.utils.GPSManagerUtils;
import com.hdl.photovoltaic.widget.ConfirmationCancelDialog;
import com.hdl.photovoltaic.widget.ConfirmationTipDialog;
import com.sahooz.library.countrypicker.Country;
import com.sahooz.library.countrypicker.CountryPickerFragment;
import com.sahooz.library.countrypicker.PickCountryCallback;
/**
 * 忘记密码界面
@@ -72,9 +77,33 @@
     * 初始化界面
     */
    private void initView() {
        if (UserConfigManage.getInstance().isZh()) {
            viewBinding.regionAccountTv.setText(getText(R.string.home_chinese_mainland));
            viewBinding.regionAccountNumberTv.setText("+86");
        } else {
            viewBinding.regionAccountTv.setText(getText(R.string.iraq));
            viewBinding.regionAccountNumberTv.setText("+964");
        }
        switchPhoneOrMailView();
        HdlCommonLogic.getInstance().setSpan(viewBinding.changePhoneVerificationTv, viewBinding.changePhoneVerificationTv.getText().toString(), true,null);
        HdlCommonLogic.getInstance().setSpan(viewBinding.changeMailVerificationTv, viewBinding.changeMailVerificationTv.getText().toString(), true,null);
        try {
            Country.load(this);
            Country country = null;
            if (TextUtils.isEmpty(GPSManagerUtils.getInstance().getCountryCode(this))) {
                //再根据系统语言
                country = Country.getCountryInfo();
            } else {
                //先根据定位
                country = Country.getLocationCountryInfo(GPSManagerUtils.getInstance().getCountryCode(this));
            }
            if (country != null) {
                viewBinding.regionAccountTv.setText(country.translate);
                viewBinding.regionAccountNumberTv.setText("+" + country.code);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        HdlCommonLogic.getInstance().setSpan(viewBinding.changePhoneVerificationTv, viewBinding.changePhoneVerificationTv.getText().toString(), true, null);
        HdlCommonLogic.getInstance().setSpan(viewBinding.changeMailVerificationTv, viewBinding.changeMailVerificationTv.getText().toString(), true, null);
    }
@@ -108,6 +137,14 @@
            }
        });
        //选择手机区号的
        viewBinding.regionAccountRl.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                selectArea();
            }
        });
        //输入手机号或者邮箱
        viewBinding.changeAccountEt.addTextChangedListener(accountTextWatcher);
        //手机号获取验证码
@@ -189,7 +226,7 @@
                    verification_code = viewBinding.changeMailVerificationEt.getText().toString();
                }
                if (UserConfigManage.getInstance().isBAccount()) {
                    HdlAccountLogic.getInstance().changePassword_B(isPhoneType, account, psw, verification_code, new CloudCallBeak<Boolean>() {
                    HdlAccountLogic.getInstance().changePassword_B(isPhoneType, account, psw, verification_code, viewBinding.regionAccountNumberTv.getText().toString(), new CloudCallBeak<Boolean>() {
                        @Override
                        public void onSuccess(Boolean obj) {
                            HdlThreadLogic.runMainThread(new Runnable() {
@@ -214,7 +251,7 @@
                        }
                    });
                } else {
                    HdlAccountLogic.getInstance().changePassword_C(isPhoneType, account, psw, verification_code, new CloudCallBeak<Boolean>() {
                    HdlAccountLogic.getInstance().changePassword_C(isPhoneType, account, psw, verification_code, viewBinding.regionAccountNumberTv.getText().toString(), new CloudCallBeak<Boolean>() {
                        @Override
                        public void onSuccess(Boolean obj) {
                            HdlThreadLogic.runMainThread(new Runnable() {
@@ -245,6 +282,21 @@
    }
    /**
     * 国家手机号区号弹窗
     */
    private void selectArea() {
        CountryPickerFragment dialog = new CountryPickerFragment(this, new PickCountryCallback() {
            @Override
            public void onPick(Country country) {
                if (country.flag != 0) viewBinding.regionAccountTv.setText(country.translate);
                viewBinding.regionAccountNumberTv.setText("+" + country.code);
            }
        });
        dialog.show();
        dialog.setDialogSize();
    }
    /**
     * 发送验证码指令
     */
    private void sendVerification() {
@@ -266,21 +318,43 @@
                //设置账号所在区域协议及地址
                AppConfigManage.setUserRegionUrl(obj.getRegionUrl());
                HDLLinkPMUser.getInstance().setUserRegionUrl(AppConfigManage.getUserRegionUrl());
                HdlAccountLogic.getInstance().sendVerifyCode(isPhoneType, account, "86", 2, new CloudCallBeak<Boolean>() {
                    @Override
                    public void onSuccess(Boolean obj) {
                        if (isPhoneType) {
                            phoneCountDownTimer.start();
                        } else {
                            mailCountDownTimer.start();
                        }
                    }
                    @Override
                    public void onFailure(HDLException e) {
                        HdlThreadLogic.toast(_mActivity, e);
                    }
                });
                if (UserConfigManage.getInstance().isBAccount()) {
                    //B端发送获取验证码
                    HdlAccountLogic.getInstance().sendVerifyCode_B(isPhoneType, account, viewBinding.regionAccountNumberTv.getText().toString(), VerifyType.VerifyType_FIND_PASSWORD, new CloudCallBeak<Boolean>() {
                        @Override
                        public void onSuccess(Boolean obj) {
                            if (isPhoneType) {
                                phoneCountDownTimer.start();
                            } else {
                                mailCountDownTimer.start();
                            }
                        }
                        @Override
                        public void onFailure(HDLException e) {
                            HdlThreadLogic.toast(_mActivity, e);
                        }
                    });
                } else {
                    //C端发送获取验证码
                    HdlAccountLogic.getInstance().sendVerifyCode_C(isPhoneType, account, viewBinding.regionAccountNumberTv.getText().toString(), VerifyType.VerifyType_2, new CloudCallBeak<Boolean>() {
                        @Override
                        public void onSuccess(Boolean obj) {
                            if (isPhoneType) {
                                phoneCountDownTimer.start();
                            } else {
                                mailCountDownTimer.start();
                            }
                        }
                        @Override
                        public void onFailure(HDLException e) {
                            HdlThreadLogic.toast(_mActivity, e);
                        }
                    });
                }
            }
            @Override
@@ -354,6 +428,8 @@
            viewBinding.changeMailRl.accountTitleTv.setTextColor(getResources().getColor(R.color.text_66FFFFFF));
            viewBinding.changeMailRl.lineV.setVisibility(View.GONE);
            viewBinding.regionAccountRl.setVisibility(View.VISIBLE);
            //输入手机号
            viewBinding.changeAccountEt.setInputType(InputType.TYPE_CLASS_NUMBER);
            viewBinding.changeAccountEt.setHint(R.string.home_login_input_phone);
@@ -383,6 +459,8 @@
            viewBinding.changeMailRl.accountTitleTv.setTextSize(18);
            viewBinding.changeMailRl.accountTitleTv.setTextColor(getResources().getColor(R.color.text_E6FFFFFF));
            viewBinding.changeMailRl.lineV.setVisibility(View.VISIBLE);
            viewBinding.regionAccountRl.setVisibility(View.GONE);
            //输入邮箱
            viewBinding.changeAccountEt.setInputType(InputType.TYPE_CLASS_TEXT);
            viewBinding.changeAccountEt.setHint(R.string.home_login_input_mail);