diff --git a/.idea/misc.xml b/.idea/misc.xml index 96c713cf28..5e334d0770 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -15,6 +15,8 @@ + + @@ -23,10 +25,12 @@ + + diff --git a/config.gradle b/config.gradle index 65f9846689..95abac82bc 100644 --- a/config.gradle +++ b/config.gradle @@ -34,9 +34,12 @@ ext { androidxjunit : "androidx.test.ext:junit:1.1.2", androidxespressocore : "androidx.test.espresso:espresso-core:3.3.0", // 地图 - amapnavi3dmap : "com.amap.api:navi-3dmap:8.0.1_3dmap8.0.1", - amapsearch : "com.amap.api:search:7.9.0", - amaplocation : "com.amap.api:location:5.5.0", +// amapnavi3dmap : "com.amap.api:navi-3dmap:8.0.1_3dmap8.0.1", +// amapsearch : "com.amap.api:search:7.9.0", +// amaplocation : "com.amap.api:location:5.5.0", + amapnavi3dmap : "com.amap.api:navi-3dmap:7.2.0_3dmap7.2.0", + amapsearch : "com.amap.api:search:7.1.0", + amaplocation : "com.amap.api:location:5.3.1", // json 转换 gson : "com.google.code.gson:gson:2.8.4", // 内存泄漏检测 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 index 8fe80c047e..ed60b68332 100644 --- 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 @@ -1,19 +1,40 @@ 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.service.receiver.MogoReceiver; import com.mogo.service.MogoServicePaths; import com.mogo.eagle.core.function.api.check.ICheckProvider; +import com.mogo.utils.ActivityLifecycleManager; +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; + /** * 鹰眼系统、自动驾驶系统 检测模块 @@ -27,6 +48,8 @@ public class VehicleMonitoringManager implements ICheckProvider { 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) { @@ -56,33 +79,78 @@ public class VehicleMonitoringManager implements ICheckProvider { @Override public void startCheckActivity(Context context) { - if (context != null) { - CheckActivity.start(context); - } + Intent starter = new Intent(context, CheckActivity.class); + starter.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + context.startActivity(starter); } @Override public void showCheckDialog(Context context) { - if (context != null) { - CheckActivity.showDialog(context); - } + showDialog(context); } @Override - public boolean checkMonitor(Context context) { + public void checkMonitor(Context context) { if (context != null) { - return CheckActivity.checkMonitor(context); + 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;//已弹框 + } + } + } + }); } - return false; + } + + /** + * 指标异常弹框 + */ + 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, boolean hasError) { + 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(hasError); + listener.updateMonitoringStatus(state); } } } diff --git a/core/function-impl/mogo-core-function-check/src/main/java/com/mogo/eagle/core/function/check/api/ICheckListener.java b/core/function-impl/mogo-core-function-check/src/main/java/com/mogo/eagle/core/function/check/api/ICheckListener.java deleted file mode 100644 index 8c53a375c0..0000000000 --- a/core/function-impl/mogo-core-function-check/src/main/java/com/mogo/eagle/core/function/check/api/ICheckListener.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.mogo.eagle.core.function.check.api; - -/** - * @author liujing - * @description 描述 - * @since: 8/6/21 - */ -public interface ICheckListener { - - /** - * 工控机->鹰眼定位数据延时 - */ - void getAutoLocationTimeCallbackDelayed(long time); - - /** - * 工控机->鹰眼识别数据延时 - */ - void getAutoDataCallbackDelayed(long time); -} 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 new file mode 100644 index 0000000000..709f409f11 --- /dev/null +++ b/core/function-impl/mogo-core-function-check/src/main/java/com/mogo/eagle/core/function/check/api/ICheckResultCallBack.java @@ -0,0 +1,12 @@ +package com.mogo.eagle.core.function.check.api; + +import com.mogo.service.adas.IMogoAdasDataCallback; + +/** + * @author liujing + * @description 自车检测结果回调 + * @since: 9/28/21 + */ +public interface ICheckResultCallBack { + void callBackWithErrorState(Integer state); +} diff --git a/core/function-impl/mogo-core-function-check/src/main/java/com/mogo/eagle/core/function/check/api/SoftCheckApi.java b/core/function-impl/mogo-core-function-check/src/main/java/com/mogo/eagle/core/function/check/api/SoftCheckApi.java deleted file mode 100644 index 59b34258b0..0000000000 --- a/core/function-impl/mogo-core-function-check/src/main/java/com/mogo/eagle/core/function/check/api/SoftCheckApi.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.mogo.eagle.core.function.check.api; - -/** - * @author xiaoyuzhou - * @date 2021/7/5 2:54 下午 - *

- * 软件环境检测 - * -----> 自动驾驶版本 - * -----> 鹰眼版本 - */ -public interface SoftCheckApi { - - /** - * 检测「自动驾驶」版本 - */ - void checkAutoPilotSoftVersion(); - - /** - * 检测「鹰眼」版本 - */ - void checkEagleEyeSoftVersion(); - -} diff --git a/core/function-impl/mogo-core-function-check/src/main/java/com/mogo/eagle/core/function/check/net/CheckResultData.java b/core/function-impl/mogo-core-function-check/src/main/java/com/mogo/eagle/core/function/check/net/CheckResultData.java index 8ff75e0433..f2a6234a5a 100644 --- a/core/function-impl/mogo-core-function-check/src/main/java/com/mogo/eagle/core/function/check/net/CheckResultData.java +++ b/core/function-impl/mogo-core-function-check/src/main/java/com/mogo/eagle/core/function/check/net/CheckResultData.java @@ -2,6 +2,7 @@ package com.mogo.eagle.core.function.check.net; import com.mogo.commons.data.BaseData; +import java.io.Serializable; import java.util.ArrayList; import java.util.List; @@ -38,7 +39,7 @@ public class CheckResultData extends BaseData { '}'; } - public static class Data { + public static class Data implements Serializable{ private Vehicle vehicle; private List soft; private List devices; @@ -97,7 +98,7 @@ public class CheckResultData extends BaseData { } } - public static class Vehicle { + public static class Vehicle implements Serializable { private String id; private String sn; private String vin; @@ -236,7 +237,7 @@ public class CheckResultData extends BaseData { } } - public static class CheckListItem { + public static class CheckListItem implements Serializable{ private String name; private String stateValue; private List items; 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 ac5e8a79e8..3d4ce0dfc6 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 @@ -25,6 +25,7 @@ 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.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.CheckResultData; import com.mogo.eagle.core.utilcode.util.ActivityUtils; @@ -52,10 +53,9 @@ public class CheckActivity extends AppCompatActivity { private static final String TAG = "CheckActivity"; private static RecyclerView mRecyclerView; private static CheckResultData sCheckResultData; - private static Context context; + private static Context mContext; private static NetworkStatusUtil.NetWorkStatus sNetWorkStatus; private ImageView mImageView; - private static String packageName = "com.mogo.launcher.f"; //车模 private ImageView scanBottomCarImage; //扫描束 @@ -73,7 +73,6 @@ public class CheckActivity extends AppCompatActivity { private final static long DURATION_TIME = 1000; private static CheckAdapter mCheckAdapter; private static boolean isFront = false; - private static CheckDialog dialog; @Override protected void onCreate(@Nullable Bundle savedInstanceState) { @@ -82,6 +81,12 @@ public class CheckActivity extends AppCompatActivity { initView(); } + @Override + protected void onStart() { + super.onStart(); + animation(); + loadDetail(mContext, null); + } /** * 列表View初始化 */ @@ -94,40 +99,39 @@ public class CheckActivity extends AppCompatActivity { scanTopImageView = findViewById(R.id.scan_car_top_image); tipsImageView = findViewById(R.id.scan_car_tips); mProgressBar = findViewById(R.id.check_progress); - context = mImageView.getContext(); - packageName = getPackageName(context); + mContext = mImageView.getContext(); mImageView.setOnClickListener(v -> { finish(); }); - animation(); - loadDetail(context); + mRecyclerView = findViewById(R.id.check_list); CheckLinearLayout linearLayoutManager = new CheckLinearLayout(this, CheckLinearLayout.VERTICAL, false); mRecyclerView.addItemDecoration(new SpacesItemDecoration((int) getResources().getDimension(R.dimen.check_item_space_vr))); mRecyclerView.setLayoutManager(linearLayoutManager); - mCheckAdapter = new CheckAdapter(context, sCheckResultData); + mCheckAdapter = new CheckAdapter(mContext, sCheckResultData); mRecyclerView.setAdapter(mCheckAdapter); } /** * 自动驾驶状态下指标监测 */ - public static boolean checkMonitor(Context context) { + public static void checkMonitor(Context context, ICheckResultCallBack checkResultCallBack) { Log.d(TAG, "checkMonitor"); - loadDetail(context); - return true; + mContext = context; + loadDetail(mContext, checkResultCallBack); } //网络请求,获取自车检测结果(工控机上报云端) - public static void loadDetail(Context context) { + public static void loadDetail(Context context, ICheckResultCallBack checkResultCallBack) { + mContext = context; 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)) { + .subscribe(new SubscribeImpl(RequestOptions.create(mContext)) { @Override public void onSuccess(CheckResultData o) { super.onSuccess(o); @@ -139,12 +143,8 @@ public class CheckActivity extends AppCompatActivity { mCheckAdapter.mCheckResultData = o; mCheckAdapter.notifyDataSetChanged(); } - - if (((CheckResultData) o).getData().getVehicle().getState() == 1) { - CallerCheckManager.updateMonitoringStatus(MogoReceiver.ACTION_CHECK_VEHICLE_MONITORING, false); - } else { - CallerCheckManager.updateMonitoringStatus(MogoReceiver.ACTION_CHECK_VEHICLE_MONITORING, true); - showDialog(context); + if (checkResultCallBack != null) { + checkResultCallBack.callBackWithErrorState(o.getData().getVehicle().getState()); } } }); @@ -153,29 +153,11 @@ public class CheckActivity extends AppCompatActivity { @Override public void onError(String message, int code) { super.onError(message, code); - Log.d(TAG, "车辆自检失败,请稍后重试" + "==" + message + String.valueOf(code)); } }); } - /** - * @param context - * @return 当前应用的版本名称 - */ - public static synchronized String getPackageName(Context context) { - try { - PackageManager packageManager = context.getPackageManager(); - PackageInfo packageInfo = packageManager.getPackageInfo( - context.getPackageName(), 0); - Log.d(TAG, "包名:" + packageInfo.packageName); - return packageInfo.packageName; - } catch (Exception e) { - e.printStackTrace(); - } - return "com.mogo.launcher.f"; - } - /** * **************************************************************************************检测动画 */ @@ -264,28 +246,19 @@ public class CheckActivity extends AppCompatActivity { } } - public static void start(Context context) { - Intent starter = new Intent(context, CheckActivity.class); - starter.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); - context.startActivity(starter); + @Override + protected void onPause() { + super.onPause(); } - /** - * 指标异常弹框 - */ - public static void showDialog(Context context) { - try { - if (AppUtils.isAppRunning(getPackageName(context)) && - (ActivityUtils.getTopActivity() instanceof CheckActivity == false)) { - if (dialog != null) { - dialog.cancel(); - } - dialog = new CheckDialog(context, true); - dialog.show(); - } - } catch (Exception e) { - e.printStackTrace(); - } + @Override + protected void onStop() { + super.onStop(); + } + + @Override + protected void onRestart() { + super.onRestart(); } @Override @@ -294,9 +267,4 @@ public class CheckActivity extends AppCompatActivity { isFront = false; } - @Override - protected void onPause() { - super.onPause(); - } - } diff --git a/core/function-impl/mogo-core-function-check/src/main/java/com/mogo/eagle/core/function/check/view/CheckAdapter.java b/core/function-impl/mogo-core-function-check/src/main/java/com/mogo/eagle/core/function/check/view/CheckAdapter.java index 7a0d5ef96f..ff9029336c 100644 --- a/core/function-impl/mogo-core-function-check/src/main/java/com/mogo/eagle/core/function/check/view/CheckAdapter.java +++ b/core/function-impl/mogo-core-function-check/src/main/java/com/mogo/eagle/core/function/check/view/CheckAdapter.java @@ -30,7 +30,7 @@ public class CheckAdapter extends RecyclerView.Adapter LayoutInflater mLayoutInflater; CheckResultData mCheckResultData; private Context mContext; - private static CheckInfoListDialog mCheckInfoListDialog; + CheckInfoListDialog mCheckInfoListDialog; public CheckAdapter(@NonNull Context context, @NonNull CheckResultData checkResult) { mContext = context; diff --git a/core/function-impl/mogo-core-function-check/src/main/java/com/mogo/eagle/core/function/check/view/CheckDialog.java b/core/function-impl/mogo-core-function-check/src/main/java/com/mogo/eagle/core/function/check/view/CheckDialog.java index cb597417dd..0282509807 100644 --- a/core/function-impl/mogo-core-function-check/src/main/java/com/mogo/eagle/core/function/check/view/CheckDialog.java +++ b/core/function-impl/mogo-core-function-check/src/main/java/com/mogo/eagle/core/function/check/view/CheckDialog.java @@ -40,11 +40,11 @@ public class CheckDialog extends BaseFloatDialog { setContentView(R.layout.check_dialog); cancel = findViewById(R.id.cancel_button); cancel.setOnClickListener(v -> { - cancel(); + dismiss(); }); checkDetail = findViewById(R.id.check_detail); checkDetail.setOnClickListener(v -> { - cancel(); + dismiss(); if (mContext != null) { CallerCheckManager.startCheckActivity(mContext); } @@ -63,11 +63,11 @@ public class CheckDialog extends BaseFloatDialog { public void cancel() { - super.dismiss(); + } @Override public void dismiss() { - + super.dismiss(); } } diff --git a/core/function-impl/mogo-core-function-check/src/main/java/com/mogo/eagle/core/function/check/view/CheckInfoAdapter.java b/core/function-impl/mogo-core-function-check/src/main/java/com/mogo/eagle/core/function/check/view/CheckInfoAdapter.java index b2e2f90ce2..5d4a1971fd 100644 --- a/core/function-impl/mogo-core-function-check/src/main/java/com/mogo/eagle/core/function/check/view/CheckInfoAdapter.java +++ b/core/function-impl/mogo-core-function-check/src/main/java/com/mogo/eagle/core/function/check/view/CheckInfoAdapter.java @@ -1,6 +1,7 @@ package com.mogo.eagle.core.function.check.view; import android.content.Context; +import android.text.TextPaint; import android.util.Log; import android.view.LayoutInflater; import android.view.View; @@ -23,7 +24,6 @@ import java.util.List; * @since: 9/23/21 */ public class CheckInfoAdapter extends RecyclerView.Adapter { - private static final String TAG = "CheckInfoAdapter"; LayoutInflater mLayoutInflater; private Context mContext; private String mStyle; @@ -48,37 +48,29 @@ public class CheckInfoAdapter extends RecyclerView.Adapter { @Override public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) { - if (position == 0 || position == 2) { - ((CheckInfoViewHolder) holder).checkIcon.setVisibility(View.GONE); - ((CheckInfoViewHolder) holder).mTextView.setText("模块名称"); - } else if (position == 1 || position == 3) { - ((CheckInfoViewHolder) holder).checkIcon.setVisibility(View.GONE); - ((CheckInfoViewHolder) holder).mTextView.setText("运行状态"); - } else { - try { - if ((position - 4) < showData.size() * 2) { - int index = (position - 4) / 2; - CheckResultData.CheckListItem positionItem = showData.get(index); - if (isEven(position) == true) {//偶数隐藏图片显示检测指标 - ((CheckInfoViewHolder) holder).checkIcon.setVisibility(View.GONE); - ((CheckInfoViewHolder) holder).mTextView.setText(positionItem.getName()); - } else {//奇数显示图片和检测指标结果 - ((CheckInfoViewHolder) holder).checkIcon.setVisibility(View.VISIBLE); - String state = (String) positionItem.getStateValue(); - if (state.equals("1")) { - ((CheckInfoViewHolder) holder).mTextView.setText("正常"); - ((CheckInfoViewHolder) holder).checkIcon.setImageResource(R.drawable.check_right); - } else if ((state.equals("0"))) { - ((CheckInfoViewHolder) holder).mTextView.setText("异常"); - ((CheckInfoViewHolder) holder).checkIcon.setImageResource(R.drawable.check_wrong); - } else { - ((CheckInfoViewHolder) holder).mTextView.setText(state); - } + try { + if (position < showData.size() * 2) { + int index = position / 2; + CheckResultData.CheckListItem positionItem = showData.get(index); + if (isEven(position) == true) {//偶数隐藏图片显示检测指标 + ((CheckInfoViewHolder) holder).checkIcon.setVisibility(View.GONE); + ((CheckInfoViewHolder) holder).mTextView.setText(positionItem.getName()); + } else {//奇数显示图片和检测指标结果 + ((CheckInfoViewHolder) holder).checkIcon.setVisibility(View.VISIBLE); + String state = (String) positionItem.getStateValue(); + if (state.equals("1")) { + ((CheckInfoViewHolder) holder).mTextView.setText("正常"); + ((CheckInfoViewHolder) holder).checkIcon.setImageResource(R.drawable.check_right); + } else if ((state.equals("0"))) { + ((CheckInfoViewHolder) holder).mTextView.setText("异常"); + ((CheckInfoViewHolder) holder).checkIcon.setImageResource(R.drawable.check_wrong); + } else { + ((CheckInfoViewHolder) holder).mTextView.setText(state); } } - } catch (Exception e) { - e.printStackTrace(); } + } catch (Exception e) { + e.printStackTrace(); } } @@ -94,7 +86,7 @@ public class CheckInfoAdapter extends RecyclerView.Adapter { @Override public int getItemCount() { - return showData.size() * 2 + 4; + return showData.size() * 2; } public class CheckInfoViewHolder extends RecyclerView.ViewHolder { @@ -107,4 +99,5 @@ public class CheckInfoAdapter extends RecyclerView.Adapter { mTextView = v.findViewById(R.id.info_result_tx); } } + } diff --git a/core/function-impl/mogo-core-function-check/src/main/java/com/mogo/eagle/core/function/check/view/CheckInfoListDialog.java b/core/function-impl/mogo-core-function-check/src/main/java/com/mogo/eagle/core/function/check/view/CheckInfoListDialog.java index c4a119bad9..5da4a5d2f5 100644 --- a/core/function-impl/mogo-core-function-check/src/main/java/com/mogo/eagle/core/function/check/view/CheckInfoListDialog.java +++ b/core/function-impl/mogo-core-function-check/src/main/java/com/mogo/eagle/core/function/check/view/CheckInfoListDialog.java @@ -2,10 +2,12 @@ package com.mogo.eagle.core.function.check.view; import android.content.Context; import android.graphics.Color; +import android.util.AttributeSet; import android.util.Log; import android.widget.TextView; import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import androidx.recyclerview.widget.GridLayoutManager; import androidx.recyclerview.widget.RecyclerView; @@ -25,7 +27,7 @@ import java.util.List; public class CheckInfoListDialog extends BaseFloatDialog { private static final String TAG = "CheckInfoListDialog"; - private RecyclerView mRecyclerView; + private CheckInfoRecyclerView mRecyclerView; private Context mContext; private TextView titleView; private int span; @@ -33,7 +35,6 @@ public class CheckInfoListDialog extends BaseFloatDialog { private CheckResultData mCheckResultData; private List result = new ArrayList<>(); - public CheckInfoListDialog(@NonNull Context context, String style, CheckResultData checkResultData) { super(context); mContext = context; @@ -68,14 +69,18 @@ public class CheckInfoListDialog extends BaseFloatDialog { e.printStackTrace(); } List resultData = showInfoResult(); - mRecyclerView.setAdapter(new CheckInfoAdapter(mContext, mStyle, resultData)); + CheckInfoAdapter adapter = new CheckInfoAdapter(mContext, mStyle, resultData); + mRecyclerView.setAdapter(adapter); //关闭按钮 findViewById(R.id.cancel_info_list_button).setOnClickListener(v -> { - cancel(); + dismiss(); }); } public List showInfoResult() { + +// List test = new ArrayList();//测试数据 + if (result.size() > 0) { result.clear(); } @@ -98,19 +103,22 @@ public class CheckInfoListDialog extends BaseFloatDialog { } catch (Exception e) { e.printStackTrace(); } - Log.d(TAG, "检测指标结果值===" + result.toString()); } catch (Exception e) { } +// test.addAll(result); +// test.addAll(result); +// test.addAll(result); return result; } public void cancel() { - super.dismiss(); + } @Override public void dismiss() { - + super.dismiss(); } + } diff --git a/core/function-impl/mogo-core-function-check/src/main/java/com/mogo/eagle/core/function/check/view/CheckInfoRecyclerView.java b/core/function-impl/mogo-core-function-check/src/main/java/com/mogo/eagle/core/function/check/view/CheckInfoRecyclerView.java new file mode 100644 index 0000000000..53b44b14bc --- /dev/null +++ b/core/function-impl/mogo-core-function-check/src/main/java/com/mogo/eagle/core/function/check/view/CheckInfoRecyclerView.java @@ -0,0 +1,42 @@ +package com.mogo.eagle.core.function.check.view; + +import android.content.Context; +import android.util.AttributeSet; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.recyclerview.widget.RecyclerView; + +import com.mogo.eagle.core.function.check.R; + +/** + * @author liujing + * @description 列表自适应高+限高 + * @since: 9/29/21 + */ +public class CheckInfoRecyclerView extends RecyclerView { + private int maxHeight = (int) getContext().getResources().getDimension(R.dimen.check_height); + private int maxWeight = (int) getContext().getResources().getDimension(R.dimen.check_width); + + public CheckInfoRecyclerView(@NonNull Context context) { + super(context); + } + + public CheckInfoRecyclerView(@NonNull Context context, @Nullable AttributeSet attrs) { + super(context, attrs); + } + + public CheckInfoRecyclerView(@NonNull Context context, @Nullable AttributeSet attrs, int defStyleAttr) { + super(context, attrs, defStyleAttr); + } + + @Override + protected void onMeasure(int widthSpec, int heightSpec) { + super.onMeasure(widthSpec, heightSpec); + int limitHeight = getMeasuredHeight(); + if (getMeasuredHeight() > maxHeight) { + limitHeight = maxHeight; + } + setMeasuredDimension(maxWeight, limitHeight); + } +} diff --git a/core/function-impl/mogo-core-function-check/src/main/res/drawable/check_close.png b/core/function-impl/mogo-core-function-check/src/main/res/drawable/check_close.png new file mode 100644 index 0000000000..ba03e033d8 Binary files /dev/null and b/core/function-impl/mogo-core-function-check/src/main/res/drawable/check_close.png differ diff --git a/core/function-impl/mogo-core-function-check/src/main/res/drawable/check_driver.xml b/core/function-impl/mogo-core-function-check/src/main/res/drawable/check_driver.xml deleted file mode 100644 index 04aae14090..0000000000 --- a/core/function-impl/mogo-core-function-check/src/main/res/drawable/check_driver.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-check/src/main/res/drawable/check_title_item_shape.xml b/core/function-impl/mogo-core-function-check/src/main/res/drawable/check_title_item_shape.xml new file mode 100644 index 0000000000..51beff11e5 --- /dev/null +++ b/core/function-impl/mogo-core-function-check/src/main/res/drawable/check_title_item_shape.xml @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-check/src/main/res/layout/activity_check.xml b/core/function-impl/mogo-core-function-check/src/main/res/layout/activity_check.xml index b9ae3f9dcd..9d81fab132 100644 --- a/core/function-impl/mogo-core-function-check/src/main/res/layout/activity_check.xml +++ b/core/function-impl/mogo-core-function-check/src/main/res/layout/activity_check.xml @@ -22,7 +22,7 @@ android:layout_height="@dimen/dp_106" android:layout_marginLeft="@dimen/dp_50" android:layout_marginTop="@dimen/dp_50" - android:src="@drawable/module_common_icon_close" + android:src="@drawable/check_close" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintTop_toTopOf="parent" /> diff --git a/core/function-impl/mogo-core-function-check/src/main/res/layout/check_dialog.xml b/core/function-impl/mogo-core-function-check/src/main/res/layout/check_dialog.xml index 0df7874ad0..b7f215582e 100644 --- a/core/function-impl/mogo-core-function-check/src/main/res/layout/check_dialog.xml +++ b/core/function-impl/mogo-core-function-check/src/main/res/layout/check_dialog.xml @@ -13,7 +13,7 @@ android:layout_height="@dimen/dp_106" android:layout_marginLeft="@dimen/dp_30" android:layout_marginTop="@dimen/dp_30" - android:src="@drawable/module_common_icon_close" + android:src="@drawable/check_close" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintTop_toTopOf="parent" /> diff --git a/core/function-impl/mogo-core-function-check/src/main/res/layout/check_info_adapter.xml b/core/function-impl/mogo-core-function-check/src/main/res/layout/check_info_adapter.xml index 0cc4eecef8..39c5a5a9fe 100644 --- a/core/function-impl/mogo-core-function-check/src/main/res/layout/check_info_adapter.xml +++ b/core/function-impl/mogo-core-function-check/src/main/res/layout/check_info_adapter.xml @@ -2,34 +2,38 @@ + android:layout_height="@dimen/dp_127" + android:layout_gravity="left"> diff --git a/core/function-impl/mogo-core-function-check/src/main/res/layout/check_info_list.xml b/core/function-impl/mogo-core-function-check/src/main/res/layout/check_info_list.xml index 2bb0fae42d..39be304ef4 100644 --- a/core/function-impl/mogo-core-function-check/src/main/res/layout/check_info_list.xml +++ b/core/function-impl/mogo-core-function-check/src/main/res/layout/check_info_list.xml @@ -1,6 +1,7 @@ @@ -20,7 +21,7 @@ android:id="@+id/check_info_title" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_marginTop="@dimen/dp_69" + android:layout_marginTop="@dimen/dp_70" android:gravity="center" android:text="自检结果" android:textColor="#fff" @@ -29,17 +30,29 @@ app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> - + + + app:layout_constraintTop_toBottomOf="@+id/check_title_item" /> + + \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-check/src/main/res/layout/check_info_title_item.xml b/core/function-impl/mogo-core-function-check/src/main/res/layout/check_info_title_item.xml new file mode 100644 index 0000000000..c987013736 --- /dev/null +++ b/core/function-impl/mogo-core-function-check/src/main/res/layout/check_info_title_item.xml @@ -0,0 +1,61 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-check/src/main/res/values-xhdpi-2560x1600/dimens.xml b/core/function-impl/mogo-core-function-check/src/main/res/values-xhdpi-2560x1440/dimens.xml similarity index 100% rename from core/function-impl/mogo-core-function-check/src/main/res/values-xhdpi-2560x1600/dimens.xml rename to core/function-impl/mogo-core-function-check/src/main/res/values-xhdpi-2560x1440/dimens.xml diff --git a/core/function-impl/mogo-core-function-check/src/main/res/values/colors.xml b/core/function-impl/mogo-core-function-check/src/main/res/values/colors.xml index c63e5870bf..899fcf4ec0 100644 --- a/core/function-impl/mogo-core-function-check/src/main/res/values/colors.xml +++ b/core/function-impl/mogo-core-function-check/src/main/res/values/colors.xml @@ -11,6 +11,7 @@ #EE3132 #666DA5 #767FCD + #151738 \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-check/src/main/res/values/dimens.xml b/core/function-impl/mogo-core-function-check/src/main/res/values/dimens.xml new file mode 100644 index 0000000000..b74d43a0a7 --- /dev/null +++ b/core/function-impl/mogo-core-function-check/src/main/res/values/dimens.xml @@ -0,0 +1,5 @@ + + + 1900px + 730px + diff --git a/core/function-impl/mogo-core-function-check/src/main/res/values/styles.xml b/core/function-impl/mogo-core-function-check/src/main/res/values/styles.xml index a75b06b449..3ec9ae2d58 100644 --- a/core/function-impl/mogo-core-function-check/src/main/res/values/styles.xml +++ b/core/function-impl/mogo-core-function-check/src/main/res/values/styles.xml @@ -6,6 +6,6 @@ @android:drawable/progress_indeterminate_horizontal @drawable/check_progress - @drawable/check_driver + @drawable/check_title_item_shape \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-obu-mogo/src/main/java/com/mogo/eagle/core/function/obu/mogo/MogoPrivateObuManager.kt b/core/function-impl/mogo-core-function-obu-mogo/src/main/java/com/mogo/eagle/core/function/obu/mogo/MogoPrivateObuManager.kt index 9be4f16934..346732e87f 100644 --- a/core/function-impl/mogo-core-function-obu-mogo/src/main/java/com/mogo/eagle/core/function/obu/mogo/MogoPrivateObuManager.kt +++ b/core/function-impl/mogo-core-function-obu-mogo/src/main/java/com/mogo/eagle/core/function/obu/mogo/MogoPrivateObuManager.kt @@ -46,7 +46,7 @@ class MogoPrivateObuManager private constructor() { mIMogoMapService = mMogoServiceApis!!.mapServiceApi //自研obu - MogoObuManager.getInstance().connect(context, "192.168.43.51") + MogoObuManager.getInstance().connect(context, "192.168.20.199") MogoObuManager.getInstance().registerListener(mogoObuListener) } diff --git a/core/function-impl/mogo-core-function-smp/src/main/java/com/mogo/eagle/core/function/smp/SmallMapDirectionView.java b/core/function-impl/mogo-core-function-smp/src/main/java/com/mogo/eagle/core/function/smp/SmallMapDirectionView.java index ddbc4248f4..cb8cdb1c3b 100644 --- a/core/function-impl/mogo-core-function-smp/src/main/java/com/mogo/eagle/core/function/smp/SmallMapDirectionView.java +++ b/core/function-impl/mogo-core-function-smp/src/main/java/com/mogo/eagle/core/function/smp/SmallMapDirectionView.java @@ -3,6 +3,7 @@ package com.mogo.eagle.core.function.smp; import android.content.Context; import android.graphics.Color; import android.location.Location; +import android.os.Bundle; import android.util.AttributeSet; import android.util.Log; import android.view.LayoutInflater; @@ -87,8 +88,8 @@ public class SmallMapDirectionView View smpView = LayoutInflater.from(context).inflate(R.layout.module_small_map_view, this); mAMapNaviView = (TextureMapView)smpView.findViewById(R.id.aMapNaviView); - rlSmallMapBorder = findViewById(R.id.rlSmallMapBorder); - rlSmallMapBorder.addView(mAMapNaviView); +// rlSmallMapBorder = findViewById(R.id.rlSmallMapBorder); +// rlSmallMapBorder.addView(mAMapNaviView); initAMapView(); @@ -280,4 +281,27 @@ public class SmallMapDirectionView } } + public void onCreateView(Bundle savedInstanceState) { + if(mAMapNaviView != null){ + mAMapNaviView.onCreate(savedInstanceState); + } + } + + public void onResume() { + if(mAMapNaviView != null){ + mAMapNaviView.onResume(); + } + } + + public void onPause() { + if(mAMapNaviView != null){ + mAMapNaviView.onPause(); + } + } + + public void onDestroy() { + if(mAMapNaviView != null){ + mAMapNaviView.onDestroy(); + } + } } diff --git a/core/function-impl/mogo-core-function-smp/src/main/java/com/mogo/eagle/core/function/smp/SmallMapFragment.java b/core/function-impl/mogo-core-function-smp/src/main/java/com/mogo/eagle/core/function/smp/SmallMapFragment.java index ec91113186..9f0358aaec 100644 --- a/core/function-impl/mogo-core-function-smp/src/main/java/com/mogo/eagle/core/function/smp/SmallMapFragment.java +++ b/core/function-impl/mogo-core-function-smp/src/main/java/com/mogo/eagle/core/function/smp/SmallMapFragment.java @@ -11,7 +11,6 @@ import androidx.annotation.Nullable; import androidx.fragment.app.Fragment; import com.mogo.eagle.core.data.map.MogoLatLng; -import com.mogo.eagle.core.function.smp.R; import java.util.List; @@ -34,6 +33,7 @@ public class SmallMapFragment extends Fragment { if (mRootView == null) { mRootView = inflater.inflate(R.layout.module_small_map_fragment, container, false); mSmallMapDirectionView = mRootView.findViewById(R.id.smallMapDirectionView); + mSmallMapDirectionView.onCreateView(savedInstanceState); } else { ViewGroup viewGroup = (ViewGroup) mRootView.getParent(); if (viewGroup != null) { @@ -55,4 +55,23 @@ public class SmallMapFragment extends Fragment { } } + @Override + public void onResume() { + super.onResume(); + mSmallMapDirectionView.onResume(); + } + + @Override + public void onPause() { + super.onPause(); + mSmallMapDirectionView.onPause(); + + } + + @Override + public void onDestroy() { + super.onDestroy(); + mSmallMapDirectionView.onDestroy(); + + } } diff --git a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/enums/TrafficTypeEnum.kt b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/enums/TrafficTypeEnum.kt index 812d6e42b3..6a3a50eb7f 100644 --- a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/enums/TrafficTypeEnum.kt +++ b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/enums/TrafficTypeEnum.kt @@ -57,6 +57,12 @@ enum class TrafficTypeEnum( R.raw.daba, R.raw.daba ), + TYPE_TRAFFIC_ID_CAMERA( + 9, + "摄像头", + R.raw.shexiangtou, + R.raw.shexiangtou + ), TYPE_TRAFFIC_ID_SPECIAL_VEHICLE( 11, "特殊车辆", diff --git a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/v2x/AdvanceWarningBean.kt b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/v2x/AdvanceWarningBean.kt index f64ea6cd66..f82ea8fbfe 100644 --- a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/v2x/AdvanceWarningBean.kt +++ b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/v2x/AdvanceWarningBean.kt @@ -7,20 +7,22 @@ import androidx.annotation.Keep */ @Keep data class AdvanceWarningBean( - var objectId: String, - var status: Int, - var typeId: Int, + var objectId: String,// 物体唯一标识 + var objectType: Int,// 物体类型 1-人 2-自行车 3-小轿车 4-摩托车 5-红绿灯 6-bus 8-truck 9-路边摄像头 + var status: Int,// 1.add 2.update 3.delete + var typeId: Int,// 首位大类标识 1预警 2规划 3拥堵 4事故 var time: Long, - var level: Int, + var level: Int,// 预警等级 + var threatLevel: Int,// 危险等级:0保留,1模型原始颜色,2通知--黄,3警告--红 var position: Position, - var heading: Int, + var heading: Double, var speed: Double, var distance: Double, - var roadId: String, - var laneId: String, - var laneNum: Int, - var gdLocusList: List, - var locusList: List + var roadId: String,// 道路id + var laneId: String,// 车道id + var laneNum: Int,// 车道号:中心线编号为0, 中心线右侧编号为负数,3车道通行Road的车道编号,0,-1,-2,-3 + var gdLocusList: List,// 线性经纬度轨迹列表(高德) + var locusList: List// 轨迹列表(Wgs84坐标系) ) @Keep 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 63fb9248ea..57c6d5ef6f 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 @@ -36,11 +36,11 @@ public interface ICheckProvider extends IProvider { /** * 指标监测 */ - boolean checkMonitor(Context context); + void checkMonitor(Context context); /** * 根据监测指标修改主页检测按钮 */ - void updateMonitoringStatus(String module, boolean hasError); + void updateMonitoringStatus(String module, Integer state); } diff --git a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/check/IMogoCheckListener.java b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/check/IMogoCheckListener.java index dd5396cbd6..ad14740e66 100644 --- a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/check/IMogoCheckListener.java +++ b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/check/IMogoCheckListener.java @@ -6,5 +6,5 @@ package com.mogo.eagle.core.function.api.check; * @since: 8/26/21 */ public interface IMogoCheckListener { - void updateMonitoringStatus(boolean hasError); + void updateMonitoringStatus(Integer state); } diff --git a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/check/CallerCheckManager.java b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/check/CallerCheckManager.java index 6069a9c8f8..fd9d82f317 100644 --- a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/check/CallerCheckManager.java +++ b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/check/CallerCheckManager.java @@ -10,7 +10,7 @@ import com.mogo.eagle.core.function.call.base.CallerBase; /** * @author xiaoyuzhou * @date 2021/9/17 8:26 下午 - * + *

* HMI 调用者管理,这里对外及其他模块提供功能的调用,用啥写啥,不要过度设计,不允许直接将Provider暴露出去 */ public class CallerCheckManager extends CallerBase { @@ -49,14 +49,14 @@ public class CallerCheckManager extends CallerBase { /** * 根据监测指标修改主页检测按钮 */ - public static void updateMonitoringStatus(String module, boolean hasError) { - getCheckProvider().updateMonitoringStatus(module, hasError); + public static void updateMonitoringStatus(String module, Integer state) { + getCheckProvider().updateMonitoringStatus(module, state); } /** * 指标监测 */ - public static boolean checkMonitor(Context context) { - return getCheckProvider().checkMonitor(context); + public static void checkMonitor(Context context) { + getCheckProvider().checkMonitor(context); } } diff --git a/foudations/mogo-utils/src/main/java/com/mogo/utils/ActivityLifecycleManager.java b/foudations/mogo-utils/src/main/java/com/mogo/utils/ActivityLifecycleManager.java index 5297a356e0..603c370191 100644 --- a/foudations/mogo-utils/src/main/java/com/mogo/utils/ActivityLifecycleManager.java +++ b/foudations/mogo-utils/src/main/java/com/mogo/utils/ActivityLifecycleManager.java @@ -17,14 +17,14 @@ public class ActivityLifecycleManager { /** * 当前出于 Start 状态的 Activity */ - private ArrayList< Activity > mStartedActivities = new ArrayList<>(); + private ArrayList mStartedActivities = new ArrayList<>(); private ArrayList mAppStateListeners = new ArrayList<>(); /** * 当前存活的 Activity */ - private HashMap< Activity, ActivityTrace> mAliveActivities = new HashMap<>(); + private HashMap mAliveActivities = new HashMap<>(); /** * App 是否出于前台 @@ -44,10 +44,10 @@ public class ActivityLifecycleManager { private DefActivityLifecycleCallbacks mInnerActivityListener = new DefActivityLifecycleCallbacks() { @Override - public void onActivityStarted( Activity activity) { + public void onActivityStarted(Activity activity) { if (mStartedActivities.isEmpty()) { mIsAppActive = true; - notifyAppStateChanged( AppStateListener.ACTIVE); + notifyAppStateChanged(AppStateListener.ACTIVE); } mStartedActivities.add(activity); @@ -58,11 +58,11 @@ public class ActivityLifecycleManager { } @Override - public void onActivityStopped( Activity activity) { + public void onActivityStopped(Activity activity) { mStartedActivities.remove(activity); if (mStartedActivities.isEmpty()) { mIsAppActive = false; - notifyAppStateChanged( AppStateListener.INACTIVE); + notifyAppStateChanged(AppStateListener.INACTIVE); } ActivityTrace trace = mAliveActivities.get(activity); @@ -72,7 +72,7 @@ public class ActivityLifecycleManager { } @Override - public void onActivityResumed( Activity activity) { + public void onActivityResumed(Activity activity) { mCurrentResumedActivity = activity; ActivityTrace trace = mAliveActivities.get(activity); if (trace != null) { @@ -81,7 +81,7 @@ public class ActivityLifecycleManager { } @Override - public void onActivityPaused( Activity activity) { + public void onActivityPaused(Activity activity) { ActivityTrace trace = mAliveActivities.get(activity); if (trace != null) { trace.pauseCnt++; @@ -89,33 +89,34 @@ public class ActivityLifecycleManager { } @Override - public void onActivityCreated( Activity activity, Bundle savedInstanceState) { + public void onActivityCreated(Activity activity, Bundle savedInstanceState) { mAliveActivities.put(activity, new ActivityTrace(activity)); } @Override - public void onActivityDestroyed( Activity activity) { + public void onActivityDestroyed(Activity activity) { mAliveActivities.remove(activity); } }; - private ActivityLifecycleManager() {} + private ActivityLifecycleManager() { + } public static ActivityLifecycleManager getInstance() { return SingletonHolder.INSTANCE; } - private static class SingletonHolder{ + private static class SingletonHolder { private static final ActivityLifecycleManager INSTANCE = new ActivityLifecycleManager(); } - public void start( Application application) { + public void start(Application application) { this.mApplication = application; registerInnerActivityListener(); registerHomeKeyEventReceiver(); } - public void stop(){ + public void stop() { unregisterActivityLifecycleCallbacks(mInnerActivityListener); unregisterHomeKeyEventReceiver(); } @@ -125,12 +126,12 @@ public class ActivityLifecycleManager { * * @param callbacks Activity 生命周期的回调 */ - public void registerActivityLifecycleCallbacks( Application.ActivityLifecycleCallbacks callbacks) { + public void registerActivityLifecycleCallbacks(Application.ActivityLifecycleCallbacks callbacks) { if (mApplication == null) { return; } - if ( Build.VERSION.SDK_INT < Build.VERSION_CODES.ICE_CREAM_SANDWICH) { + if (Build.VERSION.SDK_INT < Build.VERSION_CODES.ICE_CREAM_SANDWICH) { return; } @@ -142,12 +143,12 @@ public class ActivityLifecycleManager { * * @param callbacks Activity 生命周期的回调 */ - public void unregisterActivityLifecycleCallbacks( Application.ActivityLifecycleCallbacks callbacks) { + public void unregisterActivityLifecycleCallbacks(Application.ActivityLifecycleCallbacks callbacks) { if (mApplication == null) { return; } - if ( Build.VERSION.SDK_INT < Build.VERSION_CODES.ICE_CREAM_SANDWICH) { + if (Build.VERSION.SDK_INT < Build.VERSION_CODES.ICE_CREAM_SANDWICH) { return; } @@ -161,7 +162,11 @@ public class ActivityLifecycleManager { return mIsAppActive; } - public Activity getCurrentActivity(){ + public void setAppActive(boolean appActive) { + mIsAppActive = appActive; + } + + public Activity getCurrentActivity() { return mCurrentResumedActivity; } @@ -248,7 +253,7 @@ public class ActivityLifecycleManager { private void registerHomeKeyEventReceiver() { android.content.IntentFilter filter = new android.content.IntentFilter(); - filter.addAction( Intent.ACTION_CLOSE_SYSTEM_DIALOGS); + filter.addAction(Intent.ACTION_CLOSE_SYSTEM_DIALOGS); mHomeKeyEventReceiver = new HomeKeyEventReceiver(); mApplication.registerReceiver(mHomeKeyEventReceiver, filter); @@ -267,31 +272,45 @@ public class ActivityLifecycleManager { } } - @TargetApi( Build.VERSION_CODES.ICE_CREAM_SANDWICH) + @TargetApi(Build.VERSION_CODES.ICE_CREAM_SANDWICH) public static abstract class DefActivityLifecycleCallbacks implements Application.ActivityLifecycleCallbacks { @Override - public void onActivityCreated( Activity activity, Bundle savedInstanceState) {} + public void onActivityCreated(Activity activity, Bundle savedInstanceState) { + } + @Override - public void onActivityStarted( Activity activity) {} + public void onActivityStarted(Activity activity) { + } + @Override - public void onActivityResumed( Activity activity) {} + public void onActivityResumed(Activity activity) { + } + @Override - public void onActivityPaused( Activity activity) {} + public void onActivityPaused(Activity activity) { + } + @Override - public void onActivityStopped( Activity activity) {} + public void onActivityStopped(Activity activity) { + } + @Override - public void onActivitySaveInstanceState( Activity activity, Bundle outState) {} + public void onActivitySaveInstanceState(Activity activity, Bundle outState) { + } + @Override - public void onActivityDestroyed( Activity activity) {} + public void onActivityDestroyed(Activity activity) { + } } public interface AppStateListener { int INACTIVE = 0; int ACTIVE = 1; + /** * App 状态的回调 */ - void onStateChanged( int state ); + void onStateChanged(int state); } @@ -312,7 +331,7 @@ public class ActivityLifecycleManager { int startCnt; int stopCnt; - ActivityTrace( Activity activity) { + ActivityTrace(Activity activity) { this.activity = activity; } } @@ -322,9 +341,9 @@ public class ActivityLifecycleManager { private final String SYSTEM_DIALOG_REASON_HOME_KEY = "homekey"; @Override - public void onReceive( Context context, Intent intent) { + public void onReceive(Context context, Intent intent) { String action = intent.getAction(); - if ( Intent.ACTION_CLOSE_SYSTEM_DIALOGS.equals(action)) { + if (Intent.ACTION_CLOSE_SYSTEM_DIALOGS.equals(action)) { String reason = intent.getStringExtra(SYSTEM_DIALOG_REASON_KEY); if (reason != null && reason.equals(SYSTEM_DIALOG_REASON_HOME_KEY)) { onHomeKeyPressed(); diff --git a/main-extensions/mogo-module-main-launcher/src/main/java/com/zhidao/mogo/module/main/launcher/MainLauncherActivity.java b/main-extensions/mogo-module-main-launcher/src/main/java/com/zhidao/mogo/module/main/launcher/MainLauncherActivity.java index 30310154e1..cc4965c322 100644 --- a/main-extensions/mogo-module-main-launcher/src/main/java/com/zhidao/mogo/module/main/launcher/MainLauncherActivity.java +++ b/main-extensions/mogo-module-main-launcher/src/main/java/com/zhidao/mogo/module/main/launcher/MainLauncherActivity.java @@ -31,6 +31,7 @@ import com.mogo.service.intent.IMogoIntentListener; import com.mogo.eagle.core.function.api.map.smp.IMogoSmallMapProvider; import com.mogo.service.statusmanager.StatusDescriptor; import com.mogo.service.v2x.IV2XWarningListener; +import com.mogo.utils.ActivityLifecycleManager; import com.mogo.utils.logger.Logger; /** @@ -90,6 +91,7 @@ public class MainLauncherActivity extends MainActivity implements IMogoIntentLis protected void onStart() { super.onStart(); getApis().getIntentManagerApi().registerIntentListener(Intent.ACTION_CLOSE_SYSTEM_DIALOGS, this); + ActivityLifecycleManager.getInstance().setAppActive(true); } @Override @@ -102,6 +104,7 @@ public class MainLauncherActivity extends MainActivity implements IMogoIntentLis protected void onStop() { super.onStop(); getApis().getIntentManagerApi().unregisterIntentListener(Intent.ACTION_CLOSE_SYSTEM_DIALOGS, this); + ActivityLifecycleManager.getInstance().setAppActive(false); } @Override diff --git a/modules/mogo-module-adas/src/main/java/com/mogo/module/adas/AdasProvider.java b/modules/mogo-module-adas/src/main/java/com/mogo/module/adas/AdasProvider.java index 7f1837a0b1..ff71c69a5e 100644 --- a/modules/mogo-module-adas/src/main/java/com/mogo/module/adas/AdasProvider.java +++ b/modules/mogo-module-adas/src/main/java/com/mogo/module/adas/AdasProvider.java @@ -29,7 +29,7 @@ public class AdasProvider implements IProvider { Logger.d(TAG, "初始化 AdasProvider 模块"); adasEventManager = AdasEventManager.getInstance(); initAdas(context, adasEventManager); - initAutoPilotBusiness(context); +// initAutoPilotBusiness(context); addAdasStatusListener(new IAdasStatusListener() { @Override 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 e786a39c67..a6d8f3a39c 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 @@ -1402,12 +1402,12 @@ public class EntranceFragment extends MvpFragment + + + + \ No newline at end of file diff --git a/modules/mogo-module-service/src/main/res/drawable/module_service_right_corner_bg.xml b/modules/mogo-module-service/src/main/res/drawable/module_service_right_corner_bg.xml new file mode 100644 index 0000000000..8740ce4329 --- /dev/null +++ b/modules/mogo-module-service/src/main/res/drawable/module_service_right_corner_bg.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/modules/mogo-module-service/src/main/res/layout/module_dialog_adas_dispatch_cars.xml b/modules/mogo-module-service/src/main/res/layout/module_dialog_adas_dispatch_cars.xml index d2c52b9b1a..150d8f08f4 100644 --- a/modules/mogo-module-service/src/main/res/layout/module_dialog_adas_dispatch_cars.xml +++ b/modules/mogo-module-service/src/main/res/layout/module_dialog_adas_dispatch_cars.xml @@ -67,6 +67,7 @@ android:layout_width="@dimen/module_services_dispatch_cars_dialog_btn_width" android:layout_height="@dimen/module_services_dispatch_cars_dialog_line_margin_bottom" android:gravity="center" + android:background="@drawable/module_service_left_corner_bg" android:text="@string/module_services_dispatch_cars_affirm" android:textColor="@color/module_services_dispatch_cars_text_loc" android:textSize="@dimen/module_services_dispatch_cars_dialog_title_size" @@ -88,6 +89,7 @@ android:gravity="center" android:text="@string/module_services_dispatch_cars_cancel" android:textColor="@color/module_services_dispatch_cars_cancel" + android:background="@drawable/module_service_right_corner_bg" android:textSize="@dimen/module_services_dispatch_cars_dialog_title_size" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintRight_toRightOf="parent" /> diff --git a/modules/mogo-module-service/src/main/res/values-xhdpi-2560x1600/dimens.xml b/modules/mogo-module-service/src/main/res/values-xhdpi-2560x1600/dimens.xml index 26344ed81f..5a9f85d1d2 100644 --- a/modules/mogo-module-service/src/main/res/values-xhdpi-2560x1600/dimens.xml +++ b/modules/mogo-module-service/src/main/res/values-xhdpi-2560x1600/dimens.xml @@ -30,7 +30,7 @@ 55px 38px 179px - 56px + 54px 251px 152px 474.5px diff --git a/modules/mogo-module-service/src/main/res/values-xhdpi/dimens.xml b/modules/mogo-module-service/src/main/res/values-xhdpi/dimens.xml index e7e1de4a3a..675be3d1b9 100644 --- a/modules/mogo-module-service/src/main/res/values-xhdpi/dimens.xml +++ b/modules/mogo-module-service/src/main/res/values-xhdpi/dimens.xml @@ -89,7 +89,7 @@ 41px 28px 134px - 42px + 40px 188px 114px 355px diff --git a/modules/mogo-module-service/src/main/res/values/colors.xml b/modules/mogo-module-service/src/main/res/values/colors.xml index b6f13971a1..7f60162e16 100644 --- a/modules/mogo-module-service/src/main/res/values/colors.xml +++ b/modules/mogo-module-service/src/main/res/values/colors.xml @@ -18,4 +18,5 @@ #4D000000 #66B8BFE8 #AFB3C7 + #E63B4577 \ No newline at end of file diff --git a/modules/mogo-module-service/src/main/res/values/dimens.xml b/modules/mogo-module-service/src/main/res/values/dimens.xml index 5bcda01004..82f1e32a7c 100644 --- a/modules/mogo-module-service/src/main/res/values/dimens.xml +++ b/modules/mogo-module-service/src/main/res/values/dimens.xml @@ -88,7 +88,7 @@ 55px 38px 179px - 56px + 54px 251px 152px 474.5px diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/listener/V2XMessageListener_404000.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/listener/V2XMessageListener_404000.java deleted file mode 100644 index 9597b62f40..0000000000 --- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/listener/V2XMessageListener_404000.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.mogo.module.v2x.listener; - -import static com.mogo.module.v2x.V2XConst.MODULE_NAME; - -import com.mogo.eagle.core.data.v2x.AdvanceWarningBean; -import com.mogo.service.cloud.socket.IMogoOnMessageListener; -import com.mogo.utils.logger.Logger; -import com.mogo.utils.network.utils.GsonUtil; - -/** - * @author chenfufeng - * @description 路口碰撞预警、盲区预警等 - * @since: 2021/9/23 - */ -public class V2XMessageListener_404000 implements IMogoOnMessageListener { - @Override - public Class target() { - return AdvanceWarningBean.class; - } - - @Override - public void onMsgReceived(AdvanceWarningBean message) { - // 将接收到的数据转换成最优车道推荐的场景数据 - Logger.i(MODULE_NAME, "V2XMessageListener_404000:" + GsonUtil.jsonFromObject(message)); - } -} diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/listener/V2XMessageListener_404000.kt b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/listener/V2XMessageListener_404000.kt new file mode 100644 index 0000000000..40f54df0bb --- /dev/null +++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/listener/V2XMessageListener_404000.kt @@ -0,0 +1,117 @@ +package com.mogo.module.v2x.listener + +import com.mogo.eagle.core.data.enums.TrafficTypeEnum +import com.mogo.eagle.core.data.traffic.TrafficData +import com.mogo.service.cloud.socket.IMogoOnMessageListener +import com.mogo.eagle.core.data.v2x.AdvanceWarningBean +import com.mogo.module.v2x.V2XConst +import com.mogo.eagle.core.function.call.hmi.CallerHmiManager +import com.mogo.eagle.core.function.api.hmi.warning.WarningStatusListener +import com.mogo.module.common.drawer.TrafficMarkerDrawer +import com.mogo.module.common.enums.EventTypeEnum +import com.mogo.module.v2x.utils.V2XUtils +import com.mogo.utils.logger.Logger + +/** + * @author chenfufeng + * @description 路口碰撞预警、盲区预警等 + * @since: 2021/9/23 + */ +class V2XMessageListener_404000 : IMogoOnMessageListener { + override fun target(): Class { + return AdvanceWarningBean::class.java + } + + override fun onMsgReceived(message: AdvanceWarningBean?) { + if (message == null) { + Logger.i(V2XConst.MODULE_NAME, "V2XMessageListener_404000:message is null!") + return + } + Logger.i( + V2XConst.MODULE_NAME, + "V2XMessageListener_404000:" + com.mogo.utils.network.utils.GsonUtil.jsonFromObject( + message + ) + ) + V2XUtils.runOnUiThread { + var trafficData = buildTrafficData(message) + when (message.status) { + 1 -> { + var tts = "" + var content = "" + var appId = 0 + when (message.typeId) { + // 弱势交通碰撞预警 + 1001 -> { + appId = EventTypeEnum.TYPE_USECASE_ID_VRUCW_PERSON.poiType.toInt() + tts = EventTypeEnum.TYPE_USECASE_ID_VRUCW_PERSON.tts + content = EventTypeEnum.TYPE_USECASE_ID_VRUCW_PERSON.content + } + // 弱势交通逆行预警 + 1002 -> { + appId = EventTypeEnum.TYPE_USECASE_ID_VRUCW_PERSON.poiType.toInt() + tts = "行人逆行预警" + content = "行人逆行预警" + } + // 交叉路口碰撞预警 + 1003 -> { + appId = EventTypeEnum.TYPE_USECASE_ID_ICW.poiType.toInt() + tts = EventTypeEnum.TYPE_USECASE_ID_ICW.tts + content = EventTypeEnum.TYPE_USECASE_ID_ICW.content + } + // 盲区预警 + 1004 -> { + appId = EventTypeEnum.TYPE_USECASE_ID_BSW.poiType.toInt() + tts = String.format(EventTypeEnum.TYPE_USECASE_ID_BSW.tts, getWarningDirection()) + content = EventTypeEnum.TYPE_USECASE_ID_BSW.content + } + // 逆向超车预警 + 1005 -> { + appId = EventTypeEnum.TYPE_USECASE_ID_DNPW.poiType.toInt() + tts = EventTypeEnum.TYPE_USECASE_ID_DNPW.tts + content = EventTypeEnum.TYPE_USECASE_ID_DNPW.content + } + } + // 显示弹框,语音提示 + CallerHmiManager.showWarningV2X(appId, content, tts, + "$appId", object : WarningStatusListener { + override fun onShow() {} + override fun onDismiss() { + } + }) + TrafficMarkerDrawer.updateITrafficInfo(trafficData) + } + 2 -> { + TrafficMarkerDrawer.updateITrafficInfo(trafficData) + } + 3 -> { + TrafficMarkerDrawer.removeCvxRvInfoIndInfo(trafficData.uuid) + } + } + } + } + + private fun buildTrafficData(message: AdvanceWarningBean): TrafficData { + return TrafficData().apply { + type = when (message.objectType) { + 1 -> TrafficTypeEnum.TYPE_TRAFFIC_ID_PEOPLE + 2 -> TrafficTypeEnum.TYPE_TRAFFIC_ID_BICYCLE + 3 -> TrafficTypeEnum.TYPE_TRAFFIC_ID_TA_CHE + 4 -> TrafficTypeEnum.TYPE_TRAFFIC_ID_MOTO + 6 -> TrafficTypeEnum.TYPE_TRAFFIC_ID_BUS + 8 -> TrafficTypeEnum.TYPE_TRAFFIC_ID_TRUCK + 9 -> TrafficTypeEnum.TYPE_TRAFFIC_ID_CAMERA + else -> TrafficTypeEnum.TYPE_TRAFFIC_ID_WEI_ZHI + } + uuid = message.objectId + lat = message.position.lat + lon = message.position.lon + heading = message.heading + threatLevel = message.threatLevel + } + } + + private fun getWarningDirection(): String { + return "右" + } +} \ No newline at end of file