From 5d3efa4c93dde0cde474951e5310bb72ebbf4184 Mon Sep 17 00:00:00 2001 From: wjc <1243177876@qq.com> Date: 星期三, 07 五月 2025 15:18:26 +0800 Subject: [PATCH] 2025年05月07日15:18:20 1.2.0 --- app/src/main/java/com/hdl/photovoltaic/ui/BPowerStationActivity.java | 203 ++++++++++++++++++++++++++++++++++---------------- 1 files changed, 136 insertions(+), 67 deletions(-) diff --git a/app/src/main/java/com/hdl/photovoltaic/ui/BPowerStationActivity.java b/app/src/main/java/com/hdl/photovoltaic/ui/BPowerStationActivity.java index d4ac517..1e292ba 100644 --- a/app/src/main/java/com/hdl/photovoltaic/ui/BPowerStationActivity.java +++ b/app/src/main/java/com/hdl/photovoltaic/ui/BPowerStationActivity.java @@ -5,6 +5,7 @@ import androidx.fragment.app.Fragment; import androidx.fragment.app.FragmentManager; import androidx.fragment.app.FragmentTransaction; +import androidx.lifecycle.Lifecycle; import android.Manifest; import android.content.Context; @@ -16,6 +17,7 @@ import android.os.SystemClock; import android.provider.Settings; import android.text.TextUtils; +import android.util.Log; import android.view.View; import android.widget.TextView; @@ -33,10 +35,10 @@ import com.hdl.photovoltaic.enums.HomepageTitleTabSwitch; import com.hdl.photovoltaic.enums.LowerTagType; import com.hdl.photovoltaic.enums.NetworkType; -import com.hdl.photovoltaic.enums.PowerStationStatusType; import com.hdl.photovoltaic.listener.CloudCallBeak; import com.hdl.photovoltaic.other.HdlCommonLogic; import com.hdl.photovoltaic.other.HdlDeviceLogic; +import com.hdl.photovoltaic.other.HdlESLocalJsonLogic; import com.hdl.photovoltaic.other.HdlLogLogic; import com.hdl.photovoltaic.other.HdlMessageLogic; import com.hdl.photovoltaic.other.HdlMqttLogic; @@ -53,8 +55,10 @@ import com.hdl.photovoltaic.ui.powerstation.HouseAndDeviceFragment; import com.hdl.photovoltaic.uni.HDLUniMP; import com.hdl.photovoltaic.utils.AppManagerUtils; +import com.hdl.photovoltaic.utils.FragmentUtils; import com.hdl.photovoltaic.utils.GPSManagerUtils; import com.hdl.photovoltaic.utils.PermissionUtils; +import com.hdl.photovoltaic.utils.SharedPreUtils; import com.hdl.photovoltaic.widget.ConfirmationCancelDialog; import com.hdl.photovoltaic.widget.ConfirmationTipDialog; import com.hdl.sdk.link.HDLLinkLocalSdk; @@ -66,8 +70,8 @@ import com.hdl.sdk.link.core.config.HDLLinkConfig; import com.hdl.sdk.link.core.connect.HDLUdpConnect; import com.hdl.sdk.link.core.utils.mqtt.MqttRecvClient; +import com.umeng.analytics.MobclickAgent; -import org.greenrobot.eventbus.EventBus; import org.greenrobot.eventbus.Subscribe; import org.greenrobot.eventbus.ThreadMode; @@ -101,10 +105,10 @@ @Override public void onBindView(Bundle savedInstanceState) { -// setNotificationBarBackgroundColor(CustomColor.blue); setStatusBarTranslucent(); + getWindow().setNavigationBarColor(getColor(R.color.text_FF1C1C1E)); //鍒濆鍖栫鐗� - initFragment(savedInstanceState); + initFragment(null); //鍒濆鍖� this.initView(); //鍒濆鍖栫晫闈㈢洃鍚櫒 @@ -121,6 +125,9 @@ this.requestPermissions(); //璇诲彇娑堟伅鏈鏁伴噺 this.getUnreadCount(); + //鑾峰彇浜戠鑴氭湰 + HdlESLocalJsonLogic.getInstance().getAllHdlESLocalJson(); + } @@ -140,23 +147,38 @@ if (savedInstanceState != null) { //鈥滃唴瀛橀噸鍚�濇椂璋冪敤 鑾峰彇鈥滃唴瀛橀噸鍚�濇椂淇濆瓨鐨勭储寮曚笅鏍� currentFragmentIndex = savedInstanceState.getInt(CURRENT_FRAGMENT, 0); - if (fragmentList.size() != 0) { + if (!fragmentList.isEmpty()) { fragmentList.clear(); } fragmentList.add(mFragmentManager.findFragmentByTag(0 + "")); fragmentList.add(mFragmentManager.findFragmentByTag(1 + "")); fragmentList.add(mFragmentManager.findFragmentByTag(2 + "")); fragmentList.add(mFragmentManager.findFragmentByTag(3 + "")); - restoreFragment();//鎭㈠fragment椤甸潰 + this.restoreFragment();//鎭㈠fragment椤甸潰 } else { + // + this.removeAllFragments(mFragmentManager); //姝e父鍚姩鏃惰皟鐢� + if (!fragmentList.isEmpty()) { + fragmentList.clear(); + } fragmentList.add(mHomePageFragment); fragmentList.add(mHouseAndDeviceFragment); fragmentList.add(mMessageFragment); fragmentList.add(mMeFragment); - showFragment(); + this.showFragment(); } + +// if (!fragmentList.isEmpty()) { +// fragmentList.clear(); +// } +// // 姝e父鍚姩鏃惰皟鐢� +// fragmentList.add(mHomePageFragment); +// fragmentList.add(mHouseAndDeviceFragment); +// fragmentList.add(mMessageFragment); +// fragmentList.add(mMeFragment); +// FragmentUtils.loadMultipleFragment(R.id.module_fcv, mFragmentManager, fragmentList.toArray(new Fragment[0])); } @@ -165,6 +187,7 @@ * 鏄剧ずfragment */ private void showFragment() { +// FragmentUtils.showHideFragment(mFragmentManager, fragmentList.toArray(new Fragment[0])[currentFragmentIndex]); FragmentTransaction ft = mFragmentManager.beginTransaction(); //濡傛灉涔嬪墠娌℃湁娣诲姞杩� if (!fragmentList.get(currentFragmentIndex).isAdded()) { @@ -173,12 +196,10 @@ } else { ft.hide(currentFragment).show(fragmentList.get(currentFragmentIndex)); } + //鎶婂綋鍓嶆樉绀虹殑fragment璁板綍涓嬫潵 currentFragment = fragmentList.get(currentFragmentIndex); ft.commit(); //鎶婂綋鍓嶆樉绀虹殑fragment璁板綍涓嬫潵 - currentFragment = fragmentList.get(currentFragmentIndex); - - } /** @@ -194,6 +215,28 @@ } } ft.commit(); + } + + private void removeAllFragments(FragmentManager manager) { + if (manager == null) return; + try { + final List<Fragment> fragments = manager.getFragments(); + if (fragments.isEmpty()) { + return; + } + FragmentTransaction transaction = manager.beginTransaction(); + for (int i = 0; i < fragments.size(); i++) { + Fragment fragment = fragments.get(i); + if (fragment != null) { +// FragmentManager childManager = fragment.getChildFragmentManager(); +// removeAllFragments(childManager); + transaction.remove(fragment); + } + } + transaction.commit(); + } catch (Exception e) { + e.printStackTrace(); + } } @@ -251,14 +294,14 @@ UserConfigManage.getInstance().Save(); } HDLApp.getInstance().setInfoMap(registrationId_tag, "true");//璁板綍涓�涓嬬姸鎬�,鍚庡彴鏉�姝籥pp浼氭竻绌�; - HdlLogLogic.print("娣诲姞鏋佸厜ID鍒颁簯绔�--->registrationID:" + UserConfigManage.getInstance().getUserName() + "--->" + finalRegistrationID, true); + HdlLogLogic.print("娣诲姞鏋佸厜ID鍒颁簯绔�---registrationID:" + UserConfigManage.getInstance().getUserName() + "---" + finalRegistrationID, true); } @Override public void onFailure(HDLException e) { HDLApp.getInstance().setInfoMap(registrationId_tag, "false");//璁板綍涓�涓嬬姸鎬�,鍚庡彴鏉�姝籥pp浼氭竻绌�; - HdlLogLogic.print("娣诲姞鏋佸厜ID鍒颁簯绔け璐�--->registrationID:" + UserConfigManage.getInstance().getUserName() + "--->" + finalRegistrationID, true); + HdlLogLogic.print("娣诲姞鏋佸厜ID鍒颁簯绔け璐�---registrationID:" + UserConfigManage.getInstance().getUserName() + "---" + finalRegistrationID, true); } }); @@ -273,29 +316,37 @@ * 寮�鍚�氱煡鏉冮檺 */ private void notificationSet() { - boolean isBoolean = PermissionUtils.isNotificationEnabled(_mActivity); - if (!isBoolean) { - ConfirmationCancelDialog confirmationCancelDialog = new ConfirmationCancelDialog(_mActivity); - confirmationCancelDialog.setTitle(getString(R.string.loading_title_tip)); - confirmationCancelDialog.setContent(getString(R.string.no_permissions_unable_to_receive_push)); - confirmationCancelDialog.setConfirmation(getString(R.string.go_to_settings)); - confirmationCancelDialog.show(); - confirmationCancelDialog.isHideTitle(true); - confirmationCancelDialog.setYesOnclickListener(new ConfirmationCancelDialog.onYesOnclickListener() { - @Override - public void Confirm() { - confirmationCancelDialog.dismiss(); - PermissionUtils.openNotificationSettings(_mActivity); + String key = "isOpenNotificationEnabled"; + boolean isCancel = SharedPreUtils.getBoolean(key); + if (!isCancel) { + boolean isBoolean = PermissionUtils.isNotificationEnabled(_mActivity); + if (!isBoolean) { + ConfirmationCancelDialog confirmationCancelDialog = new ConfirmationCancelDialog(_mActivity); + confirmationCancelDialog.setTitle(getString(R.string.loading_title_tip)); + confirmationCancelDialog.setContent(getString(R.string.no_permissions_unable_to_receive_push)); + confirmationCancelDialog.setConfirmation(getString(R.string.go_to_settings)); + confirmationCancelDialog.show(); + confirmationCancelDialog.isHideTitle(true); + confirmationCancelDialog.setYesOnclickListener(new ConfirmationCancelDialog.onYesOnclickListener() { + @Override + public void Confirm() { + SharedPreUtils.putBoolean(key, true); + confirmationCancelDialog.dismiss(); + PermissionUtils.openNotificationSettings(_mActivity); - } - }); - confirmationCancelDialog.setNoOnclickListener(new ConfirmationCancelDialog.onNoOnclickListener() { - @Override - public void Cancel() { - confirmationCancelDialog.dismiss(); - } - }); + } + }); + confirmationCancelDialog.setNoOnclickListener(new ConfirmationCancelDialog.onNoOnclickListener() { + @Override + public void Cancel() { + SharedPreUtils.putBoolean(key, true); + confirmationCancelDialog.dismiss(); + } + }); + } else { + SharedPreUtils.putBoolean(key, true); + } } } @@ -364,10 +415,12 @@ HdlUniLogic.getInstance().checkRemoveOtherUniMPEventCallBack(); //绉婚櫎鐩戝惉 HDLLinkLocalSdk.getInstance().removeAllTopicsListener(allTopicsListener); + + } private void initView() { - viewBinding.myPowerStationBottomIl0.titleTv.setText(R.string.summarize); + viewBinding.myPowerStationBottomIl0.titleTv.setText(R.string.power_home_page); viewBinding.myPowerStationBottomIl1.titleTv.setText(R.string.power_station); viewBinding.myMessageBottomIl2.titleTv.setText(R.string.message); viewBinding.myMeBottomIl3.titleTv.setText(R.string.power_station_me); @@ -381,43 +434,43 @@ if (this.currentFragmentIndex == 0) { //姒傝鐣岄潰 viewBinding.myPowerStationBottomIl0.iconIv.setImageDrawable(AppCompatResources.getDrawable(_mActivity, R.drawable.home_page_selected)); - viewBinding.myPowerStationBottomIl0.titleTv.setTextColor(getColor(R.color.text_E6000000)); + viewBinding.myPowerStationBottomIl0.titleTv.setTextColor(getColor(R.color.text_FFACACAC)); viewBinding.myPowerStationBottomIl1.iconIv.setImageDrawable(AppCompatResources.getDrawable(_mActivity, R.drawable.power_station_unselected)); - viewBinding.myPowerStationBottomIl1.titleTv.setTextColor(getColor(R.color.text_65000000)); + viewBinding.myPowerStationBottomIl1.titleTv.setTextColor(getColor(R.color.text_FF5B5B5B)); viewBinding.myMessageBottomIl2.iconIv.setImageDrawable(AppCompatResources.getDrawable(_mActivity, R.drawable.message_unselected)); - viewBinding.myMessageBottomIl2.titleTv.setTextColor(getColor(R.color.text_65000000)); + viewBinding.myMessageBottomIl2.titleTv.setTextColor(getColor(R.color.text_FF5B5B5B)); viewBinding.myMeBottomIl3.iconIv.setImageDrawable(AppCompatResources.getDrawable(_mActivity, R.drawable.me_unselected)); - viewBinding.myMeBottomIl3.titleTv.setTextColor(getColor(R.color.text_65000000)); + viewBinding.myMeBottomIl3.titleTv.setTextColor(getColor(R.color.text_FF5B5B5B)); } else if (this.currentFragmentIndex == 1) { //鐢电珯鐣岄潰 viewBinding.myPowerStationBottomIl0.iconIv.setImageDrawable(AppCompatResources.getDrawable(_mActivity, R.drawable.home_page_unselected)); - viewBinding.myPowerStationBottomIl0.titleTv.setTextColor(getColor(R.color.text_65000000)); + viewBinding.myPowerStationBottomIl0.titleTv.setTextColor(getColor(R.color.text_FF5B5B5B)); viewBinding.myPowerStationBottomIl1.iconIv.setImageDrawable(AppCompatResources.getDrawable(_mActivity, R.drawable.power_station_selected)); - viewBinding.myPowerStationBottomIl1.titleTv.setTextColor(getColor(R.color.text_E6000000)); + viewBinding.myPowerStationBottomIl1.titleTv.setTextColor(getColor(R.color.text_FFACACAC)); viewBinding.myMessageBottomIl2.iconIv.setImageDrawable(AppCompatResources.getDrawable(_mActivity, R.drawable.message_unselected)); - viewBinding.myMessageBottomIl2.titleTv.setTextColor(getColor(R.color.text_65000000)); + viewBinding.myMessageBottomIl2.titleTv.setTextColor(getColor(R.color.text_FF5B5B5B)); viewBinding.myMeBottomIl3.iconIv.setImageDrawable(AppCompatResources.getDrawable(_mActivity, R.drawable.me_unselected)); - viewBinding.myMeBottomIl3.titleTv.setTextColor(getColor(R.color.text_65000000)); + viewBinding.myMeBottomIl3.titleTv.setTextColor(getColor(R.color.text_FF5B5B5B)); } else if (this.currentFragmentIndex == 2) { //娑堟伅鐣岄潰 viewBinding.myPowerStationBottomIl0.iconIv.setImageDrawable(AppCompatResources.getDrawable(_mActivity, R.drawable.home_page_unselected)); - viewBinding.myPowerStationBottomIl0.titleTv.setTextColor(getColor(R.color.text_65000000)); + viewBinding.myPowerStationBottomIl0.titleTv.setTextColor(getColor(R.color.text_FF5B5B5B)); viewBinding.myPowerStationBottomIl1.iconIv.setImageDrawable(AppCompatResources.getDrawable(_mActivity, R.drawable.power_station_unselected)); - viewBinding.myPowerStationBottomIl1.titleTv.setTextColor(getColor(R.color.text_65000000)); - viewBinding.myMessageBottomIl2.iconIv.setImageDrawable(AppCompatResources.getDrawable(_mActivity, R.drawable.message_select)); - viewBinding.myMessageBottomIl2.titleTv.setTextColor(getColor(R.color.text_E6000000)); + viewBinding.myPowerStationBottomIl1.titleTv.setTextColor(getColor(R.color.text_FF5B5B5B)); + viewBinding.myMessageBottomIl2.iconIv.setImageDrawable(AppCompatResources.getDrawable(_mActivity, R.drawable.message_selected)); + viewBinding.myMessageBottomIl2.titleTv.setTextColor(getColor(R.color.text_FFACACAC)); viewBinding.myMeBottomIl3.iconIv.setImageDrawable(AppCompatResources.getDrawable(_mActivity, R.drawable.me_unselected)); - viewBinding.myMeBottomIl3.titleTv.setTextColor(getColor(R.color.text_65000000)); + viewBinding.myMeBottomIl3.titleTv.setTextColor(getColor(R.color.text_FF5B5B5B)); } else if (this.currentFragmentIndex == 3) { //鎴戠殑鐣岄潰 viewBinding.myPowerStationBottomIl0.iconIv.setImageDrawable(AppCompatResources.getDrawable(_mActivity, R.drawable.home_page_unselected)); - viewBinding.myPowerStationBottomIl0.titleTv.setTextColor(getColor(R.color.text_65000000)); + viewBinding.myPowerStationBottomIl0.titleTv.setTextColor(getColor(R.color.text_FF5B5B5B)); viewBinding.myPowerStationBottomIl1.iconIv.setImageDrawable(AppCompatResources.getDrawable(_mActivity, R.drawable.power_station_unselected)); - viewBinding.myPowerStationBottomIl1.titleTv.setTextColor(getColor(R.color.text_65000000)); + viewBinding.myPowerStationBottomIl1.titleTv.setTextColor(getColor(R.color.text_FF5B5B5B)); viewBinding.myMessageBottomIl2.iconIv.setImageDrawable(AppCompatResources.getDrawable(_mActivity, R.drawable.message_unselected)); - viewBinding.myMessageBottomIl2.titleTv.setTextColor(getColor(R.color.text_65000000)); + viewBinding.myMessageBottomIl2.titleTv.setTextColor(getColor(R.color.text_FF5B5B5B)); viewBinding.myMeBottomIl3.iconIv.setImageDrawable(AppCompatResources.getDrawable(_mActivity, R.drawable.me_selected)); - viewBinding.myMeBottomIl3.titleTv.setTextColor(getColor(R.color.text_E6000000)); + viewBinding.myMeBottomIl3.titleTv.setTextColor(getColor(R.color.text_FFACACAC)); } } @@ -427,12 +480,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 @@ -464,6 +517,7 @@ @Override public void onMessage(Object msg) { + if (msg == null) { return; } @@ -472,7 +526,7 @@ if (response.getTopic() == null) { return; } - HdlLogLogic.print("鐩戝惉鍒癕odbus鏁版嵁--->" + new Gson().toJson(response), false); + HdlLogLogic.print("鐩戝惉鍒癕odbus鏁版嵁---" + new Gson().toJson(response), false); // if (response.getTopic().endsWith("custom/native/inverter/up")) { HDLUniMP.UniCallBackBaseBean uniCallBackBaseBean = new HDLUniMP.UniCallBackBaseBean(); uniCallBackBaseBean.setType(response.getTopic()); @@ -502,7 +556,7 @@ } else if (linkResponse.getTopic().endsWith("/custom/device/list/upload")) { //閫嗗彉鍣ㄦ湁鏂皁id閫氱煡涓婚 if (linkResponse.getData() == null) { - HdlLogLogic.print("閫嗗彉鍣ㄦ湁鏂皁id閫氱煡--->鏁版嵁涓虹┖", false); + HdlLogLogic.print("閫嗗彉鍣ㄦ湁鏂皁id閫氱煡---鏁版嵁涓虹┖", false); return; } try { @@ -548,6 +602,16 @@ uniCallBackBaseBean.setData(topicArray[1]); HdlUniLogic.getInstance().sendUni(HDLUniMP.UNI_EVENT_NOTIFICATION_DEVICE_MODEL, uniCallBackBaseBean); HdlLogLogic.print(linkResponse.getTopic() + new Gson().toJson(linkResponse.getData()), true); + } else if (linkResponse.getTopic().endsWith("/app/thing/property/send")) { + //璁惧鐘舵�佸彉鏇磘opic锛�/user/${homeId}/app/thing/property/send + if (linkResponse.getData() == null) { + HdlLogLogic.print("璁惧鐘舵�佸彉鏇�--->鏁版嵁涓虹┖", false); + return; + } + HDLUniMP.UniCallBackBaseBean uniCallBackBaseBean = new HDLUniMP.UniCallBackBaseBean(); + uniCallBackBaseBean.setType(linkResponse.getTopic()); + uniCallBackBaseBean.setData(linkResponse.getData()); + HdlUniLogic.getInstance().sendUni(HDLUniMP.UNI_EVENT_NOTIFICATION_DEVICE_MODEL, uniCallBackBaseBean); } } } @@ -570,12 +634,13 @@ if (info != null) { MqttRecvClient.getInstance().setConnectParam(info.getUrl(), info.getClientId(), info.getUserName(), info.getPassWord()); MqttRecvClient.getInstance().connect(); + HdlLogLogic.print("mqtt閾炬帴鎴愬姛---ClientId---" + info.getClientId(), true); } } @Override public void onFailure(HDLException e) { - HdlLogLogic.print("璇诲彇mqtt杩滅▼淇℃伅澶辫触--->" + e.getMessage(), e.getCode(), true); + HdlLogLogic.print("璇诲彇mqtt杩滅▼淇℃伅澶辫触---" + e.getMessage(), e.getCode(), true); } }); } @@ -598,7 +663,7 @@ return; } int index = -1; - List<GatewayBean> list = HdlDeviceLogic.getInstance().getCurrentHomeGatewayList(UserConfigManage.getInstance().getHomeId()); + List<GatewayBean> list = HdlDeviceLogic.getInstance().getCurrentHomeGatewayList(UserConfigManage.getInstance().getHomeId(), null); for (int i = 0; i < list.size(); i++) { GatewayBean gatewayBean = list.get(i); if (gatewayBean.getGatewayId().equals(topics[2])) { @@ -660,12 +725,13 @@ } }); } - } else if (event.getTopic().contains(ConstantManage.station_status)) { - currentFragmentIndex = 1; - bottomViewChangeOfStyle(); - showFragment(); - HdlCommonLogic.getInstance().postEventBusSticky(ConstantManage.homepage_title_tab_switch, event.getType()); - + } else if (event.getTopic().contains(ConstantManage.homepage_title_tab_switch)) { + if (event.getType().contains(ConstantManage.station_page)) { + //浠庨椤垫寚瀹氱數绔欑姸鎬佹墦寮�鐢电珯鐣岄潰 + currentFragmentIndex = 1; + bottomViewChangeOfStyle(); + showFragment(); + } } } @@ -758,7 +824,10 @@ return; } else { AppManagerUtils.getAppManager().finishAllActivity(); + //濡傛灉寮�鍙戣�呰皟鐢╧ill鎴栬�卐xit涔嬬被鐨勬柟娉曟潃姝昏繘绋嬶紝鎴栬�呭弻鍑籦ack閿細鏉�姝昏繘绋嬶紝璇峰姟蹇呭湪姝や箣鍓嶈皟鐢∕obclickAgent.onKillProcess鏂规硶锛岀敤鏉ヤ繚瀛樼粺璁℃暟鎹�� + MobclickAgent.onKillProcess(_mActivity); Process.killProcess(Process.myPid()); + } } super.onBackPressed(); -- Gitblit v1.8.0