From 9eef1c69f214882b5ada2dae2a55df21bdd3058b Mon Sep 17 00:00:00 2001 From: 刘卫锦 <lwj@hdlchina.com.cn> Date: 星期一, 26 六月 2023 16:02:48 +0800 Subject: [PATCH] Merge branch 'master' of http://172.16.1.23:6688/r/~wjc/HDLPhotovoltaicDebugAPP --- app/src/main/java/com/hdl/photovoltaic/ui/StartActivity.java | 1 app/src/main/java/com/hdl/photovoltaic/uni/HDLUniMP.java | 65 ++-- app/src/main/java/com/hdl/photovoltaic/widget/ConfirmationDialog.java | 2 app/src/main/res/values/themes.xml | 2 app/src/main/AndroidManifest.xml | 15 app/src/main/java/com/hdl/photovoltaic/base/BaseActivity.java | 10 app/src/main/java/com/hdl/photovoltaic/widget/ConfirmationInputDialog.java | 2 app/src/main/res/layout/toolbar_top_view_44.xml | 1 .idea/deploymentTargetDropDown.xml | 17 + app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java | 83 +++++ .idea/misc.xml | 7 app/src/main/java/com/hdl/photovoltaic/other/HdlThreadLogic.java | 10 app/src/main/java/com/hdl/photovoltaic/utils/WifiUtils.java | 314 ++++++++++++++++++++++++ app/src/main/java/com/hdl/photovoltaic/ui/MyPowerStationActivity.java | 2 app/src/main/res/layout/loading_exception_log.xml | 58 ++++ app/src/main/java/com/hdl/photovoltaic/widget/ConfirmationExceptionDialog.java | 85 ++++++ app/src/main/java/com/hdl/photovoltaic/ui/HomeLoginActivity.java | 42 +++ app/src/main/java/com/hdl/photovoltaic/base/BaseFragment.java | 4 app/src/main/java/com/hdl/photovoltaic/ui/powerstation/HouseListFragment.java | 4 19 files changed, 645 insertions(+), 79 deletions(-) diff --git a/.idea/deploymentTargetDropDown.xml b/.idea/deploymentTargetDropDown.xml new file mode 100644 index 0000000..d549df4 --- /dev/null +++ b/.idea/deploymentTargetDropDown.xml @@ -0,0 +1,17 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="deploymentTargetDropDown"> + <runningDeviceTargetSelectedWithDropDown> + <Target> + <type value="RUNNING_DEVICE_TARGET" /> + <deviceKey> + <Key> + <type value="SERIAL_NUMBER" /> + <value value="2ffc9a07" /> + </Key> + </deviceKey> + </Target> + </runningDeviceTargetSelectedWithDropDown> + <timeTargetWasSelectedWithDropDown value="2023-06-26T02:32:08.398530Z" /> + </component> +</project> \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml index ee5e019..316fc8d 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -4,16 +4,21 @@ <option name="filePathToZoomLevelMap"> <map> <entry key="../../../../../layout/custom_preview.xml" value="0.22314814814814815" /> + <entry key="app/src/main/res/drawable/progress_small.xml" value="0.1275" /> <entry key="app/src/main/res/layout/activity_home_login.xml" value="0.10030395136778116" /> <entry key="app/src/main/res/layout/activity_my_power_station.xml" value="0.10030395136778116" /> <entry key="app/src/main/res/layout/fragment_house_list.xml" value="0.10030395136778116" /> <entry key="app/src/main/res/layout/fragment_me.xml" value="0.10030395136778116" /> + <entry key="app/src/main/res/layout/frgment_house_list_line.xml" value="0.1921875" /> + <entry key="app/src/main/res/layout/loading_alert.xml" value="0.1" /> + <entry key="app/src/main/res/layout/loading_confirm.xml" value="0.1" /> <entry key="app/src/main/res/layout/loading_confirm_input.xml" value="0.1" /> <entry key="app/src/main/res/layout/loading_exception_log.xml" value="0.1921875" /> + <entry key="app/src/main/res/layout/toolbar_top_view_44.xml" value="0.1921875" /> <entry key="app/src/main/res/layout/toolbar_top_view_52.xml" value="0.10030395136778116" /> </map> </option> </component> <component name="ExternalStorageConfigurationManager" enabled="true" /> - <component name="ProjectRootManager" version="2" languageLevel="JDK_11" project-jdk-name="11" project-jdk-type="JavaSDK" /> + <component name="ProjectRootManager" version="2" languageLevel="JDK_11" default="true" project-jdk-name="11" project-jdk-type="JavaSDK" /> </project> \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 0b1b3dd..c5aaabe 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -1,7 +1,8 @@ <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" - package="com.hdl.photovoltaic" > + package="com.hdl.photovoltaic"> + <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" @@ -12,7 +13,10 @@ <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> - + <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /> + <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> + <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> + <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <application @@ -22,20 +26,19 @@ android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" - android:theme="@style/Theme.PhotovoltaicDebug" > + android:theme="@style/Theme.PhotovoltaicDebug"> <activity android:name=".ui.device.FastScanActivity" android:exported="false" /> <activity android:name=".ui.MyPowerStationActivity" - android:exported="false" - /> + android:exported="false" /> <activity android:name=".ui.HomeLoginActivity" android:exported="false" /> <activity android:name=".ui.StartActivity" - android:exported="true" > + android:exported="true"> <intent-filter> <action android:name="android.intent.action.MAIN" /> diff --git a/app/src/main/java/com/hdl/photovoltaic/base/BaseActivity.java b/app/src/main/java/com/hdl/photovoltaic/base/BaseActivity.java index 55f0f95..4be52de 100644 --- a/app/src/main/java/com/hdl/photovoltaic/base/BaseActivity.java +++ b/app/src/main/java/com/hdl/photovoltaic/base/BaseActivity.java @@ -1,19 +1,11 @@ package com.hdl.photovoltaic.base; import android.app.Activity; -import android.content.Context; -import android.content.DialogInterface; import android.content.Intent; -import android.graphics.drawable.ColorDrawable; import android.os.Bundle; -import android.util.Log; -import android.view.KeyEvent; import android.view.View; -import android.view.WindowManager; -import android.widget.TextView; import androidx.annotation.Nullable; -import androidx.appcompat.app.AlertDialog; import androidx.appcompat.app.AppCompatActivity; import com.hdl.photovoltaic.R; @@ -53,7 +45,7 @@ */ protected LoadingDialog getLoadingDialog() { if (loadingDialog == null && _mActivity != null) { - loadingDialog = new LoadingDialog(_mActivity, R.style.Custom_AlertDialog); + loadingDialog = new LoadingDialog(_mActivity, R.style.Custom_Dialog); } return loadingDialog; } diff --git a/app/src/main/java/com/hdl/photovoltaic/base/BaseFragment.java b/app/src/main/java/com/hdl/photovoltaic/base/BaseFragment.java index 1cd2301..5ae379f 100644 --- a/app/src/main/java/com/hdl/photovoltaic/base/BaseFragment.java +++ b/app/src/main/java/com/hdl/photovoltaic/base/BaseFragment.java @@ -3,11 +3,9 @@ import android.content.Context; import android.content.Intent; import android.os.Bundle; -import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; -import android.view.WindowManager; import android.widget.FrameLayout; import androidx.annotation.NonNull; @@ -164,7 +162,7 @@ */ protected LoadingDialog getLoadingDialog() { if (loadingDialog == null && _mActivity != null) { - loadingDialog = new LoadingDialog(_mActivity, R.style.Custom_AlertDialog); + loadingDialog = new LoadingDialog(_mActivity, R.style.Custom_Dialog); } return loadingDialog; } diff --git a/app/src/main/java/com/hdl/photovoltaic/other/HdlThreadLogic.java b/app/src/main/java/com/hdl/photovoltaic/other/HdlThreadLogic.java index 13d7ea1..a50ae9f 100644 --- a/app/src/main/java/com/hdl/photovoltaic/other/HdlThreadLogic.java +++ b/app/src/main/java/com/hdl/photovoltaic/other/HdlThreadLogic.java @@ -4,12 +4,14 @@ import android.content.Context; import android.os.Handler; import android.os.Looper; +import android.util.Log; import android.widget.Toast; import androidx.appcompat.app.AlertDialog; import com.hdl.photovoltaic.enums.ShowErrorMode; import com.hdl.photovoltaic.widget.ConfirmationDialog; +import com.hdl.photovoltaic.widget.ConfirmationExceptionDialog; /** * 绾跨▼閫昏緫 @@ -33,6 +35,7 @@ handler.post(run); } } catch (Exception e) { + exception(e, showErrorMode, context); } } @@ -119,8 +122,11 @@ @Override public void Confirm() { confirmationDialog.dismiss(); - String s = getStackTrace(ex); - + ConfirmationExceptionDialog confirmationExceptionDialog = new ConfirmationExceptionDialog(context); +// String s = getStackTrace(ex); + String s = Log.getStackTraceString(ex); + confirmationExceptionDialog.setContent(s); + confirmationExceptionDialog.show(); } }); diff --git a/app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java b/app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java index 1a16526..245bdbc 100644 --- a/app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java +++ b/app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java @@ -1,6 +1,7 @@ package com.hdl.photovoltaic.other; +import com.google.gson.Gson; import com.hdl.photovoltaic.config.UserConfigManage; import com.hdl.photovoltaic.uni.HDLUniMP; import com.hdl.photovoltaic.uni.HDLUniMPSDKManager; @@ -34,7 +35,7 @@ } /** - * 鍘熺敓鎺ユ敹uni鍙戞潵鐨勬暟鎹� + * 鍘熺敓鎺ユ敹鍒皍ni鍙戞潵鐨勬暟鎹� * * @param appId -uni灏忕▼搴忔寚瀹氱殑appId * @param event -uni灏忕▼搴忓彂鏉ユ暟鎹� @@ -52,9 +53,9 @@ jsonObject = new org.json.JSONObject(data.toString()); } //浣忓畢妯″潡 - if (HDLUniMP.UNI_EVENT_HOME_CREATION.equals(event)) { + if (HDLUniMP.UNI_EVENT_REPLY_HOME_LIST.equals(event)) { if (callback != null) { - callback.invoke(null); + uniCallbackData(null, "0", "", callback); } } HdlLogLogic.print("uni===鍘熺敓鎺ユ敹uni鍙戞潵鐨勬暟鎹�", event + "\r\n" + data); @@ -71,7 +72,9 @@ * @param jsonObject 闄勪欢鏁版嵁(娌℃湁鏁版嵁濉玭ull) */ public void openUniMP(String path, JSONObject jsonObject) { - JSONObject json = this.createdJsonDate(jsonObject); + + JSONObject json = this.createdJsonDate(jsonObject, true); + HdlLogLogic.print("uni===缁勮uni鍙戦�佹暟鎹牸寮�", json.toString()); HDLUniMPSDKManager.getInstance().openUniMP(HDLUniMP.UNI_APP_ID, path, json, HdlUniLogic.this); } @@ -87,7 +90,7 @@ HDLUniMP.UniCallBackBaseBean callBackBaseBean = new HDLUniMP.UniCallBackBaseBean(); callBackBaseBean.setTopic(topic); callBackBaseBean.setData(body); - HDLUniMPSDKManager.getInstance().sendUniMPEvent(HDLUniMP.UNI_APP_ID, HDLUniMP.UNI_APP_ID, callBackBaseBean.getJSONObject()); + HDLUniMPSDKManager.getInstance().sendUniMPEvent(HDLUniMP.UNI_APP_ID, HDLUniMP.UNI_APP_ID, getJSONObject(callBackBaseBean)); } catch (Exception e) { HdlLogLogic.print("uni===鍘熺敓涓诲姩鍚戝皬绋嬪簭鍙戦�侀�氱煡浜嬩欢", e.getMessage()); } @@ -103,22 +106,82 @@ /** * 缁勮uni鍙戦�佹暟鎹牸寮� * - * @param data -闄勪欢鏁版嵁(娌℃湁鏁版嵁濉玭ull) + * @param data -闄勪欢鏁版嵁(娌℃湁鏁版嵁濉玭ull) + * @param isTokenAndRefreshToken (true=搴曞眰榛樿娣诲姞token鍜宺efreshToken;false=涓嶅姞) * @return JSONObject */ - public JSONObject createdJsonDate(JSONObject data) { + private JSONObject createdJsonDate(JSONObject data, boolean isTokenAndRefreshToken) { HDLUniMP.UniCallBackBaseBean uniCallBackBaseBean = new HDLUniMP.UniCallBackBaseBean(); try { if (data == null) { data = new JSONObject(); } - data.put("token", UserConfigManage.getInstance().getToken()); - data.put("refreshToken", UserConfigManage.getInstance().getRefreshToken()); + if (isTokenAndRefreshToken) { + data.put("token", UserConfigManage.getInstance().getToken()); + data.put("refreshToken", UserConfigManage.getInstance().getRefreshToken()); + } uniCallBackBaseBean.setData(data); - return uniCallBackBaseBean.getJSONObject(); + return getJSONObject(uniCallBackBaseBean); } catch (Exception e) { HdlLogLogic.print("uni===缁勮uni鍙戦�佹暟鎹牸寮�", e.getMessage()); } return new JSONObject(); } + + + /** + * 缁勮uni鍙戦�佹暟鎹牸寮� + * 鍥炶皟鏁版嵁缁檜ni灏忕▼搴�,缁熶竴鍦ㄨ繖閲屽鐞�; + * + * @param obj 闄勫姞鏁版嵁 + * @param code 鐘舵�佺爜-鎴愬姛锛�0锛夋垨鑰呭け璐ワ紙-2锛� + * @param msg 缁撴灉鎻忚堪鐨勪俊鎭� + * @param callback 鍥炶皟 + */ + private void uniCallbackData(Object obj, String code, String msg, DCUniMPJSCallback callback) { + HDLUniMP.UniCallBackBaseBean uniCallBackBaseBean = new HDLUniMP.UniCallBackBaseBean(); + try { + uniCallBackBaseBean.setCode(code); + uniCallBackBaseBean.setMes(msg); + uniCallBackBaseBean.setData(obj); + if (callback != null) { + callback.invoke(uniCallBackBaseBean); + } + } catch (Exception e) { + HdlLogLogic.print("uni===缁勮uni鍙戦�佹暟鎹牸寮�", e.getMessage()); + } + + + } + + + /** + * 鑾峰彇uni鍙戦�佸璞� + * + * @param obj 闄勫姞鏁版嵁 + * @param code 鐘舵�佺爜 + * @param msg 缁撴灉鎻忚堪鐨勪俊鎭� + */ + private HDLUniMP.UniCallBackBaseBean getUniCallBackBaseBean(Object obj, String code, String msg) { + HDLUniMP.UniCallBackBaseBean uniCallBackBaseBean = new HDLUniMP.UniCallBackBaseBean(); + uniCallBackBaseBean.setCode(code); + uniCallBackBaseBean.setMes(msg); + uniCallBackBaseBean.setData(obj); + return uniCallBackBaseBean; + } + + /** + * 褰撳墠瀵硅薄杞� JSONObject + * + * @return JSONObject + */ + private JSONObject getJSONObject(Object obj) { + try { + String json = new Gson().toJson(obj); + return new JSONObject(json); + } catch (Exception e) { + return new JSONObject(); + } + } } + diff --git a/app/src/main/java/com/hdl/photovoltaic/ui/HomeLoginActivity.java b/app/src/main/java/com/hdl/photovoltaic/ui/HomeLoginActivity.java index 4af46c0..adf4e9f 100644 --- a/app/src/main/java/com/hdl/photovoltaic/ui/HomeLoginActivity.java +++ b/app/src/main/java/com/hdl/photovoltaic/ui/HomeLoginActivity.java @@ -1,6 +1,8 @@ package com.hdl.photovoltaic.ui; +import android.Manifest; +import android.content.pm.PackageManager; import android.os.Bundle; import android.text.Editable; import android.text.Spannable; @@ -15,8 +17,10 @@ import android.widget.TextView; +import androidx.annotation.NonNull; import androidx.appcompat.content.res.AppCompatResources; +import com.hdl.photovoltaic.HDLApp; import com.hdl.photovoltaic.R; import com.hdl.photovoltaic.base.CustomBaseActivity; import com.hdl.photovoltaic.enums.ShowErrorMode; @@ -28,6 +32,9 @@ import com.hdl.photovoltaic.listener.CloudCallBeak; import com.hdl.photovoltaic.other.HdlAccountLogic; import com.hdl.photovoltaic.other.HdlThreadLogic; +import com.hdl.photovoltaic.ui.device.FastScanActivity; +import com.hdl.photovoltaic.utils.PermissionUtils; +import com.hdl.photovoltaic.utils.WifiUtils; public class HomeLoginActivity extends CustomBaseActivity { @@ -234,13 +241,12 @@ viewBinding.homeLoginExperienceTv.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - +// requestPermissions(); // startActivity(MyPowerStationActivity.class); - HdlThreadLogic.runMainThread(new Runnable() { @Override public void run() { -// + int s = 1 / 0; } }, _mActivity, ShowErrorMode.YES); } @@ -312,4 +318,34 @@ view.setText(spannable); } + + private void requestPermissions() { + String[] ary = PermissionUtils.checkPermission(_mActivity, new String[]{Manifest.permission.ACCESS_FINE_LOCATION}); + if (ary.length > 0) { + requestPermissions(ary, PermissionUtils.STATUS_SUCCESS); + } else { + wifi(); + } + } + + @Override + public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { + super.onRequestPermissionsResult(requestCode, permissions, grantResults); + if (requestCode == PermissionUtils.STATUS_SUCCESS) { + for (int i = 0; i < permissions.length; i++) { + if (grantResults[i] == PackageManager.PERMISSION_GRANTED) { + wifi(); + } + + } + } + + } + + public void wifi() { + WifiUtils wifiUtils = new WifiUtils(HDLApp.getInstance()); +// wifiUtils.getCurrentConnectWifiInfo(); +// wifiUtils.getScanResult(); + wifiUtils.connectWiFi("Application", "12345678", 3); + } } \ No newline at end of file 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 0bbf25e..4f6568f 100644 --- a/app/src/main/java/com/hdl/photovoltaic/ui/MyPowerStationActivity.java +++ b/app/src/main/java/com/hdl/photovoltaic/ui/MyPowerStationActivity.java @@ -28,7 +28,7 @@ @Override public void onBindView(Bundle savedInstanceState) { - getWindow().setStatusBarColor(getColor(R.color.text_245EC3)); + //鍒濆鍖� initView(); //鍒濆鍖栫晫闈㈢洃鍚櫒 diff --git a/app/src/main/java/com/hdl/photovoltaic/ui/StartActivity.java b/app/src/main/java/com/hdl/photovoltaic/ui/StartActivity.java index ee3f0f4..84e87e7 100644 --- a/app/src/main/java/com/hdl/photovoltaic/ui/StartActivity.java +++ b/app/src/main/java/com/hdl/photovoltaic/ui/StartActivity.java @@ -12,6 +12,7 @@ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); + getWindow().setStatusBarColor(getColor(R.color.text_245EC3)); setContentView(R.layout.activity_start); Intent intent = new Intent(); intent.setClass(this, HomeLoginActivity.class); diff --git a/app/src/main/java/com/hdl/photovoltaic/ui/powerstation/HouseListFragment.java b/app/src/main/java/com/hdl/photovoltaic/ui/powerstation/HouseListFragment.java index 781bb8a..9373411 100644 --- a/app/src/main/java/com/hdl/photovoltaic/ui/powerstation/HouseListFragment.java +++ b/app/src/main/java/com/hdl/photovoltaic/ui/powerstation/HouseListFragment.java @@ -73,7 +73,7 @@ @Override public void onClick(View v) { // 鎵撳紑灏忕▼搴忛〉闈� - HdlUniLogic.getInstance().openUniMP(HDLUniMP.UNI_EVENT_HOME_CREATION, null); + HdlUniLogic.getInstance().openUniMP(HDLUniMP.UNI_EVENT_OPEN_HOME_CREATION, null); } }); //璁剧疆涓嬫媺绠ご棰滆壊 @@ -95,7 +95,7 @@ return; } HouseListBean houseListBean = houseListBeanList.get(position); - String path = HDLUniMP.UNI_EVENT_HOME_CREATION + "?homeId=" + houseListBean.getHomeId(); + String path = HDLUniMP.UNI_EVENT_OPEN_HOME_DETAILS + "?homeId=" + houseListBean.getHomeId(); HdlUniLogic.getInstance().openUniMP(path, null); } }); diff --git a/app/src/main/java/com/hdl/photovoltaic/uni/HDLUniMP.java b/app/src/main/java/com/hdl/photovoltaic/uni/HDLUniMP.java index f9a6b51..220440c 100644 --- a/app/src/main/java/com/hdl/photovoltaic/uni/HDLUniMP.java +++ b/app/src/main/java/com/hdl/photovoltaic/uni/HDLUniMP.java @@ -14,38 +14,41 @@ /*********UniMP wgt id*********/ public final static String UNI_APP_ID = "__UNI__A2E7300";//鍏変紡wgt鍖呭皬绋嬪簭id - /*********UniMP Event 鍘熺敓鍜屽皬绋嬪簭浜や簰 鑷畾涔夐�氱煡浜嬩欢*********/ public final static String UNI_EVENT_uniMPOnClose = "uni_MPOnClose";//鑷畾涔夊皬绋嬪簭鍏抽棴浜嬩欢 - public final static String UNI_EVENT_GetAppParams = "uni_GetAppParams";//鑾峰彇APP搴旂敤淇℃伅 + //娉ㄦ剰锛氥�愬皬绋嬪簭銆戝彂閫佸埌銆愬師鐢熴�� 鍔犲墠缂�:uni_ + /*********浣忓畢銆愮數绔欍�戞ā鍧�*********/ + public final static String UNI_EVENT_REPLY_HOME_MODEL = "uni_home_model";//浣忓畢妯″潡 + public final static String UNI_EVENT_REPLY_HOME_LIST = "list";//鑾峰彇浣忓畢銆愮數绔欍�戝垪琛� + public final static String UNI_EVENT_REPLY_HOME_CREATION = "creation";//浣忓畢銆愮數绔欍�戝垱寤� + public final static String UNI_EVENT_REPLY_HOME_EDIT = "edit";//浣忓畢銆愮數绔欍�戠紪杈� + public final static String UNI_EVENT_REPLY_HOME_DETAILS = "details";//浣忓畢銆愮數绔欍�戣鎯� + public final static String UNI_EVENT_REPLY_Home_DEl = "del";//浣忓畢銆愮數绔欍�戝垹闄� + /*********璁惧妯″潡*********/ + public final static String UNI_EVENT_REPLY_DEVICE_MODEL = "uni_device_model";//璁惧妯″潡 + public final static String UNI_EVENT_REPLY_DEVICE_LIST = "list";//閫嗗彉鍣ㄨ澶囧垪琛� + public final static String UNI_EVENT_REPLY_DEVICE_CHILD_LIST = "child_list";//閫嗗彉鍣ㄣ�愪笅鎸傘�戣澶囧垪琛� + public final static String UNI_EVENT_REPLY_DEVICE_ADD = "add";//璁惧娣诲姞 + public final static String UNI_EVENT_REPLY_DEVICE_DEL = "del";//璁惧鍒犻櫎 + public final static String UNI_EVENT_REPLY_DEVICE_OID = "oid";//璁惧銆愬寘鎷笅鎸傝澶囥�憃id鍒楄〃 -// //銆愬皬绋嬪簭銆戝彂閫佸埌銆愬師鐢熴�� 鍔犲墠缂�:uni_ -//public final static String UNI_EVENT_HOME_MODEL = "uni_home_model";//浣忓畢妯″潡 -// public final static String UNI_EVENT__DEVICE_MODEL = "uni_device_model";//璁惧妯″潡 -// /*********浣忓畢銆愮數绔欍�戞ā鍧�*********/ -// public final static String UNI_EVENT_HOME_LIST = "list";//鑾峰彇浣忓畢銆愮數绔欍�戝垪琛� -// public final static String UNI_EVENT_HOME_CREATION = "creation";//浣忓畢銆愮數绔欍�戝垱寤� -// public final static String UNI_EVENT_HOME_EDIT = "edit";//浣忓畢銆愮數绔欍�戠紪杈� -// public final static String UNI_EVENT_HOME_DETAILS = "details";//浣忓畢銆愮數绔欍�戣鎯� -// public final static String UNI_EVENT_Home_DEl = "del";//浣忓畢銆愮數绔欍�戝垹闄� -// /*********璁惧妯″潡*********/ -// public final static String UNI_EVENT_DEVICE_LIST = "list";//閫嗗彉鍣ㄨ澶囧垪琛� -// public final static String UNI_EVENT_DEVICE_CHILD_LIST = "child_list";//閫嗗彉鍣ㄣ�愪笅鎸傘�戣澶囧垪琛� -// public final static String UNI_EVENT_DEVICE_ADD = "add";//璁惧娣诲姞 -// public final static String UNI_EVENT_DEVICE_DEL = "del";//璁惧鍒犻櫎 -// public final static String UNI_EVENT_DEVICE_OID = "oid";//璁惧銆愬寘鎷笅鎸傝澶囥�憃id鍒楄〃 + /*********Wifi妯″潡*********/ //鍗敠瀹氫箟 + public final static String UNI_EVENT_REPLY_WIFI_MODEL = "uni_wifi_model";//wifi妯″潡 + public final static String UNI_EVENT_REPLY_WIFI_LIST = "list";//鑾峰彇wifi鍒楄〃 + public final static String UNI_EVENT_REPLY_WIFI_INFO = "info";//鑾峰彇褰撳墠wifi淇℃伅 + public final static String UNI_EVENT_REPLY_WIFI_CONNECT = "connect";//杩炴帴wifi + + //娉ㄦ剰锛氥�愬師鐢熴�戜富鍔ㄥ彂閫佸埌銆愬皬绋嬪簭銆� 鍔犲墠缂�:app_ - //銆愬師鐢熴�戜富鍔ㄥ彂閫佸埌銆愬皬绋嬪簭銆� 鍔犲墠缂�:app_ - - //銆愬師鐢熴�戞墦寮�銆愬皬绋嬪簭銆戦〉闈㈣矾寰�(UNI_EVENT_HOME_CREATION+?key=value&key=鍙傛暟涓�) + //娉ㄦ剰锛氥�愬師鐢熴�戞墦寮�銆愬皬绋嬪簭銆戦〉闈㈣矾寰�(UNI_EVENT_OPEN_HOME_CREATION+?key=value&key=鍙傛暟涓�) /*********浣忓畢妯″潡*********/ - public final static String UNI_EVENT_HOME_CREATION = "pages/powerStation/powerStationCreate";//浣忓畢銆愮數绔欍�戝垱寤� - public final static String UNI_EVENT_HOME_EDIT = "pages/powerStation/powerStationEdit";//浣忓畢銆愮數绔欍�戠紪杈� - public final static String UNI_EVENT_HOME_DETAILS = "pages/powerStationDetail/index";//浣忓畢銆愮數绔欍�戣鎯� -// public final static String UNI_EVENT_Home_DEl = "del";//浣忓畢銆愮數绔欍�戝垹闄� + public final static String UNI_EVENT_OPEN_HOME_CREATION = "pages/powerStation/powerStationCreate";//浣忓畢銆愮數绔欍�戝垱寤� + 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_DEl = "del";//浣忓畢銆愮數绔欍�戝垹闄� /*********璁惧妯″潡*********/ //璁惧妯″潡鎵撳紑椤甸潰鍏ㄨ矾寰� @@ -122,20 +125,6 @@ public void setPath(String path) { this.path = path; - } - - /** - * 褰撳墠瀵硅薄杞� JSONObject - * - * @return JSONObject - */ - public JSONObject getJSONObject() { - try { - String json = new Gson().toJson(this); - return new JSONObject(json); - } catch (Exception e) { - return new JSONObject(); - } } diff --git a/app/src/main/java/com/hdl/photovoltaic/utils/WifiUtils.java b/app/src/main/java/com/hdl/photovoltaic/utils/WifiUtils.java new file mode 100644 index 0000000..f826573 --- /dev/null +++ b/app/src/main/java/com/hdl/photovoltaic/utils/WifiUtils.java @@ -0,0 +1,314 @@ +package com.hdl.photovoltaic.utils; + + +import android.Manifest; +import android.content.Context; +import android.content.pm.PackageManager; +import android.net.wifi.ScanResult; +import android.net.wifi.WifiConfiguration; +import android.net.wifi.WifiInfo; +import android.net.wifi.WifiManager; +import android.os.SystemClock; +import android.util.Log; + +import androidx.core.app.ActivityCompat; + + +import java.util.ArrayList; +import java.util.List; + + +public class WifiUtils { + + + public WifiManager mWifiManager; + public WifiManager.WifiLock mWifiLock; + + public Context mContext; + + public WifiUtils(Context context) { + this.mContext = context; + mWifiManager = (WifiManager) this.mContext.getSystemService(Context.WIFI_SERVICE); + } + + /** + * 鑾峰彇wifi-ssid鍚嶇О + * + * @return 杩斿洖ssid鍚嶇О + */ + public String getCurrentConnectWifiSsid() { + WifiInfo wifiInfo = this.getCurrentConnectWifiInfo(); + return wifiInfo.getSSID().replace("\"", ""); + } + + /** + * 鑾峰彇褰撳墠杩炴帴鐨剋ifi + * + * @return wifi淇℃伅 + */ + public WifiInfo getCurrentConnectWifiInfo() { + return (mWifiManager == null) ? null : mWifiManager.getConnectionInfo(); + } + + /** + * 妫�娴媤ifi鐘舵�� + * WIFI_STATE_DISABLED 0 姝e湪鍏抽棴 + * WIFI_STATE_DISABLED 1 宸茬粡鍏抽棴 + * WIFI_STATE_ENABLING 2 姝e湪鎵撳紑 + * WIFI_STATE_ENABLED 3 宸茬粡鎵撳紑 + * WIFI_STATE_UNKNOWN 4 鏈煡 + * + * @return - + */ + public int checkWifiState() { + return mWifiManager.getWifiState(); + } + + //鎵撳紑wifi + public void openWifiEnabled() { + if (mWifiManager != null) { + mWifiManager.setWifiEnabled(true); + } + } + + //鍏抽棴wifi + public void colseWifiEnable() { + if (mWifiManager != null) { + mWifiManager.setWifiEnabled(false); + } + } + + //鑾峰彇涓�涓猈IFILock + public void crateWifiLock() { + if (mWifiManager != null) { + mWifiLock = mWifiManager.createWifiLock("Test"); + } + } + + //閿佸畾wifi + public void lockWifi() { + mWifiLock.acquire(); + } + + //閲婃斁wifiLock + public void releaseWifiLock() { + if (mWifiLock.isHeld()) { + mWifiLock.release(); + } + } + + //鑾峰彇鎵弿缁撴灉 + public List<ScanResult> getScanResult() { + List<ScanResult> results = new ArrayList<>(); + try { + if (mWifiManager != null) { +// mWifiManager.startScan(); +// SystemClock.sleep(1000); + results = mWifiManager.getScanResults(); + } + } catch (Exception ex) { + Log.d("WifiUtils", ex.getMessage()); + } + return results; + } + + //鑾峰彇宸茬粡閰嶇疆濂界殑缃戠粶杩炴帴 + public List<WifiConfiguration> getConfigWifiInfo() { + List<WifiConfiguration> configInfo = new ArrayList<>(); + if (mWifiManager != null) { + mWifiManager.startScan(); + SystemClock.sleep(1000); + if (ActivityCompat.checkSelfPermission(this.mContext, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) { + // TODO: Consider calling + // ActivityCompat#requestPermissions + // here to request the missing permissions, and then overriding + // public void onRequestPermissionsResult(int requestCode, String[] permissions, + // int[] grantResults) + // to handle the case where the user grants the permission. See the documentation + // for ActivityCompat#requestPermissions for more details. + return configInfo; + } + configInfo = mWifiManager.getConfiguredNetworks(); + } + return configInfo; + } + + + //鏂紑鎸囧畾鐨剋ifi + public void disconnectWifi(int netid) { + if (mWifiManager != null) { + mWifiManager.disableNetwork(netid); + mWifiManager.disconnect(); + } + } + + /** + * 杩炴帴鍒扮壒瀹歐iFi + * + * @param SSID SSID + * @param password 瀵嗙爜 + * @param type 鍔犲瘑绫诲瀷 1.娌℃湁瀵嗙爜 2.鐢╳ep鍔犲瘑 3.鐢╳pa鍔犲瘑 + */ + public boolean connectWiFi(String SSID, String password, int type) { + int wcgID = mWifiManager.addNetwork(createConfig(SSID, password, type)); + return mWifiManager.enableNetwork(wcgID, true); + } + + //鑾峰彇涓�涓獁ifi鐨勯厤缃俊鎭� + private WifiConfiguration createConfig(String SSID, String password, int type) { + WifiConfiguration config = new WifiConfiguration(); + config.allowedAuthAlgorithms.clear(); + config.allowedGroupCiphers.clear(); + config.allowedKeyManagement.clear(); + config.allowedPairwiseCiphers.clear(); + config.allowedProtocols.clear(); + config.SSID = "\"" + SSID + "\""; + // 濡傛灉宸茬粡杩炴帴杩嘩iFi锛岀Щ闄ゆ帀 + WifiConfiguration tempConfig = isExsits(SSID); + if (tempConfig != null) { + mWifiManager.removeNetwork(tempConfig.networkId); + } + if (type == 1) { + config.wepKeys[0] = ""; + config.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE); + config.wepTxKeyIndex = 0; + } + if (type == 2) { + config.hiddenSSID = true; + config.wepKeys[0] = "\"" + password + "\""; + config.allowedAuthAlgorithms.set(WifiConfiguration.AuthAlgorithm.SHARED); + config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP); + config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.TKIP); + config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.WEP40); + config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.WEP104); + config.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE); + config.wepTxKeyIndex = 0; + } + if (type == 3) { + config.preSharedKey = "\"" + password + "\""; + config.hiddenSSID = true; + config.allowedAuthAlgorithms.set(WifiConfiguration.AuthAlgorithm.OPEN); + config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.TKIP); + config.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK); + config.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.TKIP); + config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP); + config.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.CCMP); + config.status = WifiConfiguration.Status.ENABLED; + } + return config; + } + + // 鍒ゆ柇褰撳墠SSID鏄惁宸茬粡杩炴帴杩� + private WifiConfiguration isExsits(String SSID) { + List<WifiConfiguration> existingConfigs = mWifiManager.getConfiguredNetworks(); + if (existingConfigs == null) return null; + for (WifiConfiguration existingConfig : existingConfigs) { + if (existingConfig.SSID.equals("\"" + SSID + "\"")) { + return existingConfig; + } + } + return null; + } + + /** + * 鑾峰彇闄勮繎wifi鍒楄〃 + * 娉ㄦ剰:鑷繁瀹氫箟wifi瀵硅薄;鍘熺敓杩斿洖wifi璋冪敤杩欎釜getScanResult()鏂规硶 + * + * @return - + */ + public List<MyWifiInfo> getCustomWifiDeviceInfo() { + List<ScanResult> scanResults = getScanResult();//鎼滅储鍒扮殑璁惧鍒楄〃 + List<ScanResult> newScanResultList = new ArrayList<>(); + for (ScanResult scanResult : scanResults) { + int position = getItemPosition(newScanResultList, scanResult); + if (position != -1) { + if (newScanResultList.get(position).level < scanResult.level) { + newScanResultList.remove(position); + newScanResultList.add(position, scanResult); + } + } else { + newScanResultList.add(scanResult); + } + } + List<MyWifiInfo> wifiList = new ArrayList<>(); + for (int i = 0; i < newScanResultList.size(); i++) { + MyWifiInfo info = new MyWifiInfo(); + info.setSSID(newScanResultList.get(i).SSID); + info.setLevel(newScanResultList.get(i).level); + info.setBSSID(newScanResultList.get(i).BSSID); + + wifiList.add(info); + } + return wifiList; + /* + * wifi RSSI鐨勭瓑绾у垝鍒嗗涓嬶細 + * + * [-126, -88) 鎴栬�� [156, 168) 涓� 0 鏍� + * [-88, -78) 鎴栬�� [168, 178) 涓� 1 鏍� + * [-78, -67) 鎴栬�� [178, 189) 涓� 2 鏍� + * [-67, -55) 鎴栬�� [189, 200) 涓� 3 鏍� + * [-55, 0] 鎴栬�� 涓� 4 鏍� + */ + } + + /** + * 杩斿洖item鍦╨ist涓殑浣嶇疆 + */ + private int getItemPosition(List<ScanResult> list, ScanResult item) { + for (int i = 0; i < list.size(); i++) { + if (item.SSID.equals(list.get(i).SSID)) { + return i; + } + } + return -1; + } + + + static class MyWifiInfo { + /** + * Wi-Fi鍚嶇О + */ + private String SSID; + /** + * 淇″彿寮哄害 + */ + private int level; + private String BSSID; + + public String getSSID() { + return SSID == null ? "" : SSID; + } + + public void setSSID(String SSID) { + this.SSID = SSID; + } + + public int getLevel() { + return level; + } + + public void setLevel(int level) { + this.level = level; + } + + public String getBSSID() { + return BSSID == null ? "" : BSSID; + } + + public void setBSSID(String BSSID) { + this.BSSID = BSSID; + } + + private int networkId; + + public int getNetworkId() { + return networkId; + } + + public void setNetworkId(int networkId) { + this.networkId = networkId; + } + } +} + + diff --git a/app/src/main/java/com/hdl/photovoltaic/widget/ConfirmationDialog.java b/app/src/main/java/com/hdl/photovoltaic/widget/ConfirmationDialog.java index 60e194e..b12b44a 100644 --- a/app/src/main/java/com/hdl/photovoltaic/widget/ConfirmationDialog.java +++ b/app/src/main/java/com/hdl/photovoltaic/widget/ConfirmationDialog.java @@ -16,7 +16,7 @@ */ public class ConfirmationDialog extends Dialog { public ConfirmationDialog(@NonNull Context context) { - super(context, R.style.Custom_AlertDialog); + super(context, R.style.Custom_Dialog); this.mContext = context; } diff --git a/app/src/main/java/com/hdl/photovoltaic/widget/ConfirmationExceptionDialog.java b/app/src/main/java/com/hdl/photovoltaic/widget/ConfirmationExceptionDialog.java new file mode 100644 index 0000000..e3737a2 --- /dev/null +++ b/app/src/main/java/com/hdl/photovoltaic/widget/ConfirmationExceptionDialog.java @@ -0,0 +1,85 @@ +package com.hdl.photovoltaic.widget; + +import android.app.Dialog; +import android.content.Context; +import android.os.Bundle; +import android.text.TextUtils; +import android.view.View; +import android.view.Window; +import android.view.WindowManager; + +import androidx.annotation.NonNull; +import androidx.appcompat.content.res.AppCompatResources; + +import com.hdl.photovoltaic.R; +import com.hdl.photovoltaic.databinding.LoadingExceptionLogBinding; + +/** + * 寮傚父寮圭獥 + */ +public class ConfirmationExceptionDialog extends Dialog { + + private LoadingExceptionLogBinding viewBinding; + private final Context mContext; + private String contentStr; + + public ConfirmationExceptionDialog(@NonNull Context context) { + super(context, R.style.Custom_Dialog); + mContext = context; + } + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + viewBinding = LoadingExceptionLogBinding.inflate(getLayoutInflater()); + setContentView(viewBinding.getRoot()); +// Window window = getWindow(); +// window.setLayout(WindowManager.LayoutParams.MATCH_PARENT, WindowManager.LayoutParams.MATCH_PARENT); + +// setCancelable(true);//绯荤粺鍚庨��鍙互鍙栨秷 + //绌虹櫧澶勪笉鑳藉彇娑堝姩鐢� + setCanceledOnTouchOutside(false); + //鍒濆鍖栫晫闈㈡帶浠� + initView(); + //鍒濆鍖栫晫闈㈡暟鎹� + initData(); + //鍒濆鍖栫晫闈㈡帶浠剁殑浜嬩欢 + initEvent(); + + } + + /** + * 鑷畾涔�"鍐呭"鏂囨湰 + * + * @param content 鍐呭 + */ + public void setContent(String content) { + if (TextUtils.isEmpty(content)) { + return; + } + contentStr = content; + if (viewBinding != null) { + viewBinding.loadingExceptionTv.setText(content); + } + + } + + private void initView() { + viewBinding.toolbarTopExceptionRl.topLeftIv.setImageDrawable(AppCompatResources.getDrawable(mContext, R.drawable.back)); + viewBinding.toolbarTopExceptionRl.topTitleTv.setText("鏃ュ織璇︾粏"); + viewBinding.toolbarTopExceptionRl.topBarView.setBackgroundColor(mContext.getColor(R.color.text_245EC3)); + viewBinding.loadingExceptionTv.setText(contentStr == null ? "" : contentStr); + } + + private void initEvent() { + viewBinding.toolbarTopExceptionRl.topBackBtn.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + dismiss(); + } + }); + } + + private void initData() { + } +} diff --git a/app/src/main/java/com/hdl/photovoltaic/widget/ConfirmationInputDialog.java b/app/src/main/java/com/hdl/photovoltaic/widget/ConfirmationInputDialog.java index 27ee316..d57aef4 100644 --- a/app/src/main/java/com/hdl/photovoltaic/widget/ConfirmationInputDialog.java +++ b/app/src/main/java/com/hdl/photovoltaic/widget/ConfirmationInputDialog.java @@ -23,7 +23,7 @@ public class ConfirmationInputDialog extends Dialog { public ConfirmationInputDialog(@NonNull Context context) { - super(context, R.style.Custom_AlertDialog); + super(context, R.style.Custom_Dialog); this.mContext = context; } diff --git a/app/src/main/res/layout/loading_exception_log.xml b/app/src/main/res/layout/loading_exception_log.xml index 77d9ef6..122a48c 100644 --- a/app/src/main/res/layout/loading_exception_log.xml +++ b/app/src/main/res/layout/loading_exception_log.xml @@ -1,6 +1,62 @@ <?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"> + android:layout_height="match_parent" + android:background="@color/text_FFFFFFFF"> + + <include + android:id="@+id/toolbar_top_exception_rl" + layout="@layout/toolbar_top_view_44" /> + + <!-- <RelativeLayout--> + <!-- android:id="@+id/loading_header_el"--> + <!-- android:layout_width="match_parent"--> + <!-- android:layout_height="@dimen/dp_16"--> + <!-- app:layout_constraintEnd_toEndOf="parent"--> + <!-- app:layout_constraintStart_toStartOf="parent"--> + <!-- app:layout_constraintTop_toBottomOf="@+id/toolbar_top_exception_rl">--> + + <!-- <TextView--> + <!-- android:id="@+id/loading_top_title_tv"--> + <!-- android:layout_width="wrap_content"--> + <!-- android:layout_height="@dimen/dp_16"--> + <!-- android:layout_marginStart="@dimen/dp_5"--> + <!-- android:layout_marginBottom="@dimen/dp_5"--> + <!-- android:text="鎴浘鍙嶉"--> + <!-- android:textAlignment="textStart"--> + <!-- android:textColor="@color/text_D34545"--> + <!-- android:textIsSelectable="true" />--> + + <!-- </RelativeLayout>--> + + <ScrollView + android:layout_width="match_parent" + android:layout_height="0dp" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@+id/toolbar_top_exception_rl"> + + <RelativeLayout + android:layout_width="match_parent" + android:layout_height="0dp"> + <!--鏄剧ず寮傚父鍫嗘爤淇℃伅--> + <TextView + android:id="@+id/loading_exception_tv" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:layout_marginStart="@dimen/dp_5" + android:layout_marginBottom="@dimen/dp_5" + android:gravity="start|center" + android:text="鏄剧ず寮傚父鍫嗘爤淇℃伅" + android:textAlignment="textStart" + android:textColor="@color/text_030D1C" + android:textIsSelectable="true" /> + + </RelativeLayout> + + </ScrollView> + </androidx.constraintlayout.widget.ConstraintLayout> \ No newline at end of file diff --git a/app/src/main/res/layout/toolbar_top_view_44.xml b/app/src/main/res/layout/toolbar_top_view_44.xml index 72c0247..6cc1f1c 100644 --- a/app/src/main/res/layout/toolbar_top_view_44.xml +++ b/app/src/main/res/layout/toolbar_top_view_44.xml @@ -14,6 +14,7 @@ android:orientation="horizontal"> <ImageView + android:id="@+id/top_left_iv" android:layout_width="@dimen/dp_24" android:layout_height="@dimen/dp_24" android:layout_gravity="center" diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml index 765e997..d3b65b6 100644 --- a/app/src/main/res/values/themes.xml +++ b/app/src/main/res/values/themes.xml @@ -29,7 +29,7 @@ <item name="fullscreenTextColor">@color/light_blue_A200</item> </style> - <style name="Custom_AlertDialog"> + <style name="Custom_Dialog"> <!--鑳屾櫙棰滆壊鍙婂拰閫忔槑绋嬪害--> <item name="android:windowBackground">@android:color/transparent</item> <!--鏄惁鍘婚櫎鏍囬 鎸嘾ialog寮规鏍囬--> -- Gitblit v1.8.0