merge
@@ -1,18 +1,15 @@
|
||||
package com.mogo.eagle.core.function.autopilot.adapter;
|
||||
|
||||
import static com.mogo.eagle.core.data.chain.ChainConstant.CHAIN_ALIAS_CODE_ADAS_MESSAGE_AUTOPILOT_ARRIVE;
|
||||
import static com.mogo.eagle.core.data.chain.ChainConstant.CHAIN_ALIAS_CODE_ADAS_MESSAGE_AUTOPILOT_GUARDIAN;
|
||||
import static com.mogo.eagle.core.data.chain.ChainConstant.CHAIN_ALIAS_CODE_ADAS_MESSAGE_AUTOPILOT_RECORD;
|
||||
import static com.mogo.eagle.core.data.chain.ChainConstant.CHAIN_ALIAS_CODE_ADAS_MESSAGE_AUTOPILOT_ROUTE;
|
||||
import static com.mogo.eagle.core.data.chain.ChainConstant.CHAIN_ALIAS_CODE_ADAS_MESSAGE_AUTOPILOT_STATUS;
|
||||
import static com.mogo.eagle.core.data.chain.ChainConstant.CHAIN_ALIAS_CODE_ADAS_MESSAGE_AUTOPILOT_TRAJECTORY;
|
||||
import static com.mogo.eagle.core.data.chain.ChainConstant.CHAIN_ALIAS_CODE_ADAS_MESSAGE_AUTOPILOT_WARN;
|
||||
import static com.mogo.eagle.core.data.chain.ChainConstant.CHAIN_ALIAS_CODE_ADAS_MESSAGE_CAR_STATE;
|
||||
import static com.mogo.eagle.core.data.chain.ChainConstant.CHAIN_ALIAS_CODE_ADAS_MESSAGE_RECT_DATA;
|
||||
import static com.mogo.eagle.core.data.chain.ChainConstant.CHAIN_LINK_ADAS;
|
||||
import static com.mogo.eagle.core.data.chain.ChainConstant.CHAIN_LINK_LOG_WEB_SOCKET_DATA;
|
||||
|
||||
import android.util.Log;
|
||||
import static com.mogo.eagle.core.data.deva.chain.ChainConstant.CHAIN_ALIAS_CODE_ADAS_MESSAGE_AUTOPILOT_ARRIVE;
|
||||
import static com.mogo.eagle.core.data.deva.chain.ChainConstant.CHAIN_ALIAS_CODE_ADAS_MESSAGE_AUTOPILOT_GUARDIAN;
|
||||
import static com.mogo.eagle.core.data.deva.chain.ChainConstant.CHAIN_ALIAS_CODE_ADAS_MESSAGE_AUTOPILOT_RECORD;
|
||||
import static com.mogo.eagle.core.data.deva.chain.ChainConstant.CHAIN_ALIAS_CODE_ADAS_MESSAGE_AUTOPILOT_ROUTE;
|
||||
import static com.mogo.eagle.core.data.deva.chain.ChainConstant.CHAIN_ALIAS_CODE_ADAS_MESSAGE_AUTOPILOT_STATUS;
|
||||
import static com.mogo.eagle.core.data.deva.chain.ChainConstant.CHAIN_ALIAS_CODE_ADAS_MESSAGE_AUTOPILOT_WARN;
|
||||
import static com.mogo.eagle.core.data.deva.chain.ChainConstant.CHAIN_ALIAS_CODE_ADAS_MESSAGE_CAR_STATE;
|
||||
import static com.mogo.eagle.core.data.deva.chain.ChainConstant.CHAIN_ALIAS_CODE_ADAS_MESSAGE_RECT_DATA;
|
||||
import static com.mogo.eagle.core.data.deva.chain.ChainConstant.CHAIN_LINK_ADAS;
|
||||
import static com.mogo.eagle.core.data.deva.chain.ChainConstant.CHAIN_LINK_LOG_WEB_SOCKET_DATA;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
@@ -36,7 +33,6 @@ import com.mogo.eagle.core.utilcode.mogo.logger.Logger;
|
||||
import com.mogo.module.common.MogoApisHandler;
|
||||
import com.mogo.module.common.datacenter.SnapshotLocationDataCenter;
|
||||
import com.mogo.module.service.MarkerServiceHandler;
|
||||
import com.mogo.module.service.timedelay.TimeDelayUploadManager;
|
||||
import com.zhidao.support.adas.high.AdasManager;
|
||||
import com.zhidao.support.adas.high.OnAdasListener;
|
||||
import com.zhidao.support.adas.high.bean.AutopilotRoute;
|
||||
@@ -53,7 +49,6 @@ import com.zhidao.support.adas.high.bean.TrajectoryInfo;
|
||||
import com.zhidao.support.adas.high.bean.WarnMessageInfo;
|
||||
import com.zhidao.support.adas.high.bean.guardian.AutopilotGuardianInfo;
|
||||
import com.zhidao.support.adas.high.bean.record.AutopilotRecordResult;
|
||||
import com.zhidao.support.obu.ami.AmiClientManager;
|
||||
import com.zhjt.service.chain.ChainLog;
|
||||
import com.zhjt.service.chain.TracingConstants;
|
||||
|
||||
@@ -106,11 +101,6 @@ public class MoGoAdasListenerImpl implements OnAdasListener {
|
||||
|
||||
public void adasCarDataCallback(@Nullable AutopilotCarStateInfo stateInfo) {
|
||||
|
||||
//模拟数据时,不更新由工控机传输的自车位置
|
||||
if (TimeDelayUploadManager.getInstance().isMock()) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (stateInfo != null && stateInfo.getValues() != null) {
|
||||
//Logger.d(TAG,"同步自车数据给地图……");
|
||||
|
||||
|
||||
@@ -4,8 +4,8 @@ import android.annotation.SuppressLint
|
||||
import android.content.Context
|
||||
import android.view.View
|
||||
import com.alibaba.android.arouter.facade.annotation.Route
|
||||
import com.mogo.eagle.core.data.deva.chain.ChainLogParam
|
||||
import com.mogo.eagle.core.data.autopilot.AutoPilotRecordResult
|
||||
import com.mogo.eagle.core.data.chain.ChainLogParam
|
||||
import com.mogo.eagle.core.data.constants.MogoServicePaths
|
||||
import com.mogo.eagle.core.function.api.devatools.IDevaToolsProvider
|
||||
import com.zhjt.mogo_core_function_devatools.badcase.BadCaseManager
|
||||
|
||||
@@ -193,6 +193,7 @@ object MogoLogCatchManager : IMogoOnMessageListener<RemoteLogPushContent>, Handl
|
||||
override fun onClose(pkgName: String?) {
|
||||
ThreadUtils.runOnUiThread {
|
||||
|
||||
closeLoggerLevel()
|
||||
SharedPrefsMgr.getInstance(mContext!!).putBoolean(MoGoConfig.CATCH_LOG, false)
|
||||
SharedPrefsMgr.getInstance(mContext!!).putLong(MoGoConfig.CATCH_LOG_TIME, 0)
|
||||
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
package com.zhjt.mogo_core_function_devatools.scene
|
||||
|
||||
class SceneManager {
|
||||
|
||||
companion object {
|
||||
val sceneManager: SceneManager by lazy(LazyThreadSafetyMode.SYNCHRONIZED) {
|
||||
SceneManager()
|
||||
}
|
||||
}
|
||||
|
||||
fun init(){
|
||||
|
||||
}
|
||||
}
|
||||
@@ -2,8 +2,8 @@ package com.zhjt.mogo_core_function_devatools.trace
|
||||
|
||||
import android.content.Context
|
||||
import com.mogo.cloud.passport.MoGoAiCloudClientConfig
|
||||
import com.mogo.eagle.core.data.chain.ChainConstant
|
||||
import com.mogo.eagle.core.data.chain.ChainLogParam
|
||||
import com.mogo.eagle.core.data.deva.chain.ChainConstant
|
||||
import com.mogo.eagle.core.data.deva.chain.ChainLogParam
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.Logger
|
||||
import com.mogo.eagle.core.utilcode.util.DeviceUtils
|
||||
import com.mogo.eagle.core.utilcode.util.Utils
|
||||
|
||||
1
core/function-impl/mogo-core-function-dispatch/.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
||||
/build
|
||||
75
core/function-impl/mogo-core-function-dispatch/build.gradle
Normal file
@@ -0,0 +1,75 @@
|
||||
plugins {
|
||||
id 'com.android.library'
|
||||
id 'kotlin-android'
|
||||
id 'kotlin-android-extensions'
|
||||
id 'kotlin-kapt'
|
||||
id 'com.alibaba.arouter'
|
||||
}
|
||||
|
||||
android {
|
||||
compileSdkVersion rootProject.ext.android.compileSdkVersion
|
||||
// buildToolsVersion rootProject.ext.android.buildToolsVersion
|
||||
defaultConfig {
|
||||
minSdkVersion rootProject.ext.android.minSdkVersion
|
||||
targetSdkVersion rootProject.ext.android.targetSdkVersion
|
||||
versionCode Integer.valueOf(VERSION_CODE)
|
||||
versionName getValueFromRootProperties("${project.name.replace("-", "_").toUpperCase()}_VERSION")
|
||||
|
||||
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
||||
consumerProguardFiles 'consumer-rules.pro'
|
||||
//ARouter apt 参数
|
||||
kapt {
|
||||
useBuildCache = false
|
||||
arguments {
|
||||
arg("AROUTER_MODULE_NAME", project.getName())
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
buildTypes {
|
||||
release {
|
||||
minifyEnabled false
|
||||
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
|
||||
}
|
||||
}
|
||||
compileOptions {
|
||||
sourceCompatibility JavaVersion.VERSION_1_8
|
||||
targetCompatibility JavaVersion.VERSION_1_8
|
||||
}
|
||||
}
|
||||
|
||||
dependencies {
|
||||
implementation fileTree(dir: 'libs', include: ['*.jar'])
|
||||
implementation rootProject.ext.dependencies.kotlinstdlibjdk7
|
||||
implementation rootProject.ext.dependencies.androidxconstraintlayout
|
||||
implementation rootProject.ext.dependencies.androidxccorektx
|
||||
implementation rootProject.ext.dependencies.coroutinesandroid
|
||||
implementation rootProject.ext.dependencies.coroutinescore
|
||||
|
||||
implementation rootProject.ext.dependencies.rxjava
|
||||
implementation rootProject.ext.dependencies.rxandroid
|
||||
|
||||
implementation rootProject.ext.dependencies.arouter
|
||||
kapt rootProject.ext.dependencies.aroutercompiler
|
||||
|
||||
if (Boolean.valueOf(USE_MAVEN_PACKAGE)) {
|
||||
|
||||
implementation rootProject.ext.dependencies.modulecommon
|
||||
|
||||
implementation rootProject.ext.dependencies.mogo_core_data
|
||||
implementation rootProject.ext.dependencies.mogo_core_utils
|
||||
implementation rootProject.ext.dependencies.mogo_core_network
|
||||
implementation rootProject.ext.dependencies.mogo_core_function_call
|
||||
}else{
|
||||
|
||||
implementation project(':modules:mogo-module-common')
|
||||
|
||||
implementation project(':core:mogo-core-data')
|
||||
implementation project(':core:mogo-core-utils')
|
||||
implementation project(':core:mogo-core-network')
|
||||
implementation project(':core:mogo-core-function-call')
|
||||
}
|
||||
}
|
||||
|
||||
apply from: new File(rootProject.rootDir, "gradle/upload.gradle").toString()
|
||||
@@ -0,0 +1,3 @@
|
||||
GROUP=com.mogo.eagle.core.function.impl
|
||||
POM_ARTIFACT_ID=dispatch
|
||||
VERSION_CODE=1
|
||||
21
core/function-impl/mogo-core-function-dispatch/proguard-rules.pro
vendored
Normal file
@@ -0,0 +1,21 @@
|
||||
# Add project specific ProGuard rules here.
|
||||
# You can control the set of applied configuration files using the
|
||||
# proguardFiles setting in build.gradle.
|
||||
#
|
||||
# For more details, see
|
||||
# http://developer.android.com/guide/developing/tools/proguard.html
|
||||
|
||||
# If your project uses WebView with JS, uncomment the following
|
||||
# and specify the fully qualified class name to the JavaScript interface
|
||||
# class:
|
||||
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
|
||||
# public *;
|
||||
#}
|
||||
|
||||
# Uncomment this to preserve the line number information for
|
||||
# debugging stack traces.
|
||||
#-keepattributes SourceFile,LineNumberTable
|
||||
|
||||
# If you keep the line number information, uncomment this to
|
||||
# hide the original source file name.
|
||||
#-renamesourcefileattribute SourceFile
|
||||
@@ -0,0 +1,15 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
package="com.zhjt.dispatch">
|
||||
|
||||
<application>
|
||||
|
||||
<receiver android:name=".DispatchTestPanelBroadCastReceiver">
|
||||
<intent-filter>
|
||||
<action android:name="com.dispatch.test_panel_control" />
|
||||
<category android:name="android.intent.category.DEFAULT" />
|
||||
</intent-filter>
|
||||
</receiver>
|
||||
|
||||
</application>
|
||||
</manifest>
|
||||
@@ -0,0 +1,76 @@
|
||||
package com.zhjt.dispatch;
|
||||
|
||||
import android.content.Context;
|
||||
import android.text.TextUtils;
|
||||
import android.widget.Button;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
|
||||
import com.mogo.eagle.core.data.dispatch.DispatchAdasAutoPilotLocReceiverBean;
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.Logger;
|
||||
|
||||
public class DispatchAirportDialog extends DispatchBaseDialog {
|
||||
|
||||
private static final String TAG = "DispatchAirportDialog";
|
||||
private IDispatchRemindClickListener mListener;
|
||||
|
||||
private final TextView tvStartLoc;
|
||||
private final TextView tvEndLoc;
|
||||
private final TextView tvTaskTime;
|
||||
private final TextView tvFlightInfo;
|
||||
private final TextView tvTaskContent;
|
||||
|
||||
public DispatchAirportDialog(@NonNull Context context) {
|
||||
super(context);
|
||||
setContentView(R.layout.module_dialog_adas_dispatch_airport);
|
||||
setCanceledOnTouchOutside(false);
|
||||
tvStartLoc = findViewById(R.id.module_services_dispatch_dialog_start_content);
|
||||
tvEndLoc = findViewById(R.id.module_services_dispatch_dialog_end_content);
|
||||
tvTaskTime = findViewById(R.id.module_services_dispatch_dialog_task_time);
|
||||
tvFlightInfo = findViewById(R.id.module_services_dispatch_dialog_flight_time);
|
||||
tvTaskContent = findViewById(R.id.module_services_dispatch_dialog_task_content);
|
||||
Button btnAffirm = findViewById(R.id.module_services_dispatch_dialog_confirm);
|
||||
btnAffirm.setOnClickListener(v -> {
|
||||
if (mListener != null) {
|
||||
mListener.affirm();
|
||||
dismissDialog();
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void showDialog(DispatchAdasAutoPilotLocReceiverBean dispatchContent) {
|
||||
show();
|
||||
if (!TextUtils.isEmpty(dispatchContent.getStartLocAddress())) {
|
||||
tvStartLoc.setText(dispatchContent.getStartLocAddress());
|
||||
}
|
||||
if (!TextUtils.isEmpty(dispatchContent.getEndLocAddress())) {
|
||||
tvEndLoc.setText(dispatchContent.getEndLocAddress());
|
||||
}
|
||||
if (!TextUtils.isEmpty(dispatchContent.getTaskTime())) {
|
||||
tvTaskTime.setText(dispatchContent.getTaskTime());
|
||||
}
|
||||
if (!TextUtils.isEmpty(dispatchContent.getFlightInfo())) {
|
||||
tvFlightInfo.setText(dispatchContent.getFlightInfo());
|
||||
}
|
||||
if (!TextUtils.isEmpty(dispatchContent.getTaskInfo())) {
|
||||
tvTaskContent.setText(dispatchContent.getTaskInfo());
|
||||
}
|
||||
}
|
||||
|
||||
private void dismissDialog() {
|
||||
dismiss();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addIDispatchRemindListener(IDispatchRemindClickListener listener) {
|
||||
if (listener == null) {
|
||||
Logger.d(TAG, "addIDispatchRemindListener listener is null");
|
||||
return;
|
||||
}
|
||||
this.mListener = listener;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,329 @@
|
||||
package com.zhjt.dispatch;
|
||||
|
||||
import android.content.Context;
|
||||
import android.location.Location;
|
||||
import android.os.Handler;
|
||||
import android.os.Message;
|
||||
|
||||
import com.mogo.cloud.commons.utils.CoordinateUtils;
|
||||
import com.mogo.eagle.core.data.autopilot.ADASTrajectoryInfo;
|
||||
import com.mogo.eagle.core.data.autopilot.AutopilotControlParameters;
|
||||
import com.mogo.eagle.core.data.autopilot.AutopilotGuardianStatusInfo;
|
||||
import com.mogo.eagle.core.data.autopilot.AutopilotRouteInfo;
|
||||
import com.mogo.eagle.core.data.autopilot.AutopilotStationInfo;
|
||||
import com.mogo.eagle.core.data.autopilot.AutopilotStatusInfo;
|
||||
import com.mogo.eagle.core.data.dispatch.DispatchAdasAutoPilotLocReceiverBean;
|
||||
import com.mogo.eagle.core.data.map.MogoLatLng;
|
||||
import com.mogo.eagle.core.data.map.MogoLocation;
|
||||
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotPlanningListener;
|
||||
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener;
|
||||
import com.mogo.eagle.core.function.api.hmi.autopilot.IMoGoCheckAutoPilotBtnListener;
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotManager;
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager;
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotPlanningListenerManager;
|
||||
import com.mogo.eagle.core.function.call.hmi.CallerHmiListenerManager;
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.Logger;
|
||||
import com.mogo.map.navi.IMogoCarLocationChangedListener2;
|
||||
import com.mogo.module.common.MogoApisHandler;
|
||||
import com.zhjt.dispatch.model.DispatchServiceModel;
|
||||
import com.mogo.service.IMogoServiceApis;
|
||||
import com.mogo.service.cloud.socket.IMogoOnMessageListener;
|
||||
import com.zhjt.dispatch.model.IDispatch;
|
||||
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import static com.zhjt.dispatch.model.DispatchServiceModel.DISPATCH_RESULT_AFFIRM;
|
||||
import static com.zhjt.dispatch.model.DispatchServiceModel.DISPATCH_RESULT_MANUAL_CANCEL;
|
||||
import static com.zhjt.dispatch.model.DispatchServiceModel.DISPATCH_RESULT_TIMER_CANCEL;
|
||||
|
||||
//负责监听自动驾驶状态并进行状态上报,自动驾驶路线上报,接收调度指令展示指令弹窗
|
||||
public class DispatchAutoPilotManager implements IMogoOnMessageListener<DispatchAdasAutoPilotLocReceiverBean>
|
||||
, IDispatchRemindClickListener, IMogoCarLocationChangedListener2,
|
||||
IMoGoCheckAutoPilotBtnListener, IMoGoAutopilotPlanningListener, IMoGoAutopilotStatusListener {
|
||||
|
||||
private static final String TAG = "DispatchAutoPilotManager";
|
||||
private static volatile DispatchAutoPilotManager instance;
|
||||
private static final byte[] obj = new byte[0];
|
||||
private Context mContext;
|
||||
private static final int MSG_SOCKET_TYPE = 501000;
|
||||
private static final int MSG_TYPE_SHOW_DIALOG = 0;
|
||||
private static final int MSG_TYPE_UPLOAD_AUTOPILOT_STATUS = 1;
|
||||
|
||||
private DispatchDialogManager dispatchDialogManager;
|
||||
private MogoLocation mogoLocation;
|
||||
private DispatchAdasAutoPilotLocReceiverBean receiverBean;
|
||||
private int autoPilotStatus = 0;
|
||||
private String reason = null;
|
||||
private boolean isDispatch = false;
|
||||
private boolean isArriveEnd = false;
|
||||
|
||||
private IMogoServiceApis mApis;
|
||||
|
||||
private DispatchAutoPilotManager() {
|
||||
|
||||
}
|
||||
|
||||
public static DispatchAutoPilotManager getInstance() {
|
||||
if (instance == null) {
|
||||
synchronized (obj) {
|
||||
if (instance == null) {
|
||||
instance = new DispatchAutoPilotManager();
|
||||
}
|
||||
}
|
||||
}
|
||||
return instance;
|
||||
}
|
||||
|
||||
private final Handler handler = new Handler() {
|
||||
@Override
|
||||
public void handleMessage(Message msg) {
|
||||
super.handleMessage(msg);
|
||||
if (msg.what == MSG_TYPE_SHOW_DIALOG) {
|
||||
if (dispatchDialogManager.isShowing()) {
|
||||
Logger.d(TAG, "此时已经有调度,又收到调度信息");
|
||||
return;
|
||||
}
|
||||
isDispatch = true;
|
||||
isArriveEnd = false;
|
||||
DispatchAdasAutoPilotLocReceiverBean msgData = (DispatchAdasAutoPilotLocReceiverBean) msg.obj;
|
||||
dispatchDialogManager.showDialog(msgData);
|
||||
} else if (msg.what == MSG_TYPE_UPLOAD_AUTOPILOT_STATUS) {
|
||||
DispatchServiceModel.getInstance().uploadAutopilotStatus(autoPilotStatus, reason);
|
||||
handler.sendEmptyMessageDelayed(MSG_TYPE_UPLOAD_AUTOPILOT_STATUS, 1000L);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
public void initSocket(Context context) {
|
||||
mContext = context;
|
||||
mApis = MogoApisHandler.getInstance().getApis();
|
||||
|
||||
mApis.getSocketManagerApi(context).registerOnMessageListener(MSG_SOCKET_TYPE, this);
|
||||
mApis.getRegisterCenterApi()
|
||||
.registerCarLocationChangedListener(TAG, this);
|
||||
// 添加自动驾驶按钮选中监听
|
||||
CallerHmiListenerManager.INSTANCE.addCheckAutoPilotBtnListener(TAG, this);
|
||||
// 添加 规划路径相关回调 监听
|
||||
CallerAutopilotPlanningListenerManager.INSTANCE.addListener(TAG, this);
|
||||
// 添加 ADAS状态 监听
|
||||
CallerAutoPilotStatusListenerManager.INSTANCE.addListener(TAG, this);
|
||||
dispatchDialogManager = DispatchDialogManager.getInstance(context);
|
||||
dispatchDialogManager.addIDispatchRemindListener(this);
|
||||
handler.sendEmptyMessageDelayed(MSG_TYPE_UPLOAD_AUTOPILOT_STATUS, 1000L);
|
||||
}
|
||||
|
||||
public void release() {
|
||||
// 添加自动驾驶按钮选中监听
|
||||
CallerHmiListenerManager.INSTANCE.removeCheckAutoPilotBtnListener(TAG);
|
||||
// 添加 规划路径相关回调 监听
|
||||
CallerAutopilotPlanningListenerManager.INSTANCE.removeListener(TAG);
|
||||
// 添加 ADAS状态 监听
|
||||
CallerAutoPilotStatusListenerManager.INSTANCE.removeListener(TAG);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Class<DispatchAdasAutoPilotLocReceiverBean> target() {
|
||||
return DispatchAdasAutoPilotLocReceiverBean.class;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onMsgReceived(DispatchAdasAutoPilotLocReceiverBean adasAutoPilotLocReceiverBean) {
|
||||
if (adasAutoPilotLocReceiverBean != null
|
||||
&& adasAutoPilotLocReceiverBean.getStartLat() != 0.0
|
||||
&& adasAutoPilotLocReceiverBean.getStartLon() != 0.0) {
|
||||
this.receiverBean = adasAutoPilotLocReceiverBean;
|
||||
Message message = new Message();
|
||||
message.what = MSG_TYPE_SHOW_DIALOG;
|
||||
message.obj = adasAutoPilotLocReceiverBean;
|
||||
handler.sendMessage(message);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void affirm() {
|
||||
dispatchDialogManager.releaseDialog();
|
||||
DispatchServiceModel.getInstance().dispatchResultUpload(DISPATCH_RESULT_AFFIRM, new IDispatch() {
|
||||
@Override
|
||||
public void onSuccess() {
|
||||
startAutoPilot();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(String msg) {
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void startAutoPilot() {
|
||||
AutopilotControlParameters currentAutopilot = new AutopilotControlParameters();
|
||||
currentAutopilot.isSpeakVoice = false;
|
||||
List<AutopilotControlParameters.AutoPilotLonLat> wayLatLon = new ArrayList<>();
|
||||
if (receiverBean != null && receiverBean.getStopsList() != null) {
|
||||
for (MogoLatLng mogoLatLng : receiverBean.getStopsList()) {
|
||||
wayLatLon.add(new AutopilotControlParameters.AutoPilotLonLat(mogoLatLng.lat, mogoLatLng.lon));
|
||||
}
|
||||
}
|
||||
currentAutopilot.wayLatLons = wayLatLon;
|
||||
currentAutopilot.startLatLon = new AutopilotControlParameters.AutoPilotLonLat(receiverBean.getStartLat(), receiverBean.getStartLon());
|
||||
currentAutopilot.endLatLon = new AutopilotControlParameters.AutoPilotLonLat(receiverBean.getEndLat(), receiverBean.getEndLon());
|
||||
currentAutopilot.vehicleType = 10;
|
||||
Logger.d(TAG, "开启自动驾驶====" + currentAutopilot);
|
||||
CallerAutoPilotManager.INSTANCE.startAutoPilot(currentAutopilot);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void cancel(boolean manualTrigger) {
|
||||
dispatchDialogManager.releaseDialog();
|
||||
DispatchServiceModel.getInstance().dispatchResultUpload(manualTrigger ? DISPATCH_RESULT_MANUAL_CANCEL
|
||||
: DISPATCH_RESULT_TIMER_CANCEL, new IDispatch() {
|
||||
@Override
|
||||
public void onSuccess() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(String msg) {
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCarLocationChanged2(Location location) {
|
||||
//坐标转换
|
||||
MogoLocation loc = new MogoLocation();
|
||||
loc.setTime(loc.getTime());
|
||||
loc.setAccuracy(location.getAccuracy());
|
||||
loc.setSpeed(location.getSpeed());
|
||||
loc.setLongitude(location.getLongitude());
|
||||
loc.setLatitude(location.getLatitude());
|
||||
loc.setAltitude(location.getAltitude());
|
||||
loc.setBearing(location.getBearing());
|
||||
loc.setProvider(location.getProvider());
|
||||
mogoLocation = loc;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void onCheck(boolean isChecked) {
|
||||
if (isChecked) {
|
||||
// 确保到达终点后,再次点击,不会有回馈,并且在下次调开始时,才会重置
|
||||
if (isArriveEnd) {
|
||||
return;
|
||||
}
|
||||
//todo 确认是否要根据停靠时自动驾驶状态,再次开启自动驾驶
|
||||
// 确保处于调度中并且返回的自动驾驶状态为1才开启自动驾驶
|
||||
// 上述等待鄂州项目复盘后,产品输出完成方案后再进操作!!!
|
||||
if (isDispatch) {
|
||||
startAutoPilot();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void testAutopilotStatus() {
|
||||
autoPilotStatus = 2;
|
||||
}
|
||||
|
||||
public void testEZhouStart() {
|
||||
Logger.d(TAG, "test to trigger mock testEZhouStart");
|
||||
DispatchAdasAutoPilotLocReceiverBean adasAutoPilotLocReceiverBean = new DispatchAdasAutoPilotLocReceiverBean(
|
||||
DispatchAdasAutoPilotLocReceiverBean.DISPATCH_SOURCE_EZHOU, DispatchAdasAutoPilotLocReceiverBean.DISPATCH_TYPE_START, "1",
|
||||
26.825571122, 112.5762410415, "起点---5号跑道",
|
||||
26.825571122, 112.5762410415, "终点---鄂州机场",
|
||||
"5分钟", "AR453航班", "你车需执行编号ca1098次航班的引导任务,从A区A1到B区B1", System.currentTimeMillis(), new ArrayList<>());
|
||||
this.receiverBean = adasAutoPilotLocReceiverBean;
|
||||
DispatchDialogManager.getInstance(mContext).showDialog(adasAutoPilotLocReceiverBean);
|
||||
}
|
||||
|
||||
public void testEZhouStop() {
|
||||
Logger.d(TAG, "test to trigger mock testEZhouStop");
|
||||
DispatchAdasAutoPilotLocReceiverBean adasAutoPilotLocReceiverBean = new DispatchAdasAutoPilotLocReceiverBean(
|
||||
DispatchAdasAutoPilotLocReceiverBean.DISPATCH_SOURCE_EZHOU, DispatchAdasAutoPilotLocReceiverBean.DISPATCH_TYPE_STOP, "1",
|
||||
0.0, 0.0, "",
|
||||
0.0, 0.0, "",
|
||||
"", "", "", System.currentTimeMillis(), new ArrayList<>());
|
||||
this.receiverBean = adasAutoPilotLocReceiverBean;
|
||||
DispatchDialogManager.getInstance(mContext).showDialog(adasAutoPilotLocReceiverBean);
|
||||
}
|
||||
|
||||
public void testHengYangStart() {
|
||||
Logger.d(TAG, "test to trigger mock testHengYangStart");
|
||||
DispatchAdasAutoPilotLocReceiverBean adasAutoPilotLocReceiverBean = new DispatchAdasAutoPilotLocReceiverBean(
|
||||
DispatchAdasAutoPilotLocReceiverBean.DISPATCH_SOURCE_HENGYANG, DispatchAdasAutoPilotLocReceiverBean.DISPATCH_TYPE_START, "2",
|
||||
26.825571122, 112.5762410415, "衡阳科学城",
|
||||
26.825571122, 112.5762410415, "衡阳首钢集团",
|
||||
"", "", "", System.currentTimeMillis(), new ArrayList<>());
|
||||
this.receiverBean = adasAutoPilotLocReceiverBean;
|
||||
DispatchDialogManager.getInstance(mContext).showDialog(adasAutoPilotLocReceiverBean);
|
||||
}
|
||||
|
||||
public void testDispatchResultUpload() {
|
||||
DispatchServiceModel.getInstance().dispatchResultUpload(DISPATCH_RESULT_AFFIRM, new IDispatch() {
|
||||
@Override
|
||||
public void onSuccess() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(String msg) {
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAutopilotTrajectory(ArrayList<ADASTrajectoryInfo> trajectoryInfos) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAutopilotRotting(AutopilotRouteInfo autopilotRoute) {
|
||||
if (autopilotRoute == null || autopilotRoute.getModels() == null || autopilotRoute.getModels().size() == 0) {
|
||||
return;
|
||||
}
|
||||
DispatchServiceModel.getInstance().uploadAutopilotRoute(autopilotRoute.getModels());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAutopilotStatusResponse(@NotNull AutopilotStatusInfo autoPilotStatusInfo) {
|
||||
autoPilotStatus = autoPilotStatusInfo.getState();
|
||||
this.reason = autoPilotStatusInfo.getReason();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAutopilotArriveAtStation(@Nullable AutopilotStationInfo autopilotWayArrive) {
|
||||
if (!isDispatch) {
|
||||
return;
|
||||
}
|
||||
if (autopilotWayArrive == null) {
|
||||
return;
|
||||
}
|
||||
Logger.d(TAG, "onArriveAt data : " + autopilotWayArrive.toString());
|
||||
double endLat = autopilotWayArrive.getLat();
|
||||
double endLon = autopilotWayArrive.getLon();
|
||||
// 计算是不是到了终点
|
||||
float distanceFromSelf = CoordinateUtils.calculateLineDistance(receiverBean.getEndLon(), receiverBean.getEndLat()
|
||||
, endLon, endLat);
|
||||
Logger.d(TAG, "onArriveAt cal distance : " + distanceFromSelf);
|
||||
if (distanceFromSelf < 10) {
|
||||
Logger.d(TAG, "onArriveAt end location");
|
||||
isDispatch = false;
|
||||
isArriveEnd = true;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAutopilotSNRequest() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAutopilotGuardian(@Nullable AutopilotGuardianStatusInfo guardianInfo) {
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
package com.zhjt.dispatch;
|
||||
|
||||
import android.content.Context;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
|
||||
import com.mogo.eagle.core.data.dispatch.DispatchAdasAutoPilotLocReceiverBean;
|
||||
import com.mogo.module.common.dialog.BaseFloatDialog;
|
||||
|
||||
public abstract class DispatchBaseDialog extends BaseFloatDialog {
|
||||
|
||||
public DispatchBaseDialog(@NonNull Context context) {
|
||||
super(context);
|
||||
}
|
||||
|
||||
public abstract void addIDispatchRemindListener(IDispatchRemindClickListener listener);
|
||||
|
||||
public abstract void showDialog(DispatchAdasAutoPilotLocReceiverBean dispatchContent);
|
||||
|
||||
}
|
||||
@@ -0,0 +1,97 @@
|
||||
package com.zhjt.dispatch;
|
||||
|
||||
import android.content.Context;
|
||||
import android.os.Handler;
|
||||
import android.os.Message;
|
||||
import android.text.TextUtils;
|
||||
import android.widget.Button;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
|
||||
import com.mogo.eagle.core.data.dispatch.DispatchAdasAutoPilotLocReceiverBean;
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.Logger;
|
||||
|
||||
|
||||
public class DispatchCarsDialog extends DispatchBaseDialog{
|
||||
|
||||
private static final String TAG = "DispatchCarsDialog";
|
||||
private static final int MSG_TYPE_TIMER = 0;
|
||||
private static int TIMER = 10;
|
||||
private IDispatchRemindClickListener mListener;
|
||||
|
||||
private final TextView tvTimer;
|
||||
private final TextView tvLoc;
|
||||
|
||||
private final Handler handler = new Handler() {
|
||||
@Override
|
||||
public void handleMessage(Message msg) {
|
||||
super.handleMessage(msg);
|
||||
if (msg.what == MSG_TYPE_TIMER) {
|
||||
if (TIMER > 0) {
|
||||
TIMER--;
|
||||
Logger.d(TAG,"timer : " + TIMER);
|
||||
tvTimer.setText(String.valueOf(TIMER));
|
||||
handler.sendEmptyMessageDelayed(MSG_TYPE_TIMER,1000L);
|
||||
} else {
|
||||
hideDialog();
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
public DispatchCarsDialog(@NonNull Context context) {
|
||||
super(context);
|
||||
setContentView(R.layout.module_dialog_adas_dispatch_cars);
|
||||
setCanceledOnTouchOutside(false);
|
||||
tvTimer = findViewById(R.id.module_adas_dispatch_remind_timer);
|
||||
tvLoc = findViewById(R.id.module_adas_dispatch_remind_loc);
|
||||
Button btnAffirm = (Button) findViewById(R.id.module_adas_dispatch_remind_affirm);
|
||||
Button btnCancel = (Button) findViewById(R.id.module_adas_dispatch_remind_cancel);
|
||||
tvTimer.setText(String.valueOf(TIMER));
|
||||
btnAffirm.setOnClickListener(v -> {
|
||||
if (mListener != null) {
|
||||
mListener.affirm();
|
||||
dismissDialog();
|
||||
}
|
||||
});
|
||||
btnCancel.setOnClickListener(v -> {
|
||||
if (mListener != null) {
|
||||
mListener.cancel(true);
|
||||
dismissDialog();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void hideDialog() {
|
||||
if (mListener != null) {
|
||||
mListener.cancel(false);
|
||||
}
|
||||
dismissDialog();
|
||||
}
|
||||
|
||||
private void dismissDialog(){
|
||||
handler.removeMessages(MSG_TYPE_TIMER);
|
||||
TIMER = 10;
|
||||
dismiss();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addIDispatchRemindListener(IDispatchRemindClickListener listener) {
|
||||
if (listener == null) {
|
||||
Logger.d(TAG, "addIDispatchRemindListener listener is null");
|
||||
return;
|
||||
}
|
||||
this.mListener = listener;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void showDialog(DispatchAdasAutoPilotLocReceiverBean dispatchContent) {
|
||||
if(TextUtils.isEmpty(dispatchContent.getEndLocAddress())){
|
||||
return;
|
||||
}
|
||||
show();
|
||||
handler.sendEmptyMessage(MSG_TYPE_TIMER);
|
||||
tvLoc.setText(dispatchContent.getEndLocAddress());
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,110 @@
|
||||
package com.zhjt.dispatch;
|
||||
|
||||
|
||||
import static com.mogo.eagle.core.data.dispatch.DispatchAdasAutoPilotLocReceiverBean.DISPATCH_SOURCE_EZHOU;
|
||||
import static com.mogo.eagle.core.data.dispatch.DispatchAdasAutoPilotLocReceiverBean.DISPATCH_SOURCE_HENGYANG;
|
||||
import static com.mogo.eagle.core.data.dispatch.DispatchAdasAutoPilotLocReceiverBean.DISPATCH_TYPE_START;
|
||||
import static com.mogo.eagle.core.data.dispatch.DispatchAdasAutoPilotLocReceiverBean.DISPATCH_TYPE_STOP;
|
||||
|
||||
import android.content.Context;
|
||||
|
||||
import com.mogo.commons.voice.AIAssist;
|
||||
import com.mogo.eagle.core.data.dispatch.DispatchAdasAutoPilotLocReceiverBean;
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.Logger;
|
||||
|
||||
public class DispatchDialogManager {
|
||||
|
||||
private static final String TAG = "DispatchDialogManager";
|
||||
private static volatile DispatchDialogManager manager;
|
||||
private static final byte[] obj = new byte[0];
|
||||
private final Context mContext;
|
||||
private IDispatchRemindClickListener mListener;
|
||||
private DispatchBaseDialog dialog;
|
||||
|
||||
private DispatchDialogManager(Context context) {
|
||||
mContext = context;
|
||||
}
|
||||
|
||||
public static DispatchDialogManager getInstance(Context context) {
|
||||
if (manager == null) {
|
||||
synchronized (obj) {
|
||||
if (manager == null) {
|
||||
manager = new DispatchDialogManager(context);
|
||||
}
|
||||
}
|
||||
}
|
||||
return manager;
|
||||
}
|
||||
|
||||
public void addIDispatchRemindListener(IDispatchRemindClickListener listener) {
|
||||
if (listener == null) {
|
||||
Logger.d(TAG, "addIDispatchRemindListener listener is null");
|
||||
return;
|
||||
}
|
||||
this.mListener = listener;
|
||||
}
|
||||
|
||||
public boolean isShowing() {
|
||||
return dialog != null && dialog.isShowing();
|
||||
}
|
||||
|
||||
public void showDialog(DispatchAdasAutoPilotLocReceiverBean msgData) {
|
||||
if (msgData == null) {
|
||||
return;
|
||||
}
|
||||
switch (msgData.getSource()) {
|
||||
case DISPATCH_SOURCE_HENGYANG:
|
||||
dispatchHengYang(msgData);
|
||||
break;
|
||||
case DISPATCH_SOURCE_EZHOU:
|
||||
dispatchEZhou(msgData);
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private void dispatchHengYang(DispatchAdasAutoPilotLocReceiverBean msgData) {
|
||||
if (msgData.getType() == DISPATCH_TYPE_START) { //衡阳只有开始调度
|
||||
if (dialog != null && dialog.isShowing()) { //避免下发两次
|
||||
return;
|
||||
}
|
||||
if (dialog == null) {
|
||||
dialog = new DispatchCarsDialog(mContext);
|
||||
}
|
||||
dialog.addIDispatchRemindListener(mListener);
|
||||
dialog.showDialog(msgData);
|
||||
}
|
||||
}
|
||||
|
||||
private void dispatchEZhou(DispatchAdasAutoPilotLocReceiverBean msgData) {
|
||||
switch (msgData.getType()) {
|
||||
case DISPATCH_TYPE_START:
|
||||
if (dialog != null && dialog.isShowing()) { //避免下发两次
|
||||
return;
|
||||
}
|
||||
if (dialog == null) {
|
||||
dialog = new DispatchAirportDialog(mContext);
|
||||
}
|
||||
dialog.addIDispatchRemindListener(mListener);
|
||||
dialog.showDialog(msgData);
|
||||
break;
|
||||
case DISPATCH_TYPE_STOP:
|
||||
//语音播报
|
||||
voice();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
private void voice() {
|
||||
AIAssist.getInstance(mContext).speakTTSVoice("请立即停车!请立即停车!");
|
||||
}
|
||||
|
||||
public void releaseDialog() {
|
||||
if (dialog != null) {
|
||||
if (dialog.isShowing()) {
|
||||
dialog.dismiss();
|
||||
}
|
||||
dialog = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,50 @@
|
||||
package com.zhjt.dispatch;
|
||||
|
||||
import android.content.BroadcastReceiver;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.Logger;
|
||||
|
||||
public class DispatchTestPanelBroadCastReceiver extends BroadcastReceiver {
|
||||
|
||||
private static final String TAG = "DispatchTestPanelBroadCastReceiver";
|
||||
|
||||
/**
|
||||
* Adas测试控制面板广播Action
|
||||
*/
|
||||
public static final String BROADCAST_TEST_PANEL_CONTROL_TYPE_EXTRA_KEY = "sceneType";
|
||||
|
||||
@Override
|
||||
public void onReceive(Context context, Intent intent) {
|
||||
try {
|
||||
int sceneType = intent.getIntExtra(BROADCAST_TEST_PANEL_CONTROL_TYPE_EXTRA_KEY, 0);
|
||||
Logger.d(TAG, "textPanelOpenType:" + sceneType);
|
||||
// 分发场景
|
||||
dispatchSceneTest(sceneType);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 分发处理场景
|
||||
*
|
||||
* @param sceneType 场景类型
|
||||
*/
|
||||
private void dispatchSceneTest(int sceneType) {
|
||||
Logger.d(TAG, "sceneType=" + sceneType);
|
||||
if (sceneType == 0) {
|
||||
DispatchAutoPilotManager.getInstance().testEZhouStart();
|
||||
} else if (sceneType == 1) {
|
||||
DispatchAutoPilotManager.getInstance().testEZhouStop();
|
||||
} else if (sceneType == 2) {
|
||||
DispatchAutoPilotManager.getInstance().testHengYangStart();
|
||||
} else if (sceneType == 3) { //验证自动驾驶调度上报接口
|
||||
DispatchAutoPilotManager.getInstance().testDispatchResultUpload();
|
||||
} else if (sceneType == 4) { //更改自动驾驶状态上报
|
||||
DispatchAutoPilotManager.getInstance().testAutopilotStatus();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
package com.zhjt.dispatch;
|
||||
|
||||
|
||||
import com.mogo.eagle.core.function.api.base.IMoGoFunctionServerProvider;
|
||||
|
||||
public interface IDispatchProvider extends IMoGoFunctionServerProvider {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
package com.zhjt.dispatch;
|
||||
|
||||
public interface IDispatchRemindClickListener {
|
||||
|
||||
void affirm();
|
||||
|
||||
void cancel(boolean manualTrigger);
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
package com.zhjt.dispatch;
|
||||
|
||||
import android.content.Context;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
|
||||
import com.alibaba.android.arouter.facade.annotation.Route;
|
||||
import com.mogo.eagle.core.data.constants.MogoServicePaths;
|
||||
|
||||
@Route(path = MogoServicePaths.PATH_AI_DISPATCH)
|
||||
public class MoGoDispatchProvider implements IDispatchProvider{
|
||||
|
||||
@NonNull
|
||||
@Override
|
||||
public String getFunctionName() {
|
||||
return "MoGoDispatchProvider";
|
||||
}
|
||||
|
||||
@Override
|
||||
public void init(Context context) {
|
||||
DispatchAutoPilotManager.getInstance().initSocket(context);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDestroy() {
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,162 @@
|
||||
package com.zhjt.dispatch.model;
|
||||
|
||||
import static com.mogo.commons.context.ContextHolderUtil.getContext;
|
||||
import static com.mogo.module.common.constants.HostConst.DATA_SERVICE_HOST;
|
||||
|
||||
import com.mogo.cloud.passport.MoGoAiCloudClientConfig;
|
||||
import com.mogo.eagle.core.data.BaseData;
|
||||
import com.mogo.eagle.core.data.autopilot.AutopilotRouteInfo;
|
||||
import com.mogo.eagle.core.data.autopilot.AutopilotStatus;
|
||||
import com.mogo.eagle.core.data.dispatch.ReportDispatchResult;
|
||||
import com.mogo.eagle.core.data.dispatch.ReportedRoute;
|
||||
import com.mogo.eagle.core.network.RequestOptions;
|
||||
import com.mogo.eagle.core.network.SubscribeImpl;
|
||||
import com.mogo.eagle.core.network.utils.GsonUtil;
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.Logger;
|
||||
import com.mogo.module.common.MogoApisHandler;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import io.reactivex.android.schedulers.AndroidSchedulers;
|
||||
import io.reactivex.schedulers.Schedulers;
|
||||
|
||||
|
||||
public class DispatchServiceModel {
|
||||
|
||||
private static final String TAG = "DispatchServiceModel";
|
||||
private static volatile DispatchServiceModel instance;
|
||||
private static final byte[] obj = new byte[0];
|
||||
|
||||
public static final int DISPATCH_RESULT_AFFIRM = 0;
|
||||
public static final int DISPATCH_RESULT_MANUAL_CANCEL = 1;
|
||||
public static final int DISPATCH_RESULT_TIMER_CANCEL = 2;
|
||||
|
||||
private final IDispatchAdasApiService mAdasApiService;
|
||||
|
||||
private DispatchServiceModel() {
|
||||
mAdasApiService = MogoApisHandler.getInstance().getApis().getNetworkApi().create(IDispatchAdasApiService.class, DATA_SERVICE_HOST);
|
||||
}
|
||||
|
||||
public static DispatchServiceModel getInstance() {
|
||||
if (instance == null) {
|
||||
synchronized (obj) {
|
||||
if (instance == null) {
|
||||
instance = new DispatchServiceModel();
|
||||
}
|
||||
}
|
||||
}
|
||||
return instance;
|
||||
}
|
||||
|
||||
/**
|
||||
* 上报自动驾驶状态
|
||||
*/
|
||||
public void uploadAutopilotStatus(int state, String reason) {
|
||||
AutopilotStatus autopilotStatus = new AutopilotStatus();
|
||||
autopilotStatus.setAction("autopilotstate");
|
||||
AutopilotStatus.ValuesBean valuesBean = new AutopilotStatus.ValuesBean();
|
||||
valuesBean.setState(state);
|
||||
valuesBean.setReason(reason);
|
||||
autopilotStatus.setValues(valuesBean);
|
||||
String sn = MoGoAiCloudClientConfig.getInstance().getSn();
|
||||
|
||||
ReportedRoute reportedRoute = new ReportedRoute(sn, autopilotStatus.getValues());
|
||||
Map<String, Object> map = new HashMap<>();
|
||||
map.put("sn", sn);
|
||||
map.put("data", GsonUtil.jsonFromObject(reportedRoute));
|
||||
mAdasApiService.uploadAutopilotState(map)
|
||||
.subscribeOn(Schedulers.io())
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.subscribe(new SubscribeImpl<BaseData>(RequestOptions.create(getContext())) {
|
||||
@Override
|
||||
public void onNext(BaseData o) {
|
||||
super.onNext(o);
|
||||
//Logger.d(TAG, "uploadAutopilotStatus success");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(Throwable e) {
|
||||
super.onError(e);
|
||||
Logger.d(TAG, "uploadAutopilotStatus error : " + e.getMessage());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSuccess(BaseData o) {
|
||||
super.onSuccess(o);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 上报自动驾驶路线
|
||||
*
|
||||
* @param list 路线集合
|
||||
*/
|
||||
public void uploadAutopilotRoute(List<AutopilotRouteInfo.RouteModels> list) {
|
||||
String sn = MoGoAiCloudClientConfig.getInstance().getSn();
|
||||
ReportedRoute reportedRoute = new ReportedRoute(sn, GsonUtil.jsonFromObject(list));
|
||||
Map<String, Object> map = new HashMap<>();
|
||||
map.put("sn", sn);
|
||||
map.put("data", GsonUtil.jsonFromObject(reportedRoute));
|
||||
mAdasApiService.uploadAutopilotRoute(map)
|
||||
.subscribeOn(Schedulers.io())
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.subscribe(new SubscribeImpl<BaseData>(RequestOptions.create(getContext())) {
|
||||
@Override
|
||||
public void onNext(BaseData o) {
|
||||
super.onNext(o);
|
||||
Logger.d(TAG, "uploadAutopilotRoute success");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(Throwable e) {
|
||||
super.onError(e);
|
||||
Logger.d(TAG, "uploadAutopilotRoute error : " + e.getMessage());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSuccess(BaseData o) {
|
||||
super.onSuccess(o);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 上报调度处理结果
|
||||
*
|
||||
* @param dispatchResultType int
|
||||
*/
|
||||
public void dispatchResultUpload(int dispatchResultType, IDispatch dispatch) {
|
||||
String sn = MoGoAiCloudClientConfig.getInstance().getSn();
|
||||
ReportDispatchResult reportDispatchResult = new ReportDispatchResult(sn, dispatchResultType);
|
||||
Map<String, Object> map = new HashMap<>();
|
||||
map.put("sn", sn);
|
||||
map.put("data", GsonUtil.jsonFromObject(reportDispatchResult));
|
||||
mAdasApiService.uploadDispatchResult(map)
|
||||
.subscribeOn(Schedulers.io())
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.subscribe(new SubscribeImpl<BaseData>(RequestOptions.create(getContext())) {
|
||||
@Override
|
||||
public void onNext(BaseData o) {
|
||||
super.onNext(o);
|
||||
Logger.d(TAG, "dispatchResultUpload success");
|
||||
dispatch.onSuccess();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(Throwable e) {
|
||||
super.onError(e);
|
||||
Logger.d(TAG, "dispatchResultUpload error : " + e.getMessage());
|
||||
dispatch.onError(e.getMessage());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSuccess(BaseData o) {
|
||||
super.onSuccess(o);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
package com.zhjt.dispatch.model;
|
||||
|
||||
public interface IDispatch {
|
||||
|
||||
void onSuccess();
|
||||
|
||||
void onError(String msg);
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
package com.zhjt.dispatch.model;
|
||||
|
||||
import com.mogo.eagle.core.data.BaseData;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
import io.reactivex.Observable;
|
||||
import retrofit2.http.FieldMap;
|
||||
import retrofit2.http.FormUrlEncoded;
|
||||
import retrofit2.http.POST;
|
||||
|
||||
public interface IDispatchAdasApiService {
|
||||
|
||||
/**
|
||||
* 上报自动驾驶路径 服务于业务调度
|
||||
*
|
||||
* @param parameters map
|
||||
* @return {@link BaseData}
|
||||
*/
|
||||
@FormUrlEncoded
|
||||
@POST("/dataService/autoDriver/receiveCarPreSetPath")
|
||||
Observable<BaseData> uploadAutopilotRoute(@FieldMap Map<String, Object> parameters);
|
||||
|
||||
/**
|
||||
* 上报自动驾驶调度处理结果 服务于业务调度
|
||||
*
|
||||
* @param parameters map
|
||||
* @return {@link BaseData}
|
||||
*/
|
||||
@FormUrlEncoded
|
||||
@POST("/dataService/autoDriver/receiverDestSiteResult")
|
||||
Observable<BaseData> uploadDispatchResult(@FieldMap Map<String, Object> parameters);
|
||||
|
||||
/**
|
||||
* 上报自动驾驶状态 服务于业务调度
|
||||
*
|
||||
* @param parameters map
|
||||
* @return {@link BaseData}
|
||||
*/
|
||||
@FormUrlEncoded
|
||||
@POST("/dataService/autoDriver/receiveAutopilotState")
|
||||
Observable<BaseData> uploadAutopilotState(@FieldMap Map<String, Object> parameters);
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<solid android:color="@color/module_services_dispatch_bg" />
|
||||
<corners android:radius="@dimen/module_services_dispatch_airport_dialog_corner" />
|
||||
|
||||
</shape>
|
||||
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<solid android:color="@color/module_services_dispatch_affirm_bg" />
|
||||
<corners android:radius="@dimen/module_services_dispatch_airport_dialog_affirm_corner" />
|
||||
|
||||
</shape>
|
||||
@@ -0,0 +1,170 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="108dp"
|
||||
android:height="108dp"
|
||||
android:viewportWidth="108"
|
||||
android:viewportHeight="108">
|
||||
<path
|
||||
android:fillColor="#3DDC84"
|
||||
android:pathData="M0,0h108v108h-108z" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M9,0L9,108"
|
||||
android:strokeWidth="0.8"
|
||||
android:strokeColor="#33FFFFFF" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M19,0L19,108"
|
||||
android:strokeWidth="0.8"
|
||||
android:strokeColor="#33FFFFFF" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M29,0L29,108"
|
||||
android:strokeWidth="0.8"
|
||||
android:strokeColor="#33FFFFFF" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M39,0L39,108"
|
||||
android:strokeWidth="0.8"
|
||||
android:strokeColor="#33FFFFFF" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M49,0L49,108"
|
||||
android:strokeWidth="0.8"
|
||||
android:strokeColor="#33FFFFFF" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M59,0L59,108"
|
||||
android:strokeWidth="0.8"
|
||||
android:strokeColor="#33FFFFFF" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M69,0L69,108"
|
||||
android:strokeWidth="0.8"
|
||||
android:strokeColor="#33FFFFFF" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M79,0L79,108"
|
||||
android:strokeWidth="0.8"
|
||||
android:strokeColor="#33FFFFFF" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M89,0L89,108"
|
||||
android:strokeWidth="0.8"
|
||||
android:strokeColor="#33FFFFFF" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M99,0L99,108"
|
||||
android:strokeWidth="0.8"
|
||||
android:strokeColor="#33FFFFFF" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M0,9L108,9"
|
||||
android:strokeWidth="0.8"
|
||||
android:strokeColor="#33FFFFFF" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M0,19L108,19"
|
||||
android:strokeWidth="0.8"
|
||||
android:strokeColor="#33FFFFFF" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M0,29L108,29"
|
||||
android:strokeWidth="0.8"
|
||||
android:strokeColor="#33FFFFFF" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M0,39L108,39"
|
||||
android:strokeWidth="0.8"
|
||||
android:strokeColor="#33FFFFFF" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M0,49L108,49"
|
||||
android:strokeWidth="0.8"
|
||||
android:strokeColor="#33FFFFFF" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M0,59L108,59"
|
||||
android:strokeWidth="0.8"
|
||||
android:strokeColor="#33FFFFFF" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M0,69L108,69"
|
||||
android:strokeWidth="0.8"
|
||||
android:strokeColor="#33FFFFFF" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M0,79L108,79"
|
||||
android:strokeWidth="0.8"
|
||||
android:strokeColor="#33FFFFFF" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M0,89L108,89"
|
||||
android:strokeWidth="0.8"
|
||||
android:strokeColor="#33FFFFFF" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M0,99L108,99"
|
||||
android:strokeWidth="0.8"
|
||||
android:strokeColor="#33FFFFFF" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M19,29L89,29"
|
||||
android:strokeWidth="0.8"
|
||||
android:strokeColor="#33FFFFFF" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M19,39L89,39"
|
||||
android:strokeWidth="0.8"
|
||||
android:strokeColor="#33FFFFFF" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M19,49L89,49"
|
||||
android:strokeWidth="0.8"
|
||||
android:strokeColor="#33FFFFFF" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M19,59L89,59"
|
||||
android:strokeWidth="0.8"
|
||||
android:strokeColor="#33FFFFFF" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M19,69L89,69"
|
||||
android:strokeWidth="0.8"
|
||||
android:strokeColor="#33FFFFFF" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M19,79L89,79"
|
||||
android:strokeWidth="0.8"
|
||||
android:strokeColor="#33FFFFFF" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M29,19L29,89"
|
||||
android:strokeWidth="0.8"
|
||||
android:strokeColor="#33FFFFFF" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M39,19L39,89"
|
||||
android:strokeWidth="0.8"
|
||||
android:strokeColor="#33FFFFFF" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M49,19L49,89"
|
||||
android:strokeWidth="0.8"
|
||||
android:strokeColor="#33FFFFFF" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M59,19L59,89"
|
||||
android:strokeWidth="0.8"
|
||||
android:strokeColor="#33FFFFFF" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M69,19L69,89"
|
||||
android:strokeWidth="0.8"
|
||||
android:strokeColor="#33FFFFFF" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M79,19L79,89"
|
||||
android:strokeWidth="0.8"
|
||||
android:strokeColor="#33FFFFFF" />
|
||||
</vector>
|
||||
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
|
||||
<corners android:bottomLeftRadius="@dimen/module_services_dispatch_cars_dialog_corner"/>
|
||||
<solid android:color="@color/module_services_dispatch_cars_background"/>
|
||||
</shape>
|
||||
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<corners android:radius="@dimen/module_services_dispatch_cars_dialog_corner"/>
|
||||
<solid android:color="@color/module_services_dispatch_cars_background"/>
|
||||
</shape>
|
||||
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
|
||||
<corners android:bottomRightRadius="@dimen/module_services_dispatch_cars_dialog_corner"/>
|
||||
<solid android:color="@color/module_services_dispatch_cars_background"/>
|
||||
</shape>
|
||||
@@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval">
|
||||
<solid android:color="@color/module_services_dispatch_cars_count_down_bg"/>
|
||||
</shape>
|
||||
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
<solid android:color="@color/module_services_remind_background" />
|
||||
<corners android:bottomLeftRadius="@dimen/module_services_dispatch_cars_dialog_corner" />
|
||||
</shape>
|
||||
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
<solid android:color="@color/module_services_remind_background" />
|
||||
<corners android:bottomRightRadius="@dimen/module_services_dispatch_cars_dialog_corner" />
|
||||
</shape>
|
||||
@@ -0,0 +1,122 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="@dimen/module_services_dispatch_airport_dialog_width"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@drawable/bg_adas_dispatch">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/module_services_dispatch_dialog_title"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_centerHorizontal="true"
|
||||
android:layout_marginTop="@dimen/module_services_dispatch_airport_dialog_title_margin_top"
|
||||
android:text="@string/module_services_dispatch_dialog_title"
|
||||
android:textColor="@android:color/white"
|
||||
android:textSize="@dimen/module_services_dispatch_airport_dialog_title_size"
|
||||
android:textStyle="bold" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="@dimen/module_services_dispatch_airport_dialog_first_column_margin_left"
|
||||
android:layout_marginTop="@dimen/module_services_dispatch_airport_dialog_startloc_margin_top"
|
||||
android:text="@string/module_services_dispatch_dialog_start_loc"
|
||||
android:textSize="@dimen/module_services_dispatch_airport_dialog_next_level_title_size" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/module_services_dispatch_dialog_start_content"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="@dimen/module_services_dispatch_airport_dialog_first_column_margin_left"
|
||||
android:layout_marginTop="@dimen/module_services_dispatch_airport_dialog_startloc_content_margin_top"
|
||||
android:textColor="@android:color/white"
|
||||
android:textSize="@dimen/module_services_dispatch_airport_dialog_title_size"
|
||||
android:textStyle="bold" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="@dimen/module_services_dispatch_airport_dialog_first_column_margin_left"
|
||||
android:layout_marginTop="@dimen/module_services_dispatch_airport_dialog_endloc_margin_top"
|
||||
android:text="@string/module_services_dispatch_dialog_end_loc"
|
||||
android:textSize="@dimen/module_services_dispatch_airport_dialog_next_level_title_size" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/module_services_dispatch_dialog_end_content"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="@dimen/module_services_dispatch_airport_dialog_first_column_margin_left"
|
||||
android:layout_marginTop="@dimen/module_services_dispatch_airport_dialog_endloc_content_margin_top"
|
||||
android:textColor="@android:color/white"
|
||||
android:textSize="@dimen/module_services_dispatch_airport_dialog_title_size"
|
||||
android:textStyle="bold" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="@dimen/module_services_dispatch_airport_dialog_first_column_margin_left"
|
||||
android:layout_marginTop="@dimen/module_services_dispatch_airport_dialog_task_margin_top"
|
||||
android:text="@string/module_services_dispatch_dialog_task_info"
|
||||
android:textSize="@dimen/module_services_dispatch_airport_dialog_next_level_title_size" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/module_services_dispatch_dialog_task_content"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="@dimen/module_services_dispatch_airport_dialog_first_column_margin_left"
|
||||
android:layout_marginEnd="@dimen/module_services_dispatch_airport_dialog_first_column_margin_left"
|
||||
android:layout_marginTop="@dimen/module_services_dispatch_airport_dialog_task_content_margin_top"
|
||||
android:textColor="@android:color/white"
|
||||
android:textSize="@dimen/module_services_dispatch_airport_dialog_task_content_size" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="@dimen/module_services_dispatch_airport_dialog_last_column_margin_left"
|
||||
android:layout_marginTop="@dimen/module_services_dispatch_airport_dialog_startloc_margin_top"
|
||||
android:text="@string/module_services_dispatch_dialog_task_time"
|
||||
android:textSize="@dimen/module_services_dispatch_airport_dialog_next_level_title_size" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/module_services_dispatch_dialog_task_time"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="@dimen/module_services_dispatch_airport_dialog_last_column_margin_left"
|
||||
android:layout_marginTop="@dimen/module_services_dispatch_airport_dialog_startloc_content_margin_top"
|
||||
android:textColor="@android:color/white"
|
||||
android:textSize="@dimen/module_services_dispatch_airport_dialog_title_size"
|
||||
android:textStyle="bold" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="@dimen/module_services_dispatch_airport_dialog_last_column_margin_left"
|
||||
android:layout_marginTop="@dimen/module_services_dispatch_airport_dialog_endloc_margin_top"
|
||||
android:text="@string/module_services_dispatch_dialog_flight_info"
|
||||
android:textSize="@dimen/module_services_dispatch_airport_dialog_next_level_title_size" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/module_services_dispatch_dialog_flight_time"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="@dimen/module_services_dispatch_airport_dialog_last_column_margin_left"
|
||||
android:layout_marginTop="@dimen/module_services_dispatch_airport_dialog_endloc_content_margin_top"
|
||||
android:textColor="@android:color/white"
|
||||
android:textSize="@dimen/module_services_dispatch_airport_dialog_title_size"
|
||||
android:textStyle="bold" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/module_services_dispatch_dialog_confirm"
|
||||
android:layout_width="@dimen/module_services_dispatch_airport_dialog_affirm_width"
|
||||
android:layout_height="@dimen/module_services_dispatch_airport_dialog_affirm_height"
|
||||
android:layout_below="@+id/module_services_dispatch_dialog_task_content"
|
||||
android:layout_centerHorizontal="true"
|
||||
android:layout_marginTop="@dimen/module_services_dispatch_airport_dialog_margin_top"
|
||||
android:layout_marginBottom="@dimen/module_services_dispatch_airport_dialog_margin_bottom"
|
||||
android:background="@drawable/bg_adas_dispatch_affirm"
|
||||
android:gravity="center"
|
||||
android:text="@string/module_services_dispatch_dialog_affirm"
|
||||
android:textColor="@android:color/white"
|
||||
android:textSize="@dimen/module_services_dispatch_airport_dialog_title_size"
|
||||
android:textStyle="bold" />
|
||||
</RelativeLayout>
|
||||
@@ -0,0 +1,96 @@
|
||||
<?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="@dimen/module_services_dispatch_cars_dialog_width"
|
||||
android:layout_height="@dimen/module_services_dispatch_cars_dialog_height"
|
||||
android:background="@drawable/module_service_dispatch_cars_bg">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/module_adas_dispatch_remind_timer"
|
||||
android:layout_width="@dimen/module_services_dispatch_cars_dialog_timer_size"
|
||||
android:layout_height="@dimen/module_services_dispatch_cars_dialog_timer_size"
|
||||
android:layout_margin="@dimen/module_services_dispatch_cars_dialog_timer_margin"
|
||||
android:background="@drawable/module_service_dispatch_timer_bg"
|
||||
android:gravity="center"
|
||||
android:text="10"
|
||||
android:textColor="@color/module_services_dispatch_cars_count_down_txt"
|
||||
android:textSize="@dimen/module_services_dispatch_cars_dialog_timer_txt_size"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="@dimen/module_services_dispatch_cars_dialog_title_margin_top"
|
||||
android:text="@string/module_services_dispatch_cars_remind_title"
|
||||
android:textColor="@android:color/white"
|
||||
android:textSize="@dimen/module_services_dispatch_cars_dialog_title_size"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="@dimen/module_services_dispatch_cars_dialog_content_margin_top"
|
||||
android:text="@string/module_services_dispatch_cars_remind_content"
|
||||
android:textColor="@android:color/white"
|
||||
android:textSize="@dimen/module_services_dispatch_cars_dialog_content_size"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/module_adas_dispatch_remind_loc"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="@dimen/module_services_dispatch_cars_dialog_loc_margin_top"
|
||||
android:maxLines="1"
|
||||
android:textColor="@color/module_services_dispatch_cars_text_loc"
|
||||
android:textSize="@dimen/module_services_dispatch_cars_dialog_loc_size"
|
||||
android:textStyle="bold"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<View
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="1px"
|
||||
android:background="@color/module_services_dispatch_cars_line"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintBottom_toTopOf="@+id/module_adas_dispatch_remind_affirm"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintRight_toRightOf="parent" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/module_adas_dispatch_remind_affirm"
|
||||
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"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintLeft_toLeftOf="parent" />
|
||||
|
||||
<View
|
||||
android:layout_width="2px"
|
||||
android:layout_height="@dimen/module_services_dispatch_cars_dialog_line_margin_bottom"
|
||||
android:layout_marginStart="@dimen/module_services_dispatch_cars_dialog_btn_width"
|
||||
android:background="@color/module_services_dispatch_cars_line"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintLeft_toLeftOf="parent" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/module_adas_dispatch_remind_cancel"
|
||||
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: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" />
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
@@ -0,0 +1,40 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<!--鄂州机场调度Dialog-->
|
||||
<dimen name="module_services_dispatch_airport_dialog_width">1263px</dimen>
|
||||
<dimen name="module_services_dispatch_airport_dialog_height">1173px</dimen>
|
||||
<dimen name="module_services_dispatch_airport_dialog_corner">32px</dimen>
|
||||
<dimen name="module_services_dispatch_airport_dialog_next_level_title_size">38px</dimen>
|
||||
<dimen name="module_services_dispatch_airport_dialog_title_size">48px</dimen>
|
||||
<dimen name="module_services_dispatch_airport_dialog_task_content_size">42px</dimen>
|
||||
<dimen name="module_services_dispatch_airport_dialog_title_margin_top">55px</dimen>
|
||||
<dimen name="module_services_dispatch_airport_dialog_startloc_margin_top">219px</dimen>
|
||||
<dimen name="module_services_dispatch_airport_dialog_startloc_content_margin_top">288px</dimen>
|
||||
<dimen name="module_services_dispatch_airport_dialog_endloc_margin_top">415px</dimen>
|
||||
<dimen name="module_services_dispatch_airport_dialog_endloc_content_margin_top">484px</dimen>
|
||||
<dimen name="module_services_dispatch_airport_dialog_task_margin_top">621px</dimen>
|
||||
<dimen name="module_services_dispatch_airport_dialog_task_content_margin_top">690px</dimen>
|
||||
<dimen name="module_services_dispatch_airport_dialog_first_column_margin_left">100px</dimen>
|
||||
<dimen name="module_services_dispatch_airport_dialog_last_column_margin_left">852px</dimen>
|
||||
<dimen name="module_services_dispatch_airport_dialog_margin_top">86px</dimen>
|
||||
<dimen name="module_services_dispatch_airport_dialog_margin_bottom">80px</dimen>
|
||||
<dimen name="module_services_dispatch_airport_dialog_affirm_width">700px</dimen>
|
||||
<dimen name="module_services_dispatch_airport_dialog_affirm_height">140px</dimen>
|
||||
<dimen name="module_services_dispatch_airport_dialog_affirm_corner">70px</dimen>
|
||||
|
||||
<!--衡阳小巴调度Dialog-->
|
||||
<dimen name="module_services_dispatch_cars_dialog_width">950px</dimen>
|
||||
<dimen name="module_services_dispatch_cars_dialog_height">540px</dimen>
|
||||
<dimen name="module_services_dispatch_cars_dialog_corner">32px</dimen>
|
||||
<dimen name="module_services_dispatch_cars_dialog_title_size">48px</dimen>
|
||||
<dimen name="module_services_dispatch_cars_dialog_title_margin_top">55px</dimen>
|
||||
<dimen name="module_services_dispatch_cars_dialog_content_size">38px</dimen>
|
||||
<dimen name="module_services_dispatch_cars_dialog_content_margin_top">179px</dimen>
|
||||
<dimen name="module_services_dispatch_cars_dialog_loc_size">54px</dimen>
|
||||
<dimen name="module_services_dispatch_cars_dialog_loc_margin_top">251px</dimen>
|
||||
<dimen name="module_services_dispatch_cars_dialog_line_margin_bottom">152px</dimen>
|
||||
<dimen name="module_services_dispatch_cars_dialog_btn_width">474px</dimen>
|
||||
<dimen name="module_services_dispatch_cars_dialog_timer_margin">20px</dimen>
|
||||
<dimen name="module_services_dispatch_cars_dialog_timer_size">46px</dimen>
|
||||
<dimen name="module_services_dispatch_cars_dialog_timer_txt_size">24px</dimen>
|
||||
</resources>
|
||||
@@ -0,0 +1,40 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<!--鄂州机场调度Dialog-->
|
||||
<dimen name="module_services_dispatch_airport_dialog_width">947px</dimen>
|
||||
<dimen name="module_services_dispatch_airport_dialog_height">880px</dimen>
|
||||
<dimen name="module_services_dispatch_airport_dialog_corner">24px</dimen>
|
||||
<dimen name="module_services_dispatch_airport_dialog_next_level_title_size">28px</dimen>
|
||||
<dimen name="module_services_dispatch_airport_dialog_title_size">36px</dimen>
|
||||
<dimen name="module_services_dispatch_airport_dialog_task_content_size">30px</dimen>
|
||||
<dimen name="module_services_dispatch_airport_dialog_title_margin_top">41px</dimen>
|
||||
<dimen name="module_services_dispatch_airport_dialog_startloc_margin_top">164px</dimen>
|
||||
<dimen name="module_services_dispatch_airport_dialog_startloc_content_margin_top">216px</dimen>
|
||||
<dimen name="module_services_dispatch_airport_dialog_endloc_margin_top">311px</dimen>
|
||||
<dimen name="module_services_dispatch_airport_dialog_endloc_content_margin_top">363px</dimen>
|
||||
<dimen name="module_services_dispatch_airport_dialog_task_margin_top">466px</dimen>
|
||||
<dimen name="module_services_dispatch_airport_dialog_task_content_margin_top">519px</dimen>
|
||||
<dimen name="module_services_dispatch_airport_dialog_first_column_margin_left">125px</dimen>
|
||||
<dimen name="module_services_dispatch_airport_dialog_last_column_margin_left">639px</dimen>
|
||||
<dimen name="module_services_dispatch_airport_dialog_margin_top">100px</dimen>
|
||||
<dimen name="module_services_dispatch_airport_dialog_margin_bottom">60px</dimen>
|
||||
<dimen name="module_services_dispatch_airport_dialog_affirm_width">525px</dimen>
|
||||
<dimen name="module_services_dispatch_airport_dialog_affirm_height">105px</dimen>
|
||||
<dimen name="module_services_dispatch_airport_dialog_affirm_corner">52px</dimen>
|
||||
|
||||
<!--衡阳小巴调度Dialog-->
|
||||
<dimen name="module_services_dispatch_cars_dialog_width">712px</dimen>
|
||||
<dimen name="module_services_dispatch_cars_dialog_height">405px</dimen>
|
||||
<dimen name="module_services_dispatch_cars_dialog_corner">24px</dimen>
|
||||
<dimen name="module_services_dispatch_cars_dialog_title_size">36px</dimen>
|
||||
<dimen name="module_services_dispatch_cars_dialog_title_margin_top">41px</dimen>
|
||||
<dimen name="module_services_dispatch_cars_dialog_content_size">28px</dimen>
|
||||
<dimen name="module_services_dispatch_cars_dialog_content_margin_top">134px</dimen>
|
||||
<dimen name="module_services_dispatch_cars_dialog_loc_size">40px</dimen>
|
||||
<dimen name="module_services_dispatch_cars_dialog_loc_margin_top">188px</dimen>
|
||||
<dimen name="module_services_dispatch_cars_dialog_line_margin_bottom">114px</dimen>
|
||||
<dimen name="module_services_dispatch_cars_dialog_btn_width">355px</dimen>
|
||||
<dimen name="module_services_dispatch_cars_dialog_timer_margin">15px</dimen>
|
||||
<dimen name="module_services_dispatch_cars_dialog_timer_size">35px</dimen>
|
||||
<dimen name="module_services_dispatch_cars_dialog_timer_txt_size">18px</dimen>
|
||||
</resources>
|
||||
@@ -0,0 +1,13 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<color name="module_services_dispatch_bg">#E63B4577</color>
|
||||
<color name="module_services_dispatch_affirm_bg">#3E7BFE</color>
|
||||
|
||||
<color name="module_services_dispatch_cars_text_loc">#1F9BFE</color>
|
||||
<color name="module_services_dispatch_cars_background">#E63B4577</color>
|
||||
<color name="module_services_dispatch_cars_count_down_txt">#8E9DD4</color>
|
||||
<color name="module_services_dispatch_cars_count_down_bg">#4D000000</color>
|
||||
<color name="module_services_dispatch_cars_line">#66B8BFE8</color>
|
||||
<color name="module_services_dispatch_cars_cancel">#AFB3C7</color>
|
||||
<color name="module_services_remind_background">#E63B4577</color>
|
||||
</resources>
|
||||
@@ -0,0 +1,39 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
|
||||
<dimen name="module_services_dispatch_airport_dialog_width">1263px</dimen>
|
||||
<dimen name="module_services_dispatch_airport_dialog_height">1173px</dimen>
|
||||
<dimen name="module_services_dispatch_airport_dialog_corner">32px</dimen>
|
||||
<dimen name="module_services_dispatch_airport_dialog_next_level_title_size">38px</dimen>
|
||||
<dimen name="module_services_dispatch_airport_dialog_title_size">48px</dimen>
|
||||
<dimen name="module_services_dispatch_airport_dialog_task_content_size">42px</dimen>
|
||||
<dimen name="module_services_dispatch_airport_dialog_title_margin_top">55px</dimen>
|
||||
<dimen name="module_services_dispatch_airport_dialog_startloc_margin_top">219px</dimen>
|
||||
<dimen name="module_services_dispatch_airport_dialog_startloc_content_margin_top">288px</dimen>
|
||||
<dimen name="module_services_dispatch_airport_dialog_endloc_margin_top">415px</dimen>
|
||||
<dimen name="module_services_dispatch_airport_dialog_endloc_content_margin_top">484px</dimen>
|
||||
<dimen name="module_services_dispatch_airport_dialog_task_margin_top">621px</dimen>
|
||||
<dimen name="module_services_dispatch_airport_dialog_task_content_margin_top">690px</dimen>
|
||||
<dimen name="module_services_dispatch_airport_dialog_first_column_margin_left">100px</dimen>
|
||||
<dimen name="module_services_dispatch_airport_dialog_last_column_margin_left">852px</dimen>
|
||||
<dimen name="module_services_dispatch_airport_dialog_margin_top">86px</dimen>
|
||||
<dimen name="module_services_dispatch_airport_dialog_margin_bottom">80px</dimen>
|
||||
<dimen name="module_services_dispatch_airport_dialog_affirm_width">700px</dimen>
|
||||
<dimen name="module_services_dispatch_airport_dialog_affirm_height">140px</dimen>
|
||||
<dimen name="module_services_dispatch_airport_dialog_affirm_corner">70px</dimen>
|
||||
|
||||
<dimen name="module_services_dispatch_cars_dialog_width">950px</dimen>
|
||||
<dimen name="module_services_dispatch_cars_dialog_height">540px</dimen>
|
||||
<dimen name="module_services_dispatch_cars_dialog_corner">32px</dimen>
|
||||
<dimen name="module_services_dispatch_cars_dialog_title_size">48px</dimen>
|
||||
<dimen name="module_services_dispatch_cars_dialog_title_margin_top">55px</dimen>
|
||||
<dimen name="module_services_dispatch_cars_dialog_content_size">38px</dimen>
|
||||
<dimen name="module_services_dispatch_cars_dialog_content_margin_top">179px</dimen>
|
||||
<dimen name="module_services_dispatch_cars_dialog_loc_size">54px</dimen>
|
||||
<dimen name="module_services_dispatch_cars_dialog_loc_margin_top">251px</dimen>
|
||||
<dimen name="module_services_dispatch_cars_dialog_line_margin_bottom">152px</dimen>
|
||||
<dimen name="module_services_dispatch_cars_dialog_btn_width">474.5px</dimen>
|
||||
<dimen name="module_services_dispatch_cars_dialog_timer_margin">20px</dimen>
|
||||
<dimen name="module_services_dispatch_cars_dialog_timer_size">46px</dimen>
|
||||
<dimen name="module_services_dispatch_cars_dialog_timer_txt_size">24px</dimen>
|
||||
</resources>
|
||||
@@ -0,0 +1,14 @@
|
||||
<resources>
|
||||
<string name="module_services_dispatch_dialog_title">您有新的工作任务</string>
|
||||
<string name="module_services_dispatch_dialog_start_loc">开始地点:</string>
|
||||
<string name="module_services_dispatch_dialog_end_loc">结束地点:</string>
|
||||
<string name="module_services_dispatch_dialog_task_time">任务时间:</string>
|
||||
<string name="module_services_dispatch_dialog_task_info">任务内容:</string>
|
||||
<string name="module_services_dispatch_dialog_flight_info">航班信息:</string>
|
||||
<string name="module_services_dispatch_dialog_affirm">接受任务</string>
|
||||
|
||||
<string name="module_services_dispatch_cars_remind_title">调度确认</string>
|
||||
<string name="module_services_dispatch_cars_remind_content">车辆将开启自动驾驶,并行驶至:</string>
|
||||
<string name="module_services_dispatch_cars_affirm">确认</string>
|
||||
<string name="module_services_dispatch_cars_cancel">取消</string>
|
||||
</resources>
|
||||
@@ -11,7 +11,7 @@ import com.mogo.commons.AbsMogoApplication
|
||||
import com.mogo.commons.debug.DebugConfig
|
||||
import com.mogo.eagle.core.data.app.AppConfigInfo
|
||||
import com.mogo.eagle.core.data.autopilot.*
|
||||
import com.mogo.eagle.core.data.chain.ChainConstant
|
||||
import com.mogo.eagle.core.data.deva.chain.ChainConstant
|
||||
import com.mogo.eagle.core.data.config.FunctionBuildConfig
|
||||
import com.mogo.eagle.core.data.constants.MoGoConfig
|
||||
import com.mogo.eagle.core.data.enums.TrafficTypeEnum
|
||||
|
||||
@@ -321,6 +321,8 @@ public abstract class MainMoGoApplication extends AbsMogoApplication {
|
||||
MogoModulePaths.addModuleFunctionServer(new MogoModule(MogoServicePaths.PATH_AI_MONITORING, "IMoGoMonitoringProvider"));
|
||||
// 云公告发布
|
||||
MogoModulePaths.addModuleFunctionServer(new MogoModule(MogoServicePaths.PATH_AI_NOTICE, "IMoGoNoticeProvider"));
|
||||
// 调度
|
||||
MogoModulePaths.addModuleFunctionServer(new MogoModule(MogoServicePaths.PATH_AI_DISPATCH, "IDispatchProvider"));
|
||||
// V2X 模块
|
||||
MogoModulePaths.addBaseModule(new MogoModule(MogoServicePaths.PATH_V2X_MODULE, "V2XProvider"));
|
||||
// 自动驾驶系统检测模块
|
||||
|
||||
@@ -1,18 +0,0 @@
|
||||
/**
|
||||
* Automatically generated file. DO NOT MODIFY
|
||||
*/
|
||||
package com.mogo.eagle.core.function.smp;
|
||||
|
||||
public final class BuildConfig {
|
||||
public static final boolean DEBUG = Boolean.parseBoolean("true");
|
||||
public static final String LIBRARY_PACKAGE_NAME = "com.mogo.eagle.core.function.smp";
|
||||
/**
|
||||
* @deprecated APPLICATION_ID is misleading in libraries. For the library package name use LIBRARY_PACKAGE_NAME
|
||||
*/
|
||||
@Deprecated
|
||||
public static final String APPLICATION_ID = "com.mogo.eagle.core.function.smp";
|
||||
public static final String BUILD_TYPE = "debug";
|
||||
public static final String FLAVOR = "";
|
||||
public static final int VERSION_CODE = 1;
|
||||
public static final String VERSION_NAME = "0.0.58.10";
|
||||
}
|
||||
@@ -1,18 +0,0 @@
|
||||
package com.alibaba.android.arouter.routes;
|
||||
|
||||
import com.alibaba.android.arouter.facade.enums.RouteType;
|
||||
import com.alibaba.android.arouter.facade.model.RouteMeta;
|
||||
import com.alibaba.android.arouter.facade.template.IRouteGroup;
|
||||
import com.mogo.eagle.core.function.smp.SmallMapFragment;
|
||||
import java.lang.Override;
|
||||
import java.lang.String;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* DO NOT EDIT THIS FILE!!! IT WAS GENERATED BY AROUTER. */
|
||||
public class ARouter$$Group$$smp_ui implements IRouteGroup {
|
||||
@Override
|
||||
public void loadInto(Map<String, RouteMeta> atlas) {
|
||||
atlas.put("/smp_ui/", RouteMeta.build(RouteType.FRAGMENT, SmallMapFragment.class, "/smp_ui/", "smp_ui", null, -1, -2147483648));
|
||||
}
|
||||
}
|
||||
@@ -1,15 +0,0 @@
|
||||
package com.alibaba.android.arouter.routes;
|
||||
|
||||
import com.alibaba.android.arouter.facade.model.RouteMeta;
|
||||
import com.alibaba.android.arouter.facade.template.IProviderGroup;
|
||||
import java.lang.Override;
|
||||
import java.lang.String;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* DO NOT EDIT THIS FILE!!! IT WAS GENERATED BY AROUTER. */
|
||||
public class ARouter$$Providers$$mogocorefunctionsmp implements IProviderGroup {
|
||||
@Override
|
||||
public void loadInto(Map<String, RouteMeta> providers) {
|
||||
}
|
||||
}
|
||||
@@ -1,17 +0,0 @@
|
||||
package com.alibaba.android.arouter.routes;
|
||||
|
||||
import com.alibaba.android.arouter.facade.template.IRouteGroup;
|
||||
import com.alibaba.android.arouter.facade.template.IRouteRoot;
|
||||
import java.lang.Class;
|
||||
import java.lang.Override;
|
||||
import java.lang.String;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* DO NOT EDIT THIS FILE!!! IT WAS GENERATED BY AROUTER. */
|
||||
public class ARouter$$Root$$mogocorefunctionsmp implements IRouteRoot {
|
||||
@Override
|
||||
public void loadInto(Map<String, Class<? extends IRouteGroup>> routes) {
|
||||
routes.put("smp_ui", ARouter$$Group$$smp_ui.class);
|
||||
}
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
package="com.mogo.eagle.core.function.smp"
|
||||
android:versionCode="1"
|
||||
android:versionName="0.0.58.10" >
|
||||
|
||||
<uses-sdk
|
||||
android:minSdkVersion="19"
|
||||
android:targetSdkVersion="19" />
|
||||
|
||||
</manifest>
|
||||
@@ -1 +0,0 @@
|
||||
[{"outputType":{"type":"AAPT_FRIENDLY_MERGED_MANIFESTS"},"apkData":{"type":"MAIN","splits":[],"versionCode":1,"versionName":"0.0.58.10","enabled":true,"outputFile":"mogo-core-function-smp-debug.aar","fullName":"debug","baseName":"debug"},"path":"AndroidManifest.xml","properties":{"packageId":"com.mogo.eagle.core.function.smp","split":""}}]
|
||||
@@ -1 +0,0 @@
|
||||
{}
|
||||
@@ -1,2 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<merger version="3"><dataSet config="main" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:<dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/arrowem/Documents/androidProject/Launcher/core/mogo-core-data/src/main/jniLibs"/></dataSet><dataSet config="debug" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:<dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/arrowem/Documents/androidProject/Launcher/core/mogo-core-data/src/debug/jniLibs"/></dataSet></merger>
|
||||
@@ -1,2 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<merger version="3"><dataSet config="main" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:<dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/arrowem/Documents/androidProject/Launcher/core/mogo-core-function-call/src/main/shaders"/></dataSet><dataSet config="debug" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:<dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/arrowem/Documents/androidProject/Launcher/core/mogo-core-function-call/src/debug/shaders"/></dataSet></merger>
|
||||
@@ -1,2 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<merger version="3"><dataSet config="main" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:<dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/arrowem/Documents/androidProject/Launcher/core/function-impl/mogo-core-function-smp/src/main/assets"><file name="small_map_style_extra.data" path="/Users/arrowem/Documents/androidProject/Launcher/core/function-impl/mogo-core-function-smp/src/main/assets/small_map_style_extra.data"/><file name="small_map_style.data" path="/Users/arrowem/Documents/androidProject/Launcher/core/function-impl/mogo-core-function-smp/src/main/assets/small_map_style.data"/></source><source path="/Users/arrowem/Documents/androidProject/Launcher/core/function-impl/mogo-core-function-smp/build/intermediates/shader_assets/debug/compileDebugShaders/out"/></dataSet><dataSet config="debug" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:<dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/arrowem/Documents/androidProject/Launcher/core/function-impl/mogo-core-function-smp/src/debug/assets"/></dataSet></merger>
|
||||
@@ -1,13 +0,0 @@
|
||||
#Wed Mar 02 20:38:36 CST 2022
|
||||
/Users/arrowem/Documents/androidProject/Launcher/core/function-impl/mogo-core-function-smp/src/main/res/layout/module_small_map_fragment.xml=/Users/arrowem/Documents/androidProject/Launcher/core/function-impl/mogo-core-function-smp/build/intermediates/packaged_res/debug/layout/module_small_map_fragment.xml
|
||||
/Users/arrowem/Documents/androidProject/Launcher/core/function-impl/mogo-core-function-smp/src/main/res/drawable-xhdpi-2560x1440/module_small_map_view_dir_end.png=/Users/arrowem/Documents/androidProject/Launcher/core/function-impl/mogo-core-function-smp/build/intermediates/packaged_res/debug/drawable-xhdpi-2560x1440-v4/module_small_map_view_dir_end.png
|
||||
/Users/arrowem/Documents/androidProject/Launcher/core/function-impl/mogo-core-function-smp/src/main/res/drawable-xhdpi-2560x1440/module_small_map_view_end.png=/Users/arrowem/Documents/androidProject/Launcher/core/function-impl/mogo-core-function-smp/build/intermediates/packaged_res/debug/drawable-xhdpi-2560x1440-v4/module_small_map_view_end.png
|
||||
/Users/arrowem/Documents/androidProject/Launcher/core/function-impl/mogo-core-function-smp/src/main/res/layout/module_small_map_view.xml=/Users/arrowem/Documents/androidProject/Launcher/core/function-impl/mogo-core-function-smp/build/intermediates/packaged_res/debug/layout/module_small_map_view.xml
|
||||
/Users/arrowem/Documents/androidProject/Launcher/core/function-impl/mogo-core-function-smp/src/main/res/drawable-xhdpi-2560x1440/module_small_map_view_my_location_logo.png=/Users/arrowem/Documents/androidProject/Launcher/core/function-impl/mogo-core-function-smp/build/intermediates/packaged_res/debug/drawable-xhdpi-2560x1440-v4/module_small_map_view_my_location_logo.png
|
||||
/Users/arrowem/Documents/androidProject/Launcher/core/function-impl/mogo-core-function-smp/src/main/res/drawable/bg_module_small_map_view_border.xml=/Users/arrowem/Documents/androidProject/Launcher/core/function-impl/mogo-core-function-smp/build/intermediates/packaged_res/debug/drawable/bg_module_small_map_view_border.xml
|
||||
/Users/arrowem/Documents/androidProject/Launcher/core/function-impl/mogo-core-function-smp/src/main/res/drawable-xhdpi/module_small_map_view_my_location_logo.png=/Users/arrowem/Documents/androidProject/Launcher/core/function-impl/mogo-core-function-smp/build/intermediates/packaged_res/debug/drawable-xhdpi-v4/module_small_map_view_my_location_logo.png
|
||||
/Users/arrowem/Documents/androidProject/Launcher/core/function-impl/mogo-core-function-smp/src/main/res/drawable-xhdpi/module_small_map_view_border.png=/Users/arrowem/Documents/androidProject/Launcher/core/function-impl/mogo-core-function-smp/build/intermediates/packaged_res/debug/drawable-xhdpi-v4/module_small_map_view_border.png
|
||||
/Users/arrowem/Documents/androidProject/Launcher/core/function-impl/mogo-core-function-smp/src/main/res/drawable-xhdpi-2560x1440/module_small_map_view_dir_start.png=/Users/arrowem/Documents/androidProject/Launcher/core/function-impl/mogo-core-function-smp/build/intermediates/packaged_res/debug/drawable-xhdpi-2560x1440-v4/module_small_map_view_dir_start.png
|
||||
/Users/arrowem/Documents/androidProject/Launcher/core/function-impl/mogo-core-function-smp/src/main/res/drawable-xhdpi/module_small_map_view_border_north.png=/Users/arrowem/Documents/androidProject/Launcher/core/function-impl/mogo-core-function-smp/build/intermediates/packaged_res/debug/drawable-xhdpi-v4/module_small_map_view_border_north.png
|
||||
/Users/arrowem/Documents/androidProject/Launcher/core/function-impl/mogo-core-function-smp/src/main/res/drawable-xhdpi-2560x1440/module_small_map_view_start.png=/Users/arrowem/Documents/androidProject/Launcher/core/function-impl/mogo-core-function-smp/build/intermediates/packaged_res/debug/drawable-xhdpi-2560x1440-v4/module_small_map_view_start.png
|
||||
/Users/arrowem/Documents/androidProject/Launcher/core/function-impl/mogo-core-function-smp/src/main/res/drawable-xhdpi/icon_module_small_map_four_corners.png=/Users/arrowem/Documents/androidProject/Launcher/core/function-impl/mogo-core-function-smp/build/intermediates/packaged_res/debug/drawable-xhdpi-v4/icon_module_small_map_four_corners.png
|
||||
@@ -1,7 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<dimen name="module_small_map_border_view_width">550px</dimen>
|
||||
<dimen name="module_small_map_padding">40px</dimen>
|
||||
<dimen name="module_small_map_view_border_width">400px</dimen>
|
||||
<dimen name="module_small_map_view_width">360px</dimen>
|
||||
</resources>
|
||||
@@ -1,7 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<dimen name="module_small_map_border_view_width">450px</dimen>
|
||||
<dimen name="module_small_map_padding">30px</dimen>
|
||||
<dimen name="module_small_map_view_border_width">288px</dimen>
|
||||
<dimen name="module_small_map_view_width">260px</dimen>
|
||||
</resources>
|
||||
@@ -1,11 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
package="com.mogo.eagle.core.function.smp"
|
||||
android:versionCode="1"
|
||||
android:versionName="0.0.58.10" >
|
||||
|
||||
<uses-sdk
|
||||
android:minSdkVersion="19"
|
||||
android:targetSdkVersion="19" />
|
||||
|
||||
</manifest>
|
||||
@@ -1,21 +0,0 @@
|
||||
R_DEF: Internal format may change without notice
|
||||
local
|
||||
dimen module_small_map_border_view_width
|
||||
dimen module_small_map_padding
|
||||
dimen module_small_map_view_border_width
|
||||
dimen module_small_map_view_width
|
||||
drawable bg_module_small_map_view_border
|
||||
drawable icon_module_small_map_four_corners
|
||||
drawable module_small_map_view_border
|
||||
drawable module_small_map_view_border_north
|
||||
drawable module_small_map_view_dir_end
|
||||
drawable module_small_map_view_dir_start
|
||||
drawable module_small_map_view_end
|
||||
drawable module_small_map_view_my_location_logo
|
||||
drawable module_small_map_view_start
|
||||
id aMapNaviView
|
||||
id ivMapBorder
|
||||
id rlSmallMapBorder
|
||||
id smallMapDirectionView
|
||||
layout module_small_map_fragment
|
||||
layout module_small_map_view
|
||||
@@ -1,13 +0,0 @@
|
||||
1<?xml version="1.0" encoding="utf-8"?>
|
||||
2<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
3 package="com.mogo.eagle.core.function.smp"
|
||||
4 android:versionCode="1"
|
||||
5 android:versionName="0.0.58.10" >
|
||||
6
|
||||
7 <uses-sdk
|
||||
8 android:minSdkVersion="19"
|
||||
8-->/Users/arrowem/Documents/androidProject/Launcher/core/function-impl/mogo-core-function-smp/src/main/AndroidManifest.xml
|
||||
9 android:targetSdkVersion="19" />
|
||||
9-->/Users/arrowem/Documents/androidProject/Launcher/core/function-impl/mogo-core-function-smp/src/main/AndroidManifest.xml
|
||||
10
|
||||
11</manifest>
|
||||
@@ -1 +0,0 @@
|
||||
[{"outputType":{"type":"MERGED_MANIFESTS"},"apkData":{"type":"MAIN","splits":[],"versionCode":1,"versionName":"0.0.58.10","enabled":true,"outputFile":"mogo-core-function-smp-debug.aar","fullName":"debug","baseName":"debug"},"path":"../../library_manifest/debug/AndroidManifest.xml","properties":{"packageId":"com.mogo.eagle.core.function.smp","split":""}}]
|
||||
|
Before Width: | Height: | Size: 604 B |
|
Before Width: | Height: | Size: 601 B |
|
Before Width: | Height: | Size: 4.6 KiB |
|
Before Width: | Height: | Size: 8.7 KiB |
|
Before Width: | Height: | Size: 4.1 KiB |
|
Before Width: | Height: | Size: 1017 B |
|
Before Width: | Height: | Size: 35 KiB |
|
Before Width: | Height: | Size: 29 KiB |
|
Before Width: | Height: | Size: 4.4 KiB |
@@ -1,26 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<!-- 边 -->
|
||||
<item>
|
||||
<shape android:shape="oval">
|
||||
<padding
|
||||
android:bottom="2dp"
|
||||
android:left="2dp"
|
||||
android:right="2dp"
|
||||
android:top="2dp" />
|
||||
<gradient
|
||||
android:angle="315"
|
||||
android:endColor="#151D45"
|
||||
android:startColor="#151D45"
|
||||
android:type="linear" />
|
||||
</shape>
|
||||
|
||||
</item>
|
||||
<!-- 中心背景 -->
|
||||
<item>
|
||||
<shape android:shape="oval">
|
||||
<solid android:color="#323C6F" />
|
||||
<corners android:radius="720px" />
|
||||
</shape>
|
||||
</item>
|
||||
</layer-list>
|
||||
@@ -1,14 +0,0 @@
|
||||
<?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">
|
||||
|
||||
<com.mogo.eagle.core.function.smp.SmallMapDirectionView
|
||||
android:id="@+id/smallMapDirectionView"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
@@ -1,42 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<merge xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
tools:parentTag="RelativeLayout">
|
||||
|
||||
<View
|
||||
android:layout_width="@dimen/module_small_map_view_border_width"
|
||||
android:layout_height="@dimen/module_small_map_view_border_width"
|
||||
android:layout_centerInParent="true"
|
||||
android:background="@drawable/module_small_map_view_border" />
|
||||
|
||||
<com.mogo.eagle.core.widget.RoundLayout
|
||||
android:id="@+id/rlSmallMapBorder"
|
||||
android:layout_width="@dimen/module_small_map_view_width"
|
||||
android:layout_height="@dimen/module_small_map_view_width"
|
||||
android:layout_centerInParent="true"
|
||||
app:roundLayoutRadius="360dp">
|
||||
|
||||
<!--TODO Hook方案在Pad上有问题,优先 效果,后面在看如何解决-->
|
||||
<!-- <com.amap.api.navi.AMapNaviView-->
|
||||
<!-- android:id="@+id/aMapNaviView"-->
|
||||
<!-- android:layout_width="match_parent"-->
|
||||
<!-- android:layout_height="match_parent" />-->
|
||||
|
||||
<com.amap.api.maps.TextureMapView
|
||||
android:id="@+id/aMapNaviView"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent" />
|
||||
</com.mogo.eagle.core.widget.RoundLayout>
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/ivMapBorder"
|
||||
android:layout_width="@dimen/module_small_map_border_view_width"
|
||||
android:layout_height="@dimen/module_small_map_border_view_width"
|
||||
android:layout_centerInParent="true"
|
||||
android:visibility="gone"
|
||||
android:src="@drawable/module_small_map_view_border_north" />
|
||||
|
||||
</merge>
|
||||
@@ -1,7 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<dimen name="module_small_map_border_view_width">550px</dimen>
|
||||
<dimen name="module_small_map_padding">40px</dimen>
|
||||
<dimen name="module_small_map_view_border_width">400px</dimen>
|
||||
<dimen name="module_small_map_view_width">360px</dimen>
|
||||
</resources>
|
||||
@@ -1,7 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<dimen name="module_small_map_border_view_width">450px</dimen>
|
||||
<dimen name="module_small_map_padding">30px</dimen>
|
||||
<dimen name="module_small_map_view_border_width">288px</dimen>
|
||||
<dimen name="module_small_map_view_width">260px</dimen>
|
||||
</resources>
|
||||
@@ -1,37 +0,0 @@
|
||||
-- Merging decision tree log ---
|
||||
manifest
|
||||
ADDED from /Users/arrowem/Documents/androidProject/Launcher/core/function-impl/mogo-core-function-smp/src/main/AndroidManifest.xml:2:1-5:12
|
||||
INJECTED from /Users/arrowem/Documents/androidProject/Launcher/core/function-impl/mogo-core-function-smp/src/main/AndroidManifest.xml:2:1-5:12
|
||||
INJECTED from /Users/arrowem/Documents/androidProject/Launcher/core/function-impl/mogo-core-function-smp/src/main/AndroidManifest.xml:2:1-5:12
|
||||
INJECTED from /Users/arrowem/Documents/androidProject/Launcher/core/function-impl/mogo-core-function-smp/src/main/AndroidManifest.xml:2:1-5:12
|
||||
INJECTED from /Users/arrowem/Documents/androidProject/Launcher/core/function-impl/mogo-core-function-smp/src/main/AndroidManifest.xml:2:1-5:12
|
||||
INJECTED from /Users/arrowem/Documents/androidProject/Launcher/core/function-impl/mogo-core-function-smp/src/main/AndroidManifest.xml:2:1-5:12
|
||||
INJECTED from /Users/arrowem/Documents/androidProject/Launcher/core/function-impl/mogo-core-function-smp/src/main/AndroidManifest.xml:2:1-5:12
|
||||
package
|
||||
ADDED from /Users/arrowem/Documents/androidProject/Launcher/core/function-impl/mogo-core-function-smp/src/main/AndroidManifest.xml:3:5-47
|
||||
INJECTED from /Users/arrowem/Documents/androidProject/Launcher/core/function-impl/mogo-core-function-smp/src/main/AndroidManifest.xml
|
||||
INJECTED from /Users/arrowem/Documents/androidProject/Launcher/core/function-impl/mogo-core-function-smp/src/main/AndroidManifest.xml
|
||||
android:versionName
|
||||
INJECTED from /Users/arrowem/Documents/androidProject/Launcher/core/function-impl/mogo-core-function-smp/src/main/AndroidManifest.xml
|
||||
ADDED from /Users/arrowem/Documents/androidProject/Launcher/core/function-impl/mogo-core-function-smp/src/main/AndroidManifest.xml:2:1-5:12
|
||||
INJECTED from /Users/arrowem/Documents/androidProject/Launcher/core/function-impl/mogo-core-function-smp/src/main/AndroidManifest.xml
|
||||
android:versionCode
|
||||
INJECTED from /Users/arrowem/Documents/androidProject/Launcher/core/function-impl/mogo-core-function-smp/src/main/AndroidManifest.xml
|
||||
ADDED from /Users/arrowem/Documents/androidProject/Launcher/core/function-impl/mogo-core-function-smp/src/main/AndroidManifest.xml:2:1-5:12
|
||||
INJECTED from /Users/arrowem/Documents/androidProject/Launcher/core/function-impl/mogo-core-function-smp/src/main/AndroidManifest.xml
|
||||
xmlns:android
|
||||
ADDED from /Users/arrowem/Documents/androidProject/Launcher/core/function-impl/mogo-core-function-smp/src/main/AndroidManifest.xml:2:11-69
|
||||
uses-sdk
|
||||
INJECTED from /Users/arrowem/Documents/androidProject/Launcher/core/function-impl/mogo-core-function-smp/src/main/AndroidManifest.xml reason: use-sdk injection requested
|
||||
INJECTED from /Users/arrowem/Documents/androidProject/Launcher/core/function-impl/mogo-core-function-smp/src/main/AndroidManifest.xml
|
||||
INJECTED from /Users/arrowem/Documents/androidProject/Launcher/core/function-impl/mogo-core-function-smp/src/main/AndroidManifest.xml
|
||||
INJECTED from /Users/arrowem/Documents/androidProject/Launcher/core/function-impl/mogo-core-function-smp/src/main/AndroidManifest.xml
|
||||
INJECTED from /Users/arrowem/Documents/androidProject/Launcher/core/function-impl/mogo-core-function-smp/src/main/AndroidManifest.xml
|
||||
android:targetSdkVersion
|
||||
INJECTED from /Users/arrowem/Documents/androidProject/Launcher/core/function-impl/mogo-core-function-smp/src/main/AndroidManifest.xml
|
||||
ADDED from /Users/arrowem/Documents/androidProject/Launcher/core/function-impl/mogo-core-function-smp/src/main/AndroidManifest.xml
|
||||
INJECTED from /Users/arrowem/Documents/androidProject/Launcher/core/function-impl/mogo-core-function-smp/src/main/AndroidManifest.xml
|
||||
android:minSdkVersion
|
||||
INJECTED from /Users/arrowem/Documents/androidProject/Launcher/core/function-impl/mogo-core-function-smp/src/main/AndroidManifest.xml
|
||||
ADDED from /Users/arrowem/Documents/androidProject/Launcher/core/function-impl/mogo-core-function-smp/src/main/AndroidManifest.xml
|
||||
INJECTED from /Users/arrowem/Documents/androidProject/Launcher/core/function-impl/mogo-core-function-smp/src/main/AndroidManifest.xml
|
||||