| | |
| | | package com.hdl.photovoltaic.ui.account; |
| | | |
| | | |
| | | import android.Manifest; |
| | | import android.content.Context; |
| | | import android.content.pm.PackageManager; |
| | | import android.os.Bundle; |
| | | import android.os.CountDownTimer; |
| | | import android.telephony.TelephonyManager; |
| | | import android.text.Editable; |
| | | import android.text.InputType; |
| | | import android.text.TextUtils; |
| | |
| | | |
| | | import androidx.appcompat.content.res.AppCompatResources; |
| | | import androidx.constraintlayout.widget.ConstraintSet; |
| | | import androidx.core.content.ContextCompat; |
| | | |
| | | import com.hdl.linkpm.sdk.core.exception.HDLException; |
| | | import com.hdl.linkpm.sdk.user.HDLLinkPMUser; |
| | |
| | | import com.hdl.photovoltaic.other.HdlLogLogic; |
| | | import com.hdl.photovoltaic.other.HdlThreadLogic; |
| | | import com.hdl.photovoltaic.utils.KeyboardStateObserverUtils; |
| | | import com.hdl.photovoltaic.utils.LocalManageUtil; |
| | | import com.hdl.photovoltaic.widget.ConfirmationCancelDialog; |
| | | import com.hdl.photovoltaic.widget.ConfirmationTipDialog; |
| | | import com.hdl.photovoltaic.widget.ListDialog; |
| | | import com.hdl.sdk.link.common.utils.ThreadToolUtils; |
| | | import com.hdl.photovoltaic.widget.ListStaticDialog; |
| | | import com.sahooz.library.countrypicker.Country; |
| | | import com.sahooz.library.countrypicker.CountryPickerFragment; |
| | | import com.sahooz.library.countrypicker.PickCountryCallback; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | | import java.util.Locale; |
| | | |
| | | /** |
| | | * 注册账号界面 |
| | |
| | | |
| | | |
| | | private void initView() { |
| | | switchPhoneOrMailView(); |
| | | switchPhoneOrEmailStyleView(); |
| | | } |
| | | |
| | | private void initEvent() { |
| | |
| | | finish(); |
| | | } |
| | | }); |
| | | //服务器选择 |
| | | viewBinding.registerRegionServerRl.setOnClickListener(new View.OnClickListener() { |
| | | @Override |
| | | public void onClick(View v) { |
| | | ListDialog listDialog = new ListDialog(_mActivity); |
| | | ListStaticDialog listDialog = new ListStaticDialog(_mActivity); |
| | | listDialog.show(); |
| | | listDialog.setOnHDLChinaOnListener(new ListDialog.onHDLChinaListener() { |
| | | listDialog.setOnHDLChinaOnListener(new ListStaticDialog.onHDLChinaListener() { |
| | | @Override |
| | | public void HDLChina() { |
| | | mUrl = "https://china-gateway.hdlcontrol.com"; |
| | | viewBinding.regionTv.setText(listDialog.geHDLChinaText()); |
| | | listDialog.dismiss(); |
| | | |
| | | } |
| | | }); |
| | | listDialog.setOnHDLBahrainListener(new ListDialog.onHDLBahrainListener() { |
| | | listDialog.setOnHDLBahrainListener(new ListStaticDialog.onHDLBahrainListener() { |
| | | @Override |
| | | public void HDLBahrain() { |
| | | mUrl = "https://bahrain-gateway.hdlcontrol.com"; |
| | | viewBinding.regionTv.setText(listDialog.getHDLBahrainText()); |
| | | listDialog.dismiss(); |
| | | } |
| | | }); |
| | | } |
| | | }); |
| | | //手机区号选择 |
| | | viewBinding.registerRegionAccountRl.setOnClickListener(new View.OnClickListener() { |
| | | @Override |
| | | public void onClick(View v) { |
| | | selectArea(); |
| | | } |
| | | }); |
| | | |
| | | //切换手机号 |
| | | viewBinding.registerPhoneTitleIc.underlineCl.setOnClickListener(new View.OnClickListener() { |
| | | @Override |
| | | public void onClick(View v) { |
| | | |
| | | isPhoneType = true; |
| | | switchPhoneOrMailView(); |
| | | switchPhoneOrEmailStyleView(); |
| | | } |
| | | }); |
| | | //切换邮箱 |
| | |
| | | @Override |
| | | public void onClick(View v) { |
| | | isPhoneType = false; |
| | | switchPhoneOrMailView(); |
| | | switchPhoneOrEmailStyleView(); |
| | | } |
| | | }); |
| | | |
| | | //输入密码 |
| | | viewBinding.registerPswEt.addTextChangedListener(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) { |
| | | isCompleteEnabled(); |
| | | } |
| | | |
| | | @Override |
| | | public void afterTextChanged(Editable s) { |
| | | |
| | | } |
| | | }); |
| | | viewBinding.registerPswEt.addTextChangedListener(changePswTextWatcher); |
| | | //密码显示或者隐藏 |
| | | viewBinding.registerPswHideIv.setOnClickListener(new View.OnClickListener() { |
| | | @Override |
| | |
| | | } |
| | | }); |
| | | //输入确认密码 |
| | | viewBinding.registerConfirmPswEt.addTextChangedListener(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) { |
| | | isCompleteEnabled(); |
| | | } |
| | | |
| | | @Override |
| | | public void afterTextChanged(Editable s) { |
| | | |
| | | } |
| | | }); |
| | | viewBinding.registerConfirmPswEt.addTextChangedListener(changeConfirmPswTextWatcher); |
| | | //确认密码显示或者隐藏 |
| | | viewBinding.registerConfirmPswHideIv.setOnClickListener(new View.OnClickListener() { |
| | | @Override |
| | |
| | | } |
| | | }); |
| | | //输入手机号或者邮箱 |
| | | viewBinding.registerAccountEt.addTextChangedListener(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) { |
| | | isCompleteEnabled(); |
| | | } |
| | | |
| | | @Override |
| | | public void afterTextChanged(Editable s) { |
| | | |
| | | } |
| | | }); |
| | | viewBinding.registerAccountEt.addTextChangedListener(accountTextWatcher); |
| | | //手机号获取验证码 |
| | | viewBinding.registerPhoneVerificationTv.setOnClickListener(new View.OnClickListener() { |
| | | @Override |
| | |
| | | } |
| | | }); |
| | | //输入手机验证码 |
| | | viewBinding.registerPhoneVerificationEt.addTextChangedListener(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) { |
| | | isCompleteEnabled(); |
| | | } |
| | | |
| | | @Override |
| | | public void afterTextChanged(Editable s) { |
| | | |
| | | } |
| | | }); |
| | | viewBinding.registerPhoneVerificationEt.addTextChangedListener(phoneVerificationTextWatcher); |
| | | //邮箱获取验证码 |
| | | viewBinding.registerMailVerificationTv.setOnClickListener(new View.OnClickListener() { |
| | | @Override |
| | |
| | | } |
| | | }); |
| | | //输入邮箱验证码 |
| | | viewBinding.registerMailVerificationEt.addTextChangedListener(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) { |
| | | isCompleteEnabled(); |
| | | } |
| | | |
| | | @Override |
| | | public void afterTextChanged(Editable s) { |
| | | |
| | | } |
| | | }); |
| | | viewBinding.registerMailVerificationEt.addTextChangedListener(mailVerificationTextWatcher); |
| | | //注册账号 |
| | | viewBinding.registerCompleteTv.setOnClickListener(new View.OnClickListener() { |
| | | @Override |
| | |
| | | } else { |
| | | verification_code = viewBinding.registerMailVerificationEt.getText().toString(); |
| | | } |
| | | HdlAccountLogic.getInstance().registerAccount(isPhoneType, account, psw, verification_code, new CloudCallBeak<Boolean>() { |
| | | HdlAccountLogic.getInstance().registerAccount_C(isPhoneType, account, psw, verification_code, new CloudCallBeak<Boolean>() { |
| | | @Override |
| | | public void onSuccess(Boolean obj) { |
| | | HdlThreadLogic.runMainThread(new Runnable() { |
| | |
| | | |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 发送验证码指令 |
| | | */ |
| | |
| | | HdlAccountLogic.getInstance().regionByAccount(account, new CloudCallBeak<HDLUserRegionBean>() { |
| | | @Override |
| | | public void onSuccess(HDLUserRegionBean obj) { |
| | | //发送消息验证码 |
| | | HdlThreadLogic.toast(RegisterAccountActivity.this, getString(R.string.home_login_already_exists)); |
| | | HdlLogLogic.print("regionByAccount onSuccess==" + obj); |
| | | HdlLogLogic.print("获取账号区域信息===" + obj, false); |
| | | } |
| | | |
| | | @Override |
| | |
| | | mUrl = "https://test-gz.hdlcontrol.com"; |
| | | } |
| | | HDLLinkPMUser.getInstance().setUserRegionUrl(mUrl); |
| | | HdlAccountLogic.getInstance().sendVerifyCode(isPhoneType, account, "86", 1, new CloudCallBeak<Boolean>() { |
| | | HdlAccountLogic.getInstance().sendVerifyCode(isPhoneType, account, viewBinding.regionAccountNumberTv.getText().toString(), 1, new CloudCallBeak<Boolean>() { |
| | | @Override |
| | | public void onSuccess(Boolean obj) { |
| | | if (isPhoneType) { |
| | |
| | | |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 初始化手机号计时器 |
| | | */ |
| | |
| | | long time = (millisUntilFinished / 1000); |
| | | String str = time + "s" + getString(R.string.home_login_psw_verification_repeater); |
| | | viewBinding.registerPhoneVerificationTv.setText(str); |
| | | viewBinding.registerPhoneVerificationTv.setTextColor(getResources().getColor(R.color.text_25000000)); |
| | | viewBinding.registerPhoneVerificationTv.setTextColor(getResources().getColor(R.color.text_25000000, null)); |
| | | viewBinding.registerPhoneVerificationTv.setEnabled(false); |
| | | |
| | | } |
| | |
| | | @Override |
| | | public void onFinish() { |
| | | viewBinding.registerPhoneVerificationTv.setText(getString(R.string.home_login_verification_regain)); |
| | | viewBinding.registerPhoneVerificationTv.setTextColor(getResources().getColor(R.color.text_245EC3)); |
| | | viewBinding.registerPhoneVerificationTv.setTextColor(getResources().getColor(R.color.text_245EC3, null)); |
| | | viewBinding.registerPhoneVerificationTv.setEnabled(true); |
| | | |
| | | |
| | |
| | | String str = time + "s" + getString(R.string.home_login_psw_verification_repeater); |
| | | |
| | | viewBinding.registerMailVerificationTv.setText(str); |
| | | viewBinding.registerMailVerificationTv.setTextColor(getResources().getColor(R.color.text_25000000)); |
| | | viewBinding.registerMailVerificationTv.setTextColor(getResources().getColor(R.color.text_25000000, null)); |
| | | viewBinding.registerMailVerificationTv.setEnabled(false); |
| | | |
| | | } |
| | |
| | | @Override |
| | | public void onFinish() { |
| | | viewBinding.registerMailVerificationTv.setText(getString(R.string.home_login_verification_regain)); |
| | | viewBinding.registerMailVerificationTv.setTextColor(getResources().getColor(R.color.text_245EC3)); |
| | | viewBinding.registerMailVerificationTv.setTextColor(getResources().getColor(R.color.text_245EC3, null)); |
| | | viewBinding.registerMailVerificationTv.setEnabled(true); |
| | | |
| | | } |
| | | }; |
| | | |
| | | /** |
| | | * 国家手机号区号弹窗 |
| | | */ |
| | | private void selectArea() { |
| | | CountryPickerFragment dialog = new CountryPickerFragment(this, new PickCountryCallback() { |
| | | @Override |
| | | public void onPick(Country country) { |
| | | if (country.flag != 0) |
| | | viewBinding.regionAccountTv.setText(country.name); |
| | | viewBinding.regionAccountNumberTv.setText("+" + country.code); |
| | | } |
| | | }); |
| | | dialog.show(); |
| | | dialog.setDialogSize(); |
| | | } |
| | | |
| | | /** |
| | | * 切换手机号或者邮箱的样式 |
| | | */ |
| | | private void switchPhoneOrMailView() { |
| | | private void switchPhoneOrEmailStyleView() { |
| | | if (isPhoneType) { |
| | | //手机号 |
| | | viewBinding.registerPhoneTitleIc.accountTitleTv.setText(R.string.home_login_手机号); |
| | | viewBinding.registerPhoneTitleIc.accountTitleTv.setText(R.string.home_login_phone); |
| | | viewBinding.registerPhoneTitleIc.accountTitleTv.setTextSize(20); |
| | | viewBinding.registerPhoneTitleIc.accountTitleTv.setTextColor(getResources().getColor(R.color.text_90000000)); |
| | | viewBinding.registerPhoneTitleIc.accountTitleTv.setTextColor(getResources().getColor(R.color.text_90000000, null)); |
| | | viewBinding.registerPhoneTitleIc.lineV.setVisibility(View.VISIBLE); |
| | | |
| | | viewBinding.registerMailTitleIc.accountTitleTv.setText(R.string.home_login_邮箱); |
| | | viewBinding.registerMailTitleIc.accountTitleTv.setText(R.string.home_login_email); |
| | | viewBinding.registerMailTitleIc.accountTitleTv.setTextSize(16); |
| | | viewBinding.registerMailTitleIc.accountTitleTv.setTextColor(getResources().getColor(R.color.text_40000000)); |
| | | viewBinding.registerMailTitleIc.accountTitleTv.setTextColor(getResources().getColor(R.color.text_40000000, null)); |
| | | viewBinding.registerMailTitleIc.lineV.setVisibility(View.GONE); |
| | | |
| | | //输入手机号 |
| | | viewBinding.registerAccountEt.setInputType(InputType.TYPE_CLASS_NUMBER); |
| | | viewBinding.registerAccountEt.setHint(R.string.home_login_请输入手机号); |
| | | viewBinding.registerAccountEt.setHint(R.string.home_login_input_phone); |
| | | //显示手机号验证码,隐藏邮箱验证码, |
| | | viewBinding.registerPhoneVerificationCodeRl.setVisibility(View.VISIBLE); |
| | | viewBinding.registerMailVerificationCodeRl.setVisibility(View.GONE); |
| | |
| | | |
| | | } else { |
| | | //邮箱 |
| | | viewBinding.registerPhoneTitleIc.accountTitleTv.setText(R.string.home_login_手机号); |
| | | viewBinding.registerPhoneTitleIc.accountTitleTv.setText(R.string.home_login_phone); |
| | | viewBinding.registerPhoneTitleIc.accountTitleTv.setTextSize(16); |
| | | viewBinding.registerPhoneTitleIc.accountTitleTv.setTextColor(getResources().getColor(R.color.text_40000000)); |
| | | viewBinding.registerPhoneTitleIc.accountTitleTv.setTextColor(getResources().getColor(R.color.text_40000000, null)); |
| | | viewBinding.registerPhoneTitleIc.lineV.setVisibility(View.GONE); |
| | | |
| | | viewBinding.registerMailTitleIc.accountTitleTv.setText(R.string.home_login_邮箱); |
| | | viewBinding.registerMailTitleIc.accountTitleTv.setText(R.string.home_login_email); |
| | | viewBinding.registerMailTitleIc.accountTitleTv.setTextSize(20); |
| | | viewBinding.registerMailTitleIc.accountTitleTv.setTextColor(getResources().getColor(R.color.text_90000000)); |
| | | viewBinding.registerMailTitleIc.accountTitleTv.setTextColor(getResources().getColor(R.color.text_90000000, null)); |
| | | viewBinding.registerMailTitleIc.lineV.setVisibility(View.VISIBLE); |
| | | //输入邮箱 |
| | | viewBinding.registerAccountEt.setInputType(InputType.TYPE_CLASS_TEXT); |
| | |
| | | |
| | | } |
| | | isCompleteEnabled(); |
| | | try { |
| | | Country.load(this); |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | } |
| | | |
| | | } |
| | | |
| | |
| | | @Override |
| | | protected void onDestroy() { |
| | | super.onDestroy(); |
| | | Country.destroy(); |
| | | if (phoneCountDownTimer != null) { |
| | | phoneCountDownTimer.cancel(); |
| | | phoneCountDownTimer = null; |
| | |
| | | mailCountDownTimer.cancel(); |
| | | mailCountDownTimer = null; |
| | | } |
| | | viewBinding.registerAccountEt.removeTextChangedListener(accountTextWatcher); |
| | | viewBinding.registerPhoneVerificationEt.removeTextChangedListener(phoneVerificationTextWatcher); |
| | | viewBinding.registerMailVerificationEt.removeTextChangedListener(mailVerificationTextWatcher); |
| | | viewBinding.registerPswEt.removeTextChangedListener(changePswTextWatcher); |
| | | viewBinding.registerConfirmPswEt.removeTextChangedListener(changeConfirmPswTextWatcher); |
| | | } |
| | | |
| | | /** |
| | | * 输入手机号或者邮箱 |
| | | */ |
| | | 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) { |
| | | isCompleteEnabled(); |
| | | } |
| | | |
| | | @Override |
| | | public void afterTextChanged(Editable s) { |
| | | |
| | | } |
| | | }; |
| | | /** |
| | | * 输入手机验证码 |
| | | */ |
| | | private final TextWatcher phoneVerificationTextWatcher = 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) { |
| | | isCompleteEnabled(); |
| | | } |
| | | |
| | | @Override |
| | | public void afterTextChanged(Editable s) { |
| | | |
| | | } |
| | | }; |
| | | |
| | | /** |
| | | * 邮箱获取验证码 |
| | | */ |
| | | private final TextWatcher mailVerificationTextWatcher = 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) { |
| | | isCompleteEnabled(); |
| | | } |
| | | |
| | | @Override |
| | | public void afterTextChanged(Editable s) { |
| | | |
| | | } |
| | | }; |
| | | |
| | | /** |
| | | * 输入密码 |
| | | */ |
| | | private final TextWatcher changePswTextWatcher = 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) { |
| | | isCompleteEnabled(); |
| | | } |
| | | |
| | | @Override |
| | | public void afterTextChanged(Editable s) { |
| | | |
| | | } |
| | | }; |
| | | /** |
| | | * 输入确认密码 |
| | | */ |
| | | private final TextWatcher changeConfirmPswTextWatcher = 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) { |
| | | isCompleteEnabled(); |
| | | } |
| | | |
| | | @Override |
| | | public void afterTextChanged(Editable s) { |
| | | |
| | | } |
| | | }; |
| | | |
| | | |
| | | } |