From 936fb552a30c05fc7a60c20f47bf6fccbc2dc1c1 Mon Sep 17 00:00:00 2001 From: mac <user@users-MacBook-Pro.local> Date: 星期三, 27 十二月 2023 16:17:23 +0800 Subject: [PATCH] 备份一下代码 --- app/src/main/java/com/hdl/photovoltaic/ui/MyPowerStationActivity.java | 187 +++++++++++++++++++++++++++++++++------------- 1 files changed, 134 insertions(+), 53 deletions(-) diff --git a/app/src/main/java/com/hdl/photovoltaic/ui/MyPowerStationActivity.java b/app/src/main/java/com/hdl/photovoltaic/ui/MyPowerStationActivity.java index c895a5a..e02daf2 100644 --- a/app/src/main/java/com/hdl/photovoltaic/ui/MyPowerStationActivity.java +++ b/app/src/main/java/com/hdl/photovoltaic/ui/MyPowerStationActivity.java @@ -2,9 +2,10 @@ import androidx.annotation.NonNull; import androidx.appcompat.content.res.AppCompatResources; +import androidx.core.app.ActivityCompat; import android.Manifest; -import android.content.Intent; +import android.content.IntentFilter; import android.content.pm.PackageManager; import android.os.Bundle; import android.os.Process; @@ -14,19 +15,21 @@ import com.google.gson.Gson; import com.hdl.linkpm.sdk.core.exception.HDLException; import com.hdl.linkpm.sdk.home.type.HomeType; -import com.hdl.photovoltaic.HDLApp; import com.hdl.photovoltaic.R; import com.hdl.photovoltaic.base.CustomBaseActivity; import com.hdl.photovoltaic.bean.MqttInfo; +import com.hdl.photovoltaic.broadcast.NetworkChangeReceiver; +import com.hdl.photovoltaic.config.ConstantManage; import com.hdl.photovoltaic.config.UserConfigManage; import com.hdl.photovoltaic.databinding.ActivityMyPowerStationBinding; -import com.hdl.photovoltaic.internet.HttpServer.MyNanoHttpServer; -import com.hdl.photovoltaic.internet.HttpServer.MyNanoHttpService; +import com.hdl.photovoltaic.enums.HomepageTitleTabSwitch; +import com.hdl.photovoltaic.enums.NetworkType; import com.hdl.photovoltaic.listener.CloudCallBeak; +import com.hdl.photovoltaic.other.HdlCommonLogic; import com.hdl.photovoltaic.other.HdlDeviceLogic; -import com.hdl.photovoltaic.other.HdlFileLogic; import com.hdl.photovoltaic.other.HdlLogLogic; import com.hdl.photovoltaic.other.HdlMqttLogic; +import com.hdl.photovoltaic.other.HdlOtaLogic; import com.hdl.photovoltaic.other.HdlThreadLogic; import com.hdl.photovoltaic.other.HdlUniLogic; import com.hdl.photovoltaic.ui.bean.DeviceRemoteInfo; @@ -42,6 +45,7 @@ import com.hdl.sdk.link.core.config.HDLLinkConfig; import com.hdl.sdk.link.core.utils.mqtt.MqttRecvClient; +import org.greenrobot.eventbus.EventBus; import org.greenrobot.eventbus.Subscribe; import org.greenrobot.eventbus.ThreadMode; @@ -60,6 +64,8 @@ private int backPressTimes; + private NetworkChangeReceiver networkChangeReceiver; + @Override public Object getContentView() { @@ -69,22 +75,40 @@ @Override public void onBindView(Bundle savedInstanceState) { + setNotificationBarBackgroundColor(CustomColor.blue); //鍒濆鍖� - initView(); + this.initView(); //鍒濆鍖栫晫闈㈢洃鍚櫒 - initEvent(); + this.initEvent(); //娉ㄥ唽鐩戝惉 - registerAllTopicsListener(); + this.registerAllTopicsListener(); //鍒濆鍖杕qtt瀹㈡埛绔� - initMqttClient(); + this.initMqttClient(); + //鐩戝惉缃戠粶鐘舵�佸彉鍖� + this.networkMonitoring(); - String path = HdlFileLogic.getInstance().getDriveRootPath() + "/036F6C1B.zip"; - MyNanoHttpServer.getInstance(AppManagerUtils.getAppManager().getIPAddress(HDLApp.getInstance())); - //MyNanoHttpServer.getInstance("127.0.0.1"); - Intent intentServer = new Intent(); - intentServer.setClass(HDLApp.getInstance(), MyNanoHttpService.class); - startService(intentServer); +// HdlOtaLogic.getInstance().startLocalService(new ServiceConnection() { +// @Override +// public void onServiceConnected(ComponentName name, IBinder service) { +// +// } +// +// @Override +// public void onServiceDisconnected(ComponentName name) { +// +// } +// }); + } + + /** + * 鐩戝惉缃戠粶鐘舵�佸彉鍖� + */ + private void networkMonitoring() { + IntentFilter intentFilter = new IntentFilter(); + intentFilter.addAction("android.net.conn.CONNECTIVITY_CHANGE"); + networkChangeReceiver = new NetworkChangeReceiver(); + registerReceiver(networkChangeReceiver, intentFilter); } private void initEvent() { @@ -93,6 +117,7 @@ public void onClick(View v) { currentFragmentIndex = 1; bottomViewChangeOfStyle(); + postEventBus(HomepageTitleTabSwitch.powerstation); } }); viewBinding.myMessageBottomIl2.clickTv.setOnClickListener(new View.OnClickListener() { @@ -100,6 +125,8 @@ public void onClick(View v) { currentFragmentIndex = 2; bottomViewChangeOfStyle(); + postEventBus(HomepageTitleTabSwitch.message); + } }); viewBinding.myMeBottomIl3.clickTv.setOnClickListener(new View.OnClickListener() { @@ -107,6 +134,7 @@ public void onClick(View v) { currentFragmentIndex = 3; bottomViewChangeOfStyle(); + postEventBus(HomepageTitleTabSwitch.me); } }); @@ -119,11 +147,13 @@ HdlUniLogic.getInstance().checkRemoveOtherUniMPEventCallBack(); //绉婚櫎鐩戝惉 HDLLinkLocalSdk.getInstance().removeAllTopicsListener(allTopicsListener); + //绉婚櫎鐩戝惉缃戠粶鐘舵�佸彉鍖� + unregisterReceiver(networkChangeReceiver); } private void initView() { - viewBinding.myPowerStationBottomIl1.titleTv.setText(R.string.power_station); + viewBinding.myPowerStationBottomIl1.titleTv.setText("棣栭〉");// viewBinding.myMessageBottomIl2.titleTv.setText(R.string.message); viewBinding.myMeBottomIl3.titleTv.setText(R.string.power_station_me); this.bottomViewChangeOfStyle(); @@ -164,6 +194,17 @@ } } + /** + * 鍙戝竷鐐瑰嚮浜嬩欢 + * + * @param tabSwitch - + */ + private void postEventBus(HomepageTitleTabSwitch tabSwitch) { + BaseEventBus baseEventBus = new BaseEventBus(); + baseEventBus.setTopic(ConstantManage.homepage_title_tab_switch); + baseEventBus.setType(tabSwitch.toString()); + EventBus.getDefault().post(baseEventBus); + } public void requestPermissions() { String[] ary = PermissionUtils.checkPermission(_mActivity, new String[]{Manifest.permission.ACCESS_FINE_LOCATION}); @@ -224,7 +265,7 @@ if (response.getTopic() == null) { return; } - HdlLogLogic.print("鐩戝惉鍒扮殑鏁版嵁===" + new Gson().toJson(response), false); + HdlLogLogic.print("鐩戝惉鍒扮殑鏁版嵁--->" + new Gson().toJson(response), false); // if (response.getTopic().endsWith("custom/native/inverter/up")) { HDLUniMP.UniCallBackBaseBean uniCallBackBaseBean = new HDLUniMP.UniCallBackBaseBean(); uniCallBackBaseBean.setType(response.getTopic()); @@ -242,6 +283,7 @@ uniCallBackBaseBean.setType(linkResponse.getTopic()); uniCallBackBaseBean.setData(linkResponse.getData()); HdlUniLogic.getInstance().sendUni(HDLUniMP.UNI_EVENT_REPLY_OTA_MODEL, uniCallBackBaseBean); + HdlLogLogic.print(linkResponse.getTopic() + new Gson().toJson(linkResponse.getData()), true); } } } @@ -263,60 +305,95 @@ @Override public void onFailure(HDLException e) { - HdlLogLogic.print("璇诲彇mqtt杩滅▼淇℃伅澶辫触===" + e.getMessage(), e.getCode(), true); + HdlLogLogic.print("璇诲彇mqtt杩滅▼淇℃伅澶辫触--->" + e.getMessage(), e.getCode(), true); } }); } @Subscribe(threadMode = ThreadMode.MAIN) public void onEventMessage(BaseEventBus event) { - //缃戝叧鏇存柊mqtt绉橀挜鏇存柊閫氱煡 + if (event == null) { return; } if (TextUtils.isEmpty(event.getTopic())) { return; } - String[] topics = event.getTopic().split("/"); - //涓婚涓嶇鍚堣鍒欎笉澶勭悊 - if (topics.length < 3) { - return; - } - int index = -1; - List<GatewayBean> list = HdlDeviceLogic.getInstance().getCurrentHomeGatewayList(); - for (int i = 0; i < list.size(); i++) { - GatewayBean gatewayBean = list.get(i); - if (gatewayBean.getGatewayId().equals(topics[2])) { - index = i; - break; + //缃戝叧鏇存柊mqtt绉橀挜鏇存柊閫氱煡 + if (event.getTopic().contains("/custom/mqtt/secret/change")) { + String[] topics = event.getTopic().split("/"); + //涓婚涓嶇鍚堣鍒欎笉澶勭悊 + if (topics.length < 3) { + return; + } + int index = -1; + List<GatewayBean> list = HdlDeviceLogic.getInstance().getCurrentHomeGatewayList(); + for (int i = 0; i < list.size(); i++) { + GatewayBean gatewayBean = list.get(i); + if (gatewayBean.getGatewayId().equals(topics[2])) { + index = i; + break; + } + } + if (index > -1) { + GatewayBean gatewayBean = list.get(index); + HdlDeviceLogic.getInstance().getDeviceRemoteInfo(UserConfigManage.getInstance().getHomeId(), gatewayBean.getSpk(), gatewayBean.getDevice_mac(), new CloudCallBeak<DeviceRemoteInfo>() { + @Override + public void onSuccess(DeviceRemoteInfo deviceRemoteInfo) { + if (deviceRemoteInfo != null) { + //鏇存柊mqtt閫氳鐨勬柊绉橀挜 + gatewayBean.setAesKey(deviceRemoteInfo.getSecret()); + //鐢ㄤ箣鍓嶇殑搴�,搴曞眰mqtt璁㈤槄锛屽姞瑙e瘑浼氱敤鍒拌鍙傛暟; + HDLLinkConfig.getInstance().setAesKey(deviceRemoteInfo.getSecret());//璁剧疆mqtt閫氳绉橀挜搴� + } + } + + @Override + public void onFailure(HDLException e) { + + } + }); + } + } else if (event.getTopic().contains(HdlOtaLogic.localDownloadProgress)) { + //涓嬭浇浜戠椹卞姩鎴栬�呭浐浠舵枃浠跺埌鏈湴,鑷繁璁$畻杩涘害鏉′笂鎶ュ埌uni閭h竟 + HDLUniMP.UniCallBackBaseBean uniCallBackBaseBean = new HDLUniMP.UniCallBackBaseBean(); + uniCallBackBaseBean.setType(event.getType()); + uniCallBackBaseBean.setData(event.getData()); + HdlUniLogic.getInstance().sendUni(HDLUniMP.UNI_EVENT_REPLY_OTA_MODEL, uniCallBackBaseBean); + HdlLogLogic.print(event.getTopic() + new Gson().toJson(event.getData()), true); + } else if (event.getTopic().contains(ConstantManage.network_change_post)) { +// String wifi_ssid = WifiUtils.getInstance().getCurrentConnectWifiSsid();//鑾峰彇WiFi鐨剆sid闇�瑕佷綅缃潈闄愮殑 + HdlLogLogic.print("鐩戝惉缃戠粶鐘舵��--->" + event.getData().toString() + "(" + event.getType() + ")", true); + //绗竴娆″惎鍔ˋpp,浠ュ強鍒囨崲缃戠粶鐨勬椂鍊欐洿鏂� + if (TextUtils.isEmpty(UserConfigManage.getInstance().getHomeId())) { + return; + } + if (!event.getType().equals(NetworkType.no_network.toString())) { +// AppManagerUtils.getAppManager().showLoading(); + HdlThreadLogic.runSubThread(new Runnable() { + @Override + public void run() { + HdlDeviceLogic.getInstance().getCurrentHomeLocalAndCloudGatewayList(UserConfigManage.getInstance().getHomeId(), new CloudCallBeak<List<GatewayBean>>() { + @Override + public void onSuccess(List<GatewayBean> obj) { +// AppManagerUtils.getAppManager().hideLoading(); + + } + + @Override + public void onFailure(HDLException e) { +// AppManagerUtils.getAppManager().hideLoading(); + } + }); + } + }); } } - if (index > -1) { - GatewayBean gatewayBean = list.get(index); - HdlDeviceLogic.getInstance().getDeviceRemoteInfo(UserConfigManage.getInstance().getHomeId(), gatewayBean.getSpk(), gatewayBean.getDevice_mac(), new CloudCallBeak<DeviceRemoteInfo>() { - @Override - public void onSuccess(DeviceRemoteInfo deviceRemoteInfo) { - if (deviceRemoteInfo != null) { - //鏇存柊mqtt閫氳鐨勬柊绉橀挜 - gatewayBean.setAesKey(deviceRemoteInfo.getSecret()); - //鐢ㄤ箣鍓嶇殑搴�,搴曞眰mqtt璁㈤槄锛屽姞瑙e瘑浼氱敤鍒拌鍙傛暟; - HDLLinkConfig.getInstance().setAesKey(deviceRemoteInfo.getSecret());//璁剧疆mqtt閫氳绉橀挜搴� - } - } - - @Override - public void onFailure(HDLException e) { - - } - }); - } - - } /** - * 鐐瑰嚮杩斿洖閿殑浜嬩欢 + * 鐗╃悊鎸夐敭杩斿洖浜嬩欢 */ @Override public void onBackPressed() { @@ -345,4 +422,8 @@ super.onBackPressed(); } + + + + } \ No newline at end of file -- Gitblit v1.8.0