Merge branch 'dev_robotaxi-d-app-module_270_220510_2.7.0' into dev_robotaxi-d-app-module_270_passenger
This commit is contained in:
@@ -11,6 +11,7 @@ import androidx.annotation.NonNull;
|
||||
import com.mogo.commons.AbsMogoApplication;
|
||||
import com.mogo.commons.debug.DebugConfig;
|
||||
import com.mogo.commons.voice.AIAssist;
|
||||
import com.mogo.eagle.core.data.map.CenterLine;
|
||||
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener;
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager;
|
||||
import com.mogo.eagle.core.function.call.map.CallerHDMapManager;
|
||||
@@ -334,10 +335,12 @@ public class BusFragment extends BaseBusTabFragment<BusFragment, BusPresenter>
|
||||
.latitude(lat)
|
||||
.longitude(longi);
|
||||
IMogoMarker marker = MogoMarkerManager.getInstance(AbsMogoApplication.getApp()) .addMarker(uuid, options);
|
||||
marker.setRotateAngle(CallerHDMapManager.INSTANCE.getCenterLineInfo(
|
||||
longi,lat,-1)
|
||||
.getAngle()
|
||||
.floatValue());
|
||||
CenterLine centerLine = CallerHDMapManager.INSTANCE.getCenterLineInfo(
|
||||
longi,lat,-1);
|
||||
if (null != centerLine){ // 有可能鹰眼map为空没有角度。判空使用后可能造成maker角度跟道路角度不一致
|
||||
marker.setRotateAngle(centerLine.getAngle().floatValue());
|
||||
}
|
||||
|
||||
}else {
|
||||
CallerLogger.INSTANCE.d(M_BUS + "RemoveMapMaker=",uuid+"=latitude="+lat+",longitude="+longi);
|
||||
MogoMarkerManager.getInstance(AbsMogoApplication.getApp()).removeMarkers(uuid);
|
||||
|
||||
@@ -4,6 +4,7 @@ import android.content.Context;
|
||||
|
||||
import com.mogo.commons.AbsMogoApplication;
|
||||
import com.mogo.eagle.core.utilcode.mogo.toast.TipToast;
|
||||
import com.mogo.eagle.core.utilcode.util.NetworkUtils;
|
||||
import com.mogo.och.bus.bean.BusQueryLinesResponse;
|
||||
import com.mogo.och.bus.bean.BusRoutesResponse;
|
||||
import com.mogo.och.bus.callback.IBusLinesCallback;
|
||||
@@ -53,7 +54,11 @@ public class BusLineModel {
|
||||
|
||||
@Override
|
||||
public void onFail(String failMsg) {
|
||||
|
||||
if (!NetworkUtils.isConnected(mContext)) {
|
||||
TipToast.shortTip("网络异常,请稍后重试");
|
||||
}else {
|
||||
TipToast.longTip("查询所有绑定路线失败:"+failMsg);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -69,7 +74,11 @@ public class BusLineModel {
|
||||
|
||||
@Override
|
||||
public void onFail(String failMsg) {
|
||||
TipToast.longTip("切换路线失败");
|
||||
if (!NetworkUtils.isConnected(mContext)) {
|
||||
TipToast.shortTip("网络异常,请稍后重试");
|
||||
}else {
|
||||
TipToast.longTip("切换路线失败:"+failMsg);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@@ -461,6 +461,8 @@ public class BusOrderModel {
|
||||
public void onFail(String failMsg) {
|
||||
if (!NetworkUtils.isConnected(mContext)) {
|
||||
TipToast.shortTip("网络异常,请稍后重试");
|
||||
}else{
|
||||
TipToast.longTip("离站上报失败:"+failMsg);
|
||||
}
|
||||
}
|
||||
});
|
||||
@@ -548,7 +550,10 @@ public class BusOrderModel {
|
||||
public void onFail(String failMsg) {
|
||||
if (!NetworkUtils.isConnected(mContext)) {
|
||||
TipToast.shortTip("网络异常,请稍后重试");
|
||||
}else {
|
||||
TipToast.longTip("离站上报失败:"+failMsg);
|
||||
}
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -605,7 +610,7 @@ public class BusOrderModel {
|
||||
if (!NetworkUtils.isConnected(mContext)) {
|
||||
TipToast.shortTip("网络异常,请稍后重试");
|
||||
}else {
|
||||
TipToast.shortTip(failMsg);
|
||||
TipToast.shortTip("收车失败:"+failMsg);
|
||||
}
|
||||
}
|
||||
});
|
||||
@@ -632,7 +637,7 @@ public class BusOrderModel {
|
||||
if (!NetworkUtils.isConnected(mContext)) {
|
||||
TipToast.shortTip("网络异常,请稍后重试");
|
||||
}else {
|
||||
TipToast.shortTip(failMsg);
|
||||
TipToast.shortTip("出车失败:"+failMsg);
|
||||
}
|
||||
}
|
||||
});
|
||||
@@ -659,8 +664,9 @@ public class BusOrderModel {
|
||||
if (!NetworkUtils.isConnected(mContext)) {
|
||||
TipToast.shortTip("网络异常,请稍后重试");
|
||||
}else {
|
||||
TipToast.shortTip(failMsg);
|
||||
TipToast.shortTip("出车收车状态查询:"+failMsg);
|
||||
}
|
||||
queryOperationStatus();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@@ -653,7 +653,7 @@ public class TaxiPassengerModel implements IOCHTaxiPassengerNaviChangedCallback
|
||||
|
||||
@Override
|
||||
public void onFail(int code, String msg) {
|
||||
|
||||
queryOrderRouteList();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@@ -285,10 +285,13 @@ public class TaxiModel {
|
||||
if (!NetworkUtils.isConnected(mContext)) {
|
||||
TipToast.shortTip("网络异常,请稍后重试");
|
||||
}
|
||||
queryCarStatus();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFail(int code, String msg) {
|
||||
TipToast.shortTip(code + "," + msg);
|
||||
queryCarStatus();
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -314,6 +317,8 @@ public class TaxiModel {
|
||||
public void onError() {
|
||||
if (!NetworkUtils.isConnected(mContext)) {
|
||||
TipToast.shortTip("网络异常,请稍后重试");
|
||||
}else {
|
||||
TipToast.shortTip("请求出现异常,请稍后重试");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -455,12 +460,14 @@ public class TaxiModel {
|
||||
public void onError() {
|
||||
if (!NetworkUtils.isConnected(mContext)) {
|
||||
TipToast.shortTip("网络异常,请稍后重试");
|
||||
}else {
|
||||
TipToast.shortTip("请求出现异常,请稍后重试");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFail(int code, String msg) {
|
||||
// TipToast.shortTip(code + "," + msg);
|
||||
TipToast.shortTip(code + "," + msg);
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -486,9 +493,18 @@ public class TaxiModel {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError() {
|
||||
if (!NetworkUtils.isConnected(mContext)) {
|
||||
TipToast.shortTip("网络异常,请稍后重试");
|
||||
}else {
|
||||
TipToast.shortTip("请求出现异常,请稍后重试");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFail(int code, String msg) {
|
||||
// TipToast.shortTip(code + "," + msg);
|
||||
TipToast.shortTip(code + "," + msg);
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -506,9 +522,18 @@ public class TaxiModel {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError() {
|
||||
if (!NetworkUtils.isConnected(mContext)) {
|
||||
TipToast.shortTip("网络异常,请稍后重试");
|
||||
}else {
|
||||
TipToast.shortTip("请求出现异常,请稍后重试");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFail(int code, String msg) {
|
||||
// TipToast.shortTip(code + "," + msg);
|
||||
TipToast.shortTip(code + "," + msg);
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -551,9 +576,18 @@ public class TaxiModel {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError() {
|
||||
if (!NetworkUtils.isConnected(mContext)) {
|
||||
TipToast.shortTip("网络异常,请稍后重试");
|
||||
}else {
|
||||
TipToast.shortTip("请求出现异常,请稍后重试");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFail(int code, String msg) {
|
||||
TipToast.shortTip("请求异常,请稍后重试");
|
||||
TipToast.shortTip(code + "," + msg);
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -635,9 +669,18 @@ public class TaxiModel {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError() {
|
||||
if (!NetworkUtils.isConnected(mContext)) {
|
||||
TipToast.shortTip("网络异常,请稍后重试");
|
||||
}else {
|
||||
TipToast.shortTip("请求出现异常,请稍后重试");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFail(int code, String msg) {
|
||||
TipToast.shortTip("请求异常,请稍后重试");
|
||||
TipToast.shortTip(code + "," + msg);
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -721,8 +764,17 @@ public class TaxiModel {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFail(int code, String msg) {
|
||||
public void onError() {
|
||||
if (!NetworkUtils.isConnected(mContext)) {
|
||||
TipToast.shortTip("网络异常,请稍后重试");
|
||||
}else {
|
||||
TipToast.shortTip("请求出现异常,请稍后重试");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFail(int code, String msg) {
|
||||
TipToast.shortTip(code + "," + msg);
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -1094,6 +1146,11 @@ public class TaxiModel {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError() {
|
||||
// TODO: 2022/5/18 是否在请求异常时候进行提示
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFail(int code, String msg) {
|
||||
|
||||
@@ -1171,22 +1228,27 @@ public class TaxiModel {
|
||||
* 查询当前订单的全局路径 (当自动驾驶开启后,订单前往乘客上车点,杀掉应用再次进来时候)
|
||||
*/
|
||||
private void queryOrderRouteList(String orderNo) {
|
||||
if (mCurrentOCHOrder != null){
|
||||
TaxiServiceManager.getInstance().queryOrderRoute(mContext, orderNo,
|
||||
new TaxiServiceCallback<QueryOrderRouteResp>() {
|
||||
@Override
|
||||
public void onSuccess(QueryOrderRouteResp data) {
|
||||
if (data != null && data.data != null){
|
||||
mRoutePoints.clear();
|
||||
mRoutePoints.addAll(data.data);
|
||||
}
|
||||
}
|
||||
if (mCurrentOCHOrder != null) {
|
||||
TaxiServiceManager.getInstance().queryOrderRoute(mContext, orderNo,
|
||||
new TaxiServiceCallback<QueryOrderRouteResp>() {
|
||||
@Override
|
||||
public void onSuccess(QueryOrderRouteResp data) {
|
||||
if (data != null && data.data != null) {
|
||||
mRoutePoints.clear();
|
||||
mRoutePoints.addAll(data.data);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFail(int code, String msg) {
|
||||
@Override
|
||||
public void onError() {
|
||||
// TODO: 2022/5/18 是否在请求异常的时候提示
|
||||
}
|
||||
|
||||
}
|
||||
});
|
||||
@Override
|
||||
public void onFail(int code, String msg) {
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -186,7 +186,7 @@ interface TaxiServiceApiNew {
|
||||
* @return
|
||||
*/
|
||||
@Headers( {"Content-type:application/json;charset=UTF-8"} )
|
||||
@POST("/autopilot-car-hailing/order/v2/driver/taxi/orderRoute")
|
||||
@POST("/autopilot-car-hailing/order/v2/driver/taxi/saveOrderRoute")
|
||||
// @POST("/mock/268/autopilot-car-hailing/order/v2/driver/taxi/orderRoute")
|
||||
Observable<BaseData> updateOrderRoute(@Header ("appId") String appId, @Header("ticket") String ticket, @Body OrderRouteUpdateReqBean data);
|
||||
|
||||
|
||||
@@ -20,6 +20,7 @@ import com.amap.api.navi.model.NaviLatLng;
|
||||
import com.mogo.commons.AbsMogoApplication;
|
||||
import com.mogo.commons.debug.DebugConfig;
|
||||
import com.mogo.commons.voice.AIAssist;
|
||||
import com.mogo.eagle.core.data.map.CenterLine;
|
||||
import com.mogo.eagle.core.function.call.map.CallerHDMapManager;
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger;
|
||||
import com.mogo.eagle.core.utilcode.mogo.toast.TipToast;
|
||||
@@ -623,10 +624,11 @@ public class TaxiBeingServerdOrdersFragment extends BaseTaxiUIFragment implement
|
||||
.latitude(station.get(1))
|
||||
.longitude(station.get(0));
|
||||
IMogoMarker marker = MogoMarkerManager.getInstance(AbsMogoApplication.getApp()).addMarker(uuid, options);
|
||||
marker.setRotateAngle(CallerHDMapManager.INSTANCE.getCenterLineInfo(
|
||||
station.get(0),station.get(1),-1)
|
||||
.getAngle()
|
||||
.floatValue());
|
||||
CenterLine centerLine = CallerHDMapManager.INSTANCE.getCenterLineInfo(station.get(0)
|
||||
,station.get(1),-1);
|
||||
if (null != centerLine){// 有可能鹰眼map为空没有角度。判空使用后可能造成maker角度跟道路角度不一致
|
||||
marker.setRotateAngle(centerLine.getAngle().floatValue());
|
||||
}
|
||||
|
||||
}else {
|
||||
CallerLogger.INSTANCE.d(M_TAXI + "RemoveMapMaker=",uuid+"=latitude="+station.get(1)+",longitude="+station.get(0));
|
||||
|
||||
@@ -236,7 +236,6 @@
|
||||
android:text="@string/module_och_taxi_order_server_start"
|
||||
android:textColor="#4DFFFFFF"
|
||||
android:textSize="24sp"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintBottom_toBottomOf="parent" />
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
|
||||
@@ -107,7 +107,7 @@ public class MoGoHandAdasMsgManager implements
|
||||
|
||||
@Override
|
||||
public void onAutopilotCarConfig(@NotNull MessagePad.CarConfigResp carConfigResp) {
|
||||
if (carConfigResp != null && !TextUtils.isEmpty(carConfigResp.getMacAddress())) { //TODO 这里判断
|
||||
if (carConfigResp != null && !TextUtils.isEmpty(carConfigResp.getMacAddress())) {
|
||||
Log.d("liyz", "司机端 onAutopilotCarConfig ---" + carConfigResp.getMacAddress());
|
||||
CallerBindingcarManager.getBindingcarProvider().getBindingcarInfo(carConfigResp.getMacAddress(), MoGoAiCloudClientConfig.getInstance().getSn());
|
||||
}
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
package com.mogo.eagle.core.function.autopilot.telematic
|
||||
|
||||
import android.util.Log
|
||||
import com.google.protobuf.TextFormat
|
||||
import com.mogo.cloud.passport.MoGoAiCloudClientConfig
|
||||
import com.mogo.eagle.core.data.app.AppConfigInfo
|
||||
import com.mogo.eagle.core.data.config.FunctionBuildConfig
|
||||
import com.mogo.eagle.core.data.deva.chain.ChainConstant
|
||||
@@ -58,6 +60,8 @@ class TeleMsgHandler : IMsgHandler {
|
||||
AppConfigInfo.plateNumber = carConfig.plateNumber
|
||||
AppConfigInfo.iPCMacAddress = carConfig.macAddress
|
||||
invokeNettyConnResult("司机屏发送给乘客屏配置信息为:${TextFormat.printer().escapingNonAscii(false).printToString(carConfig)}")
|
||||
Log.d("liyz", "TeleMsgHandler macAddress = " + carConfig.macAddress)
|
||||
CallerBindingcarManager.getBindingcarProvider().getBindingcarInfo(carConfig.macAddress, MoGoAiCloudClientConfig.getInstance().sn)
|
||||
}
|
||||
else -> {
|
||||
}
|
||||
|
||||
@@ -56,13 +56,13 @@ public class BindingcarProvider implements IMoGoBindingcarProvider {
|
||||
*/
|
||||
@Override
|
||||
public void getBindingcarInfo(String macAddress, String widevineIDWithMd5) {
|
||||
// mAddress = macAddress;
|
||||
// mWidevineIDWithMd5 = widevineIDWithMd5;
|
||||
// if (getScreenType() == 1) { //司机屏
|
||||
// driverScreen(macAddress, widevineIDWithMd5);
|
||||
// } else if (getScreenType() == 2) { //乘客屏
|
||||
// passengerScreen(macAddress, widevineIDWithMd5);
|
||||
// }
|
||||
mAddress = macAddress;
|
||||
mWidevineIDWithMd5 = widevineIDWithMd5;
|
||||
if (getScreenType() == 1) { //司机屏
|
||||
driverScreen(macAddress, widevineIDWithMd5);
|
||||
} else if (getScreenType() == 2) { //乘客屏
|
||||
passengerScreen(macAddress, widevineIDWithMd5);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -94,10 +94,9 @@ public class BindingcarProvider implements IMoGoBindingcarProvider {
|
||||
private void driverScreen(String macAddress, String widevineIDWithMd5) {
|
||||
long currentHour = System.currentTimeMillis() / (1000 * 60);
|
||||
long oldHour = SharedPrefsMgr.getInstance(mContext).getLong("typeDriver", 0);
|
||||
Log.d("liyz", "driverScreen ------ macAddress = " + macAddress + "--widevineIDWithMd5 = " + widevineIDWithMd5 + "--getScreenType() = " + getScreenType());
|
||||
//如果5分钟内频繁调,需要拦截,业务导致的会多次请求工控机信息 TODO
|
||||
//如果5分钟内频繁调,需要拦截,业务导致的会多次请求工控机信息
|
||||
if (HmiBuildConfig.isShowSnBindingView) {
|
||||
Log.d("liyz", "driverScreen -----间隔时间 = " + (currentHour - oldHour));
|
||||
Log.d("liyz", "driverScreen -----间隔时间 = " + (currentHour - oldHour) + "-- macAddress = " + macAddress + "--widevineIDWithMd5 = " + widevineIDWithMd5 + "--getScreenType() = " + getScreenType());
|
||||
if (currentHour - oldHour > 5) {
|
||||
SharedPrefsMgr.getInstance(mContext).putLong("typeDriver", System.currentTimeMillis() / (1000 * 60));
|
||||
BindingcarNetWorkManager.getInstance().getBindingcarInfo(mContext, macAddress, widevineIDWithMd5, getScreenType());
|
||||
@@ -108,10 +107,9 @@ public class BindingcarProvider implements IMoGoBindingcarProvider {
|
||||
private void passengerScreen(String macAddress, String widevineIDWithMd5) {
|
||||
long currentHour = System.currentTimeMillis() / (1000 * 60);
|
||||
long oldHour = SharedPrefsMgr.getInstance(mContext).getLong("typePassenger", 0);
|
||||
Log.d("liyz", "passengerScreen ------ mAddress = " + macAddress + "--mWidevineIDWithMd5 = " + widevineIDWithMd5 + "--getScreenType() = " + getScreenType());
|
||||
//如果5分钟内频繁调,需要拦截,业务导致的会多次请求工控机信息
|
||||
if (HmiBuildConfig.isShowSnBindingView) {
|
||||
Log.d("liyz", "passengerScreen -----间隔时间 = " + (currentHour - oldHour));
|
||||
Log.d("liyz", "passengerScreen --间隔时间 = " + (currentHour - oldHour) + "-- mAddress = " + macAddress + "--mWidevineIDWithMd5 = " + widevineIDWithMd5 + "--getScreenType() = " + getScreenType());
|
||||
if (currentHour - oldHour > 5) {
|
||||
SharedPrefsMgr.getInstance(mContext).putLong("typePassenger", System.currentTimeMillis() / (1000 * 60));
|
||||
BindingcarNetWorkManager.getInstance().getBindingcarInfo(mContext, macAddress, widevineIDWithMd5, getScreenType());
|
||||
|
||||
@@ -13,7 +13,6 @@ import com.mogo.eagle.core.function.call.bindingcar.CallerBindingCarListenerMana
|
||||
import com.mogo.eagle.core.function.call.hmi.CallerHmiManager
|
||||
import com.mogo.eagle.core.function.ipcupgrade.network.IPCUpgradeNetWorkModel
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
|
||||
import com.mogo.eagle.core.utilcode.util.GsonUtils
|
||||
import org.json.JSONObject
|
||||
|
||||
/**
|
||||
@@ -112,7 +111,7 @@ class IPCUpgradeManager: IMogoOnMessageListener<IPCUpgradeStateInfo> ,
|
||||
fun upgradeConfirm(images: List<String>,padSn: String,releaseId: String){
|
||||
ipcUpgradeNetWorkModel.upgradeConfirm(images,padSn,releaseId,
|
||||
onSuccess = {
|
||||
|
||||
CallerBindingCarListenerManager.invokePushServerConfirm()
|
||||
},
|
||||
onError = {
|
||||
|
||||
@@ -131,9 +130,10 @@ class IPCUpgradeManager: IMogoOnMessageListener<IPCUpgradeStateInfo> ,
|
||||
val images = jsonObject.getJSONArray("images")
|
||||
val dockerList = ArrayList<String>()
|
||||
for(i in 0 until images.length()){
|
||||
if(!i.toString().contains(dockerVersion)){
|
||||
if(!images[i].toString().contains(dockerVersion)){
|
||||
dockerList.add(images[i].toString())
|
||||
}
|
||||
|
||||
}
|
||||
//将数组结果回调
|
||||
CallerBindingCarListenerManager.invokeQueryContainersResponse(dockerList)
|
||||
|
||||
@@ -5,7 +5,6 @@ import com.mogo.eagle.core.data.report.ReportEntity
|
||||
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager
|
||||
import com.mogo.eagle.core.function.call.hmi.CallerHmiManager
|
||||
import com.mogo.eagle.core.utilcode.util.ThreadUtils
|
||||
import com.mogo.eagle.core.utilcode.util.TimeUtils
|
||||
import mogo_msg.MogoReportMsg
|
||||
|
||||
|
||||
@@ -29,5 +29,10 @@ class MogoLogCatchConst {
|
||||
* 上传本地缓存链路日志
|
||||
*/
|
||||
const val CACHE_TRACE_UPLOAD = 5
|
||||
|
||||
/**
|
||||
* 下发map缓存日志开关开启
|
||||
*/
|
||||
const val CACHE_MAP_UPLOAD = 6
|
||||
}
|
||||
}
|
||||
@@ -27,6 +27,7 @@ import com.zhidao.loglib.bean.RemoteLogPushContent
|
||||
import com.zhidao.loglib.call.LogInfoManagerFactory
|
||||
import com.zhidao.loglib.core.ILogListener
|
||||
import com.zhidao.loglib.core.LogInfoManager
|
||||
import com.zhjt.mogo_core_function_devatools.logcatch.MogoLogCatchConst.Companion.CACHE_MAP_UPLOAD
|
||||
import com.zhjt.mogo_core_function_devatools.logcatch.MogoLogCatchConst.Companion.CACHE_TRACE_UPLOAD
|
||||
import com.zhjt.mogo_core_function_devatools.logcatch.MogoLogCatchConst.Companion.LOCAL_CONFIG_CLOSE_LOG
|
||||
import com.zhjt.mogo_core_function_devatools.logcatch.MogoLogCatchConst.Companion.LOCAL_CONFIG_OPEN_LOG
|
||||
@@ -49,6 +50,7 @@ object MogoLogCatchManager : IMogoOnMessageListener<RemoteLogPushContent>, Handl
|
||||
private val manualContent = RemoteLogPushContent()
|
||||
private val catchingList: MutableList<String> = mutableListOf()
|
||||
private var logInfoManager: LogInfoManager? = null
|
||||
private var mapCacheUpload = false
|
||||
|
||||
fun init(context: Context) {
|
||||
mContext = context
|
||||
@@ -108,6 +110,10 @@ object MogoLogCatchManager : IMogoOnMessageListener<RemoteLogPushContent>, Handl
|
||||
TipToast.longTip("上传本地缓存链路日志")
|
||||
LogInfoManagerFactory.cacheTraceLogUpload()
|
||||
}
|
||||
CACHE_MAP_UPLOAD -> {
|
||||
TipToast.longTip("上传本地地图缓存日志")
|
||||
mapCacheUpload = true
|
||||
}
|
||||
else -> {
|
||||
}
|
||||
}
|
||||
@@ -235,6 +241,9 @@ object MogoLogCatchManager : IMogoOnMessageListener<RemoteLogPushContent>, Handl
|
||||
}
|
||||
|
||||
override fun uploadFile(filePath: String) {
|
||||
if(!mapCacheUpload){
|
||||
return
|
||||
}
|
||||
val file = File(filePath)
|
||||
if (file.isFile) {
|
||||
CallerLogger.d("$M_DEVA$TAG", "uploadFile path : $filePath")
|
||||
|
||||
@@ -34,6 +34,7 @@ import com.mogo.eagle.core.function.api.hmi.warning.IMoGoWaringProvider
|
||||
import com.mogo.eagle.core.function.api.hmi.warning.IMoGoWarningStatusListener
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotRecordListenerManager
|
||||
import com.mogo.eagle.core.function.call.bindingcar.CallerBindingcarManager
|
||||
import com.mogo.eagle.core.function.call.check.CallerCheckManager
|
||||
import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsManager
|
||||
import com.mogo.eagle.core.function.call.map.CallerMapDataCollectorManager
|
||||
@@ -232,9 +233,15 @@ class MoGoHmiFragment : MvpFragment<MoGoHmiContract.View?, HmiPresenter?>(),
|
||||
ThreadUtils.runOnUiThread{
|
||||
if(ipcReportWindow==null){
|
||||
ipcReportWindow= activity?.let { IPCReportWindow(it) }
|
||||
ipcReportWindow?.showFloatWindow()
|
||||
ipcReportWindow?.setClickListener(object: IPCReportWindow.ClickListener{
|
||||
override fun closeWindow() {
|
||||
ipcReportWindow?.hideFloatWindow()
|
||||
ipcReportWindow =null
|
||||
}
|
||||
})
|
||||
AIAssist.getInstance(AbsMogoApplication.getApp()).speakTTSVoice("嘟")
|
||||
}
|
||||
ipcReportWindow?.showFloatWindow()
|
||||
ipcReportWindow?.refreshData(reportList)
|
||||
}
|
||||
}
|
||||
@@ -968,6 +975,20 @@ class MoGoHmiFragment : MvpFragment<MoGoHmiContract.View?, HmiPresenter?>(),
|
||||
ThreadUtils.runOnUiThread{
|
||||
if(adUpgradeDialog == null){
|
||||
adUpgradeDialog = AdUpgradeDialog(requireContext(),images, padSn, releaseId)
|
||||
adUpgradeDialog?.setClickListener(object: AdUpgradeDialog.ClickListener{
|
||||
override fun confirm() {
|
||||
//确认升级
|
||||
CallerBindingcarManager.getBindingcarProvider().upgradeConfirm(images, padSn, releaseId)
|
||||
adUpgradeDialog?.dismiss()
|
||||
adUpgradeDialog = null
|
||||
}
|
||||
|
||||
override fun cancel() {
|
||||
adUpgradeDialog?.dismiss()
|
||||
adUpgradeDialog = null
|
||||
}
|
||||
|
||||
})
|
||||
}
|
||||
adUpgradeDialog?.showUpgradeDialog()
|
||||
}
|
||||
|
||||
@@ -4,6 +4,7 @@ import android.app.Activity
|
||||
import android.graphics.PixelFormat
|
||||
import android.util.DisplayMetrics
|
||||
import android.view.*
|
||||
import android.widget.ImageView
|
||||
import androidx.recyclerview.widget.LinearLayoutManager
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import com.mogo.eagle.core.data.report.ReportEntity
|
||||
@@ -21,6 +22,7 @@ class IPCReportWindow constructor(activity: Activity) : View.OnTouchListener{
|
||||
private var mWindowParams: WindowManager.LayoutParams? = null
|
||||
private var mWindowManager: WindowManager? = null
|
||||
private lateinit var rvIPCReport: RecyclerView
|
||||
private lateinit var ivIpcClose: ImageView
|
||||
private var ipcReportAdapter: IPCReportAdapter?=null
|
||||
|
||||
private lateinit var mFloatLayout: View
|
||||
@@ -31,6 +33,8 @@ class IPCReportWindow constructor(activity: Activity) : View.OnTouchListener{
|
||||
private var mInScreenX = 0f
|
||||
private var mInScreenY = 0f
|
||||
|
||||
private var clickListener: ClickListener? = null
|
||||
|
||||
init {
|
||||
initFloatWindow();
|
||||
}
|
||||
@@ -39,20 +43,25 @@ class IPCReportWindow constructor(activity: Activity) : View.OnTouchListener{
|
||||
mFloatLayout = LayoutInflater.from(mActivity).inflate(R.layout.view_ipc_report, null) as View
|
||||
mFloatLayout.setOnTouchListener(this)
|
||||
rvIPCReport= mFloatLayout.findViewById(R.id.rv_ipc_report)
|
||||
ivIpcClose = mFloatLayout.findViewById(R.id.iv_ipc_close)
|
||||
mWindowParams = WindowManager.LayoutParams()
|
||||
mWindowManager = mActivity.windowManager
|
||||
mWindowParams?.let {
|
||||
it.format = PixelFormat.RGBA_8888
|
||||
it.flags = WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE
|
||||
it.gravity = Gravity.START or Gravity.TOP
|
||||
it.width = 800
|
||||
it.height = 1000
|
||||
it.width = 600
|
||||
it.height = 800
|
||||
it.alpha = 0.9f
|
||||
}
|
||||
ipcReportAdapter = IPCReportAdapter()
|
||||
rvIPCReport.layoutManager = LinearLayoutManager(mActivity,
|
||||
LinearLayoutManager.VERTICAL,false)
|
||||
rvIPCReport.adapter = ipcReportAdapter
|
||||
|
||||
ivIpcClose.setOnClickListener {
|
||||
clickListener?.closeWindow()
|
||||
}
|
||||
}
|
||||
|
||||
fun refreshData(data:List<ReportEntity>){
|
||||
@@ -122,5 +131,13 @@ class IPCReportWindow constructor(activity: Activity) : View.OnTouchListener{
|
||||
return sbar
|
||||
}
|
||||
|
||||
fun setClickListener(clickListener: ClickListener) {
|
||||
this.clickListener = clickListener
|
||||
}
|
||||
|
||||
interface ClickListener {
|
||||
fun closeWindow()
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -3,7 +3,6 @@ package com.mogo.eagle.core.function.hmi.ui.tools
|
||||
import android.content.Context
|
||||
import android.widget.TextView
|
||||
import androidx.lifecycle.LifecycleObserver
|
||||
import com.mogo.eagle.core.function.call.bindingcar.CallerBindingcarManager
|
||||
import com.mogo.eagle.core.function.hmi.R
|
||||
import com.mogo.module.common.dialog.BaseFloatDialog
|
||||
|
||||
@@ -21,7 +20,6 @@ class AdUpgradeDialog(context: Context,images: List<String>,padSn: String,releas
|
||||
private var clickListener: ClickListener? = null
|
||||
|
||||
private var images: List<String>?=null
|
||||
private var imageVersion: String?=null
|
||||
private var padSn: String?=null
|
||||
private var releaseId: String?=null
|
||||
|
||||
@@ -33,13 +31,9 @@ class AdUpgradeDialog(context: Context,images: List<String>,padSn: String,releas
|
||||
|
||||
upgradeConfirm?.setOnClickListener{
|
||||
clickListener?.confirm()
|
||||
//确认升级
|
||||
CallerBindingcarManager.getBindingcarProvider().upgradeConfirm(images, padSn, releaseId)
|
||||
dismiss()
|
||||
}
|
||||
upgradeCancel?.setOnClickListener {
|
||||
clickListener?.cancel()
|
||||
dismiss()
|
||||
}
|
||||
this.images = images
|
||||
this.padSn = padSn
|
||||
|
||||
@@ -58,8 +58,6 @@ class SystemVersionView @JvmOverloads constructor(
|
||||
private fun initView() {
|
||||
showCurrentPadVersion()
|
||||
showCurrentAdVersion()
|
||||
|
||||
|
||||
//鹰眼版本视图点击事件
|
||||
ivPadVersion.setOnClickListener {
|
||||
CallerLogger.i("$M_HMI$$TAG", "pad version view clicked")
|
||||
@@ -85,13 +83,28 @@ class SystemVersionView @JvmOverloads constructor(
|
||||
when {
|
||||
AdUpgradeStateHelper.isDownloading(it.status) -> {
|
||||
//下载中,点击Toast提示:下载剩余时间
|
||||
ToastUtils.showShort(
|
||||
"预计" + AdUpgradeStateHelper.getRemainingTime(
|
||||
it.progress.progressDetail.total,
|
||||
previousProgress,
|
||||
currentProgress
|
||||
) + "下载完成"
|
||||
)
|
||||
it.progress?.let { progress->
|
||||
progress.progressDetail?.let {progressDetail->
|
||||
if(AdUpgradeStateHelper.getRemainingTime(
|
||||
progressDetail.total,
|
||||
previousProgress,
|
||||
currentProgress
|
||||
).isEmpty()){
|
||||
ToastUtils.showShort("下载已完成")
|
||||
}else{
|
||||
ToastUtils.showShort(
|
||||
"预计" + AdUpgradeStateHelper.getRemainingTime(
|
||||
progressDetail.total,
|
||||
previousProgress,
|
||||
currentProgress
|
||||
) + "下载完成"
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
AdUpgradeStateHelper.isUpgrading(it.status) -> {
|
||||
//工控机状态为“升级中”
|
||||
@@ -118,7 +131,11 @@ class SystemVersionView @JvmOverloads constructor(
|
||||
*/
|
||||
private fun setAdUpgradeInfo(ipcUpgradeStateInfo: IPCUpgradeStateInfo) {
|
||||
this.previousProgress = this.currentProgress
|
||||
this.currentProgress = ipcUpgradeStateInfo.progress.progressDetail.current
|
||||
ipcUpgradeStateInfo.progress?.let {
|
||||
it.progressDetail?.let {progressDetail->
|
||||
this.currentProgress = progressDetail.current
|
||||
}
|
||||
}
|
||||
this.ipcUpgradeStateInfo = ipcUpgradeStateInfo
|
||||
}
|
||||
|
||||
@@ -140,12 +157,18 @@ class SystemVersionView @JvmOverloads constructor(
|
||||
CallerLogger.i(
|
||||
"$M_HMI$$TAG", "showAdUpgradeStatus status=$status"
|
||||
)
|
||||
adCircularProgressView.setProgress(
|
||||
AdUpgradeStateHelper.downloadProgress(
|
||||
ipcUpgradeStateInfo.progress.progressDetail.current,
|
||||
ipcUpgradeStateInfo.progress.progressDetail.total
|
||||
)
|
||||
)
|
||||
ipcUpgradeStateInfo.progress?.let { progress->
|
||||
progress.progressDetail?.let {progressDetail->
|
||||
adCircularProgressView.setProgress(
|
||||
AdUpgradeStateHelper.downloadProgress(
|
||||
progressDetail.current,
|
||||
progressDetail.total
|
||||
)
|
||||
)
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
ivAdVersion?.setBackgroundResource(R.drawable.version_latest_background)
|
||||
}
|
||||
@@ -155,6 +178,19 @@ class SystemVersionView @JvmOverloads constructor(
|
||||
adCircularProgressView?.visibility = View.GONE
|
||||
ivAdVersion?.setBackgroundResource(R.drawable.version_latest_background)
|
||||
}
|
||||
AdUpgradeStateHelper.isDownloadFinish(status) ->{
|
||||
//升级中,将状态设为“升级中”角标,并隐藏进度条
|
||||
ivAdStatus?.setImageResource(R.drawable.icon_upgrading)
|
||||
adCircularProgressView?.visibility = View.GONE
|
||||
ivAdVersion?.setBackgroundResource(R.drawable.version_latest_background)
|
||||
}
|
||||
AdUpgradeStateHelper.isUpgrading(status) ->{
|
||||
//升级中,将状态设为“升级中”角标,并隐藏进度条
|
||||
ivAdStatus?.setImageResource(R.drawable.icon_upgrading)
|
||||
adCircularProgressView?.visibility = View.GONE
|
||||
ivAdVersion?.setBackgroundResource(R.drawable.version_latest_background)
|
||||
}
|
||||
|
||||
AdUpgradeStateHelper.isUpgrading(status) ->{
|
||||
//升级中,将状态设为“升级中”角标,并隐藏进度条
|
||||
ivAdStatus?.setImageResource(R.drawable.icon_upgrading)
|
||||
@@ -250,6 +286,9 @@ class SystemVersionView @JvmOverloads constructor(
|
||||
showCurrentAdVersion()
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询工控机新版本回调
|
||||
*/
|
||||
override fun queryContainersResponse(dockerList: List<String>) {
|
||||
this.dockerList = dockerList
|
||||
if(dockerList.isNotEmpty()){
|
||||
@@ -267,4 +306,15 @@ class SystemVersionView @JvmOverloads constructor(
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 确认升级回调
|
||||
*/
|
||||
override fun pushServerConfirm() {
|
||||
//将角标改为“下载中”
|
||||
ivAdStatus?.setImageResource(R.drawable.icon_downloading)
|
||||
ivAdVersion?.setBackgroundResource(R.drawable.version_latest_background)
|
||||
//设置状态为不可升级
|
||||
AdUpgradeStateHelper.setUpgradeableStatus(false)
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,82 @@
|
||||
package com.mogo.eagle.core.function.hmi.ui.widget
|
||||
|
||||
import android.annotation.SuppressLint
|
||||
import android.content.Context
|
||||
import android.util.AttributeSet
|
||||
import android.view.LayoutInflater
|
||||
import android.widget.LinearLayout
|
||||
import com.mogo.eagle.core.data.autopilot.AutopilotStatusInfo
|
||||
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager
|
||||
import com.mogo.eagle.core.function.hmi.R
|
||||
import com.mogo.eagle.core.utilcode.util.AppUtils
|
||||
import com.mogo.eagle.core.utilcode.util.UiThreadHandler
|
||||
import kotlinx.android.synthetic.main.view_version_name.view.*
|
||||
|
||||
/**
|
||||
* @author XuXinChao
|
||||
* @description APP版本号+MAP版本号水印显示
|
||||
* @since: 2022/5/20
|
||||
*/
|
||||
class VersionNameView @JvmOverloads constructor(
|
||||
context: Context,
|
||||
attrs: AttributeSet? = null,
|
||||
defStyleAttr: Int = 0
|
||||
) : LinearLayout(context, attrs, defStyleAttr),IMoGoAutopilotStatusListener {
|
||||
|
||||
companion object {
|
||||
const val TAG = "VersionNameView"
|
||||
}
|
||||
|
||||
private var dockerVersion: String? = null //工控机版本
|
||||
|
||||
init{
|
||||
LayoutInflater.from(context).inflate(R.layout.view_version_name, this, true)
|
||||
initView()
|
||||
}
|
||||
|
||||
private fun initView(){
|
||||
showCurrentPadVersion()
|
||||
showCurrentMapVersion()
|
||||
}
|
||||
|
||||
/**
|
||||
* 展示当前鹰眼版本
|
||||
*/
|
||||
@SuppressLint("SetTextI18n")
|
||||
private fun showCurrentPadVersion() {
|
||||
tvAppVersionName?.let {
|
||||
it.text = "APP:${AppUtils.getAppVersionName()}"
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 展示当前工控机版本
|
||||
*/
|
||||
@SuppressLint("SetTextI18n")
|
||||
private fun showCurrentMapVersion() {
|
||||
UiThreadHandler.post {
|
||||
tvMapVersionName?.let {
|
||||
if (!dockerVersion.isNullOrEmpty()) {
|
||||
it.text = "MAP:${dockerVersion}"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
override fun onAttachedToWindow() {
|
||||
super.onAttachedToWindow()
|
||||
CallerAutoPilotStatusListenerManager.addListener(TAG, this)
|
||||
}
|
||||
|
||||
override fun onDetachedFromWindow() {
|
||||
super.onDetachedFromWindow()
|
||||
CallerAutoPilotStatusListenerManager.removeListener(TAG)
|
||||
}
|
||||
|
||||
override fun onAutopilotStatusResponse(autoPilotStatusInfo: AutopilotStatusInfo) {
|
||||
dockerVersion = autoPilotStatusInfo.dockVersion
|
||||
showCurrentMapVersion()
|
||||
}
|
||||
|
||||
}
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 850 B |
@@ -39,7 +39,7 @@
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<!--Vie车辆标志-->
|
||||
<!--Vip车辆标志-->
|
||||
<com.mogo.eagle.core.function.hmi.ui.widget.VipIdentificationView
|
||||
android:id="@+id/flVipIdentificationView"
|
||||
android:layout_width="@dimen/module_vip_width"
|
||||
@@ -77,7 +77,7 @@
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="@dimen/hmi_traffic_light_layout_margin_top"
|
||||
android:layout_marginRight="@dimen/hmi_traffic_light_layout_margin_right"
|
||||
android:layout_marginEnd="@dimen/hmi_traffic_light_layout_margin_right"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
@@ -171,6 +171,18 @@
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<!--APP、MAP版本-->
|
||||
<com.mogo.eagle.core.function.hmi.ui.widget.VersionNameView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
android:layout_marginBottom="45px"
|
||||
/>
|
||||
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
<!-- app:layout_constraintBottom_toBottomOf="parent"-->
|
||||
|
||||
@@ -10,6 +10,11 @@
|
||||
android:layout_height="wrap_content"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
android:textColor="@color/color_FFFFFF"
|
||||
android:textSize="14sp"
|
||||
android:text="@string/ipc_report_time"
|
||||
android:layout_marginTop="10dp"
|
||||
android:layout_marginStart="10dp"
|
||||
/>
|
||||
|
||||
<TextView
|
||||
@@ -18,6 +23,10 @@
|
||||
android:layout_height="wrap_content"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintLeft_toRightOf="@id/tvReportTimeTitle"
|
||||
android:textColor="@color/color_FFFFFF"
|
||||
android:textSize="14sp"
|
||||
android:layout_marginTop="10dp"
|
||||
android:layout_marginEnd="10dp"
|
||||
/>
|
||||
|
||||
<TextView
|
||||
@@ -26,15 +35,24 @@
|
||||
android:layout_height="wrap_content"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/tvReportTimeTitle"
|
||||
android:textColor="@color/color_FFFFFF"
|
||||
android:textSize="14sp"
|
||||
android:text="@string/ipc_report_type"
|
||||
android:layout_marginTop="10dp"
|
||||
android:layout_marginStart="10dp"
|
||||
/>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tvReportResultContent"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
app:layout_constraintTop_toTopOf="@id/tvReportResultTitle"
|
||||
app:layout_constraintLeft_toRightOf="@id/tvReportResultTitle"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
android:textColor="@color/color_FF0006"
|
||||
android:textSize="14sp"
|
||||
android:minLines="1"
|
||||
android:layout_marginEnd="10dp"
|
||||
/>
|
||||
|
||||
<TextView
|
||||
@@ -43,15 +61,24 @@
|
||||
android:layout_height="wrap_content"
|
||||
app:layout_constraintTop_toBottomOf="@id/tvReportResultContent"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
android:textColor="@color/color_FFFFFF"
|
||||
android:textSize="14sp"
|
||||
android:text="@string/ipc_report_msg"
|
||||
android:layout_marginTop="10dp"
|
||||
android:layout_marginStart="10dp"
|
||||
/>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tvReportMsgContent"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
app:layout_constraintTop_toTopOf="@id/tvReportMsgTitle"
|
||||
app:layout_constraintLeft_toRightOf="@id/tvReportMsgTitle"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
android:minLines="1"
|
||||
android:textColor="@color/color_FF0006"
|
||||
android:textSize="14sp"
|
||||
android:layout_marginEnd="10dp"
|
||||
/>
|
||||
|
||||
<TextView
|
||||
@@ -60,15 +87,24 @@
|
||||
android:layout_height="wrap_content"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/tvReportMsgContent"
|
||||
android:textColor="@color/color_FFFFFF"
|
||||
android:textSize="14sp"
|
||||
android:text="@string/ipc_report_action"
|
||||
android:layout_marginTop="10dp"
|
||||
android:layout_marginStart="10dp"
|
||||
/>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tvReportActionContent"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
app:layout_constraintTop_toTopOf="@id/tvReportActionTitle"
|
||||
app:layout_constraintLeft_toRightOf="@id/tvReportActionTitle"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
android:minLines="1"
|
||||
android:textColor="@color/color_FFFFFF"
|
||||
android:textSize="14sp"
|
||||
android:layout_marginEnd="10dp"
|
||||
/>
|
||||
|
||||
<View
|
||||
@@ -76,6 +112,9 @@
|
||||
android:layout_height="1dp"
|
||||
android:background="#F0F0F0"
|
||||
app:layout_constraintTop_toBottomOf="@id/tvReportActionContent"
|
||||
android:textColor="@color/color_FFFFFF"
|
||||
android:textSize="14sp"
|
||||
android:layout_marginTop="5dp"
|
||||
/>
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
@@ -1,17 +1,38 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:layout_width="840px"
|
||||
android:layout_height="584px"
|
||||
android:layout_width="500px"
|
||||
android:layout_height="350px"
|
||||
android:orientation="vertical">
|
||||
|
||||
<ImageView
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:src="@drawable/icon_drag"
|
||||
android:padding="15dp"
|
||||
android:layout_gravity="center_horizontal"
|
||||
/>
|
||||
android:layout_height="wrap_content">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/iv_ipc_drag"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:src="@drawable/icon_drag"
|
||||
android:padding="10dp"
|
||||
android:layout_gravity="center_horizontal"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
/>
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/iv_ipc_close"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:src="@drawable/icon_report_close"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintTop_toTopOf="@id/iv_ipc_drag"
|
||||
app:layout_constraintBottom_toBottomOf="@id/iv_ipc_drag"
|
||||
android:padding="10dp"
|
||||
/>
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
<com.mogo.eagle.core.widget.RoundConstraintLayout
|
||||
android:layout_width="match_parent"
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tvAppVersionName"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textSize="14sp"
|
||||
android:textColor="#9EFFFFFF"
|
||||
/>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tvMapVersionName"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textSize="14sp"
|
||||
android:textColor="#9EFFFFFF"
|
||||
/>
|
||||
|
||||
</LinearLayout>
|
||||
@@ -42,7 +42,7 @@
|
||||
<dimen name="hmi_traffic_light_layout_height">154px</dimen>
|
||||
<dimen name="hmi_traffic_light_layout_corner">60px</dimen>
|
||||
<dimen name="hmi_traffic_light_layout_margin_right">40px</dimen>
|
||||
<dimen name="hmi_traffic_light_layout_margin_top">23px</dimen>
|
||||
<dimen name="hmi_traffic_light_layout_margin_top">28px</dimen>
|
||||
<dimen name="hmi_traffic_light_bg_width">210px</dimen>
|
||||
<dimen name="hmi_traffic_light_bg_height">120px</dimen>
|
||||
<dimen name="hmi_traffic_light_bg_margin_left">15px</dimen>
|
||||
|
||||
@@ -48,7 +48,7 @@
|
||||
<dimen name="hmi_traffic_light_layout_height">154px</dimen>
|
||||
<dimen name="hmi_traffic_light_layout_corner">60px</dimen>
|
||||
<dimen name="hmi_traffic_light_layout_margin_right">40px</dimen>
|
||||
<dimen name="hmi_traffic_light_layout_margin_top">23px</dimen>
|
||||
<dimen name="hmi_traffic_light_layout_margin_top">28px</dimen>
|
||||
<dimen name="hmi_traffic_light_bg_width">210px</dimen>
|
||||
<dimen name="hmi_traffic_light_bg_height">120px</dimen>
|
||||
<dimen name="hmi_traffic_light_bg_margin_left">15px</dimen>
|
||||
|
||||
@@ -39,9 +39,15 @@
|
||||
<string name="confirm">确认</string>
|
||||
<string name="cancel">稍后升级</string>
|
||||
|
||||
<string name="ipc_report_time">时间:</string>
|
||||
<string name="ipc_report_type">类型:</string>
|
||||
<string name="ipc_report_msg">原因:</string>
|
||||
<string name="ipc_report_action">建议操作:</string>
|
||||
|
||||
<!--绑定车机-->
|
||||
<string name="bindingcar_title">绑定车机</string>
|
||||
<string name="modify_binding_car">是否修改车机绑定?</string>
|
||||
<string name="to_binding_car">是否绑定车机?</string>
|
||||
|
||||
|
||||
</resources>
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
package com.mogo.eagle.core.function.map;
|
||||
|
||||
import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_MAP;
|
||||
|
||||
import android.content.Context;
|
||||
import android.os.Bundle;
|
||||
|
||||
@@ -14,6 +16,7 @@ import com.mogo.eagle.core.function.api.map.hd.IMoGoMapFragmentProvider;
|
||||
import com.mogo.eagle.core.function.api.setting.IMoGoSkinModeChangeListener;
|
||||
import com.mogo.eagle.core.function.call.map.CallerHDMapManager;
|
||||
import com.mogo.eagle.core.function.call.setting.CallerSkinModeListenerManager;
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger;
|
||||
import com.mogo.map.IMogoMap;
|
||||
import com.mogo.map.IMogoUiSettings;
|
||||
import com.mogo.map.MogoMapView;
|
||||
@@ -54,7 +57,9 @@ public class MapFragment extends MvpFragment<MapView, MapPresenter>
|
||||
@Override
|
||||
public void stepInVrMode(boolean isDayMode) {
|
||||
try {
|
||||
mMogoMapView.getMap().getUIController().stepInVrMode(isDayMode);
|
||||
if (mMogoMapView != null && mMogoMapView.getMap() != null && mMogoMapView.getMap().getUIController() != null) {
|
||||
mMogoMapView.getMap().getUIController().stepInVrMode(isDayMode);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
@@ -95,6 +100,8 @@ public class MapFragment extends MvpFragment<MapView, MapPresenter>
|
||||
super.onSaveInstanceState(outState);
|
||||
if (mMogoMapView != null) {
|
||||
mMogoMapView.onSaveInstanceState(outState);
|
||||
} else {
|
||||
CallerLogger.INSTANCE.e(M_MAP + TAG, "mMogoMapView is null");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -106,6 +113,8 @@ public class MapFragment extends MvpFragment<MapView, MapPresenter>
|
||||
}
|
||||
if (mMogoMapView != null) {
|
||||
mMogoMapView.onPause();
|
||||
} else {
|
||||
CallerLogger.INSTANCE.e(M_MAP + TAG, "mMogoMapView is null");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -117,6 +126,8 @@ public class MapFragment extends MvpFragment<MapView, MapPresenter>
|
||||
}
|
||||
if (mMogoMapView != null) {
|
||||
mMogoMapView.onResume();
|
||||
} else {
|
||||
CallerLogger.INSTANCE.e(M_MAP + TAG, "mMogoMapView is null");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -125,6 +136,8 @@ public class MapFragment extends MvpFragment<MapView, MapPresenter>
|
||||
super.onLowMemory();
|
||||
if (mMogoMapView != null) {
|
||||
mMogoMapView.onLowMemory();
|
||||
} else {
|
||||
CallerLogger.INSTANCE.e(M_MAP + TAG, "mMogoMapView is null");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -173,6 +186,8 @@ public class MapFragment extends MvpFragment<MapView, MapPresenter>
|
||||
mMogoMapView.onDestroy();
|
||||
mMogoMapView = null;
|
||||
mMogoMap = null;
|
||||
} else {
|
||||
CallerLogger.INSTANCE.e(M_MAP + TAG, "mMogoMapView is null");
|
||||
}
|
||||
super.onDestroyView();
|
||||
}
|
||||
@@ -185,12 +200,20 @@ public class MapFragment extends MvpFragment<MapView, MapPresenter>
|
||||
|
||||
@Override
|
||||
public void changeMaoViewAngle(int type) {
|
||||
mMogoMapView.getMap().getUIController().changeMapViewAngle(type);
|
||||
if (mMogoMapView != null && mMogoMapView.getMap() != null && mMogoMapView.getMap().getUIController() != null) {
|
||||
mMogoMapView.getMap().getUIController().changeMapViewAngle(type);
|
||||
} else {
|
||||
CallerLogger.INSTANCE.e(M_MAP + TAG, "mMogoMapView is null");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void changeCurrentIcon(int iconId) {
|
||||
mMogoMapView.getMap().getUIController().changeCurrentIcon(iconId);
|
||||
if (mMogoMapView != null && mMogoMapView.getMap() != null && mMogoMapView.getMap().getUIController() != null) {
|
||||
mMogoMapView.getMap().getUIController().changeCurrentIcon(iconId);
|
||||
} else {
|
||||
CallerLogger.INSTANCE.e(M_MAP + TAG, "mMogoMapView is null");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -207,7 +230,11 @@ public class MapFragment extends MvpFragment<MapView, MapPresenter>
|
||||
@Override
|
||||
public void setMapDAngle(int mode) {
|
||||
float angle = getSightModeAngle(mode);
|
||||
mMogoMapView.getMap().getUIController().setMapDAngle(angle);
|
||||
if (mMogoMapView != null && mMogoMapView.getMap() != null && mMogoMapView.getMap().getUIController() != null) {
|
||||
mMogoMapView.getMap().getUIController().setMapDAngle(angle);
|
||||
} else {
|
||||
CallerLogger.INSTANCE.e(M_MAP + TAG, "mMogoMapView is null");
|
||||
}
|
||||
}
|
||||
|
||||
private float getSightModeAngle(int mode) {
|
||||
@@ -230,7 +257,12 @@ public class MapFragment extends MvpFragment<MapView, MapPresenter>
|
||||
@Nullable
|
||||
@Override
|
||||
public CenterLine getCenterLineInfo(double lon, double lat, float angle) {
|
||||
return mMogoMapView.getMap().getUIController().getCenterLineInfo(lon, lat, angle);
|
||||
if (mMogoMapView != null && mMogoMapView.getMap() != null && mMogoMapView.getMap().getUIController() != null) {
|
||||
return mMogoMapView.getMap().getUIController().getCenterLineInfo(lon, lat, angle);
|
||||
} else {
|
||||
CallerLogger.INSTANCE.e(M_MAP + TAG, "mMogoMapView is null");
|
||||
return null; //上层使用应该判空
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -13,6 +13,7 @@ public class CarInfo implements Serializable {
|
||||
// compare为1 是表示车辆已绑定ipad sn 并且 与所传appsn一致
|
||||
// compare为2 是表示cmdb车辆没有真实绑定ipad
|
||||
// compare为3 是表示车辆已绑定ipad sn 并且 与所传appsn不一致
|
||||
// compare为4 appsn已经存在,并且绑定在其他的车上
|
||||
private String compare;
|
||||
private String old_version;
|
||||
private String vendor; //销售商
|
||||
|
||||
@@ -10,7 +10,8 @@ import androidx.annotation.Nullable
|
||||
data class IPCUpgradeStateInfo(
|
||||
val callback_url: String,
|
||||
val images: List<String>,
|
||||
val progress: Progress,
|
||||
@Nullable
|
||||
val progress: Progress?,
|
||||
@Nullable
|
||||
val releaseId: String?,
|
||||
val status: String,
|
||||
@@ -19,7 +20,8 @@ data class IPCUpgradeStateInfo(
|
||||
|
||||
data class Progress(
|
||||
val id: String,
|
||||
val progressDetail: ProgressDetail,
|
||||
@Nullable
|
||||
val progressDetail: ProgressDetail?,
|
||||
val status: String
|
||||
)
|
||||
|
||||
|
||||
@@ -9,4 +9,6 @@ interface IMoGoBindingCarListener {
|
||||
|
||||
fun queryContainersResponse(dockerList: List<String>)
|
||||
|
||||
fun pushServerConfirm()
|
||||
|
||||
}
|
||||
@@ -62,4 +62,11 @@ object CallerBindingCarListenerManager {
|
||||
}
|
||||
}
|
||||
|
||||
fun invokePushServerConfirm(){
|
||||
BINDING_CAR_LISTENER.forEach{
|
||||
val listener = it.value
|
||||
listener.pushServerConfirm()
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -90,8 +90,8 @@ WEBSOCKET_VERSION=1.1.7
|
||||
applicationId=com.mogo.launcer
|
||||
applicationName=IntelligentPilot
|
||||
# RoboBus司机端:2.5.1;RoboTaxi司机端:2.5.1;RoboTaxi乘客端:1.0.0
|
||||
versionCode=2060600
|
||||
versionName=2.6.6
|
||||
versionCode=2070000
|
||||
versionName=2.7.0
|
||||
|
||||
################# 新架构模块Maven版本管理 #################
|
||||
MOGO_CORE_FUNCTION_AUTOPILOT_VERSION=0.0.58.10
|
||||
|
||||
Reference in New Issue
Block a user