[feature]
[3.4.0] [删除获取路名的功能]
This commit is contained in:
@@ -15,9 +15,6 @@ public interface IOCHTaxiPassengerOrderStatusCallback {
|
||||
// 当前位置距离上车点的距离(米)、预估时间(秒)
|
||||
void onCurrentOrderDistToEndChanged(long meters, long timeInSecond);
|
||||
|
||||
//当前路名字
|
||||
void onCurrentRoadName(String currentRoadName);
|
||||
|
||||
// 司机已确认开启自动驾驶环境
|
||||
void onDriverHasCheckedPilotCondition(boolean isBoarded);
|
||||
}
|
||||
|
||||
@@ -1,125 +0,0 @@
|
||||
package com.mogo.och.taxi.passenger.model;
|
||||
|
||||
import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_TAXI_P;
|
||||
|
||||
import android.content.Context;
|
||||
|
||||
import com.amap.api.services.core.AMapException;
|
||||
import com.amap.api.services.core.LatLonPoint;
|
||||
import com.amap.api.services.geocoder.GeocodeResult;
|
||||
import com.amap.api.services.geocoder.GeocodeSearch;
|
||||
import com.amap.api.services.geocoder.RegeocodeQuery;
|
||||
import com.amap.api.services.geocoder.RegeocodeResult;
|
||||
import com.amap.api.services.geocoder.RegeocodeRoad;
|
||||
import com.mogo.eagle.core.network.utils.GsonUtil;
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger;
|
||||
import com.mogo.och.taxi.passenger.callback.IOCHTaxiPassengerNaviChangedCallback;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Timer;
|
||||
import java.util.TimerTask;
|
||||
|
||||
/**
|
||||
* @author: wangmingjun
|
||||
* @date: 2021/12/6
|
||||
*/
|
||||
public class TaxiPassengerGeocodeSearchModel implements GeocodeSearch.OnGeocodeSearchListener {
|
||||
|
||||
private final String TAG = TaxiPassengerGeocodeSearchModel.class.getSimpleName();
|
||||
|
||||
private static Context mContext;
|
||||
|
||||
private IOCHTaxiPassengerNaviChangedCallback mNaviChangedCallback;
|
||||
|
||||
GeocodeSearch mGeocodeSearch = null;
|
||||
|
||||
private String roadName = "";
|
||||
|
||||
private Timer timer ;
|
||||
|
||||
TimerTask timerTask;
|
||||
|
||||
public static TaxiPassengerGeocodeSearchModel getInstance(Context context) {
|
||||
mContext = context;
|
||||
return SingletonHolder.INSTANCE;
|
||||
}
|
||||
|
||||
private static final class SingletonHolder {
|
||||
private static final TaxiPassengerGeocodeSearchModel INSTANCE = new TaxiPassengerGeocodeSearchModel();
|
||||
}
|
||||
|
||||
private TaxiPassengerGeocodeSearchModel(){
|
||||
}
|
||||
|
||||
public void initGeocodeSearch(){
|
||||
//通过经纬度逆地理编码得到位置
|
||||
try {
|
||||
mGeocodeSearch = new GeocodeSearch(mContext);
|
||||
mGeocodeSearch.setOnGeocodeSearchListener(this);
|
||||
} catch (AMapException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
timer = new Timer();
|
||||
timerTask = new TimerTask() {
|
||||
@Override
|
||||
public void run() {
|
||||
if (mNaviChangedCallback != null){
|
||||
CallerLogger.INSTANCE.i(M_TAXI_P + TAG, "roadName道路名称: " + roadName);
|
||||
mNaviChangedCallback.onCurrentRoadName(roadName);
|
||||
}
|
||||
}
|
||||
};
|
||||
try{
|
||||
timer.schedule(timerTask,500,2000);
|
||||
}catch (Exception e){
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
public void searchLocationInfo(double lat, double lon){
|
||||
if (null != mGeocodeSearch){
|
||||
LatLonPoint latLng = new LatLonPoint(lat, lon);
|
||||
//第一个参数表示一个Latlng,第二参数表示范围多少米,第三个参数表示是火系坐标系还是GPS原生坐标系
|
||||
RegeocodeQuery query = new RegeocodeQuery(latLng, 200, GeocodeSearch.AMAP);
|
||||
mGeocodeSearch.getFromLocationAsyn(query);
|
||||
}
|
||||
}
|
||||
|
||||
public void destroyGeocodeSearch(){
|
||||
CallerLogger.INSTANCE.i(M_TAXI_P + TAG, "destroyGeocodeSearch");
|
||||
if (mGeocodeSearch != null){
|
||||
mGeocodeSearch = null;
|
||||
}
|
||||
if (mNaviChangedCallback != null){
|
||||
mNaviChangedCallback = null;
|
||||
}
|
||||
if (null != timer){
|
||||
timer.cancel();
|
||||
}
|
||||
if (null != timerTask){
|
||||
timerTask = null;
|
||||
}
|
||||
roadName = "";
|
||||
}
|
||||
|
||||
public void setOCHTaciNaviChangedCallback(IOCHTaxiPassengerNaviChangedCallback callback){
|
||||
this.mNaviChangedCallback = callback;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRegeocodeSearched(RegeocodeResult regeocodeResult, int i) {//更新频率几十 ms, 暂定更新UI为2s一次
|
||||
if (regeocodeResult != null) {
|
||||
List<RegeocodeRoad> roads = regeocodeResult.getRegeocodeAddress().getRoads();
|
||||
CallerLogger.INSTANCE.i(M_TAXI_P + TAG, "位置roads:" + GsonUtil.jsonFromObject(roads));
|
||||
if (roads != null && roads.size() > 0){
|
||||
roadName = roads.get(0).getName();//当前路的名字
|
||||
// mNaviChangedCallback.onCurrentRoadName(roads.get(0).getName());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onGeocodeSearched(GeocodeResult geocodeResult, int i) {
|
||||
|
||||
}
|
||||
}
|
||||
@@ -86,7 +86,7 @@ import java.util.concurrent.ConcurrentHashMap
|
||||
* 网约车 - 出租车业务逻辑处理
|
||||
*/
|
||||
@SuppressLint("StaticFieldLeak")
|
||||
object TaxiPassengerModel : IOCHTaxiPassengerNaviChangedCallback {
|
||||
object TaxiPassengerModel {
|
||||
|
||||
private var mContext: Context? = null
|
||||
|
||||
@@ -528,21 +528,6 @@ object TaxiPassengerModel : IOCHTaxiPassengerNaviChangedCallback {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 导航订单起点到终点 获得剩余时间,里程,预计到达时间
|
||||
*/
|
||||
fun initGeocodeSearch() {
|
||||
if (currentOCHOrder != null) {
|
||||
TaxiPassengerGeocodeSearchModel.getInstance(mContext).initGeocodeSearch()
|
||||
TaxiPassengerGeocodeSearchModel.getInstance(mContext)
|
||||
.setOCHTaciNaviChangedCallback(this)
|
||||
}
|
||||
}
|
||||
|
||||
fun destoryGeocodeSearch() {
|
||||
TaxiPassengerGeocodeSearchModel.getInstance(mContext).destroyGeocodeSearch()
|
||||
}
|
||||
|
||||
fun startOrStopQueryOrderRemaining(isStart: Boolean) {
|
||||
if (isStart) {
|
||||
BizLoopManager.setLoopFunction(MQUERYORDERREMAINING,LoopInfo(2, TaxiPassengerModel::queryOrderRemaining))
|
||||
@@ -606,12 +591,6 @@ object TaxiPassengerModel : IOCHTaxiPassengerNaviChangedCallback {
|
||||
})
|
||||
}
|
||||
|
||||
override fun onCurrentRoadName(currentRoadName: String) {
|
||||
for (callback in mOrderStatusCallbackMap.values) {
|
||||
callback.onCurrentRoadName(currentRoadName)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 订单结束或者取消的时候, 刷新导航标识位以及缓存的数据
|
||||
*/
|
||||
|
||||
@@ -21,7 +21,6 @@ import com.mogo.och.taxi.passenger.callback.IOCHTaxiPassengerADASStatusCallback;
|
||||
import com.mogo.och.taxi.passenger.callback.IOCHTaxiPassengerOrderStatusCallback;
|
||||
import com.mogo.och.taxi.passenger.callback.ITaxiPassengerCommonCallback;
|
||||
import com.mogo.och.taxi.passenger.constant.TaxiPassengerOrderStatusEnum;
|
||||
import com.mogo.och.taxi.passenger.model.TaxiPassengerGeocodeSearchModel;
|
||||
import com.mogo.och.taxi.passenger.model.TaxiPassengerModel;
|
||||
import com.mogo.och.taxi.passenger.ui.TaxiPassengerBaseFragment;
|
||||
import com.mogo.och.taxi.passenger.ui.leftmenu.LeftMenuOpen;
|
||||
@@ -130,11 +129,6 @@ public class BaseTaxiPassengerPresenter extends Presenter<TaxiPassengerBaseFragm
|
||||
LeftMenuOpen.INSTANCE.callCallBack(meters,timeInSecond,-1);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCurrentRoadName(String currentRoadName) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDriverHasCheckedPilotCondition(boolean isBoarded) {
|
||||
CallerLogger.INSTANCE.d(M_TAXI_P+TAG,"isBoarded = "+isBoarded);
|
||||
@@ -156,7 +150,6 @@ public class BaseTaxiPassengerPresenter extends Presenter<TaxiPassengerBaseFragm
|
||||
mView.showOrHideArrivedEndLayout(false,"","");
|
||||
});
|
||||
TaxiPassengerModel.INSTANCE.recoverNaviInfo();
|
||||
TaxiPassengerGeocodeSearchModel.getInstance(getContext()).destroyGeocodeSearch();
|
||||
TaxiPassengerModel.INSTANCE.startOrStopReadyToAutopilotLoop(false);
|
||||
clearV2XMarkers();
|
||||
TaxiPassengerModel.INSTANCE.cleanStation();
|
||||
@@ -209,7 +202,6 @@ public class BaseTaxiPassengerPresenter extends Presenter<TaxiPassengerBaseFragm
|
||||
// 50 到达终点 乘客可以评价
|
||||
if (TaxiPassengerOrderStatusEnum.ArriveAtEnd.getCode() == order.orderStatus){
|
||||
TaxiPassengerModel.INSTANCE.recoverNaviInfo();
|
||||
TaxiPassengerGeocodeSearchModel.getInstance(getContext()).destroyGeocodeSearch();
|
||||
mView.showOrHideOverMapViewFragment(false);
|
||||
runOnUIThread(() -> {
|
||||
mView.showOrHideServingOrderFragment(false,true);
|
||||
@@ -222,7 +214,6 @@ public class BaseTaxiPassengerPresenter extends Presenter<TaxiPassengerBaseFragm
|
||||
}
|
||||
// 60 服务完成 页面
|
||||
if (TaxiPassengerOrderStatusEnum.JourneyCompleted.getCode() == order.orderStatus){
|
||||
TaxiPassengerGeocodeSearchModel.getInstance(getContext()).destroyGeocodeSearch();
|
||||
mCurrentPassengerOrder = null;
|
||||
clearV2XMarkers();
|
||||
TaxiPassengerModel.INSTANCE.cleanStation();
|
||||
|
||||
@@ -109,11 +109,6 @@ public class TaxiPassengerServingOrderPresenter extends Presenter<TaxiPassengerS
|
||||
runOnUIThread(() -> mView.onCurrentOrderDistToEndChanged(meters, timeInSecond));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCurrentRoadName(String currentRoadName) {
|
||||
runOnUIThread(() -> mView.onCurrentRoadName(currentRoadName));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDriverHasCheckedPilotCondition(boolean isBoarded) {
|
||||
|
||||
|
||||
@@ -144,25 +144,18 @@ class TaxiPassengerServingOrderFragment :
|
||||
mProgressSeekBar?.jumpDrawablesToCurrentState()
|
||||
}
|
||||
|
||||
private fun updateDriveRoadName(currentRoadName: String) {
|
||||
mProgessDes?.text = currentRoadName
|
||||
}
|
||||
|
||||
override fun onResume() {
|
||||
super.onResume()
|
||||
mMapRottingView?.onResume()
|
||||
mAmapNaviVIew?.onResume()
|
||||
TaxiPassengerModel.initGeocodeSearch()
|
||||
}
|
||||
|
||||
override fun onHiddenChanged(hidden: Boolean) {
|
||||
super.onHiddenChanged(hidden)
|
||||
if (hidden) { //fragment 隐藏, 导航取消c
|
||||
clearPolyline()
|
||||
TaxiPassengerModel.destoryGeocodeSearch()
|
||||
} else { //fragment 显示, 导航开始
|
||||
e(SceneConstant.M_TAXI_P + "TaxiPassengerNaviTo", "initGeocodeSearch")
|
||||
TaxiPassengerModel.initGeocodeSearch()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -177,7 +170,6 @@ class TaxiPassengerServingOrderFragment :
|
||||
mMapRottingView?.onDestroy()
|
||||
mAmapNaviVIew?.onDestroy()
|
||||
AmapNaviToDestinationModel.getInstance(context).destroyAmaNavi()
|
||||
TaxiPassengerModel.destoryGeocodeSearch()
|
||||
}
|
||||
|
||||
fun showRottingMapView() {
|
||||
@@ -264,10 +256,6 @@ class TaxiPassengerServingOrderFragment :
|
||||
updateDriveProcessLoading(meters.toInt())
|
||||
}
|
||||
|
||||
fun onCurrentRoadName(roadName: String) {
|
||||
updateDriveRoadName(roadName)
|
||||
}
|
||||
|
||||
private fun updateOrderDisAndTimeView(
|
||||
remainDis: String,
|
||||
remainDisUnit: String,
|
||||
|
||||
Reference in New Issue
Block a user