app/build.gradle
@@ -90,7 +90,7 @@ */ android.applicationVariants.configureEach { variant -> variant.outputs.configureEach { outputFileName = "photovoltaic_v${versionName}_${generateTime()}_${getEnvironmentVersion(4)}.apk" outputFileName = "photovoltaic_v${versionName}_${generateTime()}_${getEnvironmentVersion(1)}.apk" } } app/src/main/java/com/hdl/photovoltaic/HDLApp.java
@@ -259,6 +259,39 @@ restartApp(mHDLApp); } }, 500); } else if (type == LogoutType.UniLogout.getValue()) { AppManagerUtils.getAppManager().finishAllActivity(); //清空住宅id UserConfigManage.getInstance().setHomeId(""); UserConfigManage.getInstance().setAutomaticSkipNoNetworkFlag(true); //重新设定一个时间 UserConfigManage.getInstance().setLoginDateTime(0); UserConfigManage.getInstance().Save(); //清空消息缓存数据 HdlMessageLogic.getInstance().clearListMessage(); //清空电站缓存数据 HdlResidenceLogic.getInstance().clearHouseList(); //清空设备缓存数据 HdlDeviceLogic.getInstance().clearDeviceList(); //清空缓存数据 if (mInfoMap != null) { mInfoMap.clear(); } //断开mqtt连接 if (MqttRecvClient.getInstance() != null) { MqttRecvClient.getInstance().disConnect(); } //断开所有tcp连接且清空连接缓存 // TODO: 10/10/23 // TcpSocketBoot.stopAllConnectLinkGateway(); if (null != HDLUniMPSDKManager.getInstance().getUniMP()) { HDLUniMPSDKManager.getInstance().getUniMP().closeUniMP(); } SystemClock.sleep(200); initDCUniMPSDK(); Intent intent = new Intent(getInstance(), LoginActivity.class); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(intent); } else { HdlLogLogic.print("监听到登录退出---" + type, true); //删除推送Token app/src/main/java/com/hdl/photovoltaic/config/UserConfigManage.java
@@ -122,6 +122,19 @@ */ private boolean noNetworkFlag = false; public boolean isAutomaticSkipNoNetworkFlag() { return automaticSkipNoNetworkFlag; } public void setAutomaticSkipNoNetworkFlag(boolean automaticSkipNoNetworkFlag) { this.automaticSkipNoNetworkFlag = automaticSkipNoNetworkFlag; } /** * 自动跳转到无网模式(true=同意跳转,false=不同意跳转) */ private boolean automaticSkipNoNetworkFlag = false; /** * 无网模式设备mac */ app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java
@@ -824,6 +824,7 @@ case HDLUniMP.UNI_EVENT_REPLY_NO_WORK_MODEL_EXIT: { //退出无网模式标识 UserConfigManage.getInstance().setNoNetworkFlag(false); UserConfigManage.getInstance().setAutomaticSkipNoNetworkFlag(false); UserConfigManage.getInstance().Save(); uniSuccessCallback(mode_type, true, callback); if (null != HDLUniMPSDKManager.getInstance().getUniMP()) { @@ -834,6 +835,12 @@ HDLApp.getInstance().startActivity(intent); } break; case HDLUniMP.UNI_EVENT_REPLY_NO_WORK_MODEL_FROM_OFFLINE: { //设备离网时有入口进入无网模式 uniSuccessCallback(mode_type, true, callback); HdlAccountLogic.getInstance().logout(LogoutType.UniLogout); } break; case HDLUniMP.UNI_EVENT_REPLY_NO_WORK_MODEL_DEVICE_INFO: { try { //进入无网模式逆变器详情页,缓存mac和密码 app/src/main/java/com/hdl/photovoltaic/ui/BPowerStationActivity.java
@@ -481,12 +481,12 @@ this.notificationSet(); //ACCESS_FINE_LOCATION 允许使用GPS定位 //ACCESS_COARSE_LOCATION 允许使用WIFI热点或基站来获取粗略的定位 // String[] ary = PermissionUtils.checkPermission(_mActivity, new String[]{Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.ACCESS_COARSE_LOCATION}); // if (ary.length > 0) { // this.requestPermissions(ary, PermissionUtils.STATUS_SUCCESS); // } else { // locationUpdates(); // } String[] ary = PermissionUtils.checkPermission(_mActivity, new String[]{Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.ACCESS_COARSE_LOCATION}); if (ary.length > 0) { this.requestPermissions(ary, PermissionUtils.STATUS_SUCCESS); } else { locationUpdates(); } } @Override app/src/main/java/com/hdl/photovoltaic/ui/LoginActivity.java
@@ -101,7 +101,6 @@ // // }); } /** @@ -176,6 +175,13 @@ // viewBinding.homeLoginPasswordEt.setText(pws); checkClearIconShowOrNot(viewBinding.homeLoginAccountEt.getText().toString()); isLoginTextViewEnabled(); if (UserConfigManage.getInstance().isAutomaticSkipNoNetworkFlag()) { SharedPreUtils.putBoolean("no_network_mode", true); UserConfigManage.getInstance().setNoNetworkFlag(true); UserConfigManage.getInstance().Save(); String path = HDLUniMP.UNI_EVENT_OPEN_NONETWORKDEVICELIST + "?mac=" + UserConfigManage.getInstance().getNoNetworkDeviceMac() + "&password=" + UserConfigManage.getInstance().getNoNetworkPassword() + "&autoVerify=false"; HdlUniLogic.getInstance().openUniMP(path, null); } } catch (Exception ignored) { } } @@ -319,40 +325,7 @@ viewBinding.homeNoNetworkModeLoginTv.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { boolean isNoNetworkModeLogin = SharedPreUtils.getBoolean("no_network_mode"); if (!isNoNetworkModeLogin) { //第一次打开要提示 ConfirmationCancelDialog confirmationCancelDialog = new ConfirmationCancelDialog(_mActivity); confirmationCancelDialog.setTitle(getString(R.string.loading_title_tip)); confirmationCancelDialog.setContent(getString(R.string.no_network_mode_tip)); confirmationCancelDialog.setConfirmation(getString(R.string.home_login_affirm)); confirmationCancelDialog.setCancel(getString(R.string.scan_cancel)); confirmationCancelDialog.show(); confirmationCancelDialog.getContentTextView().setGravity(Gravity.START); confirmationCancelDialog.setNoOnclickListener(new ConfirmationCancelDialog.onNoOnclickListener() { @Override public void Cancel() { confirmationCancelDialog.dismiss(); SharedPreUtils.putBoolean("no_network_mode", false); } }); confirmationCancelDialog.setYesOnclickListener(new ConfirmationCancelDialog.onYesOnclickListener() { @Override public void Confirm() { confirmationCancelDialog.dismiss(); SharedPreUtils.putBoolean("no_network_mode", true); UserConfigManage.getInstance().setNoNetworkFlag(true); UserConfigManage.getInstance().Save(); String path = HDLUniMP.UNI_EVENT_OPEN_NONETWORKDEVICELIST + "?mac=" + UserConfigManage.getInstance().getNoNetworkDeviceMac() + "&password=" + UserConfigManage.getInstance().getNoNetworkPassword() + "&autoVerify=false"; HdlUniLogic.getInstance().openUniMP(path, null); } }); } else { UserConfigManage.getInstance().setNoNetworkFlag(true); UserConfigManage.getInstance().Save(); String path = HDLUniMP.UNI_EVENT_OPEN_NONETWORKDEVICELIST + "?mac=" + UserConfigManage.getInstance().getNoNetworkDeviceMac() + "&password=" + UserConfigManage.getInstance().getNoNetworkPassword() + "&autoVerify=false"; HdlUniLogic.getInstance().openUniMP(path, null); } noNetworkMode(); } }); @@ -479,6 +452,46 @@ } /** * 进入无网模式 */ private void noNetworkMode() { boolean isNoNetworkModeLogin = SharedPreUtils.getBoolean("no_network_mode"); if (!isNoNetworkModeLogin) { //第一次打开要提示 ConfirmationCancelDialog confirmationCancelDialog = new ConfirmationCancelDialog(_mActivity); confirmationCancelDialog.setTitle(getString(R.string.loading_title_tip)); confirmationCancelDialog.setContent(getString(R.string.no_network_mode_tip)); confirmationCancelDialog.setConfirmation(getString(R.string.home_login_affirm)); confirmationCancelDialog.setCancel(getString(R.string.scan_cancel)); confirmationCancelDialog.show(); confirmationCancelDialog.getContentTextView().setGravity(Gravity.START); confirmationCancelDialog.setNoOnclickListener(new ConfirmationCancelDialog.onNoOnclickListener() { @Override public void Cancel() { confirmationCancelDialog.dismiss(); SharedPreUtils.putBoolean("no_network_mode", false); } }); confirmationCancelDialog.setYesOnclickListener(new ConfirmationCancelDialog.onYesOnclickListener() { @Override public void Confirm() { confirmationCancelDialog.dismiss(); SharedPreUtils.putBoolean("no_network_mode", true); UserConfigManage.getInstance().setNoNetworkFlag(true); UserConfigManage.getInstance().Save(); String path = HDLUniMP.UNI_EVENT_OPEN_NONETWORKDEVICELIST + "?mac=" + UserConfigManage.getInstance().getNoNetworkDeviceMac() + "&password=" + UserConfigManage.getInstance().getNoNetworkPassword() + "&autoVerify=false"; HdlUniLogic.getInstance().openUniMP(path, null); } }); } else { UserConfigManage.getInstance().setNoNetworkFlag(true); UserConfigManage.getInstance().Save(); String path = HDLUniMP.UNI_EVENT_OPEN_NONETWORKDEVICELIST + "?mac=" + UserConfigManage.getInstance().getNoNetworkDeviceMac() + "&password=" + UserConfigManage.getInstance().getNoNetworkPassword() + "&autoVerify=false"; HdlUniLogic.getInstance().openUniMP(path, null); } } /** * 校验登录按钮是否启用 */ private void isLoginTextViewEnabled() { app/src/main/java/com/hdl/photovoltaic/ui/bean/MessageBean.java
@@ -19,6 +19,34 @@ private String deviceOid;//设备oid private String deviceDesc;//设备备注 public String getDescription() { return description == null ? "" : description; } public void setDescription(String description) { this.description = description; } public String getRemark() { return remark == null ? "" : remark; } public void setRemark(String remark) { this.remark = remark; } public String getPlan() { return plan == null ? "" : plan; } public void setPlan(String plan) { this.plan = plan; } private String description;//事件内容 private String remark;//备注 private String plan;//处理方案 private String deviceType;//设备类型(INV : 逆变器, BMS : BMS控制盒, BATTERY : 电池单元) private String deviceTypeDesc;//设备类型描述 @@ -188,9 +216,7 @@ * @return - */ public String getLocationAddress() { return location.getNationName() + ">" + location.getProvinceName() + ">" + location.getCityName() + ">" + address; } app/src/main/java/com/hdl/photovoltaic/ui/home/HomePageFragment.java
@@ -24,6 +24,7 @@ import com.github.AAChartModel.AAChartCore.AAChartCreator.AAChartModel; import com.github.AAChartModel.AAChartCore.AAChartCreator.AAChartView; import com.github.AAChartModel.AAChartCore.AAChartCreator.AAMoveOverEventMessageModel; import com.hdl.linkpm.sdk.HDLLinkPMSdk; import com.hdl.linkpm.sdk.core.exception.HDLException; import com.hdl.photovoltaic.HDLApp; import com.hdl.photovoltaic.R; @@ -44,17 +45,23 @@ import com.hdl.photovoltaic.other.HdlResidenceLogic; import com.hdl.photovoltaic.other.HdlThreadLogic; import com.hdl.photovoltaic.other.HdlUniLogic; import com.hdl.photovoltaic.ui.StartActivity; import com.hdl.photovoltaic.ui.adapter.LanguageAdapter; import com.hdl.photovoltaic.ui.bean.DataOverBean; import com.hdl.photovoltaic.ui.bean.SocialContributionBean; import com.hdl.photovoltaic.ui.bean.StatisticsBean; import com.hdl.photovoltaic.ui.bean.StatusOverviewBean; import com.hdl.photovoltaic.ui.home.aachart.BasicChartComposer; import com.hdl.photovoltaic.uni.HDLUniMP; import com.hdl.photovoltaic.utils.AppManagerUtils; import com.hdl.photovoltaic.utils.GPSManagerUtils; import com.hdl.photovoltaic.utils.PermissionUtils; import com.hdl.photovoltaic.utils.TimeUtils; import com.hdl.photovoltaic.widget.AddPowerStationDialog; import com.hdl.photovoltaic.widget.ConfirmationCancelDialog; import com.hdl.photovoltaic.widget.FlashingBoxDialog; import com.hdl.photovoltaic.widget.adapter.ListDialogAdapter; import com.hdl.photovoltaic.widget.adapter.PowerStationDialogAdapter; import com.hdl.photovoltaic.widget.refreshlayout.BGARefreshLayout; import com.hdl.photovoltaic.widget.refreshlayout.HDLRefreshViewHolder; import com.hdl.sdk.link.core.bean.eventbus.BaseEventBus; @@ -86,6 +93,7 @@ private String timeType = TimeType.day;//时间类型(默认:天) private String debugging_str = "";//时间类型(默认:天) @Override @@ -126,13 +134,31 @@ viewBinding.homePageStationAddIv.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { requestPermissions(new OnCallBeak() { AddPowerStationDialog addPowerStationDialog = new AddPowerStationDialog(_mActivity); addPowerStationDialog.show(); addPowerStationDialog.setCanceledOnTouchOutside(true); addPowerStationDialog.setItemOnclickListener(new PowerStationDialogAdapter.OnclickListener() { @Override public void onClickCallBeak() { // UserConfigManage.getInstance().setUniBottomSafeDistanceBackgroundColor(1); // HdlUniLogic.getInstance().openUniMP(HDLUniMP.UNI_EVENT_OPEN_HOME_CREATION, null); public void onClick(int position, String str) { // debugging_str = str; addPowerStationDialog.dismiss(); UserConfigManage.getInstance().setUniBottomSafeDistanceBackgroundColor(1); if (_mActivity.getString(R.string.simple_debugging).equals(str)) { HdlUniLogic.getInstance().openUniMP(HDLUniMP.UNI_EVENT_OPEN_HOME_CREATION_SIMPLE, null); } else { HdlUniLogic.getInstance().openUniMP(HDLUniMP.UNI_EVENT_OPEN_HOME_CREATION, null); } // requestPermissions(new OnCallBeak() { // @Override // public void onClickCallBeak() { //// UserConfigManage.getInstance().setUniBottomSafeDistanceBackgroundColor(1); //// HdlUniLogic.getInstance().openUniMP(HDLUniMP.UNI_EVENT_OPEN_HOME_CREATION, null); // } // }); } }); } }); @@ -683,7 +709,11 @@ switch (permissions[i]) { case Manifest.permission.ACCESS_FINE_LOCATION: { UserConfigManage.getInstance().setUniBottomSafeDistanceBackgroundColor(1); if (_mActivity.getString(R.string.simple_debugging).equals(debugging_str)) { HdlUniLogic.getInstance().openUniMP(HDLUniMP.UNI_EVENT_OPEN_HOME_CREATION_SIMPLE, null); } else { HdlUniLogic.getInstance().openUniMP(HDLUniMP.UNI_EVENT_OPEN_HOME_CREATION, null); } locationUpdates(); } break; @@ -706,10 +736,16 @@ if (ary.length > 0) { this.requestPermissions(ary, PermissionUtils.STATUS_SUCCESS); } else { //UserConfigManage.getInstance().setCurrentAppLanguage(itemData.getLanguage()); //UserConfigManage.getInstance().Save(); UserConfigManage.getInstance().setUniBottomSafeDistanceBackgroundColor(1); if (_mActivity.getString(R.string.simple_debugging).equals(debugging_str)) { HdlUniLogic.getInstance().openUniMP(HDLUniMP.UNI_EVENT_OPEN_HOME_CREATION_SIMPLE, null); } else { HdlUniLogic.getInstance().openUniMP(HDLUniMP.UNI_EVENT_OPEN_HOME_CREATION, null); } locationUpdates(); } // if (onCallBeak != null) { // onCallBeak.onClickCallBeak(); app/src/main/java/com/hdl/photovoltaic/ui/message/MessageInfoActivity.java
@@ -3,6 +3,7 @@ import android.graphics.drawable.Drawable; import android.os.Bundle; import android.text.TextUtils; import android.view.View; import android.widget.TextView; @@ -81,13 +82,35 @@ mMessageBean = msg; viewBinding.messageInfoHomeNameTv.setText(mMessageBean.getHomeName()); viewBinding.messageInfoAlarmContentIn.rightContentTv.setText(mMessageBean.getTitle()); viewBinding.messageInfoEventTitleIn.rightContentTv.setText(mMessageBean.getTitle()); viewBinding.messageInfoEventContentIn.rightContentTv.setText(mMessageBean.getDescription()); viewBinding.messageInfoRemarkIn.rightContentTv.setText(mMessageBean.getRemark()); viewBinding.messageInfoAlarmDeviceIn.rightContentTv.setText(mMessageBean.getDeviceDesc()); viewBinding.messageInfoAlarmRangeIn.rightContentTv.setText(mMessageBean.getEffectScopeDesc()); viewBinding.messageInfoPowerStationLocationIn.rightContentTv.setText(mMessageBean.getLocationAddress()); String date = TimeUtils.getTimeFromTimestamp(mMessageBean.getCreateTime()); viewBinding.messageInfoAlarmTimeIn.rightContentTv.setText(date); viewBinding.messageInfoAlarmTreatmentOptionsIn.rightContentTv.setText(mMessageBean.getPlan()); stateStyle(viewBinding.messageInfoAlarmStateTv); if (TextUtils.isEmpty(mMessageBean.getTitle())) { viewBinding.messageInfoEventTitleIn.getRoot().setVisibility(View.GONE); } if (TextUtils.isEmpty(mMessageBean.getDescription())) { viewBinding.messageInfoEventContentIn.getRoot().setVisibility(View.GONE); } if (TextUtils.isEmpty(mMessageBean.getRemark())) { viewBinding.messageInfoRemarkIn.getRoot().setVisibility(View.GONE); } if (TextUtils.isEmpty(mMessageBean.getDeviceDesc())) { viewBinding.messageInfoAlarmDeviceIn.getRoot().setVisibility(View.GONE); } if (TextUtils.isEmpty(mMessageBean.getLocationAddress())) { viewBinding.messageInfoPowerStationLocationIn.getRoot().setVisibility(View.GONE); } if (TextUtils.isEmpty(mMessageBean.getPlan())) { viewBinding.messageInfoAlarmTreatmentOptionsIn.getRoot().setVisibility(View.GONE); } if (mMessageBean.getStatus().equals(MessageStateType.processed)) { //已经解决掉的隐藏 @@ -209,19 +232,24 @@ viewBinding.toolbarTopRl.topTitleTv.setText(R.string.message_alarm_info); viewBinding.toolbarTopRl.topBackLl.setVisibility(View.VISIBLE); viewBinding.messageInfoAlarmContentIn.leftTitleTv.setText(R.string.messagealarm_details_content); viewBinding.messageInfoEventTitleIn.leftTitleTv.setText(R.string.event_title); viewBinding.messageInfoEventContentIn.leftTitleTv.setText(R.string.event_content); viewBinding.messageInfoRemarkIn.leftTitleTv.setText(R.string.remark); viewBinding.messageInfoAlarmDeviceIn.leftTitleTv.setText(R.string.messagealarm_details_device); viewBinding.messageInfoAlarmRangeIn.leftTitleTv.setText(R.string.message_alarm_detailsaffect_region); viewBinding.messageInfoPowerStationLocationIn.leftTitleTv.setText(R.string.message_alarm_detailspower_station_location); viewBinding.messageInfoAlarmTimeIn.leftTitleTv.setText(R.string.message_alarm_details_time); viewBinding.messageInfoAlarmTreatmentOptionsIn.leftTitleTv.setText(R.string.treatment_options); viewBinding.messageInfoHomeNameTv.setText(mMessageBean.getHomeName()); viewBinding.messageInfoAlarmContentIn.rightContentTv.setText(mMessageBean.getTitle()); viewBinding.messageInfoEventTitleIn.rightContentTv.setText(mMessageBean.getTitle()); viewBinding.messageInfoEventContentIn.rightContentTv.setText(mMessageBean.getDescription()); viewBinding.messageInfoRemarkIn.rightContentTv.setText(mMessageBean.getRemark()); viewBinding.messageInfoAlarmDeviceIn.rightContentTv.setText(mMessageBean.getDeviceDesc()); viewBinding.messageInfoAlarmRangeIn.rightContentTv.setText(mMessageBean.getEffectScopeDesc()); viewBinding.messageInfoPowerStationLocationIn.rightContentTv.setText(mMessageBean.getLocationAddress()); String date = TimeUtils.getTimeFromTimestamp(mMessageBean.getCreateTime()); viewBinding.messageInfoAlarmTimeIn.rightContentTv.setText(date); viewBinding.messageInfoAlarmTreatmentOptionsIn.rightContentTv.setText(mMessageBean.getPlan()); stateStyle(viewBinding.messageInfoAlarmStateTv); @@ -229,6 +257,32 @@ //发生中的消息且是故障才要显示 viewBinding.messageInfoWorkOut.setVisibility(View.VISIBLE); } if (UserConfigManage.getInstance().isBAccount()) { viewBinding.messageInfoAlarmTreatmentOptionsIn.getRoot().setVisibility(View.VISIBLE); // viewBinding.messageInfoAlarmTreatmentOptionsIn.lineV.setVisibility(View.GONE); } else { // viewBinding.messageInfoAlarmTimeIn.lineV.setVisibility(View.GONE); } if (TextUtils.isEmpty(mMessageBean.getTitle())) { viewBinding.messageInfoEventTitleIn.getRoot().setVisibility(View.GONE); } if (TextUtils.isEmpty(mMessageBean.getDescription())) { viewBinding.messageInfoEventContentIn.getRoot().setVisibility(View.GONE); } if (TextUtils.isEmpty(mMessageBean.getRemark())) { viewBinding.messageInfoRemarkIn.getRoot().setVisibility(View.GONE); } if (TextUtils.isEmpty(mMessageBean.getDeviceDesc())) { viewBinding.messageInfoAlarmDeviceIn.getRoot().setVisibility(View.GONE); } if (TextUtils.isEmpty(mMessageBean.getLocationAddress())) { viewBinding.messageInfoPowerStationLocationIn.getRoot().setVisibility(View.GONE); } if (TextUtils.isEmpty(mMessageBean.getPlan())) { viewBinding.messageInfoAlarmTreatmentOptionsIn.getRoot().setVisibility(View.GONE); } } app/src/main/java/com/hdl/photovoltaic/ui/powerstation/HouseAndDeviceFragment.java
@@ -54,9 +54,11 @@ import com.hdl.photovoltaic.utils.GPSManagerUtils; import com.hdl.photovoltaic.utils.PermissionUtils; import com.hdl.photovoltaic.utils.URLEncodingUtils; import com.hdl.photovoltaic.widget.AddPowerStationDialog; import com.hdl.photovoltaic.widget.ConfirmationCancelDialog; import com.hdl.photovoltaic.widget.DefaultFilteringDialog; import com.hdl.photovoltaic.widget.DelayedConfirmationCancelDialog; import com.hdl.photovoltaic.widget.adapter.PowerStationDialogAdapter; import com.hdl.photovoltaic.widget.refreshlayout.BGARefreshLayout; import com.hdl.photovoltaic.widget.refreshlayout.HDLRefreshViewHolder; import com.hdl.sdk.link.common.exception.HDLLinkException; @@ -219,12 +221,26 @@ viewBinding.addIv.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { requestPermissions(new OnCallBeak() { AddPowerStationDialog addPowerStationDialog = new AddPowerStationDialog(_mActivity); addPowerStationDialog.show(); addPowerStationDialog.setCanceledOnTouchOutside(true); addPowerStationDialog.setItemOnclickListener(new PowerStationDialogAdapter.OnclickListener() { @Override public void onClickCallBeak() { // UserConfigManage.getInstance().setUniBottomSafeDistanceBackgroundColor(1); // HdlUniLogic.getInstance().openUniMP(HDLUniMP.UNI_EVENT_OPEN_HOME_CREATION, null); public void onClick(int position, String str) { addPowerStationDialog.dismiss(); UserConfigManage.getInstance().setUniBottomSafeDistanceBackgroundColor(1); if (_mActivity.getString(R.string.simple_debugging).equals(str)) { HdlUniLogic.getInstance().openUniMP(HDLUniMP.UNI_EVENT_OPEN_HOME_CREATION_SIMPLE, null); } else { HdlUniLogic.getInstance().openUniMP(HDLUniMP.UNI_EVENT_OPEN_HOME_CREATION, null); } // requestPermissions(new OnCallBeak() { // @Override // public void onClickCallBeak() { //// UserConfigManage.getInstance().setUniBottomSafeDistanceBackgroundColor(1); //// HdlUniLogic.getInstance().openUniMP(HDLUniMP.UNI_EVENT_OPEN_HOME_CREATION, null); // } // }); } }); @@ -1019,12 +1035,24 @@ if (ary.length > 0) { this.requestPermissions(ary, PermissionUtils.STATUS_SUCCESS); } else { AddPowerStationDialog addPowerStationDialog = new AddPowerStationDialog(_mActivity); addPowerStationDialog.show(); addPowerStationDialog.setCanceledOnTouchOutside(true); addPowerStationDialog.setItemOnclickListener(new PowerStationDialogAdapter.OnclickListener() { @Override public void onClick(int position, String str) { addPowerStationDialog.dismiss(); // UserConfigManage.getInstance().setCurrentAppLanguage(itemData.getLanguage()); // UserConfigManage.getInstance().Save(); UserConfigManage.getInstance().setUniBottomSafeDistanceBackgroundColor(1); if (_mActivity.getString(R.string.simple_debugging).equals(str)) { HdlUniLogic.getInstance().openUniMP(HDLUniMP.UNI_EVENT_OPEN_HOME_CREATION_SIMPLE, null); } else { HdlUniLogic.getInstance().openUniMP(HDLUniMP.UNI_EVENT_OPEN_HOME_CREATION, null); } locationUpdates(); } }); } } app/src/main/java/com/hdl/photovoltaic/uni/HDLUniMP.java
@@ -143,6 +143,7 @@ public final static String UNI_EVENT_REPLY_NO_WORK_MODEL_EXIT = "exit_no_work_model";//退出无网模式标识 public final static String UNI_EVENT_REPLY_NO_WORK_MODEL_DEVICE_INFO = "no_work_device_info";//进入无网模式逆变器详情页,缓存mac和密码 public final static String UNI_EVENT_REPLY_NO_WORK_MODEL_CLEAR_DEVICE_INFO = "clear_no_work_device_info";//无网模式逆变器详情页,清除缓存mac和密码 public final static String UNI_EVENT_REPLY_NO_WORK_MODEL_FROM_OFFLINE = "no_work_from_offline";//设备离网时有入口进入无网模式 /*********网络请求模块*********/ public final static String UNI_EVENT_REPLY_UNI_SEND_TO_CLOUD = "uni_send_to_cloud";//uni网络请求 @@ -170,7 +171,8 @@ //region --------【原生】打开【小程序】-------- /*********住宅模块*********/ //页面路径带参数规则->(UNI_EVENT_OPEN_HOME_CREATION+?key=value&key=参数一) public final static String UNI_EVENT_OPEN_HOME_CREATION = "pages/powerStation/powerStationQuickConfig";//"pages/powerStation/powerStationCreate";//住宅【电站】创建 public final static String UNI_EVENT_OPEN_HOME_CREATION = "pages/powerStation/powerStationQuickConfig";//常规调试住宅【电站】创建 public final static String UNI_EVENT_OPEN_HOME_CREATION_SIMPLE = "pages/powerStation/powerStationSimpleDebugging";//简易调试住宅【电站】创建 public final static String UNI_EVENT_OPEN_HOME_EDIT = "pages/powerStation/powerStationEdit";//住宅【电站】编辑 public final static String UNI_EVENT_OPEN_HOME_DETAILS = "pages/powerStationDetail/index";//住宅【电站】详情 app/src/main/java/com/hdl/photovoltaic/widget/AddPowerStationDialog.java
New file @@ -0,0 +1,77 @@ package com.hdl.photovoltaic.widget; import android.content.Context; import android.os.Bundle; import android.view.Gravity; import android.view.ViewGroup; import android.view.Window; import android.view.WindowManager; import androidx.annotation.NonNull; import androidx.recyclerview.widget.LinearLayoutManager; import com.hdl.photovoltaic.R; import com.hdl.photovoltaic.base.BaseDialog; import com.hdl.photovoltaic.databinding.DialogListBinding; import com.hdl.photovoltaic.utils.UnitConversionUtils; import com.hdl.photovoltaic.widget.adapter.PowerStationDialogAdapter; import java.util.ArrayList; import java.util.List; public class AddPowerStationDialog extends BaseDialog { private final Context mContext; private DialogListBinding viewBinding; private List<String> list = new ArrayList<>(); private PowerStationDialogAdapter powerStationDialogAdapter; private PowerStationDialogAdapter.OnclickListener itemOnclickListener;//点击了的监听器 public AddPowerStationDialog(@NonNull Context context) { super(context, R.style.Custom_Dialog); this.mContext = context; this.list.add(this.mContext.getString(R.string.simple_debugging)); this.list.add(this.mContext.getString(R.string.general_debugging)); } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Window window = getWindow(); if (window != null) { window.setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT); WindowManager.LayoutParams layoutParams = window.getAttributes(); layoutParams.gravity = Gravity.START | Gravity.TOP; layoutParams.width = (int) UnitConversionUtils.dpToPx(mContext, 140); layoutParams.x = (int) UnitConversionUtils.dpToPx(mContext, 219); layoutParams.y = (int) UnitConversionUtils.dpToPx(mContext, 89); window.setAttributes(layoutParams); } viewBinding = DialogListBinding.inflate(getLayoutInflater()); setContentView(viewBinding.getRoot()); LinearLayoutManager linearLayout = new LinearLayoutManager(mContext); powerStationDialogAdapter = new PowerStationDialogAdapter(this.list, mContext); viewBinding.logicRcv.setLayoutManager(linearLayout); viewBinding.logicRcv.setAdapter(powerStationDialogAdapter); powerStationDialogAdapter.setItemOnclickListener(new PowerStationDialogAdapter.OnclickListener() { @Override public void onClick(int position, String title) { if (itemOnclickListener != null) { itemOnclickListener.onClick(position, title); } } }); } public void setItemOnclickListener(PowerStationDialogAdapter.OnclickListener onclickListener) { if (onclickListener != null) { this.itemOnclickListener = onclickListener; } } } app/src/main/java/com/hdl/photovoltaic/widget/adapter/PowerStationDialogAdapter.java
New file @@ -0,0 +1,94 @@ package com.hdl.photovoltaic.widget.adapter; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.TextView; import androidx.annotation.NonNull; import androidx.recyclerview.widget.RecyclerView; import com.hdl.photovoltaic.R; import com.hdl.photovoltaic.ui.adapter.LanguageAdapter; import java.util.List; public class PowerStationDialogAdapter extends RecyclerView.Adapter<ListDialogAdapter.MyViewHolder> { private List<String> mList; private final Context mContext; private PowerStationDialogAdapter.OnclickListener itemOnclickListener;//点击了的监听器 public PowerStationDialogAdapter(List<String> list, Context context) { this.mList = list; this.mContext = context; } @NonNull @Override public ListDialogAdapter.MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.diaog_list_line, parent, false); return new ListDialogAdapter.MyViewHolder(view); } @Override public void onBindViewHolder(@NonNull ListDialogAdapter.MyViewHolder holder, int position) { String itemDataStr = this.mList.get(position); holder.list_item_title_tv.setText(itemDataStr); holder.list_item_title_tv.setTextColor(mContext.getColor(R.color.text_FF5B5B5B)); if (position == this.mList.size() - 1) { holder.list_item_line_v.setVisibility(View.GONE); } holder.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (itemOnclickListener != null) { itemOnclickListener.onClick(holder.getAdapterPosition(), itemDataStr); } } }); } @Override public int getItemCount() { return this.mList == null ? 0 : this.mList.size(); } public void setList(List<String> list) { this.mList = list; } public void setItemOnclickListener(PowerStationDialogAdapter.OnclickListener onclickListener) { this.itemOnclickListener = onclickListener; } /** * 一行布局容器 */ static class MyViewHolder extends RecyclerView.ViewHolder { public TextView list_item_title_tv; public View list_item_line_v; public MyViewHolder(@NonNull View itemView) { super(itemView); list_item_title_tv = itemView.findViewById(R.id.list_item_title_tv); list_item_line_v = itemView.findViewById(R.id.list_item_line_v); } } public interface OnclickListener { void onClick(int position, String str); } } app/src/main/res/drawable-xhdpi/roll_back.png
app/src/main/res/layout/activity_message_info.xml
@@ -66,70 +66,36 @@ app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/ll"> <!--事件标题--> <include android:id="@+id/message_info_alarm_content_in" android:id="@+id/message_info_event_title_in" layout="@layout/line_message_info" /> <!--隔间+间隔线¬--> <LinearLayout android:layout_width="match_parent" android:layout_height="@dimen/dp_32" android:gravity="center"> <View android:layout_width="match_parent" android:layout_height="0.5dp" android:background="@color/text_1AFFFFFF" /> </LinearLayout> <!--事件内容--> <include android:id="@+id/message_info_event_content_in" layout="@layout/line_message_info" /> <!--备注--> <include android:id="@+id/message_info_remark_in" layout="@layout/line_message_info" /> <!--报警设备--> <include android:id="@+id/message_info_alarm_device_in" layout="@layout/line_message_info" /> <!--隔间+间隔线¬--> <LinearLayout android:layout_width="match_parent" android:layout_height="@dimen/dp_32" android:gravity="center"> <View android:layout_width="match_parent" android:layout_height="0.5dp" android:background="@color/text_1AFFFFFF" /> </LinearLayout> <!--产品说硬件没做 隐藏掉 2024年05月28日13:46:53--> <include android:id="@+id/message_info_alarm_range_in" layout="@layout/line_message_info" android:visibility="gone" /> <View android:layout_width="match_parent" android:layout_height="@dimen/dp_33" android:visibility="gone" /> <!--电站位置--> <include android:id="@+id/message_info_power_station_location_in" layout="@layout/line_message_info" /> <!--隔间+间隔线¬--> <LinearLayout android:layout_width="match_parent" android:layout_height="@dimen/dp_32" android:gravity="center"> <View android:layout_width="match_parent" android:layout_height="0.5dp" android:background="@color/text_1AFFFFFF" /> </LinearLayout> <!--报警时间--> <include android:id="@+id/message_info_alarm_time_in" layout="@layout/line_message_info" /> <View android:layout_width="match_parent" android:layout_height="@dimen/dp_16" /> <!--处理方案--> <include android:id="@+id/message_info_alarm_treatment_options_in" layout="@layout/line_message_info" android:visibility="gone" /> </LinearLayout> app/src/main/res/layout/line_message_info.xml
@@ -1,29 +1,46 @@ <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginStart="@dimen/dp_16" android:layout_marginEnd="@dimen/dp_16"> android:orientation="vertical"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center_vertical" android:minHeight="50dp" android:orientation="horizontal"> <TextView android:id="@+id/left_title_tv" android:layout_width="wrap_content" android:layout_height="20dp" android:layout_alignParentStart="true" android:layout_centerInParent="true" android:layout_height="wrap_content" android:gravity="center" android:paddingStart="@dimen/dp_16" android:paddingEnd="@dimen/dp_0" android:paddingTop="@dimen/dp_6" android:paddingBottom="@dimen/dp_6" android:textColor="@color/text_FFACACAC" android:textSize="@dimen/text_12" /> <TextView android:id="@+id/right_content_tv" android:layout_width="240dp" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_alignParentEnd="true" android:layout_centerVertical="true" android:layout_weight="1" android:gravity="end" android:paddingStart="@dimen/dp_30" android:paddingEnd="@dimen/dp_16" android:paddingTop="@dimen/dp_6" android:paddingBottom="@dimen/dp_6" android:textColor="@color/text_FFACACAC" android:textSize="@dimen/text_12" /> </LinearLayout> <View android:id="@+id/line_v" android:layout_width="match_parent" android:layout_height="0.5dp" android:background="@color/text_1AFFFFFF" /> </RelativeLayout> </LinearLayout> app/src/main/res/values-en/strings.xml
@@ -367,4 +367,10 @@ <string name="confirm_deletion">Delete confirmation required</string> <string name="no_network_mode_tip">Before using Offline Mode, ensure your phone and device are in the same local network. If unavailable, try belows:\n\n1. Connecting your phone to the device\'s hotspot.\n\n2. Connecting both to the same router (phone via Wi-Fi, device via LAN port with erthernet cable).</string> <string name="no_permission_delete_home">No permission to delete, please contact the administrator for operation</string> <string name="simple_debugging">Simple debugging</string> <string name="general_debugging">General debugging</string> <string name="event_title">Event title</string> <string name="event_content">Event content</string> <string name="remark">remark</string> <string name="treatment_options">Treatment options</string> </resources> app/src/main/res/values-zh/strings.xml
@@ -363,4 +363,10 @@ <string name="confirm_deletion">确定需要删除</string> <string name="no_network_mode_tip">使用无网模式前,请确保手机与设备处于同一局域网内,否则将无法正常使用,你可以尝试以下两种方式:\n\n1.手机连接设备热点。\n\n2.手机连接路由器Wi-Fi,设备通过网线接入路由器LAN口。</string> <string name="no_permission_delete_home">无权限删除,请联系管理员进行操作</string> <string name="simple_debugging">简易调试</string> <string name="general_debugging">常规调试</string> <string name="event_title">事件标题</string> <string name="event_content">事件内容</string> <string name="remark">备注</string> <string name="treatment_options">处理方案</string> </resources> app/src/main/res/values/strings.xml
@@ -369,8 +369,12 @@ <string name="confirm_deletion">Delete confirmation required</string> <string name="no_network_mode_tip">Before using Offline Mode, ensure your phone and device are in the same local network. If unavailable, try belows:\n\n1. Connecting your phone to the device\'s hotspot.\n\n2. Connecting both to the same router (phone via Wi-Fi, device via LAN port with erthernet cable).</string> <string name="no_permission_delete_home">No permission to delete, please contact the administrator for operation</string> <string name="simple_debugging">Simple debugging</string> <string name="general_debugging">General debugging</string> <string name="event_title">Event title</string> <string name="event_content">Event content</string> <string name="remark">remark</string> <string name="treatment_options">Treatment options</string> </resources>