diff --git a/core/function-impl/mogo-core-function-check/src/main/java/com/mogo/eagle/core/function/check/VehicleMonitoringManager.java b/core/function-impl/mogo-core-function-check/src/main/java/com/mogo/eagle/core/function/check/VehicleMonitoringManager.java deleted file mode 100644 index 627f9221a7..0000000000 --- a/core/function-impl/mogo-core-function-check/src/main/java/com/mogo/eagle/core/function/check/VehicleMonitoringManager.java +++ /dev/null @@ -1,176 +0,0 @@ -package com.mogo.eagle.core.function.check; - -import android.content.Context; -import android.content.Intent; -import android.content.pm.PackageInfo; -import android.content.pm.PackageManager; -import android.util.Log; - -import com.alibaba.android.arouter.facade.annotation.Route; -import com.elegant.network.ParamsBuilder; -import com.mogo.cloud.passport.MoGoAiCloudClientConfig; -import com.mogo.commons.network.SubscribeImpl; -import com.mogo.eagle.core.function.call.check.CallerCheckManager; -import com.mogo.eagle.core.function.check.api.ICheckResultCallBack; -import com.mogo.eagle.core.function.check.net.CheckApiServiceFactory; -import com.mogo.eagle.core.function.check.net.CheckResultData; -import com.mogo.eagle.core.function.check.view.CheckDialog; -import com.mogo.eagle.core.utilcode.util.ActivityUtils; -import com.mogo.eagle.core.utilcode.util.AppUtils; -import com.mogo.eagle.core.utilcode.util.LogUtils; -import com.mogo.eagle.core.function.api.check.IMogoCheckListener; -import com.mogo.eagle.core.function.check.view.CheckActivity; -import com.mogo.eagle.core.utilcode.util.ThreadUtils; -import com.mogo.module.common.MogoApisHandler; -import com.mogo.module.service.MogoServiceProvider; -import com.mogo.module.service.MogoServices; -import com.mogo.module.service.receiver.MogoReceiver; -import com.mogo.service.MogoServicePaths; -import com.mogo.eagle.core.function.api.check.ICheckProvider; -import com.mogo.service.statusmanager.IMogoStatusChangedListener; -import com.mogo.service.statusmanager.StatusDescriptor; -import com.mogo.utils.ActivityLifecycleManager; -import com.mogo.utils.UiThreadHandler; -import com.mogo.utils.network.RequestOptions; - -import java.util.List; -import java.util.Map; -import java.util.concurrent.ConcurrentHashMap; -import java.util.concurrent.CopyOnWriteArrayList; - -import io.reactivex.android.schedulers.AndroidSchedulers; -import io.reactivex.schedulers.Schedulers; - - -/** - * 鹰眼系统、自动驾驶系统 检测模块 - * - * @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 , IMogoStatusChangedListener { - private static final String TAG = "VehicleMonitoringManager"; - private Context mContext; - private final Map mListeners = new ConcurrentHashMap<>(); - private boolean hasTipShow = false;//是否已经弹框提示 - CheckDialog dialog; - - @Override - public void init(Context context) { - LogUtils.dTag(TAG, "初始化 CheckProvider 模块"); - mContext = context; - MogoApisHandler.getInstance().getApis().getStatusManagerApi().registerStatusChangedListener(TAG,StatusDescriptor.MAIN_PAGE_RESUME,this); - } - - @Override - public void registerVehicleMonitoringListener(String module, IMogoCheckListener listener) { - if (listener == null || module == null) { - LogUtils.dTag(TAG, "listener == null || intent == null"); - return; - } - if (!mListeners.containsKey(module)) { - LogUtils.dTag(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) { - Intent starter = new Intent(context, CheckActivity.class); - starter.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); - context.startActivity(starter); - } - - @Override - public void showCheckDialog(Context context) { - showDialog(context); - } - - @Override - public void checkMonitor(Context context) { - if (context != null) { - CheckActivity.checkMonitor(context, new ICheckResultCallBack() { - @Override - public void callBackWithErrorState(Integer state) { - updateMonitoringStatus(MogoReceiver.ACTION_CHECK_VEHICLE_MONITORING, state); - if (state == 1) { - hasTipShow = false; - } else { - if (hasTipShow == false) { - showDialog(context); - hasTipShow = true;//已弹框 - } - } - } - }); - } - } - - /** - * 指标异常弹框 - */ - public void showDialog(Context context) { - try { - if (ActivityLifecycleManager.getInstance().isAppActive() == true && - AppUtils.isAppRunning(getPackageName(context)) && - ActivityUtils.getTopActivity() instanceof CheckActivity == false) { - if (dialog != null) { - dialog.dismiss(); - } - dialog = new CheckDialog(context, true); - dialog.show(); - } - } catch (Exception e) { - e.printStackTrace(); - } - } - - /** - * @param context - * @return 当前应用的版本名称 - */ - public static synchronized String getPackageName(Context context) { - try { - PackageManager packageManager = context.getPackageManager(); - PackageInfo packageInfo = packageManager.getPackageInfo( - context.getPackageName(), 0); - return packageInfo.packageName; - } catch (Exception e) { - e.printStackTrace(); - } - return "com.mogo.launcher.f"; - } - - @Override - public void updateMonitoringStatus(String module, Integer state) { - List listeners = mListeners.get(module); - if (listeners != null && !listeners.isEmpty()) { - for (IMogoCheckListener listener : listeners) { - if (listener != null) { - listener.updateMonitoringStatus(state); - } - } - } - } - - @Override - public void onStatusChanged(StatusDescriptor descriptor, boolean isTrue) { - if (descriptor == StatusDescriptor.MAIN_PAGE_RESUME) { - if (!isTrue){ - if (dialog != null && dialog.isShowing()){ - dialog.dismiss(); - } - } - } - } -} diff --git a/core/function-impl/mogo-core-function-check/src/main/java/com/mogo/eagle/core/function/check/VehicleMonitoringManager.kt b/core/function-impl/mogo-core-function-check/src/main/java/com/mogo/eagle/core/function/check/VehicleMonitoringManager.kt index 27cdc1f673..e01fde4a97 100644 --- a/core/function-impl/mogo-core-function-check/src/main/java/com/mogo/eagle/core/function/check/VehicleMonitoringManager.kt +++ b/core/function-impl/mogo-core-function-check/src/main/java/com/mogo/eagle/core/function/check/VehicleMonitoringManager.kt @@ -10,8 +10,11 @@ import com.mogo.eagle.core.function.check.view.CheckDialog import com.mogo.eagle.core.utilcode.util.ActivityUtils import com.mogo.eagle.core.utilcode.util.AppUtils import com.mogo.eagle.core.utilcode.util.LogUtils +import com.mogo.module.common.MogoApisHandler import com.mogo.module.service.receiver.MogoReceiver import com.mogo.service.MogoServicePaths +import com.mogo.service.statusmanager.IMogoStatusChangedListener +import com.mogo.service.statusmanager.StatusDescriptor import com.mogo.utils.ActivityLifecycleManager import java.util.concurrent.ConcurrentHashMap @@ -23,17 +26,20 @@ import java.util.concurrent.ConcurrentHashMap * wiki:http://wiki.zhidaohulian.com/pages/viewpage.action?pageId=58204952 */ @Route(path = MogoServicePaths.PATH_CHECK) -class VehicleMonitoringManager : ICheckProvider { +class VehicleMonitoringManager : ICheckProvider, IMogoStatusChangedListener { private val TAG = "VehicleMonitoringManager" - private var mContext: Context? = null private val mListeners: ConcurrentHashMap = ConcurrentHashMap() private var hasTipShow = false //是否已经弹框提示 var dialog: CheckDialog? = null - override fun init(context: Context) { LogUtils.dTag(TAG, "初始化 CheckProvider 模块") mContext = context + MogoApisHandler.getInstance().apis.statusManagerApi.registerStatusChangedListener( + TAG, + StatusDescriptor.MAIN_PAGE_RESUME, + this + ) } override fun registerVehicleMonitoringListener(module: String, listener: IMogoCheckListener) { @@ -41,9 +47,7 @@ class VehicleMonitoringManager : ICheckProvider { } override fun unregisterListener(module: String) { - if (mListeners.containsKey(module)) { - mListeners.remove(module) - } + mListeners.remove(module) } override fun startCheckActivity(context: Context) { @@ -75,8 +79,7 @@ class VehicleMonitoringManager : ICheckProvider { */ private fun showDialog(context: Context) { try { - if (ActivityLifecycleManager.getInstance().isAppActive && - AppUtils.isAppRunning( + if (ActivityLifecycleManager.getInstance().isAppActive && AppUtils.isAppRunning( AppUtils.getAppPackageName() ) && ActivityUtils.getTopActivity() !is CheckActivity ) { @@ -96,4 +99,14 @@ class VehicleMonitoringManager : ICheckProvider { listener.value.updateMonitoringStatus(state) } } + + override fun onStatusChanged(descriptor: StatusDescriptor, isTrue: Boolean) { + if (descriptor == StatusDescriptor.MAIN_PAGE_RESUME) { + if (!isTrue) { + if (dialog != null && dialog!!.isShowing) { + dialog!!.dismiss() + } + } + } + } } \ No newline at end of file