app/src/main/AndroidManifest.xml
@@ -77,6 +77,9 @@ android:supportsRtl="true" android:theme="@style/Theme.PhotovoltaicDebug"> <activity android:name=".ui.me.MeChangePasswordActivity" android:exported="false" /> <activity android:name=".ui.me.SetActivity" android:exported="false" /> <activity app/src/main/java/com/hdl/photovoltaic/internet/api/TopicApi.java
@@ -40,10 +40,9 @@ public static final String GATEWAY_INITIALIZE_REMOTE = "/user/%s/custom/gateway/initialize"; public static final String GATEWAY_FIND_REMOTE = "/base/%s/thing/service/mmv_device_find/down"; //网关时间读取 public static final String GET_GATEWAY_TIME = "/base/%s/custom/gateway/time/get"; public static final String GET_GATEWAY_TIME = "/user/%s/custom/gateway/time/get"; //网关时间修改 public static final String SET_GATEWAY_TIME_EDIT = "/user/%s/custom/gateway/time/edit"; /* * 网关编辑命令 * 与服务器无关的 app/src/main/java/com/hdl/photovoltaic/other/HdlDeviceLogic.java
@@ -365,10 +365,13 @@ } return; } Gson gson = new Gson(); DeviceTimeBean deviceTimeBean = gson.fromJson(json, DeviceTimeBean.class); Type typeOfT = new TypeToken<BaseLocalResponse<DeviceTimeBean>>() { }.getType(); BaseLocalResponse<DeviceTimeBean> baseLocalResponse = gson.fromJson(json, typeOfT); if (linkCallBack != null) { linkCallBack.onSuccess(deviceTimeBean); linkCallBack.onSuccess(baseLocalResponse.getObjects()); } } @@ -769,6 +772,7 @@ HDLLinkLocalGateway.getInstance().refreshGatewayByHomeIdAndSpk(UserConfigManage.getInstance().getHomeId(), spks, true, gatewayCallBack); } /** * 刷新逆变器缓存信息(包括设置mqtt秘钥) * 注: app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java
@@ -115,8 +115,8 @@ //添加逆变器到云端 case HDLUniMP.UNI_EVENT_REPLY_DEVICE_ADD: { this.uniAddInverterDeviceToCloud(data, callback); } break; //删除云端逆变器 case HDLUniMP.UNI_EVENT_REPLY_DEVICE_DEL: { this.uniDelInverterDevice(data, callback); @@ -134,7 +134,6 @@ break; case HDLUniMP.UNI_EVENT_REPLY_DEVICE_MODBUS_SEND: { sendModBus(data, callback); } break; //获取oid列表 @@ -391,7 +390,7 @@ } /** * 逆变器添加到云端上 * 删除云端上逆变器 * * @param data uni数据 * @param callback uni回调 app/src/main/java/com/hdl/photovoltaic/ui/account/ChangePassword.java
@@ -29,7 +29,7 @@ import com.hdl.photovoltaic.widget.ConfirmationTipDialog; /** * 修改账号界面 * 忘记密码界面 */ public class ChangePassword extends CustomBaseActivity { ActivityChangePasswordBinding viewBinding; app/src/main/java/com/hdl/photovoltaic/ui/me/MeChangePasswordActivity.java
New file @@ -0,0 +1,159 @@ package com.hdl.photovoltaic.ui.me; import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.content.res.AppCompatResources; import android.os.Bundle; import android.text.Editable; import android.text.TextUtils; import android.text.TextWatcher; import android.text.method.HideReturnsTransformationMethod; import android.text.method.PasswordTransformationMethod; import android.view.View; import android.widget.EditText; import android.widget.ImageView; import com.hdl.photovoltaic.R; import com.hdl.photovoltaic.base.BaseActivity; import com.hdl.photovoltaic.databinding.ActivityMeChangePasswordBinding; public class MeChangePasswordActivity extends BaseActivity implements View.OnClickListener { private ActivityMeChangePasswordBinding viewBinding; @Override public Object getContentView() { viewBinding = ActivityMeChangePasswordBinding.inflate(getLayoutInflater()); return viewBinding.getRoot(); } @Override public void onBindView(Bundle savedInstanceState) { //初始化 initView(); //初始化界面监听器 initEvent(); } /** * 初始化界面监听器 */ private void initEvent() { viewBinding.toolbarTopFragmentHouseListRl.topBackBtn.setOnClickListener(this); viewBinding.meChangePasswordOldIc.mePswEt.addTextChangedListener(textWatcher1); viewBinding.meChangePasswordOldIc.mePswHideIv.setOnClickListener(this); viewBinding.meChangePasswordNewIc.mePswEt.addTextChangedListener(textWatcher2); viewBinding.meChangePasswordNewIc.mePswHideIv.setOnClickListener(this); viewBinding.meChangePasswordAffirmIc.mePswEt.addTextChangedListener(textWatcher3); viewBinding.meChangePasswordAffirmIc.mePswHideIv.setOnClickListener(this); } /** * 初始化 */ private void initView() { viewBinding.toolbarTopFragmentHouseListRl.topBarView.setBackgroundColor(getResources().getColor(R.color.text_FFFFFFFF)); viewBinding.toolbarTopFragmentHouseListRl.topTitleTv.setText(R.string.home_login_change_password); viewBinding.toolbarTopFragmentHouseListRl.topTitleTv.setTextColor(getResources().getColor(R.color.text_030D1C)); viewBinding.toolbarTopFragmentHouseListRl.topBackBtn.setVisibility(View.VISIBLE); viewBinding.meChangePasswordOldIc.mePswTitleTv.setText(R.string.home_login_old_pws); viewBinding.meChangePasswordOldIc.mePswEt.setHint(R.string.home_login_input_old_pws); viewBinding.meChangePasswordNewIc.mePswTitleTv.setText(R.string.home_login_new_pws); viewBinding.meChangePasswordNewIc.mePswEt.setHint(R.string.home_login_input_new_pws); viewBinding.meChangePasswordAffirmIc.mePswTitleTv.setText(R.string.home_login_affirm_psw); viewBinding.meChangePasswordAffirmIc.mePswEt.setHint(R.string.home_login_input_affirm_psw); } @Override public void onClick(View v) { if (v.getId() == viewBinding.toolbarTopFragmentHouseListRl.topBackBtn.getId()) { finish(); } else if (v.getId() == viewBinding.meChangePasswordOldIc.mePswHideIv.getId()) { setEditTextStyle(viewBinding.meChangePasswordOldIc.mePswEt, viewBinding.meChangePasswordOldIc.mePswHideIv); } else if (v.getId() == viewBinding.meChangePasswordNewIc.mePswHideIv.getId()) { setEditTextStyle(viewBinding.meChangePasswordNewIc.mePswEt, viewBinding.meChangePasswordNewIc.mePswHideIv); } else if (v.getId() == viewBinding.meChangePasswordAffirmIc.mePswHideIv.getId()) { setEditTextStyle(viewBinding.meChangePasswordAffirmIc.mePswEt, viewBinding.meChangePasswordAffirmIc.mePswHideIv); } } private void setEditTextStyle(EditText editText, ImageView imageView) { if (imageView.isSelected()) { imageView.setSelected(false); imageView.setImageDrawable(AppCompatResources.getDrawable(_mActivity, R.drawable.hide)); editText.setTransformationMethod(PasswordTransformationMethod.getInstance()); } else { imageView.setSelected(true); imageView.setImageDrawable(AppCompatResources.getDrawable(_mActivity, R.drawable.show)); editText.setTransformationMethod(HideReturnsTransformationMethod.getInstance()); } //设置光标位置 if (!TextUtils.isEmpty(editText.getText())) { editText.setSelection(editText.length()); } } @Override protected void onDestroy() { super.onDestroy(); viewBinding.meChangePasswordOldIc.mePswEt.removeTextChangedListener(textWatcher1); viewBinding.meChangePasswordNewIc.mePswEt.removeTextChangedListener(textWatcher2); viewBinding.meChangePasswordAffirmIc.mePswEt.removeTextChangedListener(textWatcher3); } private final TextWatcher textWatcher1 = 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) { } }; private final TextWatcher textWatcher2 = 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) { } }; private final TextWatcher textWatcher3 = 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) { } }; } app/src/main/java/com/hdl/photovoltaic/ui/me/SetActivity.java
@@ -35,7 +35,9 @@ private void initEvent() { viewBinding.toolbarTopFragmentHouseListRl.topBackBtn.setOnClickListener(this); viewBinding.setChangePasswordIl.sllLlNameRl.setOnClickListener(this); viewBinding.outTv.setOnClickListener(this); viewBinding.setPushMsgIl.sllLlRlRightSwitchIv.setOnClickListener(this); } private void initView() { @@ -44,10 +46,12 @@ viewBinding.toolbarTopFragmentHouseListRl.topBackBtn.setVisibility(View.VISIBLE); viewBinding.toolbarTopFragmentHouseListRl.topBarView.setBackgroundColor(getResources().getColor(R.color.text_FFFFFFFF)); viewBinding.setNicknameIl.sllLlRlNameTv.setText(R.string.set_nickname); viewBinding.setChangePasswordIl.sllLlRlNameTv.setText(R.string.home_login_修改密码); viewBinding.setChangePasswordIl.sllLlRlNameTv.setText(R.string.home_login_change_password); viewBinding.setCloseAccountIl.sllLlRlNameTv.setText(R.string.set_注销账号); viewBinding.setMesIl.sllLlRlTitleTv.setText(R.string.set_消息设置); viewBinding.setPushMsgIl.sllLlRlNameTv.setText(R.string.set_推送消息); viewBinding.setPushMsgIl.sllLlRlRightNextIv.setVisibility(View.GONE); viewBinding.setPushMsgIl.sllLlRlRightSwitchIv.setVisibility(View.VISIBLE); viewBinding.setCallMsgIl.sllLlRlNameTv.setText(R.string.set_报警消息); viewBinding.setGeneralMsgIl.sllLlRlTitleTv.setText(R.string.set_通用设置); viewBinding.setMultiLanguageIl.sllLlRlNameTv.setText(R.string.set_多语言); @@ -55,18 +59,21 @@ viewBinding.setPrivacyIl.sllLlRlTitleTv.setText(R.string.set_privacy); viewBinding.setSystemAuthorizationIl.sllLlRlNameTv.setText(R.string.set_系统权限管理); viewBinding.setShareIl.sllLlRlNameTv.setText(R.string.set_第三方信息共享清单); // viewBinding.setPushMsgIl.sllLlRlRightIconIv.setLayoutParams(new RelativeLayout.LayoutParams(57, 31)); } @Override public void onClick(View v) { if (v.getId() == viewBinding.toolbarTopFragmentHouseListRl.topBackBtn.getId()) { finish(); } else if (v.getId() == viewBinding.setPushMsgIl.sllLlRlRightSwitchIv.getId()) { v.setSelected(!v.isSelected()); } else if (v.getId() == viewBinding.setChangePasswordIl.sllLlNameRl.getId()) { startActivity(MeChangePasswordActivity.class); } else if (v.getId() == viewBinding.outTv.getId()) { logoutRequest(); } } /** app/src/main/java/com/hdl/photovoltaic/ui/powerstation/HouseListFragment.java
@@ -109,7 +109,7 @@ //点击住宅详情 HdlLogLogic.print("点击住宅详情===" + new Gson().toJson(houseIdBean)); HdlResidenceLogic.getInstance().switchHouse(houseIdBean); String path = HDLUniMP.UNI_EVENT_OPEN_HOME_DETAILS + "?homeId=" + houseIdBean.getHomeId(); String path = HDLUniMP.UNI_EVENT_OPEN_HOME_DETAILS + "?homeId=" + houseIdBean.getHomeId()+"&homeName="+houseIdBean.getHomeName(); HdlUniLogic.getInstance().openUniMP(path, null); } }); app/src/main/res/drawable/me_change_psw_bj.xml
New file @@ -0,0 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android"> <corners android:radius="@dimen/dp_4" /> <solid android:color="@color/text_FFFFFFFF" /> </shape> app/src/main/res/drawable/switch_on_off.xml
New file @@ -0,0 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/open" android:state_selected="true"/> <item android:drawable="@drawable/close" android:state_selected="false"/> </selector> app/src/main/res/layout/activity_change_password.xml
@@ -22,7 +22,7 @@ android:layout_height="@dimen/dp_39" android:layout_marginStart="@dimen/dp_20" android:layout_marginTop="@dimen/dp_42" android:text="@string/home_login_修改密码" android:text="@string/home_login_change_password" android:textAlignment="center" android:textColor="@color/text_90000000" android:textSize="@dimen/text_28" app/src/main/res/layout/activity_me_change_password.xml
New file @@ -0,0 +1,65 @@ <?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".ui.me.MeChangePasswordActivity"> <include android:id="@+id/toolbar_top_fragment_house_list_rl" layout="@layout/toolbar_top_view_52" /> <LinearLayout android:id="@+id/me_psw_ll" android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/toolbar_top_fragment_house_list_rl"> <include android:id="@+id/me_change_password_old_ic" layout="@layout/me_change_password_line" /> <include android:id="@+id/me_change_password_new_ic" layout="@layout/me_change_password_line" /> <include android:id="@+id/me_change_password_affirm_ic" layout="@layout/me_change_password_line" /> </LinearLayout> <TextView android:id="@+id/me_psw_error_tv" android:layout_width="wrap_content" android:layout_height="@dimen/dp_20" android:layout_marginTop="@dimen/dp_30" android:layout_marginEnd="@dimen/dp_20" android:text="@string/home_login_least6" android:textColor="@color/text_565758" android:textSize="@dimen/text_14" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintTop_toBottomOf="@+id/me_psw_ll" /> <TextView android:id="@+id/home_affirm_tv" android:layout_width="0dp" android:layout_height="52dp" android:layout_marginTop="@dimen/dp_100" android:layout_marginStart="@dimen/dp_20" android:layout_marginEnd="@dimen/dp_20" android:background="@drawable/yesandnocheck" android:enabled="false" android:gravity="center" android:text="@string/home_login_affirm" android:textColor="@color/text_FFFFFFFF" android:textSize="18sp" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/me_psw_ll" /> </androidx.constraintlayout.widget.ConstraintLayout> app/src/main/res/layout/fragment_me_line.xml
@@ -48,7 +48,7 @@ <!--加大点击热区--> <TextView android:id="@+id/fragment_me_line_right_icon_click_iv" android:layout_width="@dimen/dp_80" android:layout_width="match_parent" android:layout_height="match_parent" app:layout_constraintBottom_toBottomOf="@id/fragment_me_line_left_icon_iv" app:layout_constraintEnd_toEndOf="parent" app/src/main/res/layout/me_change_password_line.xml
New file @@ -0,0 +1,73 @@ <?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent"> <RelativeLayout android:id="@+id/me_psw_parent_rl" android:layout_width="match_parent" android:layout_height="@dimen/dp_104" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent"> <TextView android:id="@+id/me_psw_title_tv" android:layout_width="wrap_content" android:layout_height="@dimen/dp_20" android:layout_marginStart="@dimen/dp_20" android:layout_marginTop="@dimen/dp_24" android:textColor="@color/text_65000000" android:textSize="@dimen/text_14" /> <RelativeLayout android:id="@+id/me_psw_rl" android:layout_width="match_parent" android:layout_height="@dimen/dp_52" android:layout_below="@+id/me_psw_title_tv" android:layout_marginStart="@dimen/dp_20" android:layout_marginTop="@dimen/dp_8" android:layout_marginEnd="@dimen/dp_20" android:background="@drawable/me_change_psw_bj" > <EditText android:id="@+id/me_psw_et" android:layout_width="match_parent" android:layout_height="@dimen/dp_23" android:layout_centerVertical="true" android:layout_marginStart="@dimen/dp_16" android:layout_marginEnd="@dimen/dp_60" android:background="@null" android:hint="@string/home_login_input_6_16" android:inputType="textPassword" android:lines="1" android:maxLines="1" android:textColor="@color/text_FF000000" android:textColorHint="@color/text_25000000" android:textSize="@dimen/text_16" /> <ImageView android:id="@+id/me_psw_hide_iv" android:layout_width="@dimen/dp_20" android:layout_height="@dimen/dp_20" android:layout_alignParentEnd="true" android:layout_centerVertical="true" android:layout_marginEnd="@dimen/dp_32" android:src="@drawable/hide" /> <View android:layout_width="match_parent" android:layout_height="0.5dp" android:layout_alignParentBottom="true" android:layout_marginStart="@dimen/dp_20" android:layout_marginEnd="@dimen/dp_20" android:background="@color/text_E1E1E1" /> </RelativeLayout> </RelativeLayout> </androidx.constraintlayout.widget.ConstraintLayout> app/src/main/res/layout/set_line.xml
@@ -24,27 +24,43 @@ /> <ImageView android:id="@+id/sll_ll_rl_right_icon_iv" android:layout_width="@dimen/dp_16" android:layout_height="@dimen/dp_16" <LinearLayout android:id="@+id/sll_ll_rl_right_icon_ll" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentEnd="true" android:layout_centerVertical="true" android:layout_marginEnd="@dimen/dp_13" android:src="@drawable/next" /> android:layout_marginEnd="@dimen/dp_13"> <!--标准图标--> <ImageView android:id="@+id/sll_ll_rl_right_next_iv" android:layout_width="@dimen/dp_16" android:layout_height="@dimen/dp_16" android:src="@drawable/next" /> <!--特殊图标--> <ImageView android:id="@+id/sll_ll_rl_right_switch_iv" android:layout_width="@dimen/dp_57" android:layout_height="@dimen/dp_31" android:src="@drawable/switch_on_off" android:visibility="gone" /> </LinearLayout> <!--右边备注内容,默认隐藏--> <TextView android:id="@+id/sll_ll_rl_right_content_tv" android:layout_width="wrap_content" android:layout_height="@dimen/dp_21" android:layout_centerVertical="true" android:layout_marginEnd="@dimen/dp_9" android:layout_toStartOf="@+id/sll_ll_rl_right_icon_iv" android:layout_toStartOf="@+id/sll_ll_rl_right_icon_ll" android:text="@string/set_nickname" android:textColor="@color/text_7C8590" android:textSize="@dimen/text_15" android:visibility="gone" /> <!--底部的线,默认隐藏--> <View android:id="@+id/line_v" android:layout_width="match_parent" app/src/main/res/values/colors.xml
@@ -36,6 +36,7 @@ <color name="text_030D1C">#030D1C</color> <color name="text_F5F7FA">#F5F7FA</color> <color name="text_FF5757">#FF5757</color> <color name="text_565758">#565758</color> </resources> app/src/main/res/values/strings.xml
@@ -20,7 +20,7 @@ <string name="home_login_请输入密码">请输入密码</string> <string name="home_login_注册">注册</string> <string name="home_login_忘记密码">忘记密码</string> <string name="home_login_修改密码">修改密码</string> <string name="home_login_change_password">修改密码</string> <string name="home_login_登录">登录</string> <string name="home_login_登录中">登录中…</string> <string name="home_login_体验电站">体验电站</string> @@ -50,6 +50,15 @@ <string name="home_login_back_login">返回登录</string> <string name="home_login_send_mail">发送至邮箱</string> <string name="home_login_already_exists">该用户已存在,可直接登录</string> <string name="home_login_old_pws">原密码</string> <string name="home_login_new_pws">新密码</string> <string name="home_login_affirm_psw">确认密码</string> <string name="home_login_affirm">确认</string> <string name="home_login_least6">密码至少6位字符</string> <string name="home_login_input_old_pws">请输入原密码</string> <string name="home_login_input_new_pws">请输入新密码</string> <string name="home_login_input_affirm_psw">请再次输入新密码</string> <!--我的电站--> @@ -91,6 +100,7 @@ <string name="set_privacy">隐私设置</string> <!--uin--> <string name="uni_open_error">页面初始化中 请等待5秒再点击</string>