From 3f41182984d69d7fae703776edd1591f48dff93f Mon Sep 17 00:00:00 2001 From: mac <user@users-MacBook-Pro.local> Date: 星期三, 22 十一月 2023 17:13:05 +0800 Subject: [PATCH] 2023年11月22日17:12:40 --- app/src/main/java/com/hdl/photovoltaic/ui/HomeLoginActivity.java | 268 +++++++++++++++++++++++++++++++++++++++------------- 1 files changed, 199 insertions(+), 69 deletions(-) diff --git a/app/src/main/java/com/hdl/photovoltaic/ui/HomeLoginActivity.java b/app/src/main/java/com/hdl/photovoltaic/ui/HomeLoginActivity.java index 18a3270..de54baa 100644 --- a/app/src/main/java/com/hdl/photovoltaic/ui/HomeLoginActivity.java +++ b/app/src/main/java/com/hdl/photovoltaic/ui/HomeLoginActivity.java @@ -4,18 +4,19 @@ import android.content.Intent; import android.os.Bundle; import android.text.Editable; -import android.text.Spannable; import android.text.SpannableStringBuilder; +import android.text.TextPaint; import android.text.TextUtils; import android.text.TextWatcher; import android.text.method.HideReturnsTransformationMethod; +import android.text.method.LinkMovementMethod; import android.text.method.PasswordTransformationMethod; -import android.text.style.ForegroundColorSpan; -import android.util.Log; +import android.text.style.ClickableSpan; import android.view.View; import android.widget.TextView; +import androidx.annotation.NonNull; import androidx.appcompat.content.res.AppCompatResources; import com.hdl.linkpm.sdk.core.exception.HDLException; @@ -26,7 +27,6 @@ import com.hdl.photovoltaic.R; import com.hdl.photovoltaic.base.CustomBaseActivity; import com.hdl.photovoltaic.config.UserConfigManage; -import com.hdl.photovoltaic.other.HdlFileLogic; import com.hdl.photovoltaic.other.HdlResidenceLogic; import com.hdl.photovoltaic.ui.account.ChangePassword; import com.hdl.photovoltaic.ui.account.RegisterAccountActivity; @@ -36,6 +36,8 @@ import com.hdl.photovoltaic.listener.CloudCallBeak; import com.hdl.photovoltaic.other.HdlAccountLogic; import com.hdl.photovoltaic.other.HdlThreadLogic; +import com.hdl.photovoltaic.widget.ConfirmationCancelDialog; +import com.hdl.photovoltaic.widget.ConfirmationCancelDialog1; import java.util.List; @@ -48,12 +50,16 @@ @Override public Object getContentView() { + + viewBinding = ActivityHomeLoginBinding.inflate(getLayoutInflater()); return viewBinding.getRoot(); } @Override public void onBindView(Bundle savedInstanceState) { + + //鍒濆鍖� initView(); //鍒濆鍖栫晫闈㈢洃鍚櫒 @@ -86,43 +92,29 @@ } + /** + * 鍒濆鍖朥I + */ private void initView() { + viewBinding.homeLoginCheckBCIv.setSelected(UserConfigManage.getInstance().isBAccount()); + viewBinding.homeLoginInstallUserTv.setSelected(UserConfigManage.getInstance().isBAccount()); + viewBinding.homeLoginPrivacyCheckIv.setSelected(UserConfigManage.getInstance().isAcceiptPolicy()); setStringDifferentColors(viewBinding.homeLoginPrivacyTv); + + String acc = "13375012441"; + String pws = "123456"; //娴嬭瘯鐢� - viewBinding.homeLoginAccountEt.setText("13375012441"); - viewBinding.homeLoginPasswordEt.setText("123456"); + viewBinding.homeLoginAccountEt.setText(acc); + viewBinding.homeLoginPasswordEt.setText(pws); isLoginTextViewEnabled(); } + /** + * 娉ㄥ唽鐩戝惉浜嬩欢 + */ private void initEvent() { - viewBinding.homeLoginAccountEt.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) { - Log.d("HomeLoginActivity2", String.format("CharSequence=%s,start=%s,before=%s,count=%s", s, start, before, count)); - - } - - @Override - public void afterTextChanged(Editable s) { - if (s.length() > 0) { - if (viewBinding.homeLoginClearContentsIv.getVisibility() == View.GONE) { - viewBinding.homeLoginClearContentsIv.setVisibility(View.VISIBLE); - } - } else { - if (viewBinding.homeLoginClearContentsIv.getVisibility() == View.VISIBLE) { - viewBinding.homeLoginClearContentsIv.setVisibility(View.GONE); - } - } - isLoginTextViewEnabled(); - - } - }); + viewBinding.homeLoginAccountEt.addTextChangedListener(accountTextWatcher); viewBinding.homeLoginClearContentsIv.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { @@ -130,22 +122,7 @@ } }); - viewBinding.homeLoginPasswordEt.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) { - - } - - @Override - public void afterTextChanged(Editable s) { - isLoginTextViewEnabled(); - } - }); + viewBinding.homeLoginPasswordEt.addTextChangedListener(passwordTextWatcher); viewBinding.homeLoginHideIv.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { @@ -172,7 +149,7 @@ public void onClick(View v) { v.setSelected(!v.isSelected()); UserConfigManage.getInstance().setBAccount(v.isSelected()); - viewBinding.homeLoginCheckIv.setSelected(UserConfigManage.getInstance().isBAccount()); + viewBinding.homeLoginCheckBCIv.setSelected(UserConfigManage.getInstance().isBAccount()); if (UserConfigManage.getInstance().isBAccount()) { viewBinding.homeLoginRegisterTv.setVisibility(View.GONE); } else { @@ -181,7 +158,7 @@ } }); //閫夋嫨b绔紝c绔� - viewBinding.homeLoginCheckIv.setOnClickListener(new View.OnClickListener() { + viewBinding.homeLoginCheckBCIv.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { v.setSelected(!v.isSelected()); @@ -193,10 +170,12 @@ } } }); + //闅愮鍗忚 viewBinding.homeLoginPrivacyCheckIv.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { v.setSelected(!v.isSelected()); + UserConfigManage.getInstance().setAcceiptPolicy(v.isSelected()); } }); //鐧诲綍 @@ -210,16 +189,17 @@ if (!isLogin) { return; } -// boolean isSelected = viewBinding.homeLoginPrivacyCheckIv.isSelected(); -// if(!isSelected){ -// //闅愮鍗忚鎻愮ず -// return; -// } - showLoading(getString(R.string.home_login_鐧诲綍涓�)); + boolean isSelected = UserConfigManage.getInstance().isAcceiptPolicy(); + if (!isSelected) { + //闅愮鍗忚鎻愮ず + getDialog(); + return; + } + showLoading(getString(R.string.home_login_be_logging_in)); HdlAccountLogic.getInstance().regionByAccount(account, new CloudCallBeak<HDLUserRegionBean>() { @Override public void onSuccess(HDLUserRegionBean obj) { - AppConfigManage.setUserRegionUrl("http://59.41.255.150:7777");//obj.getRegionUrl() + AppConfigManage.setUserRegionUrl(obj.getRegionUrl()); HDLLinkPMUser.getInstance().setUserRegionUrl(AppConfigManage.getUserRegionUrl()); HdlAccountLogic.getInstance().loginByPassword(account, password, new ILoginCallBack() { @Override @@ -231,6 +211,7 @@ HdlResidenceLogic.getInstance().setHouseIdList(obj); restoreButtonStyleToInitializeState(); startActivity(MyPowerStationActivity.class); + finish(); } @Override @@ -238,13 +219,15 @@ hideLoading(); restoreButtonStyleToInitializeState(); startActivity(MyPowerStationActivity.class); + finish(); } }); } @Override - public void onFailure(HDLException exception) { + public void onFailure(HDLException e) { hideLoading(); + HdlThreadLogic.toast(_mActivity, e.getMsg() + "(" + e.getCode() + ")"); } }); } @@ -252,6 +235,7 @@ @Override public void onFailure(HDLException e) { hideLoading(); + HdlThreadLogic.toast(_mActivity, e.getMsg() + "(" + e.getCode() + ")"); } }); @@ -266,7 +250,6 @@ UserConfigManage.getInstance().setUserExperience(v.isSelected()); // requestPermissions(); // startActivity(MyPowerStationActivity.class); - HdlFileLogic.getInstance().deleteDirectory(HdlFileLogic.getInstance().getCurrentHomeRootPath()); } }); //娉ㄥ唽 @@ -311,12 +294,12 @@ private boolean isLocalCheckAccountAndPassword(String account, String password) { if (TextUtils.isEmpty(account)) { viewBinding.homeLoginLine1V.setBackgroundColor(getColor(R.color.text_D34545)); - viewBinding.homeLoginAccountTextErrorTv.setText(R.string.home_login_error_璐﹀彿涓嶈兘涓虹┖); + 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.homeLoginPasswordTextErrorTv.setText(R.string.home_login_error_瀵嗙爜涓嶈兘涓虹┖); + viewBinding.homeLoginPasswordTextErrorTv.setText(R.string.home_login_error_password_null); return false; } @@ -346,17 +329,164 @@ } /** - * 璁剧疆涓�涓插瓧绗﹀绉嶉鑹� + * 璁剧疆涓�涓插瓧绗﹀绉嶉鑹蹭互鍙婄偣鍑讳簨浠� * - * @param view 褰撳墠缁勪欢 + * @param textView 褰撳墠缁勪欢 */ - private void setStringDifferentColors(TextView view) { - String s = view.getText().toString(); + private void setStringDifferentColors(TextView textView) { + + if (textView == null) { + return; + } + + String s = textView.getText().toString(); + + int startIndex1 = s.indexOf("銆�"); + int endIndex1 = s.indexOf("銆�") + 1; + + int startIndex2 = s.lastIndexOf("銆�"); + int endIndex2 = s.lastIndexOf("銆�") + 1; + SpannableStringBuilder spannable = new SpannableStringBuilder(s); //璁剧疆鏂囧瓧鐨勫墠鏅壊 - spannable.setSpan(new ForegroundColorSpan(getColor(R.color.text_245EC3)), 2, 7, Spannable.SPAN_INCLUSIVE_EXCLUSIVE); - spannable.setSpan(new ForegroundColorSpan(getColor(R.color.text_245EC3)), 9, 19, Spannable.SPAN_INCLUSIVE_EXCLUSIVE); - view.setText(spannable); +// spannable.setSpan(new ForegroundColorSpan(getColor(R.color.text_245EC3)), startIndex1, endIndex1, Spannable.SPAN_INCLUSIVE_EXCLUSIVE); +// spannable.setSpan(new ForegroundColorSpan(getColor(R.color.text_245EC3)), startIndex2, endIndex2, Spannable.SPAN_INCLUSIVE_EXCLUSIVE); +// textView.setText(spannable); + + if (textView.getTag() != null && textView.getTag().toString().equals("click")) { +// textView.setOnClickListener(new View.OnClickListener() { +// @Override +// public void onClick(View v) { +// //todo 闇�瑕佽烦杞埌闅愮鐣岄潰 +// } +// }); + spannable.setSpan(new ClickableSpan() { + @Override + public void onClick(@NonNull View widget) { + //todo 闇�瑕佽烦杞埌闅愮鐣岄潰 + } + + @Override + public void updateDrawState(@NonNull TextPaint ds) { + super.updateDrawState(ds); + //璁剧疆瀛椾綋棰滆壊 + ds.setColor(getResources().getColor(R.color.text_245EC3, null)); + // 鍘绘帀涓嬪垝绾� + ds.setUnderlineText(false); + } + + + }, startIndex1, endIndex1, 0); + + spannable.setSpan(new ClickableSpan() { + @Override + public void onClick(@NonNull View widget) { + //todo 闇�瑕佽烦杞埌闅愮鐣岄潰 + } + + @Override + public void updateDrawState(@NonNull TextPaint ds) { + super.updateDrawState(ds); + //璁剧疆瀛椾綋棰滆壊 + ds.setColor(getResources().getColor(R.color.text_245EC3, null)); + // 鍘绘帀涓嬪垝绾� + ds.setUnderlineText(false); + } + + + }, startIndex2, endIndex2, 0); + + + } + textView.setText(spannable); + //涓�旈亣鍒扮偣鍑诲悗瀛椾綋鏄剧ず楂樹寒锛屽彇娑堥珮浜� + textView.setHighlightColor(getResources().getColor(R.color.text_00000000, null)); + //鏈�鍚庤缃彲鐐瑰嚮锛屽繀椤诲疄鐜帮紝鍚﹀垯鍙兘鏄剧ず鏍峰紡锛屾棤娉曞疄鐜扮偣鍑绘晥鏋� + textView.setMovementMethod(LinkMovementMethod.getInstance()); + + } + + + /** + * 寮圭獥 + */ + private void getDialog() { + ConfirmationCancelDialog1 dialog = new ConfirmationCancelDialog1(_mActivity); + dialog.setTitle(getString(R.string.loading_privacy)); + dialog.setContent(getString(R.string.loading_privacy_server)); + dialog.show(); + setStringDifferentColors(dialog.getContentTextView()); + dialog.setYesOnclickListener(new ConfirmationCancelDialog.onYesOnclickListener() { + @Override + public void Confirm() { + + UserConfigManage.getInstance().setAcceiptPolicy(true); + viewBinding.homeLoginPrivacyCheckIv.setSelected(true); + dialog.dismiss(); + } + }); + dialog.setNoOnclickListener(new ConfirmationCancelDialog.onNoOnclickListener() { + @Override + public void Cancel() { + UserConfigManage.getInstance().setAcceiptPolicy(false); + viewBinding.homeLoginPrivacyCheckIv.setSelected(false); + dialog.dismiss(); + } + }); + + } + + /** + * 杈撳叆璐﹀彿 + */ + 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) { + if (s.length() > 0) { + if (viewBinding.homeLoginClearContentsIv.getVisibility() == View.GONE) { + viewBinding.homeLoginClearContentsIv.setVisibility(View.VISIBLE); + } + } else { + if (viewBinding.homeLoginClearContentsIv.getVisibility() == View.VISIBLE) { + viewBinding.homeLoginClearContentsIv.setVisibility(View.GONE); + } + } + isLoginTextViewEnabled(); + } + }; + /** + * 杈撳叆瀵嗙爜 + */ + private final TextWatcher passwordTextWatcher = 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) { + isLoginTextViewEnabled(); + } + }; + + @Override + protected void onDestroy() { + super.onDestroy(); + viewBinding.homeLoginAccountEt.removeTextChangedListener(accountTextWatcher); + viewBinding.homeLoginPasswordEt.removeTextChangedListener(passwordTextWatcher); } -- Gitblit v1.8.0