[6.10.0]
[fea] [虚拟单手动到站]
This commit is contained in:
@@ -5,6 +5,8 @@ import com.alibaba.android.arouter.facade.annotation.Route
|
||||
import com.mogo.eagle.core.data.map.MogoLocation
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_OCHCOMMON
|
||||
import com.mogo.eagle.core.utilcode.util.CoordinateUtils
|
||||
import com.mogo.och.bridge.autopilot.location.OchLocationManager
|
||||
import com.mogo.och.bridge.distance.TrajectoryAndDistanceManager
|
||||
import com.mogo.och.common.module.biz.birdge.BridgeService
|
||||
import com.mogo.och.common.module.constant.OchCommonConst
|
||||
@@ -25,6 +27,17 @@ class BridgeProvider : BridgeService {
|
||||
TrajectoryAndDistanceManager.setStationPoint(startLocation,endLocation,lineId)
|
||||
}
|
||||
|
||||
override fun distance2Point(gcjLat: Double, gcjLon: Double): Float {
|
||||
OchLocationManager.getGCJ02Location().let {
|
||||
return CoordinateUtils.calculateLineDistance(
|
||||
it.longitude,
|
||||
it.latitude,
|
||||
gcjLon,
|
||||
gcjLat
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
override fun init(context: Context?) {
|
||||
this.context = context
|
||||
|
||||
@@ -23,4 +23,8 @@ object BridgeManager {
|
||||
bridgeService?.setDistanceStation(startLocation,endLocation,lineId)
|
||||
}
|
||||
|
||||
fun distance2Point(gcjLat: Double, gcjLon: Double):Float{
|
||||
return bridgeService?.distance2Point(gcjLat,gcjLon)?:0f
|
||||
}
|
||||
|
||||
}
|
||||
@@ -7,4 +7,7 @@ interface BridgeService : IProvider {
|
||||
|
||||
fun setDistanceStation(startLocation: MogoLocation?, endLocation: MogoLocation?, lineId: Long?)
|
||||
|
||||
|
||||
fun distance2Point(gcjLat: Double, gcjLon: Double): Float
|
||||
|
||||
}
|
||||
@@ -56,14 +56,17 @@
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
android:id="@+id/common_dialog_content_new"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="@dimen/dp_10"
|
||||
tools:text="@string/cache_offline_map_content"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="@dimen/dp_36"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
android:gravity="center"
|
||||
android:layout_marginStart="@dimen/dp_120"
|
||||
android:layout_marginEnd="@dimen/dp_120"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/common_dialog_title_new" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
|
||||
@@ -193,6 +193,10 @@ object TaxiTaskModel {
|
||||
return mCurrentTaskWithOrder
|
||||
}
|
||||
|
||||
fun getCalibrationOrder(): StartServiceRespBean.Result? {
|
||||
return mDriveToNearestStationTask
|
||||
}
|
||||
|
||||
fun getCurrentOrderTrajectoryList(): MutableList<TrajectoryListRespBean.Result> {
|
||||
return mTaskTrajectoryList
|
||||
}
|
||||
|
||||
@@ -19,7 +19,6 @@ import com.mogo.och.data.taxi.TaxiOrderStatusEnum
|
||||
import com.mogo.och.bridge.autopilot.line.LineManager
|
||||
import com.mogo.och.bridge.autopilot.location.OchLocationManager
|
||||
import com.mogo.och.common.module.biz.birdge.BridgeManager
|
||||
import com.mogo.och.common.module.biz.login.EnumOpenOrderStatus
|
||||
import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager
|
||||
import com.mogo.och.common.module.network.OchCommonServiceCallback
|
||||
import com.mogo.och.common.module.utils.ToastUtilsOch
|
||||
@@ -539,9 +538,26 @@ class ItineraryCurrentModel : BaseViewModel<UnmannedState, TaskUiIntent>(),
|
||||
TaxiTaskModel.mockArriveAtNearestStation()
|
||||
}
|
||||
|
||||
fun arriveVirtualOrderView() {
|
||||
val endSite = TaxiTaskModel.getCurrentTaskWithOrder()?.endSite
|
||||
if(endSite!=null){
|
||||
val distance = BridgeManager.distance2Point(endSite.gcjLat,endSite.gcjLon)
|
||||
if(TaxiUnmannedConst.ARRIVE_AT_START_STATION_DISTANCE <= distance){
|
||||
viewCallback?.askArrivedEndStationView()
|
||||
}else{
|
||||
arriveVirtaulOrderImm()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fun arriveVirtaulOrderImm(){
|
||||
TaxiTaskModel.mockArriveAtEndStation()
|
||||
}
|
||||
|
||||
|
||||
interface SwtichLineViewCallback {
|
||||
fun onStartTaskFail()
|
||||
fun askArrivedEndStationView()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -245,8 +245,14 @@ class ItineraryCurrentView: ConstraintLayout, ItineraryCurrentModel.SwtichLineVi
|
||||
viewModelSwitch?.switchSite()
|
||||
}
|
||||
actv_arriver_station.onClick {
|
||||
// 标定单到站
|
||||
viewModel?.arriveCalibrationSite()
|
||||
if (TaxiTaskModel.getCalibrationOrder()!=null) {
|
||||
// 标定单到站
|
||||
viewModel?.arriveCalibrationSite()
|
||||
}else{
|
||||
if(TaxiTaskModel.getCurrentTaskWithOrder()!=null&&TaxiTaskModel.getCurrentTaskWithOrder()?.order==null){
|
||||
viewModel?.arriveVirtualOrderView()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -745,6 +751,7 @@ class ItineraryCurrentView: ConstraintLayout, ItineraryCurrentModel.SwtichLineVi
|
||||
|
||||
aciv_task_type_exercise.setImageResource(R.drawable.taxi_task_exercise)
|
||||
cancelTask.visibility = VISIBLE
|
||||
actv_arriver_station.visibility = VISIBLE
|
||||
|
||||
startStationName.text = startSite.siteName
|
||||
endStationName.text = endSite.siteName
|
||||
@@ -990,4 +997,25 @@ class ItineraryCurrentView: ConstraintLayout, ItineraryCurrentModel.SwtichLineVi
|
||||
commonSlideViewStartServer.reset()
|
||||
}
|
||||
|
||||
override fun askArrivedEndStationView() {
|
||||
d(TAG,"closeOrderDialog")
|
||||
val builder = CommonDialogStatus.Builder()
|
||||
val closeOrderDialog = builder
|
||||
.title(ResourcesUtils.getString(R.string.dialog_virtual_arrive_title))
|
||||
.tips(ResourcesUtils.getString(R.string.dialog_virtual_arrive_content))
|
||||
.confirmStr(ResourcesUtils.getString(R.string.dialog_order_close_confirm))
|
||||
.cancelStr(ResourcesUtils.getString(R.string.dialog_order_close_cancel))
|
||||
.build(context)
|
||||
closeOrderDialog.setClickListener(object : CommonDialogStatus.ClickListener {
|
||||
override fun confirm() {
|
||||
viewModel?.arriveVirtaulOrderImm()
|
||||
}
|
||||
|
||||
override fun cancel() {
|
||||
closeOrderDialog.dismiss()
|
||||
}
|
||||
})
|
||||
closeOrderDialog.show()
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -29,6 +29,8 @@
|
||||
<string name="dialog_order_close_confirm">确认</string>
|
||||
<string name="dialog_order_close_cancel">取消</string>
|
||||
|
||||
<string name="dialog_virtual_arrive_title">是否手动到站?</string>
|
||||
<string name="dialog_virtual_arrive_content">检测到当前位置距离站点较远,请确认是否手动触发到站?</string>
|
||||
|
||||
<string name="module_och_taxi_auto_disable_tip">自动驾驶状态为0不可用</string>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user