diff --git a/foudations/mogo-utils/src/main/java/com/mogo/utils/network/utils/NetworkStatusUtil.java b/foudations/mogo-utils/src/main/java/com/mogo/utils/network/utils/NetworkStatusUtil.java index 034a5a2683..051f1530c4 100644 --- a/foudations/mogo-utils/src/main/java/com/mogo/utils/network/utils/NetworkStatusUtil.java +++ b/foudations/mogo-utils/src/main/java/com/mogo/utils/network/utils/NetworkStatusUtil.java @@ -28,14 +28,16 @@ public class NetworkStatusUtil { private static int mSignalStrength; private static SignalStrength signal; private static NetWorkStatus netWorkStatus1 = new NetWorkStatus(); + /** * 监听网络强度 */ public static NetWorkStatus networkState(Context context) { ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo info = connectivityManager.getActiveNetworkInfo(); + String netWorkStatus = CommonUtils.getNetworkType(context); + netWorkStatus1.status = netWorkStatus; if (info != null && info.isAvailable()) { - String netWorkStatus = CommonUtils.getNetworkType(context); netWorkStatus1.status = netWorkStatus; switch (info.getType()) { case ConnectivityManager.TYPE_WIFI: @@ -68,11 +70,6 @@ public class NetworkStatusUtil { } Method method = signal.getClass().getMethod("getDbm"); mSignalStrength = (int) method.invoke(signal); - if (mSignalStrength > -90) { - Log.e("CheckActivity", "getNetWorkInfo: 信号强度强"); - } else { - Log.e("CheckActivity", "getNetWorkInfo: 信号强度弱"); - } } catch (NoSuchMethodException e) { e.printStackTrace(); } catch (IllegalAccessException e) { diff --git a/libraries/mogo-map-api/src/main/java/com/mogo/map/check/IMogoCheckListener.java b/libraries/mogo-map-api/src/main/java/com/mogo/map/check/IMogoCheckListener.java new file mode 100644 index 0000000000..628a9894d1 --- /dev/null +++ b/libraries/mogo-map-api/src/main/java/com/mogo/map/check/IMogoCheckListener.java @@ -0,0 +1,10 @@ +package com.mogo.map.check; + +/** + * @author liujing + * @description 监听指标发生变化, 通知首页检测入口处预警图标重新渲染 + * @since: 8/26/21 + */ +public interface IMogoCheckListener { + void updateMonitoringStatus(boolean hasError); +} diff --git a/modules/mogo-module-check/build.gradle b/modules/mogo-module-check/build.gradle index a839783784..990b1d3f1f 100644 --- a/modules/mogo-module-check/build.gradle +++ b/modules/mogo-module-check/build.gradle @@ -46,6 +46,7 @@ dependencies { implementation rootProject.ext.dependencies.kotlinstdlibjdk7 implementation 'com.google.android.material:material:1.2.1' implementation project(':modules:mogo-module-common') + implementation project(path: ':modules:mogo-module-service') annotationProcessor rootProject.ext.dependencies.aroutercompiler diff --git a/modules/mogo-module-check/src/main/java/com/mogo/module/check/CheckProvider.java b/modules/mogo-module-check/src/main/java/com/mogo/module/check/CheckProvider.java deleted file mode 100644 index a29af43aee..0000000000 --- a/modules/mogo-module-check/src/main/java/com/mogo/module/check/CheckProvider.java +++ /dev/null @@ -1,52 +0,0 @@ -package com.mogo.module.check; - -import android.content.Context; -import android.util.Log; - -import com.alibaba.android.arouter.facade.annotation.Route; -import com.mogo.module.check.view.CheckActivity; -import com.mogo.service.check.ICheckProvider; -import com.mogo.service.MogoServicePaths; -import com.mogo.utils.logger.Logger; - - -/** - * 鹰眼系统、自动驾驶系统 检测模块 - * - * @date 4/21/21 3:39 PM - * 需求地址 - * wiki:http://wiki.zhidaohulian.com/pages/viewpage.action?pageId=58204952 - */ -@Route(path = MogoServicePaths.PATH_CHECK) -public class CheckProvider implements ICheckProvider { - private static final String TAG = "CheckProvider"; - private Context mContext; - - - @Override - public void init(Context context) { - Logger.d(TAG, "初始化 CheckProvider 模块"); - mContext = context; - } - - @Override - public void startCheckActivity(Context context) { - if (context != null) { - CheckActivity.start(context); - } - } - - @Override - public void showCheckDialog(Context context) { - if (context != null) { - CheckActivity.showDialog(context); - } - } - - @Override - public void checkMonitor(Context context) { - if (context != null) { - CheckActivity.checkMonitor(); - } - } -} diff --git a/modules/mogo-module-check/src/main/java/com/mogo/module/check/VehicleMonitoringManager.java b/modules/mogo-module-check/src/main/java/com/mogo/module/check/VehicleMonitoringManager.java new file mode 100644 index 0000000000..bea2c7076a --- /dev/null +++ b/modules/mogo-module-check/src/main/java/com/mogo/module/check/VehicleMonitoringManager.java @@ -0,0 +1,92 @@ +package com.mogo.module.check; + +import android.content.Context; +import android.util.Log; + +import com.alibaba.android.arouter.facade.annotation.Route; +import com.mogo.map.check.IMogoCheckListener; +import com.mogo.module.check.view.CheckActivity; +import com.mogo.service.check.ICheckProvider; +import com.mogo.service.MogoServicePaths; +import com.mogo.service.v2x.IV2XWarningListener; +import com.mogo.utils.logger.Logger; + +import java.util.List; +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.CopyOnWriteArrayList; + + +/** + * 鹰眼系统、自动驾驶系统 检测模块 + * + * @date 4/21/21 3:39 PM + * 需求地址 + * wiki:http://wiki.zhidaohulian.com/pages/viewpage.action?pageId=58204952 + */ +@Route(path = MogoServicePaths.PATH_CHECK) +public class VehicleMonitoringManager implements ICheckProvider { + private static final String TAG = "VehicleMonitoringManager"; + private Context mContext; + private final Map mListeners = new ConcurrentHashMap<>(); + + @Override + public void init(Context context) { + Logger.d(TAG, "初始化 CheckProvider 模块"); + mContext = context; + } + + @Override + public void registerVehicleMonitoringListener(String module, IMogoCheckListener listener) { + if (listener == null || module == null) { + Log.d(TAG, "listener == null || intent == null"); + return; + } + if (!mListeners.containsKey(module)) { + Log.d(TAG, "intent==" + module + "listener" + listener); + mListeners.put(module, new CopyOnWriteArrayList<>()); + } + mListeners.get(module).add(listener); + } + + @Override + public void unregisterListener(String module, IMogoCheckListener listener) { + if (mListeners.containsKey(module)) { + mListeners.get(module).remove(listener); + } + } + + @Override + public void startCheckActivity(Context context) { + if (context != null) { + CheckActivity.start(context); + } + } + + @Override + public void showCheckDialog(Context context) { + if (context != null) { + CheckActivity.showDialog(context); + } + } + + @Override + public boolean checkMonitor(Context context) { + if (context != null) { + return CheckActivity.checkMonitor(); + } + return false; + } + + @Override + public void updateMonitoringStatus(String module, boolean hasError) { + List listeners = mListeners.get(module); + if (listeners != null && !listeners.isEmpty()) { + for (IMogoCheckListener listener : listeners) { + if (listener != null) { + listener.updateMonitoringStatus(hasError); + } + } + } + } +} diff --git a/modules/mogo-module-check/src/main/java/com/mogo/module/check/view/CheckActivity.java b/modules/mogo-module-check/src/main/java/com/mogo/module/check/view/CheckActivity.java index 0b79d23a0f..c27a2b0c31 100644 --- a/modules/mogo-module-check/src/main/java/com/mogo/module/check/view/CheckActivity.java +++ b/modules/mogo-module-check/src/main/java/com/mogo/module/check/view/CheckActivity.java @@ -21,10 +21,13 @@ import androidx.appcompat.app.AppCompatActivity; import androidx.recyclerview.widget.RecyclerView; import com.mogo.commons.voice.AIAssist; +import com.mogo.map.check.IMogoCheckListener; import com.mogo.module.check.R; import com.mogo.module.check.model.CheckItemInfo; +import com.mogo.module.common.MogoApisHandler; import com.mogo.module.common.view.ImageViewClipBounds; import com.mogo.module.common.view.SpacesItemDecoration; +import com.mogo.module.service.receiver.MogoReceiver; import com.mogo.utils.CommonUtils; import com.mogo.utils.network.utils.NetworkStatusUtil; import com.tencent.bugly.beta.Beta; @@ -39,7 +42,7 @@ import java.util.concurrent.TimeUnit; * @description 车辆监控页面 * @since: 7/27/21 */ -public class CheckActivity extends AppCompatActivity { +public class CheckActivity extends AppCompatActivity { private static final String TAG = "CheckActivity"; private RecyclerView mRecyclerView; @@ -113,8 +116,8 @@ public class CheckActivity extends AppCompatActivity { /** * 自动驾驶状态下指标监测 */ - public static void checkMonitor() { - Log.d(TAG,"checkMonitor"); + public static boolean checkMonitor() { + Log.d(TAG, "checkMonitor"); //版本检测 versionCheckResult(); //系统检测 @@ -125,6 +128,8 @@ public class CheckActivity extends AppCompatActivity { hardware(); //根据以上4个结果插入第一个元素(自动驾驶车辆是否存在风险) topListTitle(); + MogoApisHandler.getInstance().getApis().getCheckProvider().updateMonitoringStatus(MogoReceiver.ACTION_CHECK_VEHICLE_MONITORING,false); + return true; } /** @@ -348,7 +353,7 @@ public class CheckActivity extends AppCompatActivity { //网络类型 sNetWorkStatus = NetworkStatusUtil.networkState(context); //网络强度 - if (sNetWorkStatus.getStatus() != null && sNetWorkStatus.getStatus() != "UNKNOWN") { + if (sNetWorkStatus != null && sNetWorkStatus.getStatus() != null && sNetWorkStatus.getStatus() != "UNKNOWN") { Log.d(TAG, "网络类型:" + sNetWorkStatus.getStatus() + "网络强度:" + sNetWorkStatus.getSignalStrength()); if (sNetWorkStatus.getSignalStrength() <= -90) { AIAssist.getInstance(context).speakTTSVoice("网络信号差"); @@ -570,4 +575,5 @@ public class CheckActivity extends AppCompatActivity { protected void onPause() { super.onPause(); } + } diff --git a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntranceFragment.java b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntranceFragment.java index 13f3389afc..cfdeb7e07d 100644 --- a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntranceFragment.java +++ b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntranceFragment.java @@ -36,6 +36,7 @@ import com.mogo.commons.debug.DebugConfig; import com.mogo.commons.mvp.MvpFragment; import com.mogo.commons.voice.AIAssist; import com.mogo.map.MogoLatLng; +import com.mogo.map.check.IMogoCheckListener; import com.mogo.map.listener.IMogoMapListener; import com.mogo.map.location.IMogoLocationClient; import com.mogo.map.marker.IMogoMarkerManager; @@ -132,7 +133,9 @@ public class EntranceFragment extends MvpFragment