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 | 423 ++++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 341 insertions(+), 82 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 b655da1..de54baa 100644 --- a/app/src/main/java/com/hdl/photovoltaic/ui/HomeLoginActivity.java +++ b/app/src/main/java/com/hdl/photovoltaic/ui/HomeLoginActivity.java @@ -1,85 +1,120 @@ package com.hdl.photovoltaic.ui; +import android.content.Intent; import android.os.Bundle; -import android.os.SystemClock; 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.view.animation.Animation; -import android.view.animation.RotateAnimation; import android.widget.TextView; +import androidx.annotation.NonNull; import androidx.appcompat.content.res.AppCompatResources; +import com.hdl.linkpm.sdk.core.exception.HDLException; +import com.hdl.linkpm.sdk.user.HDLLinkPMUser; +import com.hdl.linkpm.sdk.user.bean.HDLLoginBean; +import com.hdl.linkpm.sdk.user.bean.HDLUserRegionBean; +import com.hdl.linkpm.sdk.user.callback.ILoginCallBack; import com.hdl.photovoltaic.R; import com.hdl.photovoltaic.base.CustomBaseActivity; +import com.hdl.photovoltaic.config.UserConfigManage; +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.bean.HouseIdBean; +import com.hdl.photovoltaic.config.AppConfigManage; import com.hdl.photovoltaic.databinding.ActivityHomeLoginBinding; -import com.hdl.photovoltaic.ui.MyPowerStationActivity; -import com.hdl.photovoltaic.utils.FileUtils; +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; +/** + * 鐧诲綍鐨勭晫闈� + */ public class HomeLoginActivity extends CustomBaseActivity { private ActivityHomeLoginBinding viewBinding; @Override public Object getContentView() { + + viewBinding = ActivityHomeLoginBinding.inflate(getLayoutInflater()); return viewBinding.getRoot(); } @Override public void onBindView(Bundle savedInstanceState) { + + //鍒濆鍖� initView(); //鍒濆鍖栫晫闈㈢洃鍚櫒 initEvent(); + //鍦ㄧ晫闈腑浣跨敤 +// KeyboardStateObserverUtils.getKeyboardStateObserver(_mActivity).setKeyboardVisibilityListener(new KeyboardStateObserverUtils.OnKeyboardVisibilityListener() { +// @Override +// public void onKeyboardShow(int h) { +// //Toast.makeText(MainActivity.this,"閿洏寮瑰嚭",Toast.LENGTH_SHORT).show(); +// ConstraintSet cs = new ConstraintSet(); +// cs.clone(viewBinding.homeLoginParentCl); +//// (viewBinding.loadingConfirmationRl.getTop()-dip2px(h)) +// cs.connect(R.id.home_login_tv, ConstraintSet.BOTTOM, ConstraintSet.PARENT_ID, ConstraintSet.BOTTOM, h);// +// //搴旂敤绾︽潫 +// cs.applyTo(viewBinding.homeLoginParentCl); +// } +// +// @Override +// +// public void onKeyboardHide(int h) { +// ConstraintSet cs = new ConstraintSet(); +// cs.clone(viewBinding.homeLoginParentCl); +// cs.connect(R.id.home_login_tv, ConstraintSet.BOTTOM, ConstraintSet.PARENT_ID, ConstraintSet.BOTTOM, h);// +// //搴旂敤绾︽潫 +// cs.applyTo(viewBinding.homeLoginParentCl); +// } +// +// }); } + /** + * 鍒濆鍖朥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(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) { @@ -87,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) { @@ -123,35 +143,101 @@ } }); - - viewBinding.homeLoginCheckIv.setOnClickListener(new View.OnClickListener() { + //閫夋嫨b绔紝c绔� + viewBinding.homeLoginInstallUserTv.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { v.setSelected(!v.isSelected()); + UserConfigManage.getInstance().setBAccount(v.isSelected()); + viewBinding.homeLoginCheckBCIv.setSelected(UserConfigManage.getInstance().isBAccount()); + if (UserConfigManage.getInstance().isBAccount()) { + viewBinding.homeLoginRegisterTv.setVisibility(View.GONE); + } else { + viewBinding.homeLoginRegisterTv.setVisibility(View.VISIBLE); + } } }); + //閫夋嫨b绔紝c绔� + viewBinding.homeLoginCheckBCIv.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + v.setSelected(!v.isSelected()); + UserConfigManage.getInstance().setBAccount(v.isSelected()); + if (UserConfigManage.getInstance().isBAccount()) { + viewBinding.homeLoginRegisterTv.setVisibility(View.GONE); + } else { + viewBinding.homeLoginRegisterTv.setVisibility(View.VISIBLE); + } + } + }); + //闅愮鍗忚 viewBinding.homeLoginPrivacyCheckIv.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { v.setSelected(!v.isSelected()); + UserConfigManage.getInstance().setAcceiptPolicy(v.isSelected()); } }); //鐧诲綍 viewBinding.homeLoginTv.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - boolean isLogin = isLocalCheckAccountAndPassword(); + + String account = viewBinding.homeLoginAccountEt.getText().toString().replace(" ", ""); + String password = viewBinding.homeLoginPasswordEt.getText().toString().replace(" ", ""); + boolean isLogin = isLocalCheckAccountAndPassword(account, password); if (!isLogin) { return; } -// boolean isSelected = viewBinding.homeLoginPrivacyCheckIv.isSelected(); -// if(!isSelected){ -// //闅愮鍗忚鎻愮ず -// return; -// } - restoreButtonStyleToInitializeState(); + 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(obj.getRegionUrl()); + HDLLinkPMUser.getInstance().setUserRegionUrl(AppConfigManage.getUserRegionUrl()); + HdlAccountLogic.getInstance().loginByPassword(account, password, new ILoginCallBack() { + @Override + public void onSuccess(HDLLoginBean obj) { + HdlResidenceLogic.getInstance().getResidenceIdList("", "", new CloudCallBeak<List<HouseIdBean>>() { + @Override + public void onSuccess(List<HouseIdBean> obj) { + hideLoading(); + HdlResidenceLogic.getInstance().setHouseIdList(obj); + restoreButtonStyleToInitializeState(); + startActivity(MyPowerStationActivity.class); + finish(); + } - startActivity(MyPowerStationActivity.class); + @Override + public void onFailure(HDLException e) { + hideLoading(); + restoreButtonStyleToInitializeState(); + startActivity(MyPowerStationActivity.class); + finish(); + } + }); + } + + @Override + public void onFailure(HDLException e) { + hideLoading(); + HdlThreadLogic.toast(_mActivity, e.getMsg() + "(" + e.getCode() + ")"); + } + }); + } + + @Override + public void onFailure(HDLException e) { + hideLoading(); + HdlThreadLogic.toast(_mActivity, e.getMsg() + "(" + e.getCode() + ")"); + } + }); } @@ -160,8 +246,28 @@ viewBinding.homeLoginExperienceTv.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - startActivity(MyPowerStationActivity.class); - + v.setSelected(!v.isSelected()); + UserConfigManage.getInstance().setUserExperience(v.isSelected()); +// requestPermissions(); +// startActivity(MyPowerStationActivity.class); + } + }); + //娉ㄥ唽 + viewBinding.homeLoginRegisterTv.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + Intent intent = new Intent(); + intent.setClass(HomeLoginActivity.this, RegisterAccountActivity.class); + startActivity(intent); + } + }); + //蹇樿瀵嗙爜 + viewBinding.homeLoginForgetPasswordTv.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + Intent intent = new Intent(); + intent.setClass(HomeLoginActivity.this, ChangePassword.class); + startActivity(intent); } }); @@ -179,27 +285,28 @@ /** * 鏈湴鏍¢獙杈撳叆璐﹀彿鎴栬�呭瘑鐮佹槸鍚︽纭� - * 姝g‘杩斿洖<true>true</true> - * 涓�鑸柟娉� + * + * @param account 璐﹀彿 + * @param password 瀵嗙爜 + * 姝g‘杩斿洖<true>true</true> + * 涓�鑸柟娉� */ - private boolean isLocalCheckAccountAndPassword() { - String account = viewBinding.homeLoginAccountEt.getText().toString().replace(" ", ""); - String password = viewBinding.homeLoginPasswordEt.getText().toString().replace(" ", ""); + 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; } if (password.length() < 6 || password.length() > 16) { viewBinding.homeLoginLine2V.setBackgroundColor(getColor(R.color.text_D34545)); - viewBinding.homeLoginPasswordTextErrorTv.setText(R.string.home_login_error_鏈�灏�6_16涓瓧绗�); + viewBinding.homeLoginPasswordTextErrorTv.setText(R.string.home_login_error_6_16_str); return false; } return true; @@ -210,24 +317,176 @@ * 鎭㈠缁勪欢鏍峰紡鍒板垵濮嬪寲鐘舵�� */ private void restoreButtonStyleToInitializeState() { - viewBinding.homeLoginLine1V.setBackgroundColor(getColor(R.color.text_E1E1E1)); - viewBinding.homeLoginAccountTextErrorTv.setText(""); - viewBinding.homeLoginLine2V.setBackgroundColor(getColor(R.color.text_E1E1E1)); - viewBinding.homeLoginPasswordTextErrorTv.setText(""); + HdlThreadLogic.runMainThread(new Runnable() { + @Override + public void run() { + viewBinding.homeLoginLine1V.setBackgroundColor(getColor(R.color.text_E1E1E1)); + viewBinding.homeLoginAccountTextErrorTv.setText(""); + viewBinding.homeLoginLine2V.setBackgroundColor(getColor(R.color.text_E1E1E1)); + viewBinding.homeLoginPasswordTextErrorTv.setText(""); + } + }, null, null); } /** - * 璁剧疆涓�涓插瓧绗﹀绉嶉鑹� + * 璁剧疆涓�涓插瓧绗﹀绉嶉鑹蹭互鍙婄偣鍑讳簨浠� * - * @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