| | |
| | | |
| | | |
| | | import android.content.Intent; |
| | | import android.content.res.Configuration; |
| | | import android.graphics.Color; |
| | | import android.os.Build; |
| | | import android.os.Bundle; |
| | | import android.os.LocaleList; |
| | | import android.text.Editable; |
| | | import android.text.Spannable; |
| | | import android.text.SpannableStringBuilder; |
| | | import android.text.Spanned; |
| | | import android.text.TextPaint; |
| | | import android.text.TextUtils; |
| | | import android.text.TextWatcher; |
| | |
| | | import android.text.method.PasswordTransformationMethod; |
| | | import android.text.style.ClickableSpan; |
| | | import android.text.style.StyleSpan; |
| | | import android.util.Log; |
| | | import android.util.DisplayMetrics; |
| | | import android.view.View; |
| | | import android.widget.TextView; |
| | | |
| | |
| | | import com.hdl.photovoltaic.HDLApp; |
| | | import com.hdl.photovoltaic.R; |
| | | import com.hdl.photovoltaic.base.CustomBaseActivity; |
| | | import com.hdl.photovoltaic.config.ConstantManage; |
| | | import com.hdl.photovoltaic.config.UserConfigManage; |
| | | import com.hdl.photovoltaic.databinding.ActivityHomeLoginBinding; |
| | | import com.hdl.photovoltaic.listener.LinkCallBack; |
| | | import com.hdl.photovoltaic.other.HdlDeviceLogic; |
| | | import com.hdl.photovoltaic.other.HdlCommonLogic; |
| | | import com.hdl.photovoltaic.other.HdlResidenceLogic; |
| | | import com.hdl.photovoltaic.ui.account.ChangePassword; |
| | | import com.hdl.photovoltaic.ui.account.RegisterAccountActivity; |
| | |
| | | import com.hdl.photovoltaic.ui.me.WebActivity; |
| | | import com.hdl.photovoltaic.utils.AppManagerUtils; |
| | | import com.hdl.photovoltaic.utils.LocalManageUtil; |
| | | import com.hdl.photovoltaic.utils.SharedPreUtils; |
| | | import com.hdl.photovoltaic.utils.TimeUtils; |
| | | import com.hdl.photovoltaic.widget.ConfirmationCancelDialog; |
| | | import com.hdl.photovoltaic.widget.ConfirmationCancelDialog1; |
| | | import com.hdl.photovoltaic.widget.ListDialog; |
| | | import com.hdl.photovoltaic.widget.adapter.ListDialogAdapter; |
| | | import com.hdl.sdk.link.common.exception.HDLLinkException; |
| | | |
| | | import java.util.List; |
| | | import java.util.Locale; |
| | | |
| | | /** |
| | | * 登录的界面 |
| | |
| | | |
| | | @Override |
| | | public Object getContentView() { |
| | | |
| | | setNotificationBarBackgroundColor(CustomColor.blue); |
| | | viewBinding = ActivityHomeLoginBinding.inflate(getLayoutInflater()); |
| | | return viewBinding.getRoot(); |
| | | } |
| | |
| | | @Override |
| | | public void onBindView(Bundle savedInstanceState) { |
| | | setStatusBarTranslucent(); |
| | | getWindow().setNavigationBarColor(getColor(R.color.text_00000000)); |
| | | //初始化 |
| | | initView(); |
| | | //初始化界面监听器 |
| | |
| | | * 初始化UI |
| | | */ |
| | | private void initView() { |
| | | viewBinding.homeLoginCheckBCCl.setSelected(UserConfigManage.getInstance().isBAccount()); |
| | | viewBinding.homeLoginPrivacyCheckIv.setSelected(UserConfigManage.getInstance().isAcceiptPolicy()); |
| | | setStringDifferentColors(viewBinding.homeLoginPrivacyTv); |
| | | if (UserConfigManage.getInstance().getCurrentAppLanguage().equals(LocalManageUtil.zh)) { |
| | | viewBinding.homeLoginLanguageTv.setText("简体中文"); |
| | | } else { |
| | | viewBinding.homeLoginLanguageTv.setText("English"); |
| | | } |
| | | if (UserConfigManage.getInstance().isBAccount()) { |
| | | viewBinding.homeLoginRegisterTv.setVisibility(View.GONE); |
| | | } else { |
| | | viewBinding.homeLoginRegisterTv.setVisibility(View.VISIBLE); |
| | | } |
| | | try { |
| | | viewBinding.homeLoginCheckBCCl.setSelected(UserConfigManage.getInstance().isBAccount()); |
| | | viewBinding.homeLoginPrivacyCheckIv.setSelected(UserConfigManage.getInstance().isAcceiptPolicy()); |
| | | setStringDifferentColors(viewBinding.homeLoginPrivacyTv); |
| | | |
| | | //注册和忘记密码需要加下划线 |
| | | String registerTvStr = viewBinding.homeLoginRegisterTv.getText().toString(); |
| | | String forgetPasswordTvStr = viewBinding.homeLoginForgetPasswordTv.getText().toString(); |
| | | SpannableStringBuilder registerTvStrSpannable = new SpannableStringBuilder(registerTvStr); |
| | | registerTvStrSpannable.setSpan(new ClickableSpan() { |
| | | @Override |
| | | public void onClick(@NonNull View widget) { |
| | | |
| | | } |
| | | |
| | | @Override |
| | | public void updateDrawState(@NonNull TextPaint ds) { |
| | | super.updateDrawState(ds); |
| | | //设置字体颜色 |
| | | ds.setColor(getResources().getColor(R.color.text_E6FFFFFF, null)); |
| | | // 去掉下划线 |
| | | ds.setUnderlineText(true); |
| | | } |
| | | |
| | | |
| | | }, 0, registerTvStr.length(), 0); |
| | | viewBinding.homeLoginRegisterTv.setText(registerTvStrSpannable); |
| | | |
| | | SpannableStringBuilder forgetPasswordTvStrSpannable = new SpannableStringBuilder(forgetPasswordTvStr); |
| | | forgetPasswordTvStrSpannable.setSpan(new ClickableSpan() { |
| | | @Override |
| | | public void onClick(@NonNull View widget) { |
| | | |
| | | } |
| | | |
| | | @Override |
| | | public void updateDrawState(@NonNull TextPaint ds) { |
| | | super.updateDrawState(ds); |
| | | //设置字体颜色 |
| | | ds.setColor(getResources().getColor(R.color.text_E6FFFFFF, null)); |
| | | // 去掉下划线 |
| | | ds.setUnderlineText(true); |
| | | } |
| | | |
| | | |
| | | }, 0, forgetPasswordTvStr.length(), 0); |
| | | viewBinding.homeLoginForgetPasswordTv.setText(forgetPasswordTvStrSpannable); |
| | | |
| | | |
| | | if (UserConfigManage.getInstance().getCurrentAppLanguage().equals(LocalManageUtil.zh)) { |
| | | viewBinding.homeLoginLanguageTv.setText("简体中文"); |
| | | } else { |
| | | viewBinding.homeLoginLanguageTv.setText("English"); |
| | | } |
| | | if (UserConfigManage.getInstance().isBAccount()) { |
| | | viewBinding.homeLoginRegisterTv.setVisibility(View.GONE); |
| | | } else { |
| | | viewBinding.homeLoginRegisterTv.setVisibility(View.VISIBLE); |
| | | } |
| | | // String acc = "18402017839"; |
| | | // String acc = "13375012441"; |
| | | // String acc = "18316672920"; |
| | | // String pws = "123456"; |
| | | //测试用 |
| | | viewBinding.homeLoginAccountEt.setText(UserConfigManage.getInstance().getAccount()); |
| | | //测试用 |
| | | viewBinding.homeLoginAccountEt.setText(UserConfigManage.getInstance().getAccount()); |
| | | // viewBinding.homeLoginPasswordEt.setText(pws); |
| | | checkClearIconShowOrNot(viewBinding.homeLoginAccountEt.getText().toString()); |
| | | isLoginTextViewEnabled(); |
| | | checkClearIconShowOrNot(viewBinding.homeLoginAccountEt.getText().toString()); |
| | | isLoginTextViewEnabled(); |
| | | if (UserConfigManage.getInstance().isBAccount()) { |
| | | boolean is_Authorization = SharedPreUtils.getBoolean("isAuthorization"); |
| | | if (!is_Authorization) { |
| | | //2025年03月03日14:45:17 杨涛要求b端账号需要检验权限 |
| | | HdlThreadLogic.toast(_mActivity, getString(R.string.forbidden_login)); |
| | | } |
| | | } |
| | | |
| | | } catch (Exception ignored) { |
| | | } |
| | | } |
| | | |
| | | /** |
| | |
| | | boolean isSelected = UserConfigManage.getInstance().isAcceiptPolicy(); |
| | | if (!isSelected) { |
| | | //隐私协议提示 |
| | | getDialog(); |
| | | getAcceiptPolicyDialog(); |
| | | return; |
| | | } |
| | | //登录 |
| | | Login(account, password); |
| | | loginAccount(account, password); |
| | | |
| | | |
| | | } |
| | |
| | | * @param account 账号 |
| | | * @param password 密码 |
| | | */ |
| | | private void Login(String account, String password) { |
| | | private void loginAccount(String account, String password) { |
| | | showLoading(getString(R.string.home_login_be_logging_in)); |
| | | HdlAccountLogic.getInstance().regionByAccount(account, new CloudCallBeak<HDLUserRegionBean>() { |
| | | @Override |
| | | public void onSuccess(HDLUserRegionBean obj) { |
| | | //开发环境 |
| | | // String APP_REGIONURL_TEST = "http://47.114.131.143:27199"; |
| | | // AppConfigManage.setUserRegionUrl(APP_REGIONURL_TEST); |
| | | // String APP_REGIONURL_TEST = "http://47.114.131.143:27197"; |
| | | // AppConfigManage.setUserRegionUrl(APP_REGIONURL_TEST); |
| | | //初始化服务域名 |
| | | AppConfigManage.setUserRegionUrl(obj.getRegionUrl()); |
| | | HDLLinkPMUser.getInstance().setUserRegionUrl(AppConfigManage.getUserRegionUrl()); |
| | |
| | | @Override |
| | | public void onSuccess(HDLLoginBean obj) { |
| | | if (UserConfigManage.getInstance().isBAccount()) { |
| | | restoreButtonStyleToInitializeState(); |
| | | //安装商跳转界面 |
| | | startActivity(BPowerStationActivity.class); |
| | | hideLoading(); |
| | | finish(); |
| | | HdlAccountLogic.getInstance().getCompanyParterMenu_B(new CloudCallBeak<Boolean>() { |
| | | @Override |
| | | public void onSuccess(Boolean isBoolean) { |
| | | SharedPreUtils.putBoolean("isAuthorization", isBoolean); |
| | | if (isBoolean) { |
| | | //2025年03月03日14:45:17 杨涛要求b端账号需要检验权限 |
| | | restoreButtonStyleToInitializeState(); |
| | | //安装商跳转界面 |
| | | startActivity(BPowerStationActivity.class); |
| | | hideLoading(); |
| | | finish(); |
| | | } else { |
| | | hideLoading(); |
| | | HdlThreadLogic.toast(_mActivity, getString(R.string.forbidden_login)); |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | public void onFailure(HDLException e) { |
| | | SharedPreUtils.putBoolean("isAuthorization", false); |
| | | hideLoading(); |
| | | HdlThreadLogic.toast(_mActivity, e.getMsg() + "(" + e.getCode() + ")"); |
| | | } |
| | | }); |
| | | |
| | | } else { |
| | | //C端需要先获取电站列表; |
| | | HdlResidenceLogic.getInstance().getResidenceIdList("", "", new CloudCallBeak<List<HouseIdBean>>() { |
| | |
| | | String account = viewBinding.homeLoginAccountEt.getText().toString().replace(" ", ""); |
| | | String password = viewBinding.homeLoginPasswordEt.getText().toString().replace(" ", ""); |
| | | boolean isEnabled = account.length() > 0 && password.length() > 0; |
| | | if (isEnabled) { |
| | | viewBinding.homeLoginTv.setTextColor(getColor(R.color.text_E6FFFFFF)); |
| | | } else { |
| | | viewBinding.homeLoginTv.setTextColor(getColor(R.color.text_66FFFFFF)); |
| | | } |
| | | viewBinding.homeLoginTv.setEnabled(isEnabled); |
| | | if (password.length() < 6 || password.length() > 16) { |
| | | return; |
| | | } |
| | | //符合密码规则后隐藏错误提示; |
| | | viewBinding.homeLoginLine2V.setBackgroundColor(getColor(R.color.text_E1E1E1)); |
| | | // viewBinding.homeLoginLine2V.setBackgroundColor(getColor(R.color.text_FF5A5A5A)); |
| | | viewBinding.homeLoginPasswordTextErrorTv.setText(""); |
| | | |
| | | } |
| | |
| | | */ |
| | | private boolean isLocalCheckAccountAndPassword(String account, String password) { |
| | | if (TextUtils.isEmpty(account)) { |
| | | viewBinding.homeLoginLine1V.setBackgroundColor(getColor(R.color.text_D34545)); |
| | | // viewBinding.homeLoginLine1V.setBackgroundColor(getColor(R.color.text_D34545)); |
| | | viewBinding.homeLoginAccountTextErrorTv.setText(R.string.home_login_error_account_null); |
| | | return false; |
| | | } |
| | | if (TextUtils.isEmpty(password)) { |
| | | viewBinding.homeLoginLine2V.setBackgroundColor(getColor(R.color.text_D34545)); |
| | | // viewBinding.homeLoginLine2V.setBackgroundColor(getColor(R.color.text_D34545)); |
| | | viewBinding.homeLoginPasswordTextErrorTv.setText(R.string.home_login_error_password_null); |
| | | return false; |
| | | } |
| | | |
| | | |
| | | if (password.length() < 6 || password.length() > 16) { |
| | | viewBinding.homeLoginLine2V.setBackgroundColor(getColor(R.color.text_D34545)); |
| | | // viewBinding.homeLoginLine2V.setBackgroundColor(getColor(R.color.text_D34545)); |
| | | viewBinding.homeLoginPasswordTextErrorTv.setText(R.string.home_login_error_6_16_str); |
| | | return false; |
| | | } |
| | |
| | | HdlThreadLogic.runMainThread(new Runnable() { |
| | | @Override |
| | | public void run() { |
| | | viewBinding.homeLoginLine1V.setBackgroundColor(getColor(R.color.text_E1E1E1)); |
| | | // viewBinding.homeLoginLine1V.setBackgroundColor(getColor(R.color.text_E1E1E1)); |
| | | viewBinding.homeLoginAccountTextErrorTv.setText(""); |
| | | viewBinding.homeLoginLine2V.setBackgroundColor(getColor(R.color.text_E1E1E1)); |
| | | // viewBinding.homeLoginLine2V.setBackgroundColor(getColor(R.color.text_E1E1E1)); |
| | | viewBinding.homeLoginPasswordTextErrorTv.setText(""); |
| | | } |
| | | }, null, null); |
| | |
| | | public void updateDrawState(@NonNull TextPaint ds) { |
| | | super.updateDrawState(ds); |
| | | //设置字体颜色 |
| | | ds.setColor(getResources().getColor(R.color.text_245EC3, null)); |
| | | ds.setColor(getResources().getColor(R.color.text_E6FFFFFF, null)); |
| | | // 去掉下划线 |
| | | ds.setUnderlineText(false); |
| | | ds.setUnderlineText(!UserConfigManage.getInstance().isZh()); |
| | | } |
| | | |
| | | |
| | | }, startIndex1, endIndex1, 0); |
| | | spannable.setSpan(new StyleSpan(android.graphics.Typeface.BOLD), startIndex1, endIndex1, 0); |
| | | // spannable.setSpan(new StyleSpan(android.graphics.Typeface.BOLD), startIndex1, endIndex1, 0); |
| | | |
| | | spannable.setSpan(new ClickableSpan() { |
| | | @Override |
| | |
| | | public void updateDrawState(@NonNull TextPaint ds) { |
| | | super.updateDrawState(ds); |
| | | //设置字体颜色 |
| | | ds.setColor(getResources().getColor(R.color.text_245EC3, null)); |
| | | ds.setColor(getResources().getColor(R.color.text_E6FFFFFF, null)); |
| | | // 去掉下划线 |
| | | ds.setUnderlineText(false); |
| | | ds.setUnderlineText(!UserConfigManage.getInstance().isZh()); |
| | | } |
| | | |
| | | |
| | | }, startIndex2, endIndex2, 0); |
| | | spannable.setSpan(new StyleSpan(android.graphics.Typeface.BOLD), startIndex2, endIndex2, 0); |
| | | // spannable.setSpan(new StyleSpan(android.graphics.Typeface.BOLD), startIndex2, endIndex2, 0); |
| | | |
| | | |
| | | } |
| | | textView.setText(spannable); |
| | | //中途遇到点击后字体显示高亮,取消高亮 |
| | | textView.setHighlightColor(getResources().getColor(R.color.text_00000000, null)); |
| | | textView.setHighlightColor(getResources().getColor(R.color.text_66FFFFFF, null)); |
| | | //最后设置可点击,必须实现,否则只能显示样式,无法实现点击效果 |
| | | textView.setMovementMethod(LinkMovementMethod.getInstance()); |
| | | } catch (Exception ignored) { |
| | |
| | | /** |
| | | * 弹窗 |
| | | */ |
| | | private void getDialog() { |
| | | private void getAcceiptPolicyDialog() { |
| | | |
| | | ConfirmationCancelDialog confirmationCancelDialog = new ConfirmationCancelDialog(_mActivity); |
| | | confirmationCancelDialog.show(); |
| | |
| | | confirmationCancelDialog.dismiss(); |
| | | String account = viewBinding.homeLoginAccountEt.getText().toString().replace(" ", ""); |
| | | String password = viewBinding.homeLoginPasswordEt.getText().toString().replace(" ", ""); |
| | | Login(account, password); |
| | | loginAccount(account, password); |
| | | } |
| | | }); |
| | | confirmationCancelDialog.setNoOnclickListener(new ConfirmationCancelDialog.onNoOnclickListener() { |