wjc
2025-05-07 b9cc7390e8e8ce64c41c26fb369c98ce669d660c
app/src/main/java/com/hdl/photovoltaic/ui/me/BindPhoneActivity.java
@@ -3,7 +3,9 @@
import android.os.Bundle;
import android.os.CountDownTimer;
import android.text.Editable;
import android.text.TextUtils;
import android.text.TextWatcher;
import android.view.View;
import com.hdl.linkpm.sdk.core.exception.HDLException;
@@ -11,10 +13,13 @@
import com.hdl.photovoltaic.base.CustomBaseActivity;
import com.hdl.photovoltaic.config.UserConfigManage;
import com.hdl.photovoltaic.databinding.ActivityBindPhoneBinding;
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.HdlLogLogic;
import com.hdl.photovoltaic.other.HdlThreadLogic;
import com.hdl.photovoltaic.utils.GPSManagerUtils;
import com.sahooz.library.countrypicker.Country;
import com.sahooz.library.countrypicker.CountryPickerFragment;
import com.sahooz.library.countrypicker.PickCountryCallback;
@@ -34,8 +39,8 @@
    @Override
    public void onBindView(Bundle savedInstanceState) {
        setNotificationBarBackgroundColor(CustomColor.white);
        setStatusBarTextColor();
        setStatusBarTranslucent();
        getWindow().setNavigationBarColor(getColor(R.color.text_FF000000));
        //初始化
        initView();
        //初始化界面监听器
@@ -45,7 +50,7 @@
    private void initEvent() {
        viewBinding.toolbarTopFragmentHouseListRl.topBackBtn.setOnClickListener(new View.OnClickListener() {
        viewBinding.toolbarTopRl.topBackLl.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                setResult(20);
@@ -72,17 +77,23 @@
                viewBinding.bindPhoneEt.setText("");
            }
        });
        //输入账号
        viewBinding.bindPhoneEt.addTextChangedListener(accountTextWatcher);
        //输入验证码
        viewBinding.changePhoneVerificationEt.addTextChangedListener(verificationCodeTextWatcher);
        viewBinding.bindPhoneTv.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (isLocalCheck()) {
                if (isEnabled()) {
                    String phoneStr = viewBinding.bindPhoneEt.getText().toString();
                    String verificationStr = viewBinding.changePhoneVerificationEt.getText().toString();
                    HdlAccountLogic.getInstance().bindingAccount_C(phoneStr, "", verificationStr, new CloudCallBeak<Boolean>() {
                    HdlAccountLogic.getInstance().bindingAccount_C(phoneStr, "", verificationStr, viewBinding.bindAreaNumberTv.getText().toString(), new CloudCallBeak<Boolean>() {
                        @Override
                        public void onSuccess(Boolean obj) {
                            UserConfigManage.getInstance().setBingPhone(phoneStr);
                            UserConfigManage.getInstance().Save();
                            setResult(20);
                            finish();
                        }
@@ -98,15 +109,34 @@
    }
    private void initView() {
        viewBinding.toolbarTopFragmentHouseListRl.topTitleTv.setText(R.string.set_change_bind_phone_number);
        viewBinding.toolbarTopFragmentHouseListRl.topTitleTv.setTextColor(getResources().getColor(R.color.text_030D1C, null));
        viewBinding.toolbarTopFragmentHouseListRl.topBackBtn.setVisibility(View.VISIBLE);
        viewBinding.toolbarTopFragmentHouseListRl.topBarView.setBackgroundColor(getResources().getColor(R.color.text_FFFFFFFF, null));
        if (UserConfigManage.getInstance().isZh()) {
            viewBinding.bindAreaTv.setText(getText(R.string.home_chinese_mainland));
            viewBinding.bindAreaNumberTv.setText("+86");
        } else {
            viewBinding.bindAreaTv.setText(getText(R.string.iraq));
            viewBinding.bindAreaNumberTv.setText("+964");
        }
        viewBinding.toolbarTopRl.topTitleTv.setText(R.string.set_change_bind_phone_number);
        viewBinding.toolbarTopRl.topBackLl.setVisibility(View.VISIBLE);
        checkClearIconShowOrNot(viewBinding.bindPhoneEt.getText().toString());
        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.bindAreaTv.setText(country.translate);
                viewBinding.bindAreaNumberTv.setText("+" + country.code);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        HdlCommonLogic.getInstance().setSpan(viewBinding.bindPhoneVerificationTv, viewBinding.bindPhoneVerificationTv.getText().toString(), true, null);
    }
    /**
@@ -117,8 +147,9 @@
            @Override
            public void onPick(Country country) {
                if (country.flag != 0)
                    viewBinding.bindAreaTv.setText(country.name);
                viewBinding.bindAreaNumberTv.setText("+" + country.code);
                    viewBinding.bindAreaTv.setText(country.translate);
                String code = "+" + country.code;
                viewBinding.bindAreaNumberTv.setText(code);
            }
        });
        dialog.show();
@@ -135,7 +166,7 @@
            HdlThreadLogic.tipFlashingBox(this, false, getString(R.string.home_login_phone_null), -1);
            return;
        }
        HdlAccountLogic.getInstance().sendVerifyCode(true, account, viewBinding.bindAreaNumberTv.getText().toString(), 3, new CloudCallBeak<Boolean>() {
        HdlAccountLogic.getInstance().sendVerifyCode_C(true, account, viewBinding.bindAreaNumberTv.getText().toString(), VerifyType.VerifyType_3, new CloudCallBeak<Boolean>() {
            @Override
            public void onSuccess(Boolean obj) {
                countDownTimer.start();
@@ -159,7 +190,6 @@
            long time = (millisUntilFinished / 1000);
            String str = time + "s" + getString(R.string.home_login_psw_verification_repeater);
            viewBinding.bindPhoneVerificationTv.setText(str);
            viewBinding.bindPhoneVerificationTv.setTextColor(getResources().getColor(R.color.text_25000000, null));
            viewBinding.bindPhoneVerificationTv.setEnabled(false);
        }
@@ -167,12 +197,44 @@
        @Override
        public void onFinish() {
            viewBinding.bindPhoneVerificationTv.setText(getString(R.string.home_login_verification_regain));
            viewBinding.bindPhoneVerificationTv.setTextColor(getResources().getColor(R.color.text_245EC3, null));
            viewBinding.bindPhoneVerificationTv.setEnabled(true);
        }
    };
    /**
     * 检测清除图标是否显示
     */
    private void checkClearIconShowOrNot(String s) {
        if (s.replace(" ", "").length() > 0) {
            if (viewBinding.bindPhoneClearIv.getVisibility() == View.GONE) {
                viewBinding.bindPhoneClearIv.setVisibility(View.VISIBLE);
            }
        } else {
            if (viewBinding.bindPhoneClearIv.getVisibility() == View.VISIBLE) {
                viewBinding.bindPhoneClearIv.setVisibility(View.GONE);
            }
        }
    }
    /**
     * 校验确认按钮是否启用
     */
    private boolean isEnabled() {
        String account = viewBinding.bindPhoneEt.getText().toString().replace(" ", "");
        String verificationCode = viewBinding.changePhoneVerificationEt.getText().toString().replace(" ", "");
        boolean isEnabled = account.length() > 0 && verificationCode.length() > 0;
        if (isEnabled) {
            viewBinding.bindPhoneTv.setTextColor(getColor(R.color.text_FFACACAC));
        } else {
            viewBinding.bindPhoneTv.setTextColor(getColor(R.color.text_FF5B5B5B));
        }
        viewBinding.bindPhoneTv.setEnabled(isEnabled);
        return isEnabled;
    }
    /**
     * 本地校验
@@ -188,10 +250,48 @@
            HdlThreadLogic.tipFlashingBox(this, false, getString(R.string.home_login_null_verification_code), -1);
            return false;
        }
        return true;
    }
    /**
     * 输入账号
     */
    private final TextWatcher accountTextWatcher = 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) {
            checkClearIconShowOrNot(s.toString());
            isEnabled();
        }
    };
    /**
     * 输入验证码
     */
    private final TextWatcher verificationCodeTextWatcher = 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) {
            isEnabled();
        }
    };
    @Override
    protected void onDestroy() {
@@ -201,6 +301,8 @@
            countDownTimer.cancel();
            countDownTimer = null;
        }
        viewBinding.bindPhoneEt.removeTextChangedListener(accountTextWatcher);
        viewBinding.changePhoneVerificationEt.removeTextChangedListener(verificationCodeTextWatcher);
    }