Merge branch 'qa_hengyang_base' into dev_hengyang_base

This commit is contained in:
zhongchao
2021-06-25 19:41:13 +08:00
17 changed files with 149 additions and 33 deletions

View File

@@ -212,6 +212,8 @@ public class OchBusFragment extends BaseOchFragment< OchBusFragment, OchBusPrese
protected void onChangeOperationStatus() {
super.onChangeOperationStatus();
mPresenter.onChangeOperationStatus();
// TODO 临时解决因为首次请求Http-DNS是北京的bug后续需要考虑Http-DNS状态变化后向外同步的逻辑
mPresenter.queryBusRoutes();
}
/**

View File

@@ -621,7 +621,8 @@ class MogoOCHTaxiModel {
switch ( status ) {
case Cancel:
clearCurrentOCHOrder();
OCHTaxiUiController.getInstance().removeFragment();
// OCHTaxiUiController.getInstance().removeFragment();
OCHTaxiUiController.getInstance().onOrderStatusChanged(status.getCode());
break;
case UserArriveAtStartStation:
mIsArriveAtStartStation = true;

View File

@@ -415,7 +415,7 @@ class OCHTaxiFragment extends BaseOchFragment< OCHTaxiView, OCHTaxiPresenter > i
} else {
AIAssist.getInstance(getContext()).speakTTSVoice("已收车");
tvOperationStatus.setText("出车");
// hideSlidePanel();
hideSlidePanel();
// hidPanel();
}
// changeLayoutViewStatus(launch);
@@ -428,7 +428,12 @@ class OCHTaxiFragment extends BaseOchFragment< OCHTaxiView, OCHTaxiPresenter > i
@Override
public void onOrderStatusChanged(int status) {
getActivity().runOnUiThread(() -> {
getPanelView().setVisibility(status != 0 ? View.VISIBLE : View.INVISIBLE);
if (status == OCHOrderStatus.None.getCode() || status == OCHOrderStatus.Cancel.getCode() || status == OCHOrderStatus.Completed.getCode() ){
getPanelView().setVisibility(View.INVISIBLE);
hideSlidePanel();
}else {
getPanelView().setVisibility(View.VISIBLE);
}
updateOrderStatus();
});
}

View File

@@ -138,9 +138,9 @@ public abstract class BaseOchFragment<V extends IView, P extends Presenter<V>> e
RemoteControlAutoPilotParameters currentAutopilot = new RemoteControlAutoPilotParameters();
currentAutopilot.isSpeakVoice = true;
// 万集东门站
currentAutopilot.startLatLon = new RemoteControlAutoPilotParameters.AutoPilotLonLat(116.74157277,40.19885549);
currentAutopilot.startLatLon = new RemoteControlAutoPilotParameters.AutoPilotLonLat(40.194795425,116.724476409);
// 市政府前街18号
currentAutopilot.endLatLon = new RemoteControlAutoPilotParameters.AutoPilotLonLat(116.729134342,40.1953113732);
currentAutopilot.endLatLon = new RemoteControlAutoPilotParameters.AutoPilotLonLat(40.1939540844,116.720067);
// 订单运营类型 9出租车10小巴
currentAutopilot.vehicleType = 10;
Logger.d(TAG, "模拟 订单站点下发:" + currentAutopilot);

View File

@@ -16,6 +16,7 @@ import com.mogo.cloud.passport.IMoGoTokenCallback;
import com.mogo.cloud.passport.MoGoAiCloudClient;
import com.mogo.cloud.passport.MoGoAiCloudClientConfig;
import com.mogo.commons.AbsMogoApplication;
import com.mogo.commons.constants.SharedPrefsConstants;
import com.mogo.commons.debug.DebugConfig;
import com.mogo.commons.network.Utils;
import com.mogo.map.location.MogoLocation;
@@ -193,14 +194,34 @@ public class MogoApplication extends AbsMogoApplication {
.getApis().getMapServiceApi()
.getSingletonLocationClient(getApp())
.getLastKnowLocation();
//Logger.i(TAG, "刷新DNS" + mogoLocation);
if (mogoLocation != null) {
return new HttpDnsSimpleLocation(
HttpDnsSimpleLocation httpDnsSimpleLocation;
if (mogoLocation != null
&& mogoLocation.getLatitude() != 0
&& mogoLocation.getLongitude() != 0) {
httpDnsSimpleLocation = new HttpDnsSimpleLocation(
mogoLocation.getCityCode(),
mogoLocation.getLatitude(),
mogoLocation.getLongitude());
Logger.i(TAG, "使用实时GPS信息" + httpDnsSimpleLocation);
} else {
String ciyCode = SharedPrefsMgr.getInstance(getApp())
.getString(SharedPrefsConstants.LOCATION_CITY_CODE);
String latitude = SharedPrefsMgr.getInstance(getApp())
.getString(SharedPrefsConstants.LOCATION_LATITUDE);
String longitude = SharedPrefsMgr.getInstance(getApp())
.getString(SharedPrefsConstants.LOCATION_LONGITUDE);
try {
httpDnsSimpleLocation = new HttpDnsSimpleLocation(
ciyCode,
Double.parseDouble(latitude),
Double.parseDouble(longitude));
} catch (NumberFormatException e) {
e.printStackTrace();
httpDnsSimpleLocation = new HttpDnsSimpleLocation("010", 1, 1);
}
Logger.i(TAG, "使用缓存GPS信息" + httpDnsSimpleLocation);
}
return new HttpDnsSimpleLocation("010", 0, 0);
return httpDnsSimpleLocation;
}
});

View File

@@ -9,6 +9,7 @@ import androidx.annotation.Nullable;
import com.alibaba.android.arouter.facade.annotation.Route;
import com.mogo.cloud.passport.MoGoAiCloudClientConfig;
import com.mogo.commons.constants.SharedPrefsConstants;
import com.mogo.commons.debug.DebugConfig;
import com.mogo.commons.network.Utils;
import com.mogo.httpdns.HttpDnsConst;
@@ -23,6 +24,7 @@ import com.mogo.httpdnshelper.sdk.listener.OnAddressChangedListener;
import com.mogo.utils.httpdns.HttpSimpleLocation;
import com.mogo.utils.logger.Logger;
import com.mogo.utils.network.HttpDns;
import com.mogo.utils.storage.SharedPrefsMgr;
import java.net.InetAddress;
import java.net.UnknownHostException;
@@ -37,6 +39,7 @@ import static com.mogo.httpdns.HttpDnsConst.HTTP_DNS_ADDRESS_TYPE_HTTP;
@Keep
@Route(path = HttpDnsConst.PATH)
public class MogoHttpDns implements IMogoHttpDns, HttpDns, OnAddressChangedListener {
private static final String TAG = "MogoHttpDns";
private HttpDnsHelper httpDnsHelper;
@Nullable
@@ -52,7 +55,7 @@ public class MogoHttpDns implements IMogoHttpDns, HttpDns, OnAddressChangedListe
@Override
public String syncGetHttpDns(String host, int type, boolean useCache) {
Logger.d("MogoHttpDns", "getHttpDnsIp host: " + host + " type: " + type);
Logger.d(TAG, "getHttpDnsIp host: " + host + " type: " + type);
Map<String, String> map = httpDnsHelper.getAllAddress();
if (useCache) {
String address = httpDnsHelper.getHttpDnsCachedAddress(type, host);
@@ -68,7 +71,7 @@ public class MogoHttpDns implements IMogoHttpDns, HttpDns, OnAddressChangedListe
@Override
public void getHttpDnsIp(String host, int type, boolean useCache, IHttpDnsCallback callback) {
Logger.d("MogoHttpDns", "getHttpDnsIp host: " + host + " type: " + type);
Logger.d(TAG, "getHttpDnsIp host: " + host + " type: " + type);
Map<String, String> map = httpDnsHelper.getAllAddress();
if (useCache) {
String address = httpDnsHelper.getHttpDnsCachedAddress(type, host);
@@ -86,7 +89,7 @@ public class MogoHttpDns implements IMogoHttpDns, HttpDns, OnAddressChangedListe
@Override
public void addHttpDnsTtlCallback(String host, int type, IHttpDnsTtlCallback callback) {
Logger.d("MogoHttpDns", "addHttpDnsTtlCallback: host: " + host + " type: " + type);
Logger.d(TAG, "addHttpDnsTtlCallback: host: " + host + " type: " + type);
if (ttlCallbackMap.get(type + "-" + host) == null) {
ttlCallbackMap.put(type + "-" + host, new ArrayList<IHttpDnsTtlCallback>());
}
@@ -105,17 +108,42 @@ public class MogoHttpDns implements IMogoHttpDns, HttpDns, OnAddressChangedListe
}
@Override
public void init(Context context, final IHttpDnsLocationChanged locationChanged) {
// .setDefaultUrl("dzt.zhidaozhixing.com")
public void init(final Context context, final IHttpDnsLocationChanged locationChanged) {
httpDnsHelper = new HttpDnsHelper.Builder().setContext(context).setEnv(DebugConfig.getNetMode()).setSn(MoGoAiCloudClientConfig.getInstance().getSn()).setShowDebugLog(true).setLoopCheckDelay(15 * 60 * 1000).setCurrentLocation(new IHttpDnsCurrentLocation() {
@org.jetbrains.annotations.Nullable
@Override
public HttpDnsSimpleLocation getCurrentLocation() {
HttpSimpleLocation simpleLocation = locationChanged.getLocation();
if (simpleLocation != null) {
return new HttpDnsSimpleLocation("010", simpleLocation.getLat(), simpleLocation.getLon());
HttpDnsSimpleLocation httpDnsSimpleLocation;
if (simpleLocation != null
&& simpleLocation.getLat() != 0
&& simpleLocation.getLon() != 0) {
httpDnsSimpleLocation = new HttpDnsSimpleLocation(
simpleLocation.getCityCode(),
simpleLocation.getLat(),
simpleLocation.getLon());
Logger.i(TAG, "使用实时GPS信息" + httpDnsSimpleLocation);
} else {
String ciyCode = SharedPrefsMgr.getInstance(context)
.getString(SharedPrefsConstants.LOCATION_CITY_CODE);
String latitude = SharedPrefsMgr.getInstance(context)
.getString(SharedPrefsConstants.LOCATION_LATITUDE);
String longitude = SharedPrefsMgr.getInstance(context)
.getString(SharedPrefsConstants.LOCATION_LONGITUDE);
try {
httpDnsSimpleLocation = new HttpDnsSimpleLocation(
ciyCode,
Double.parseDouble(latitude),
Double.parseDouble(longitude));
} catch (NumberFormatException e) {
e.printStackTrace();
httpDnsSimpleLocation = new HttpDnsSimpleLocation("010", 1, 1);
}
Logger.i(TAG, "使用缓存GPS信息" + httpDnsSimpleLocation);
}
return null;
return httpDnsSimpleLocation;
}
}).build();
httpDnsHelper.setAddressChangedListener(this);

View File

@@ -0,0 +1,17 @@
package com.mogo.commons.constants;
/**
* @author xiaoyuzhou
* @date 2021/6/24 5:09 下午
* <p>
* 本地存储使用的常量
*/
public class SharedPrefsConstants {
// 当前城市编码
public static final String LOCATION_CITY_CODE = "location_city_code";
// 当前城市经纬度
public static final String LOCATION_LATITUDE = "location_latitude";
public static final String LOCATION_LONGITUDE = "location_longitude";
}

View File

@@ -187,4 +187,4 @@ applicationId=com.mogo.launcer
applicationName=IntelligentPilot
versionCode=80007
versionName=8.0.7
MAP_SDK_VERSION=1.0.0-vr-8.5.52
MAP_SDK_VERSION=1.0.0-vr-8.5.53

View File

@@ -16,6 +16,7 @@ import android.view.ViewGroup;
import android.view.animation.Interpolator;
import android.widget.TextView;
import com.mogo.commons.constants.SharedPrefsConstants;
import com.mogo.commons.debug.DebugConfig;
import com.mogo.map.IMogoMap;
import com.mogo.map.IMogoMapView;
@@ -37,6 +38,7 @@ import com.mogo.map.uicontroller.VisualAngleMode;
import com.mogo.utils.TipToast;
import com.mogo.utils.UiThreadHandler;
import com.mogo.utils.logger.Logger;
import com.mogo.utils.storage.SharedPrefsMgr;
import com.zhidaoauto.map.sdk.open.MapAutoApi;
import com.zhidaoauto.map.sdk.open.abs.MapStatusListener;
import com.zhidaoauto.map.sdk.open.abs.OnCameraChangeListener;
@@ -769,6 +771,15 @@ public class AMapViewWrapper implements IMogoMapView,
sysLocation.setBearing(location.getHeading());
sysLocation.setSpeed(location.getSpeed());
// 暂存本地提供给下一次的Http-DNS使用防止首次请求位置获取不到
SharedPrefsMgr.getInstance(mMapView.getContext())
.putString(SharedPrefsConstants.LOCATION_CITY_CODE, location.getCityCode());
SharedPrefsMgr.getInstance(mMapView.getContext())
.putString(SharedPrefsConstants.LOCATION_LATITUDE, String.valueOf(location.getLat()));
SharedPrefsMgr.getInstance(mMapView.getContext())
.putString(SharedPrefsConstants.LOCATION_LONGITUDE, String.valueOf(location.getLon()));
NaviClient.getInstance(getContext()).syncCarLocation(sysLocation);
if (checkAMapView() && mMapLoaded) {
// 地图初始化完成后每隔5s自动判断当前地图的模式

View File

@@ -20,7 +20,7 @@ import com.mogo.module.main.cards.MogoModulesManager;
import com.mogo.module.service.receiver.MogoReceiver;
import com.mogo.och.IMogoOCH;
import com.mogo.service.intent.IMogoIntentListener;
import com.mogo.service.map.IMogoSmallMapProvider;
import com.mogo.service.smp.IMogoSmallMapProvider;
import com.mogo.service.statusmanager.StatusDescriptor;
import com.mogo.service.v2x.IV2XWarningListener;
import com.mogo.utils.logger.Logger;

View File

@@ -239,7 +239,7 @@ public class CarIconDisplayStrategy {
.scale(MarkerServiceHandler.getMogoStatusManager().isVrMode() ? 0.4f : 1.0f)
.autoManager(false)
.anchor(0.5f, 0.5f)
.position(MarkerServiceHandler.getMapService().getNavi(AbsMogoApplication.getApp()).getCarLocation2()));
.position(MarkerServiceHandler.getMapService().getMapUIController().getWindowCenterLocation()));
} catch (Exception e) {
e.printStackTrace();
mSeekHelpingMarker = MarkerServiceHandler.getMarkerManager().addMarker(

View File

@@ -90,6 +90,15 @@ public class SmallMapDirectionView extends RelativeLayout implements IMogoCarLoc
});
}
@Override
protected void onDetachedFromWindow() {
super.onDetachedFromWindow();
// 注册定位监听
SmpServiceManager.getMogoRegisterCenter()
.unregisterCarLocationChangedListener(MODULE_NAME, this);
}
private void initAMapView() {
// 车头朝上
mAMapNaviView.setNaviMode(AMapNaviView.CAR_UP_MODE);
@@ -104,7 +113,8 @@ public class SmallMapDirectionView extends RelativeLayout implements IMogoCarLoc
mAMap.setTrafficEnabled(false);
mAMapNavi = AMapNavi.getInstance(getContext());
mAMapNavi.setIsUseExtraGPSData(false);
//使用外部GPS数据
mAMapNavi.setIsUseExtraGPSData(true);
new Thread(() -> {
try {

View File

@@ -17,13 +17,11 @@ import com.mogo.commons.AbsMogoApplication;
* @date 2021/5/19 10:50 上午
*/
public class SmallMapFragment extends Fragment {
private Context mContext;
protected View mRootView;
@Override
public void onAttach(Context context) {
super.onAttach(context);
mContext = context;
}
@Nullable

View File

@@ -6,13 +6,16 @@ import android.util.Log;
import androidx.fragment.app.FragmentActivity;
import com.alibaba.android.arouter.facade.annotation.Route;
import com.mogo.map.MogoLatLng;
import com.mogo.module.common.MogoApisHandler;
import com.mogo.service.MogoServicePaths;
import com.mogo.service.map.IMogoSmallMapProvider;
import com.mogo.service.smp.IMogoSmallMapProvider;
import com.mogo.service.statusmanager.IMogoStatusChangedListener;
import com.mogo.service.statusmanager.StatusDescriptor;
import com.mogo.utils.logger.Logger;
import java.util.List;
/**
* @author donghongyu
* @date 12/10/20 1:34 PM
@@ -32,9 +35,7 @@ public class SmallMapProvider implements IMogoSmallMapProvider, IMogoStatusChang
Log.d(TAG, "小地图模块初始化……init(FragmentActivity activity, int containerId)");
mActivity = activity;
mContainerId = containerId;
Logger.d(TAG, "addSmallMapView");
SmpServiceManager.init(mActivity);
}
@Override
@@ -86,6 +87,16 @@ public class SmallMapProvider implements IMogoSmallMapProvider, IMogoStatusChang
}
@Override
public void drawablePolyline(List<MogoLatLng> coordinates) {
}
@Override
public void clearPolyline() {
}
@Override
public void onStatusChanged(StatusDescriptor descriptor, boolean isTrue) {
Log.d(TAG, "onStatusChanged……descriptor=" + descriptor + "isTrue=" + isTrue);

View File

@@ -19,7 +19,7 @@ import com.mogo.service.launcher.IMogoLauncher;
import com.mogo.service.locationinfo.IMogoLocationInfoService;
import com.mogo.service.map.IMogoMapFrameController;
import com.mogo.service.map.IMogoMapService;
import com.mogo.service.map.IMogoSmallMapProvider;
import com.mogo.service.smp.IMogoSmallMapProvider;
import com.mogo.service.module.IMogoActionManager;
import com.mogo.service.module.IMogoAddressManager;
import com.mogo.service.module.IMogoMarkerService;

View File

@@ -1,10 +1,12 @@
package com.mogo.service.map;
package com.mogo.service.smp;
import androidx.annotation.IdRes;
import androidx.fragment.app.FragmentActivity;
import com.alibaba.android.arouter.facade.template.IProvider;
import com.mogo.service.module.IMogoModuleProvider;
import com.mogo.map.MogoLatLng;
import java.util.List;
/**
* @author donghongyu
@@ -18,7 +20,7 @@ public interface IMogoSmallMapProvider extends IProvider {
* @param activity
* @param containerId 容器ID
*/
void init(FragmentActivity activity, @IdRes int containerId );
void init(FragmentActivity activity, @IdRes int containerId);
/**
* 显示面板
@@ -32,7 +34,18 @@ public interface IMogoSmallMapProvider extends IProvider {
/**
* 修改轮盘角度
*
* @param angle 角度值 0-359
*/
void changeAngle(double angle);
/**
* 绘制路径线
*/
void drawablePolyline(List<MogoLatLng> coordinates);
/**
* 清除路径线
*/
void clearPolyline();
}

View File

@@ -1,7 +1,6 @@
package com.mogo.service.impl;
import android.content.Context;
import android.util.Log;
import com.alibaba.android.arouter.facade.annotation.Route;
import com.alibaba.android.arouter.facade.template.IProvider;
@@ -28,7 +27,7 @@ import com.mogo.service.launcher.IMogoLauncher;
import com.mogo.service.locationinfo.IMogoLocationInfoService;
import com.mogo.service.map.IMogoMapFrameController;
import com.mogo.service.map.IMogoMapService;
import com.mogo.service.map.IMogoSmallMapProvider;
import com.mogo.service.smp.IMogoSmallMapProvider;
import com.mogo.service.module.IMogoActionManager;
import com.mogo.service.module.IMogoAddressManager;
import com.mogo.service.module.IMogoMarkerService;