app/build.gradle
@@ -131,7 +131,7 @@ implementation project(path: ':third-zxing') //Link本地库(在线依赖网络库) implementation 'com.hdl.android:pmsdk:1.0.2' implementation 'com.hdl.android:debugsdk:1.0.22' implementation 'com.hdl.android:debugsdk:1.0.23' testImplementation 'junit:junit:4.13.2' androidTestImplementation 'androidx.test.ext:junit:1.1.3' app/src/main/java/com/hdl/photovoltaic/other/HdlDeviceLogic.java
@@ -1391,7 +1391,7 @@ gatewayBean.setSystemStatusDesc(cloudInverterDeviceBean.getSystemStatusDesc());//设备状态 gatewayBean.setHwVersion(cloudInverterDeviceBean.getHwVersion());//软件版本号 gatewayBean.setCategorySecondName(cloudInverterDeviceBean.getCategorySecondName());//设备类型(产品二级分类名称 gatewayBean.setGateway_type(cloudInverterDeviceBean.getDeviceType());//设备类型(INV:逆变器;BMS:BMS控制盒;BATTERY:电池单元) gatewayBean.setDeviceType(cloudInverterDeviceBean.getDeviceType());//设备类型(INV:逆变器;BMS:BMS控制盒;BATTERY:电池单元) gatewayBean.setAddresses(cloudInverterDeviceBean.getAddresses());//子网号/设备号,逆变器地址 gatewayBean.setPowerPvNow(cloudInverterDeviceBean.getPowerPvNow());//发电功率 gatewayBean.setTotalElectricityPvToday(cloudInverterDeviceBean.getTotalElectricityPvToday());//今日发电量 app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java
@@ -93,7 +93,7 @@ public class HdlUniLogic implements HDLUniMPSDKManager.IOnOtherUniMPEventCallBack { private static volatile HdlUniLogic sHdlUniLogic; public final static String separator="---"; public final static String separator = "---"; /** * 获取当前对象 @@ -563,6 +563,7 @@ */ private void uniGetAndSetNetwork(String type, Object data, String TopicApi, DCUniMPJSCallback callback) { String mac = getKeyValue("mac", getKeyValue("data", data)); JsonArray jsonArray = new JsonArray(); JsonObject jObject = null; String attribute_data = getKeyValue("attribute_data", getKeyValue("data", data)); if (!TextUtils.isEmpty(attribute_data)) { @@ -572,8 +573,9 @@ jObject = new JsonObject(); } } jsonArray.add(jObject); //解密负载数据(写密钥给网关一定是明文,因为那时网关还没有密钥) TcpClient.getInstance().sendDataToLinkGateway(mac, false, TopicApi, jObject, "", new HDLLinkCallBack() { TcpClient.getInstance().sendDataToLinkGateway(mac, false, TopicApi, jsonArray, "", new HDLLinkCallBack() { @Override public void onSuccess(String msg) { if (callback != null) { app/src/main/java/com/hdl/photovoltaic/ui/LoginActivity.java
@@ -486,9 +486,10 @@ */ 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(); // dialog.setTitle(getString(R.string.loading_privacy)); dialog.isHideTitle(true); dialog.setContent(getString(R.string.loading_privacy_server)); setStringDifferentColors(dialog.getContentTextView()); dialog.setYesOnclickListener(new ConfirmationCancelDialog.onYesOnclickListener() { @Override app/src/main/java/com/hdl/photovoltaic/ui/home/HomePageFragment.java
@@ -286,6 +286,7 @@ String timeDateFormat = TimeUtils.getTimeDateFormat(timeType); Calendar calendar = TimeUtils.stringToCalendar(currDate, timeDateFormat); String time = TimeUtils.subtractDayMonthYearFromDate(calendar, 1, timeDateFormat, timeType); //不需要限制最小日期,因为是查询账号下所有电站,无法知道最小建站日期 viewBinding.yearMonthDayTv.setText(time); getStatistics(); app/src/main/java/com/hdl/photovoltaic/ui/me/SetActivity.java
@@ -120,9 +120,9 @@ private void logoutRequest() { // 二次确认提示框 ConfirmationCancelDialog dialog = new ConfirmationCancelDialog(this); dialog.setTitle(getString(R.string.loading_title_tip)); dialog.setContent(getString(R.string.loading_log_out)); dialog.show(); dialog.setContent(getString(R.string.loading_log_out)); dialog.isHideTitle(true); dialog.setYesOnclickListener(new ConfirmationCancelDialog.onYesOnclickListener() { @Override public void Confirm() { app/src/main/java/com/hdl/photovoltaic/ui/newC/PowerStationsListEdit.java
@@ -261,7 +261,7 @@ JsonObject jsonObject = new JsonObject(); jsonObject.addProperty("homeId", houseIdBean.getHomeId()); jsonObject.addProperty("homeName", houseIdBean.getHomeName()); jsonObject.addProperty("powerStationStatus", houseIdBean.getPowerStationStatus()+""); jsonObject.addProperty("powerStationStatus", houseIdBean.getPowerStationStatus() + ""); HDLUniMP.UniCallBackBaseBean uniCallBackBaseBean = new HDLUniMP.UniCallBackBaseBean(); uniCallBackBaseBean.setType(HDLUniMP.UNI_EVENT_NOTIFICATION_DEVICE_REFRESH_DETAILS); uniCallBackBaseBean.setData(jsonObject); app/src/main/java/com/hdl/photovoltaic/ui/powerstation/DeviceSearchActivity.java
@@ -24,10 +24,14 @@ import com.hdl.photovoltaic.other.HdlFileLogic; import com.hdl.photovoltaic.other.HdlLogLogic; import com.hdl.photovoltaic.other.HdlThreadLogic; import com.hdl.photovoltaic.other.HdlUniLogic; import com.hdl.photovoltaic.ui.adapter.DeviceInfoAdapter; import com.hdl.photovoltaic.ui.adapter.SearchDeviceAdapter; import com.hdl.photovoltaic.ui.adapter.SearchHistoryAdapter; import com.hdl.photovoltaic.ui.bean.DeviceBean; import com.hdl.photovoltaic.uni.HDLUniMP; import com.hdl.photovoltaic.utils.URLEncodingUtils; import com.hdl.sdk.link.core.bean.gateway.GatewayBean; import java.util.ArrayList; import java.util.Collections; @@ -174,11 +178,26 @@ viewBinding.powerStationSearchEt.setText(title); } }); //电站点击是事件 //设备点击是事件 searchDeviceAdapter.setOnclickListener(new DeviceInfoAdapter.OnClickListener() { @Override public void onClick(int position, DeviceBean deviceBean) { GatewayBean gatewayBean = new GatewayBean(); gatewayBean.setCategorySecondName(deviceBean.getCategorySecondName()); gatewayBean.setDevice_mac(deviceBean.getOsn()); gatewayBean.setDevice_model(deviceBean.getOmodel()); gatewayBean.setOid(deviceBean.getOid()); gatewayBean.setGatewayId(deviceBean.getGatewayId()); gatewayBean.setAddresses(deviceBean.getAddresses()); gatewayBean.setSid(deviceBean.getSid()); gatewayBean.setDeviceId(deviceBean.getDeviceId()); gatewayBean.setDevice_name(deviceBean.getName()); gatewayBean.setDeviceStatus(deviceBean.getDeviceStatus()); gatewayBean.setHomeId(deviceBean.getHomeId()); gatewayBean.setDeviceType(deviceBean.getDeviceType()); String jsonEncryption = URLEncodingUtils.encodeURIComponent(new Gson().toJson(gatewayBean)); String path = HDLUniMP.UNI_EVENT_OPEN_DEVICE_DETAILS + "?inverterInfo=" + jsonEncryption; HdlUniLogic.getInstance().openUniMP(path, null); } }); @@ -346,7 +365,7 @@ } boolean if_boolean = false; for (int i = 0; i < deviceList.size(); i++) { if (deviceList.get(i).getHomeId().equals(deviceBean.getHomeId())) { if (deviceList.get(i).getOsn().equals(deviceBean.getOsn())) { //存在替换 deviceList.remove(i); deviceList.add(i, deviceBean); app/src/main/java/com/hdl/photovoltaic/ui/powerstation/HouseAndDeviceFragment.java
@@ -1,5 +1,6 @@ package com.hdl.photovoltaic.ui.powerstation; import android.app.job.JobInfo; import android.content.Intent; import android.content.pm.PackageManager; import android.os.Bundle; @@ -41,6 +42,7 @@ import com.hdl.photovoltaic.ui.bean.StatusOverviewBean; import com.hdl.photovoltaic.uni.HDLUniMP; import com.hdl.photovoltaic.utils.PermissionUtils; import com.hdl.photovoltaic.utils.URLEncodingUtils; import com.hdl.photovoltaic.widget.DefaultFilteringDialog; import com.hdl.photovoltaic.widget.DelayedConfirmationCancelDialog; import com.hdl.sdk.link.common.exception.HDLLinkException; @@ -408,7 +410,22 @@ deviceInfoAdapter.setOnclickListener(new DeviceInfoAdapter.OnClickListener() { @Override public void onClick(int position, DeviceBean deviceBean) { GatewayBean gatewayBean = new GatewayBean(); gatewayBean.setCategorySecondName(deviceBean.getCategorySecondName()); gatewayBean.setDevice_mac(deviceBean.getOsn()); gatewayBean.setDevice_model(deviceBean.getOmodel()); gatewayBean.setOid(deviceBean.getOid()); gatewayBean.setGatewayId(deviceBean.getGatewayId()); gatewayBean.setAddresses(deviceBean.getAddresses()); gatewayBean.setSid(deviceBean.getSid()); gatewayBean.setDeviceId(deviceBean.getDeviceId()); gatewayBean.setDevice_name(deviceBean.getName()); gatewayBean.setDeviceStatus(deviceBean.getDeviceStatus()); gatewayBean.setHomeId(deviceBean.getHomeId()); gatewayBean.setDeviceType(deviceBean.getDeviceType()); String jsonEncryption = URLEncodingUtils.encodeURIComponent(new Gson().toJson(gatewayBean)); String path = HDLUniMP.UNI_EVENT_OPEN_DEVICE_DETAILS + "?inverterInfo=" + jsonEncryption; HdlUniLogic.getInstance().openUniMP(path, null); } }); //设备设置下拉箭头颜色 app/src/main/java/com/hdl/photovoltaic/uni/HDLUniMP.java
@@ -130,8 +130,10 @@ public final static String UNI_EVENT_OPEN_HOME_EDIT = "pages/powerStation/powerStationEdit";//住宅【电站】编辑 public final static String UNI_EVENT_OPEN_HOME_DETAILS = "pages/powerStationDetail/index";//住宅【电站】详情 public final static String UNI_EVENT_OPEN_HOME_DETAILS_C = "pages/powerStationDetail/tabbarPage";//C端打开【电站】详情 public final static String UNI_EVENT_OPEN_HOME_Null_C = "pages/powerStationDetail/tabbarPage";//无电站时(不需要传参数) public final static String UNI_EVENT_OPEN_DEVICE_DETAILS = "pages/powerStationDetail/childPage/device/detail";//设备详情 public final static String UNI_EVENT_OPEN_HOME_DEl = "del";//住宅【电站】删除 /*********设备模块*********/ //设备模块打开页面全路径 app/src/main/java/com/hdl/photovoltaic/utils/URLEncodingUtils.java
New file @@ -0,0 +1,20 @@ package com.hdl.photovoltaic.utils; import java.io.UnsupportedEncodingException; import java.net.URLEncoder; /** * 编码加码 */ public class URLEncodingUtils { public static String encodeURIComponent(String value) { try { return URLEncoder.encode(value, "UTF-8") .replace("+", "%20") .replace("*", "%2A") .replace("%7E", "~"); } catch (Exception e) { return ""; } } } app/src/main/java/com/hdl/photovoltaic/widget/ConfirmationCancelDialog.java
@@ -62,6 +62,19 @@ } /** * 隐藏自定义"标题"组件 * * @param isHideTitle true 隐藏 */ public void isHideTitle(boolean isHideTitle) { if (isHideTitle) { if (viewBinding != null) { viewBinding.loadingConfirmationTitleTv.setVisibility(View.GONE); } } } /** * 自定义"确认"文本 * * @param confirm 内容 app/src/main/java/com/hdl/photovoltaic/widget/ConfirmationCancelDialog1.java
@@ -61,6 +61,19 @@ } /** * 隐藏自定义"标题"组件 * * @param isHideTitle true 隐藏 */ public void isHideTitle(boolean isHideTitle) { if (isHideTitle) { if (viewBinding != null) { viewBinding.loadingConfirmationTitleTv.setVisibility(View.GONE); } } } /** * 自定义"确认"文本 * * @param confirm 内容 app/src/main/res/layout/activity_home_login.xml
@@ -122,7 +122,6 @@ android:layout_height="@dimen/dp_20" android:layout_marginEnd="@dimen/dp_32" android:src="@drawable/clear" android:visibility="gone" app:layout_constraintBottom_toBottomOf="@+id/home_login_account_et" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintTop_toTopOf="@+id/home_login_account_et" /> app/src/main/res/layout/activity_start.xml
@@ -8,6 +8,7 @@ tools:context="com.hdl.photovoltaic.ui.StartActivity"> <TextView android:id="@+id/start_tv" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginStart="@dimen/dp_5" @@ -23,4 +24,15 @@ app:layout_constraintTop_toTopOf="parent" app:layout_constraintVertical_bias="0.093" /> <ImageView android:id="@+id/as_regards_icon_iv" android:layout_width="53.5dp" android:layout_height="53.5dp" android:layout_marginTop="@dimen/dp_29" android:src="@drawable/logo" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/start_tv" /> </androidx.constraintlayout.widget.ConstraintLayout> app/src/main/res/layout/dialog_agree_onagree.xml
@@ -21,11 +21,11 @@ <TextView android:id="@+id/loading_confirmation_title_tv" android:layout_width="0dp" android:gravity="center" android:layout_height="@dimen/dp_25" android:layout_marginStart="@dimen/dp_16" android:layout_marginTop="@dimen/dp_24" android:layout_marginEnd="@dimen/dp_20" android:gravity="center" android:textColor="@color/text_030D1C" android:textSize="@dimen/text_18" app:layout_constraintEnd_toEndOf="parent" @@ -37,12 +37,12 @@ android:layout_width="0dp" android:layout_height="wrap_content" android:layout_marginStart="@dimen/dp_16" android:layout_marginTop="@dimen/dp_16" android:layout_marginTop="@dimen/dp_43" android:layout_marginEnd="@dimen/dp_20" android:layout_marginBottom="@dimen/dp_34" android:singleLine="false" android:textColor="@color/text_030D1C" android:tag="click" android:textColor="@color/text_030D1C" app:layout_constraintBottom_toTopOf="@+id/dialog_confirm_bottom_line_ly" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app/src/main/res/layout/dialog_confirm_cancel.xml
@@ -2,8 +2,7 @@ <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" > android:layout_height="match_parent"> <androidx.constraintlayout.widget.ConstraintLayout android:id="@+id/loading_confirmation_cl" @@ -37,12 +36,13 @@ android:layout_width="0dp" android:layout_height="wrap_content" android:layout_marginStart="@dimen/dp_20" android:layout_marginTop="@dimen/dp_34" android:layout_marginTop="@dimen/dp_43" android:layout_marginEnd="@dimen/dp_20" android:layout_marginBottom="@dimen/dp_34" android:gravity="center" android:singleLine="false" android:textColor="@color/text_030D1C" android:textColor="@color/text_222222" android:textSize="@dimen/text_18" app:layout_constraintBottom_toTopOf="@+id/dialog_confirm_bottom_line_ly" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app/src/main/res/layout/fragment_message.xml
@@ -8,7 +8,7 @@ <RelativeLayout android:id="@+id/message_rl" android:layout_width="match_parent" android:layout_height="@dimen/dp_31" android:layout_height="@dimen/dp_36" android:layout_marginStart="@dimen/dp_16" android:layout_marginTop="@dimen/dp_44" android:layout_marginEnd="@dimen/dp_16" app/src/main/res/layout/item_device_details.xml
@@ -116,7 +116,7 @@ android:layout_height="@dimen/dp_17" android:layout_marginTop="3dp" android:gravity="center" android:text="@string/generated_power" android:text="@string/active_power" android:textColor="@color/text_66000000" android:textSize="@dimen/text_12" /> app/src/main/res/values/strings.xml
@@ -303,5 +303,6 @@ <string name="enter_alarm_name">输入报警名称</string> <string name="device">设备</string> <string name="Offline_fault">离线有故障</string> <string name="active_power">有功功率</string> </resources>