From 802fc8a0e445a6a55742e1e68e1f104e01307c46 Mon Sep 17 00:00:00 2001 From: liujing Date: Tue, 12 Oct 2021 15:35:50 +0800 Subject: [PATCH] =?UTF-8?q?[add]=20=E8=A7=A3=E5=86=B3=E4=B8=8D=E9=87=8A?= =?UTF-8?q?=E6=94=BE=E5=AF=BC=E8=87=B4=E5=86=85=E5=AD=98=E6=B3=84=E9=9C=B2?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/gradle.xml | 3 +- .../check/VehicleMonitoringManager.kt | 20 +++--- .../check/api/ICheckResultCallBack.java | 4 +- .../core/function/check/net/CheckNetWork.kt | 42 +++++++++++++ .../function/check/view/CheckActivity.java | 61 ++++++------------- .../function/api/check/ICheckProvider.java | 5 ++ .../IMogoStatusChangedListener.java | 6 ++ 7 files changed, 87 insertions(+), 54 deletions(-) create mode 100644 core/function-impl/mogo-core-function-check/src/main/java/com/mogo/eagle/core/function/check/net/CheckNetWork.kt diff --git a/.idea/gradle.xml b/.idea/gradle.xml index 97a9cb7d46..8bc2337f09 100644 --- a/.idea/gradle.xml +++ b/.idea/gradle.xml @@ -4,7 +4,7 @@ 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 e01fde4a97..f577d6623d 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 @@ -5,6 +5,8 @@ import android.content.Intent import com.alibaba.android.arouter.facade.annotation.Route import com.mogo.eagle.core.function.api.check.ICheckProvider import com.mogo.eagle.core.function.api.check.IMogoCheckListener +import com.mogo.eagle.core.function.check.api.ICheckResultCallBack +import com.mogo.eagle.core.function.check.net.CheckNetWork import com.mogo.eagle.core.function.check.view.CheckActivity import com.mogo.eagle.core.function.check.view.CheckDialog import com.mogo.eagle.core.utilcode.util.ActivityUtils @@ -36,9 +38,9 @@ class VehicleMonitoringManager : ICheckProvider, IMogoStatusChangedListener { LogUtils.dTag(TAG, "初始化 CheckProvider 模块") mContext = context MogoApisHandler.getInstance().apis.statusManagerApi.registerStatusChangedListener( - TAG, - StatusDescriptor.MAIN_PAGE_RESUME, - this + TAG, + StatusDescriptor.MAIN_PAGE_RESUME, + this ) } @@ -61,9 +63,9 @@ class VehicleMonitoringManager : ICheckProvider, IMogoStatusChangedListener { } override fun checkMonitor(context: Context) { - CheckActivity.checkMonitor(context) { state -> - updateMonitoringStatus(MogoReceiver.ACTION_CHECK_VEHICLE_MONITORING, state) - if (state == 1) { + CheckNetWork.checkNetWork(context, ICheckResultCallBack { state -> + updateMonitoringStatus(MogoReceiver.ACTION_CHECK_VEHICLE_MONITORING, state.data.vehicle.state) + if (state.data.vehicle.state == 1) { hasTipShow = false } else { if (!hasTipShow) { @@ -71,7 +73,7 @@ class VehicleMonitoringManager : ICheckProvider, IMogoStatusChangedListener { hasTipShow = true //已弹框 } } - } + }) } /** @@ -80,8 +82,8 @@ class VehicleMonitoringManager : ICheckProvider, IMogoStatusChangedListener { private fun showDialog(context: Context) { try { if (ActivityLifecycleManager.getInstance().isAppActive && AppUtils.isAppRunning( - AppUtils.getAppPackageName() - ) && ActivityUtils.getTopActivity() !is CheckActivity + AppUtils.getAppPackageName() + ) && ActivityUtils.getTopActivity() !is CheckActivity ) { if (dialog != null) { dialog!!.dismiss() diff --git a/core/function-impl/mogo-core-function-check/src/main/java/com/mogo/eagle/core/function/check/api/ICheckResultCallBack.java b/core/function-impl/mogo-core-function-check/src/main/java/com/mogo/eagle/core/function/check/api/ICheckResultCallBack.java index fbc0e30634..24a1e17378 100644 --- a/core/function-impl/mogo-core-function-check/src/main/java/com/mogo/eagle/core/function/check/api/ICheckResultCallBack.java +++ b/core/function-impl/mogo-core-function-check/src/main/java/com/mogo/eagle/core/function/check/api/ICheckResultCallBack.java @@ -1,10 +1,12 @@ package com.mogo.eagle.core.function.check.api; +import com.mogo.eagle.core.function.check.net.CheckResultData; + /** * @author liujing * @description 自车检测结果回调 * @since: 9/28/21 */ public interface ICheckResultCallBack { - void callBackWithErrorState(Integer state); + void callBackWithCheckData(CheckResultData data); } diff --git a/core/function-impl/mogo-core-function-check/src/main/java/com/mogo/eagle/core/function/check/net/CheckNetWork.kt b/core/function-impl/mogo-core-function-check/src/main/java/com/mogo/eagle/core/function/check/net/CheckNetWork.kt new file mode 100644 index 0000000000..5d2703522e --- /dev/null +++ b/core/function-impl/mogo-core-function-check/src/main/java/com/mogo/eagle/core/function/check/net/CheckNetWork.kt @@ -0,0 +1,42 @@ +package com.mogo.eagle.core.function.check.net + +import android.content.Context +import android.util.Log +import com.elegant.network.ParamsBuilder +import com.mogo.cloud.passport.MoGoAiCloudClientConfig +import com.mogo.commons.network.SubscribeImpl +import com.mogo.eagle.core.function.check.api.ICheckResultCallBack +import com.mogo.eagle.core.function.check.view.CheckActivity +import com.mogo.eagle.core.utilcode.util.ThreadUtils +import com.mogo.utils.network.RequestOptions +import io.reactivex.android.schedulers.AndroidSchedulers +import io.reactivex.schedulers.Schedulers + +/** + * @author liujing + * @description 自测检测网络请求类 + * @since: 10/12/21 + */ + +object CheckNetWork { + //网络请求,获取自车检测结果(工控机上报云端) + fun checkNetWork(context: Context, callbackFlow: ICheckResultCallBack) { + val params = ParamsBuilder.of(false) + .append("sn", MoGoAiCloudClientConfig.getInstance().sn) + .build() + CheckApiServiceFactory.getDataApiService(context).loadMonitorDetail(params) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(object : SubscribeImpl(RequestOptions.create(context)) { + override fun onSuccess(o: CheckResultData) { + super.onSuccess(o) + ThreadUtils.runOnUiThread { callbackFlow?.callBackWithCheckData(o) } + } + + override fun onError(message: String, code: Int) { + super.onError(message, code) + } + }) + } + +} \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-check/src/main/java/com/mogo/eagle/core/function/check/view/CheckActivity.java b/core/function-impl/mogo-core-function-check/src/main/java/com/mogo/eagle/core/function/check/view/CheckActivity.java index 8bb7658383..95df8de329 100644 --- a/core/function-impl/mogo-core-function-check/src/main/java/com/mogo/eagle/core/function/check/view/CheckActivity.java +++ b/core/function-impl/mogo-core-function-check/src/main/java/com/mogo/eagle/core/function/check/view/CheckActivity.java @@ -23,6 +23,7 @@ import com.mogo.commons.network.SubscribeImpl; import com.mogo.eagle.core.function.check.R; 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.CheckNetWork; import com.mogo.eagle.core.function.check.net.CheckResultData; import com.mogo.eagle.core.utilcode.util.ThreadUtils; import com.mogo.module.common.view.ImageViewClipBounds; @@ -43,10 +44,8 @@ import io.reactivex.schedulers.Schedulers; */ public class CheckActivity extends AppCompatActivity { - private static final String TAG = "CheckActivity"; private RecyclerView mRecyclerView; private static CheckResultData sCheckResultData; - private static NetworkStatusUtil.NetWorkStatus sNetWorkStatus; private ImageView mImageView; //车模 private ImageView scanBottomCarImage; @@ -63,7 +62,7 @@ public class CheckActivity extends AppCompatActivity { //进度条 private ProgressBar mProgressBar; private final static long DURATION_TIME = 1000; - private static CheckAdapter mCheckAdapter; + private CheckAdapter mCheckAdapter; @Override protected void onCreate(@Nullable Bundle savedInstanceState) { @@ -76,8 +75,9 @@ public class CheckActivity extends AppCompatActivity { protected void onStart() { super.onStart(); animation(); - loadDetail(this.getApplicationContext(), null); + checkAction(); } + /** * 列表View初始化 */ @@ -102,47 +102,22 @@ public class CheckActivity extends AppCompatActivity { mRecyclerView.setAdapter(mCheckAdapter); } - /** - * 自动驾驶状态下指标监测 - */ - public static void checkMonitor(Context context, ICheckResultCallBack checkResultCallBack) { - Log.d(TAG, "checkMonitor"); - loadDetail(context.getApplicationContext(), checkResultCallBack); - } - - //网络请求,获取自车检测结果(工控机上报云端) - public static void loadDetail(Context context, ICheckResultCallBack checkResultCallBack) { - final Map params = ParamsBuilder.of(false) - .append("sn", MoGoAiCloudClientConfig.getInstance().getSn()) - .build(); - CheckApiServiceFactory.getDataApiService(context).loadMonitorDetail(params) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(new SubscribeImpl(RequestOptions.create(context)) { + private void checkAction() { + CheckNetWork.INSTANCE.checkNetWork(this.getApplicationContext(), new ICheckResultCallBack() { + @Override + public void callBackWithCheckData(CheckResultData data) { + Log.d("CheckActivity", "车辆自检结果是:" + data.toString()); + ThreadUtils.runOnUiThread(new Runnable() { @Override - public void onSuccess(CheckResultData o) { - super.onSuccess(o); - Log.d(TAG, "车辆自检结果是:" + o.toString()); - ThreadUtils.runOnUiThread(new Runnable() { - @Override - public void run() { - if (o != null && mCheckAdapter != null) { - mCheckAdapter.mCheckResultData = o; - mCheckAdapter.notifyDataSetChanged(); - } - if (checkResultCallBack != null) { - checkResultCallBack.callBackWithErrorState(o.getData().getVehicle().getState()); - } - } - }); - } - - @Override - public void onError(String message, int code) { - super.onError(message, code); + public void run() { + if (data != null && mCheckAdapter != null) { + mCheckAdapter.mCheckResultData = data; + mCheckAdapter.notifyDataSetChanged(); + } } }); - + } + }); } /** @@ -236,7 +211,7 @@ public class CheckActivity extends AppCompatActivity { @Override protected void onPause() { super.onPause(); - if (mCheckAdapter!=null){ + if (mCheckAdapter != null) { mCheckAdapter.dismissDialog(); } } diff --git a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/check/ICheckProvider.java b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/check/ICheckProvider.java index 0132954fd9..be0778ee09 100644 --- a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/check/ICheckProvider.java +++ b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/check/ICheckProvider.java @@ -4,6 +4,11 @@ import android.content.Context; import com.alibaba.android.arouter.facade.template.IProvider; +import org.jetbrains.annotations.NotNull; + +import kotlin.Unit; +import kotlin.jvm.functions.Function0; + /** * 检测接口 */ diff --git a/services/mogo-service-api/src/main/java/com/mogo/service/statusmanager/IMogoStatusChangedListener.java b/services/mogo-service-api/src/main/java/com/mogo/service/statusmanager/IMogoStatusChangedListener.java index 908af22c34..57725a5a56 100644 --- a/services/mogo-service-api/src/main/java/com/mogo/service/statusmanager/IMogoStatusChangedListener.java +++ b/services/mogo-service-api/src/main/java/com/mogo/service/statusmanager/IMogoStatusChangedListener.java @@ -1,5 +1,10 @@ package com.mogo.service.statusmanager; +import org.jetbrains.annotations.NotNull; + +import kotlin.Unit; +import kotlin.jvm.functions.Function0; + /** * @author congtaowang * @since 2020-01-04 @@ -13,4 +18,5 @@ public interface IMogoStatusChangedListener { * @param isTrue true - accOn、adas ui show、voice ui show、push ui show、v2x ui show */ void onStatusChanged( StatusDescriptor descriptor, boolean isTrue ); + }