[routing]
[fea] [功能转移到biz]
This commit is contained in:
@@ -40,6 +40,15 @@ android {
|
||||
kotlinOptions {
|
||||
jvmTarget = '1.8'
|
||||
}
|
||||
|
||||
sourceSets {
|
||||
main {
|
||||
res.srcDirs = [
|
||||
'src/main/res',
|
||||
'src/main/res/routing',
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
dependencies {
|
||||
@@ -53,6 +62,7 @@ dependencies {
|
||||
implementation rootProject.ext.dependencies.androidxappcompat
|
||||
implementation rootProject.ext.dependencies.material
|
||||
implementation rootProject.ext.dependencies.rxandroid
|
||||
implementation rootProject.ext.dependencies.amapnavi3dmap
|
||||
implementation project(':OCH:common:common')
|
||||
|
||||
implementation rootProject.ext.dependencies.arouter
|
||||
|
||||
@@ -0,0 +1,53 @@
|
||||
package com.mogo.och.biz.routing
|
||||
|
||||
import android.content.Context
|
||||
import android.view.View
|
||||
import androidx.fragment.app.Fragment
|
||||
import com.alibaba.android.arouter.facade.annotation.Route
|
||||
import com.mogo.eagle.core.data.config.FunctionBuildConfig
|
||||
import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_OCHCOMMON
|
||||
import com.mogo.och.biz.routing.ui.RoutingSwitchView
|
||||
import com.mogo.och.common.module.biz.routing.RoutingCallback
|
||||
import com.mogo.och.common.module.biz.routing.RoutingService
|
||||
import com.mogo.och.common.module.constant.OchCommonConst
|
||||
|
||||
|
||||
@Route(path = OchCommonConst.BIZ_ROUTING)
|
||||
class RoutingProvider : RoutingService {
|
||||
|
||||
private var context: Context? = null
|
||||
|
||||
private val TAG = M_OCHCOMMON + "RoutingProvider"
|
||||
|
||||
private var switchView:RoutingSwitchView?=null
|
||||
|
||||
private var callback:RoutingCallback?=null
|
||||
|
||||
|
||||
override fun getRoutingView(): View? {
|
||||
if(AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)) {
|
||||
context?.let {
|
||||
if(switchView==null){
|
||||
switchView = RoutingSwitchView(it)
|
||||
}
|
||||
return switchView
|
||||
}
|
||||
}
|
||||
return null
|
||||
}
|
||||
|
||||
override fun setRoutingCallback(callback: RoutingCallback?) {
|
||||
this.callback = callback
|
||||
}
|
||||
|
||||
|
||||
override fun init(context: Context?) {
|
||||
this.context = context
|
||||
}
|
||||
|
||||
fun invokeCallbackShowMap(isShow: Boolean) {
|
||||
this.callback?.showMap(isShow)
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
package com.mogo.och.biz.routing
|
||||
|
||||
import android.annotation.SuppressLint
|
||||
import com.alibaba.android.arouter.launcher.ARouter
|
||||
import com.mogo.och.common.module.constant.OchCommonConst
|
||||
|
||||
|
||||
object RoutingServiceManager {
|
||||
|
||||
@SuppressLint("StaticFieldLeak")
|
||||
private var routingService: RoutingProvider? =
|
||||
ARouter.getInstance().build(OchCommonConst.BIZ_ROUTING).navigation() as RoutingProvider
|
||||
|
||||
|
||||
fun invokeCallback(isShow: Boolean) {
|
||||
this.routingService?.invokeCallbackShowMap(isShow)
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.mogo.och.unmanned.taxi.bean
|
||||
package com.mogo.och.biz.routing.bean
|
||||
|
||||
import com.mogo.eagle.core.data.BaseData
|
||||
import com.mogo.och.data.bean.BusStationBean
|
||||
@@ -1,13 +1,10 @@
|
||||
package com.mogo.och.unmanned.taxi.callback
|
||||
|
||||
import com.mogo.och.unmanned.taxi.bean.GrayLineBean
|
||||
import com.mogo.och.unmanned.taxi.bean.StartGrayAndQueryContrailRsp
|
||||
|
||||
interface ITaxiRoutingCallback {
|
||||
/**
|
||||
* 查询灰度路线列表--成功✅
|
||||
*/
|
||||
fun onQueryRoutingGrayLineListSuccess(data: MutableList<GrayLineBean>)
|
||||
fun onQueryRoutingGrayLineListSuccess(data: MutableList<com.mogo.och.biz.routing.bean.GrayLineBean>)
|
||||
|
||||
/**
|
||||
* 查询灰度路线列表--失败❌
|
||||
@@ -18,7 +15,7 @@ interface ITaxiRoutingCallback {
|
||||
/**
|
||||
* 灰度任务&查询轨迹详情--成功✅
|
||||
*/
|
||||
fun onStartGrayTaskAndQueryContrailSuccess(data: StartGrayAndQueryContrailRsp)
|
||||
fun onStartGrayTaskAndQueryContrailSuccess(data: com.mogo.och.biz.routing.bean.StartGrayAndQueryContrailRsp)
|
||||
|
||||
/**
|
||||
* 灰度任务&查询轨迹详情--失败❌
|
||||
@@ -1,16 +1,8 @@
|
||||
package com.mogo.och.unmanned.taxi.network
|
||||
package com.mogo.och.biz.routing.net
|
||||
|
||||
import com.mogo.cloud.passport.MoGoAiCloudClientConfig
|
||||
import com.mogo.commons.storage.SharedPrefsMgr
|
||||
import com.mogo.eagle.core.data.BaseData
|
||||
import com.mogo.och.unmanned.taxi.bean.EndGrayContrailTaskReq
|
||||
import com.mogo.och.unmanned.taxi.bean.QueryGrayContrailListRsp
|
||||
import com.mogo.och.unmanned.taxi.bean.QueryPointErrorReasonsRsp
|
||||
import com.mogo.och.unmanned.taxi.bean.QueryRoutingContrailByIdRsp
|
||||
import com.mogo.och.unmanned.taxi.bean.SaveGrayContrailErrorReasons
|
||||
import com.mogo.och.unmanned.taxi.bean.StartGrayContrailTaskReq
|
||||
import com.mogo.och.unmanned.taxi.bean.StartGrayContrailTaskRsp
|
||||
import com.mogo.och.unmanned.taxi.bean.SubmitGrayLineIssueLocationReq
|
||||
import io.reactivex.Observable
|
||||
import retrofit2.http.Body
|
||||
import retrofit2.http.GET
|
||||
@@ -19,7 +11,7 @@ import retrofit2.http.Headers
|
||||
import retrofit2.http.POST
|
||||
import retrofit2.http.Query
|
||||
|
||||
interface TaxiRoutingServiceApi {
|
||||
interface RoutingServiceApi {
|
||||
|
||||
/**
|
||||
* 查询灰度线路列表
|
||||
@@ -30,7 +22,7 @@ interface TaxiRoutingServiceApi {
|
||||
@Header("appId") appId: String = MoGoAiCloudClientConfig.getInstance().serviceAppId,
|
||||
@Header("ticket") ticket: String = SharedPrefsMgr.getInstance().token,
|
||||
@Query("sn") sn: String?
|
||||
): Observable<QueryGrayContrailListRsp>
|
||||
): Observable<com.mogo.och.biz.routing.bean.QueryGrayContrailListRsp>
|
||||
|
||||
/**
|
||||
* 开始一个路线的灰度任务
|
||||
@@ -40,8 +32,8 @@ interface TaxiRoutingServiceApi {
|
||||
fun startGrayTask(
|
||||
@Header("appId") appId: String = MoGoAiCloudClientConfig.getInstance().serviceAppId,
|
||||
@Header("ticket") ticket: String = SharedPrefsMgr.getInstance().token,
|
||||
@Body data: StartGrayContrailTaskReq
|
||||
): Observable<StartGrayContrailTaskRsp>
|
||||
@Body data: com.mogo.och.biz.routing.bean.StartGrayContrailTaskReq
|
||||
): Observable<com.mogo.och.biz.routing.bean.StartGrayContrailTaskRsp>
|
||||
|
||||
/**
|
||||
* 根据id查询灰度轨迹详情
|
||||
@@ -52,7 +44,7 @@ interface TaxiRoutingServiceApi {
|
||||
@Header("appId") appId: String = MoGoAiCloudClientConfig.getInstance().serviceAppId,
|
||||
@Header("ticket") ticket: String = SharedPrefsMgr.getInstance().token,
|
||||
@Query("id") contrailId: Long
|
||||
): Observable<QueryRoutingContrailByIdRsp>
|
||||
): Observable<com.mogo.och.biz.routing.bean.QueryRoutingContrailByIdRsp>
|
||||
|
||||
/**
|
||||
* 上报路线打点
|
||||
@@ -62,7 +54,7 @@ interface TaxiRoutingServiceApi {
|
||||
fun submitGrayLineIssueLocation(
|
||||
@Header("appId") appId: String = MoGoAiCloudClientConfig.getInstance().serviceAppId,
|
||||
@Header("ticket") ticket: String = SharedPrefsMgr.getInstance().token,
|
||||
@Body data: SubmitGrayLineIssueLocationReq
|
||||
@Body data: com.mogo.och.biz.routing.bean.SubmitGrayLineIssueLocationReq
|
||||
): Observable<BaseData>
|
||||
|
||||
/**
|
||||
@@ -73,7 +65,7 @@ interface TaxiRoutingServiceApi {
|
||||
fun endGrayTask(
|
||||
@Header("appId") appId: String = MoGoAiCloudClientConfig.getInstance().serviceAppId,
|
||||
@Header("ticket") ticket: String = SharedPrefsMgr.getInstance().token,
|
||||
@Body data: EndGrayContrailTaskReq
|
||||
@Body data: com.mogo.och.biz.routing.bean.EndGrayContrailTaskReq
|
||||
): Observable<BaseData>
|
||||
|
||||
/**
|
||||
@@ -84,7 +76,7 @@ interface TaxiRoutingServiceApi {
|
||||
fun getDotErrorList(
|
||||
@Header("appId") appId: String = MoGoAiCloudClientConfig.getInstance().serviceAppId,
|
||||
@Header("ticket") ticket: String = SharedPrefsMgr.getInstance().token,
|
||||
): Observable<QueryPointErrorReasonsRsp>
|
||||
): Observable<com.mogo.och.biz.routing.bean.QueryPointErrorReasonsRsp>
|
||||
|
||||
/**
|
||||
* 结束一个路线的灰度任务
|
||||
@@ -94,6 +86,6 @@ interface TaxiRoutingServiceApi {
|
||||
fun saveDotDetail(
|
||||
@Header("appId") appId: String = MoGoAiCloudClientConfig.getInstance().serviceAppId,
|
||||
@Header("ticket") ticket: String = SharedPrefsMgr.getInstance().token,
|
||||
@Body data: SaveGrayContrailErrorReasons
|
||||
@Body data: com.mogo.och.biz.routing.bean.SaveGrayContrailErrorReasons
|
||||
): Observable<BaseData>
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.mogo.och.unmanned.taxi.network
|
||||
package com.mogo.och.biz.routing.net
|
||||
|
||||
import android.content.Context
|
||||
import com.mogo.commons.storage.SharedPrefsMgr
|
||||
@@ -8,23 +8,13 @@ import com.mogo.och.common.module.constant.OchCommonConst
|
||||
import com.mogo.och.common.module.network.OchCommonServiceCallback
|
||||
import com.mogo.och.common.module.network.OchCommonSubscribeImpl
|
||||
import com.mogo.och.common.module.network.interceptor.transformTry
|
||||
import com.mogo.och.unmanned.taxi.bean.EndGrayContrailTaskReq
|
||||
import com.mogo.och.unmanned.taxi.bean.GrayLineBean
|
||||
import com.mogo.och.unmanned.taxi.bean.QueryGrayContrailListRsp
|
||||
import com.mogo.och.unmanned.taxi.bean.QueryPointErrorReasonsRsp
|
||||
import com.mogo.och.unmanned.taxi.bean.QueryRoutingContrailByIdRsp
|
||||
import com.mogo.och.unmanned.taxi.bean.SaveGrayContrailErrorReasons
|
||||
import com.mogo.och.unmanned.taxi.bean.StartGrayAndQueryContrailRsp
|
||||
import com.mogo.och.unmanned.taxi.bean.StartGrayContrailTaskReq
|
||||
import com.mogo.och.unmanned.taxi.bean.StartGrayContrailTaskRsp
|
||||
import com.mogo.och.unmanned.taxi.bean.SubmitGrayLineIssueLocationReq
|
||||
import io.reactivex.Observable
|
||||
|
||||
object TaxiRoutingServiceManager {
|
||||
object RoutingServiceManager {
|
||||
|
||||
private var mRoutingServiceApi: TaxiRoutingServiceApi =
|
||||
private var mRoutingServiceApi: RoutingServiceApi =
|
||||
MoGoRetrofitFactory.getInstance(OchCommonConst.getBaseUrl()).create(
|
||||
TaxiRoutingServiceApi::class.java
|
||||
RoutingServiceApi::class.java
|
||||
)
|
||||
|
||||
/**
|
||||
@@ -32,7 +22,7 @@ object TaxiRoutingServiceManager {
|
||||
*/
|
||||
fun queryRoutingGrayLineList(
|
||||
context: Context,
|
||||
callback: OchCommonServiceCallback<QueryGrayContrailListRsp>
|
||||
callback: OchCommonServiceCallback<com.mogo.och.biz.routing.bean.QueryGrayContrailListRsp>
|
||||
) {
|
||||
mRoutingServiceApi.queryRoutingGrayLineList(
|
||||
sn = SharedPrefsMgr.getInstance().sn
|
||||
@@ -46,8 +36,8 @@ object TaxiRoutingServiceManager {
|
||||
*/
|
||||
fun startGrayTask(
|
||||
context: Context,
|
||||
data: StartGrayContrailTaskReq,
|
||||
callback: OchCommonServiceCallback<StartGrayContrailTaskRsp>
|
||||
data: com.mogo.och.biz.routing.bean.StartGrayContrailTaskReq,
|
||||
callback: OchCommonServiceCallback<com.mogo.och.biz.routing.bean.StartGrayContrailTaskRsp>
|
||||
) {
|
||||
mRoutingServiceApi.startGrayTask(data = data).transformTry()
|
||||
.subscribe(OchCommonSubscribeImpl(context, callback, "startGrayTask"))
|
||||
@@ -59,7 +49,7 @@ object TaxiRoutingServiceManager {
|
||||
fun queryRoutingContrailById(
|
||||
context: Context,
|
||||
contrailId: Long,
|
||||
callback: OchCommonServiceCallback<QueryRoutingContrailByIdRsp>
|
||||
callback: OchCommonServiceCallback<com.mogo.och.biz.routing.bean.QueryRoutingContrailByIdRsp>
|
||||
) {
|
||||
mRoutingServiceApi.queryRoutingContrailById(contrailId = contrailId).transformTry()
|
||||
.subscribe(OchCommonSubscribeImpl(context, callback, "queryRoutingContrailById"))
|
||||
@@ -70,7 +60,7 @@ object TaxiRoutingServiceManager {
|
||||
*/
|
||||
fun submitGrayLineIssueLocation(
|
||||
context: Context,
|
||||
data: SubmitGrayLineIssueLocationReq,
|
||||
data: com.mogo.och.biz.routing.bean.SubmitGrayLineIssueLocationReq,
|
||||
callback: OchCommonServiceCallback<BaseData>
|
||||
) {
|
||||
mRoutingServiceApi.submitGrayLineIssueLocation(data = data).transformTry()
|
||||
@@ -82,7 +72,7 @@ object TaxiRoutingServiceManager {
|
||||
*/
|
||||
fun endGrayTask(
|
||||
context: Context,
|
||||
data: EndGrayContrailTaskReq,
|
||||
data: com.mogo.och.biz.routing.bean.EndGrayContrailTaskReq,
|
||||
callback: OchCommonServiceCallback<BaseData>
|
||||
) {
|
||||
mRoutingServiceApi.endGrayTask(data = data).transformTry()
|
||||
@@ -91,14 +81,14 @@ object TaxiRoutingServiceManager {
|
||||
|
||||
fun getErrorPointReasons(
|
||||
context: Context,
|
||||
callback: OchCommonServiceCallback<QueryPointErrorReasonsRsp>
|
||||
callback: OchCommonServiceCallback<com.mogo.och.biz.routing.bean.QueryPointErrorReasonsRsp>
|
||||
) {
|
||||
mRoutingServiceApi.getDotErrorList().transformTry()
|
||||
.subscribe(OchCommonSubscribeImpl(context, callback, "dot/list"))
|
||||
}
|
||||
fun saveDotDetail(
|
||||
context: Context,
|
||||
data: SaveGrayContrailErrorReasons,
|
||||
data: com.mogo.och.biz.routing.bean.SaveGrayContrailErrorReasons,
|
||||
callback: OchCommonServiceCallback<BaseData>
|
||||
) {
|
||||
mRoutingServiceApi.saveDotDetail(data = data).transformTry()
|
||||
@@ -112,16 +102,17 @@ object TaxiRoutingServiceManager {
|
||||
context: Context,
|
||||
sn: String,
|
||||
contrailId: Long,
|
||||
grayLineBean: GrayLineBean,
|
||||
callback: OchCommonServiceCallback<StartGrayAndQueryContrailRsp>
|
||||
grayLineBean: com.mogo.och.biz.routing.bean.GrayLineBean,
|
||||
callback: OchCommonServiceCallback<com.mogo.och.biz.routing.bean.StartGrayAndQueryContrailRsp>
|
||||
) {
|
||||
val data = StartGrayContrailTaskReq(sn = sn, contrailId = contrailId)
|
||||
val data =
|
||||
com.mogo.och.biz.routing.bean.StartGrayContrailTaskReq(sn = sn, contrailId = contrailId)
|
||||
var taskId: Long
|
||||
mRoutingServiceApi.startGrayTask(data = data)
|
||||
.flatMap { startGrayRsp ->
|
||||
if (startGrayRsp.data == null) {
|
||||
taskId = -1L
|
||||
val result = StartGrayAndQueryContrailRsp(
|
||||
val result = com.mogo.och.biz.routing.bean.StartGrayAndQueryContrailRsp(
|
||||
taskId = taskId,
|
||||
contrail = null,
|
||||
grayLineBean = grayLineBean
|
||||
@@ -133,7 +124,7 @@ object TaxiRoutingServiceManager {
|
||||
taskId = startGrayRsp.data!!
|
||||
return@flatMap mRoutingServiceApi.queryRoutingContrailById(contrailId = contrailId)
|
||||
.map { queryRoutingContrailRsp ->
|
||||
val result = StartGrayAndQueryContrailRsp(
|
||||
val result = com.mogo.och.biz.routing.bean.StartGrayAndQueryContrailRsp(
|
||||
taskId = taskId,
|
||||
contrail = queryRoutingContrailRsp.data,
|
||||
grayLineBean = grayLineBean
|
||||
@@ -1,8 +1,8 @@
|
||||
package com.mogo.och.unmanned.taxi.ui.routing
|
||||
package com.mogo.och.biz.routing.ui
|
||||
|
||||
import androidx.lifecycle.ViewModel
|
||||
import com.mogo.och.biz.routing.bean.StartGrayAndQueryContrailRsp
|
||||
import com.mogo.och.common.module.manager.loop.BizLoopManager
|
||||
import com.mogo.och.unmanned.taxi.bean.StartGrayAndQueryContrailRsp
|
||||
|
||||
/**
|
||||
* @author XuXinChao
|
||||
@@ -1,21 +1,19 @@
|
||||
package com.mogo.och.unmanned.taxi.ui.routing
|
||||
package com.mogo.och.biz.routing.ui
|
||||
|
||||
import android.content.Context
|
||||
import android.util.AttributeSet
|
||||
import android.view.LayoutInflater
|
||||
import androidx.constraintlayout.widget.ConstraintLayout
|
||||
import androidx.lifecycle.LifecycleOwner
|
||||
import androidx.lifecycle.ViewModelProvider
|
||||
import androidx.lifecycle.findViewTreeViewModelStoreOwner
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
|
||||
import com.mogo.eagle.core.utilcode.util.ThreadUtils
|
||||
import com.mogo.och.biz.R
|
||||
import com.mogo.och.biz.routing.bean.StartGrayAndQueryContrailRsp
|
||||
import com.mogo.och.common.module.utils.ResourcesUtils
|
||||
import com.mogo.och.unmanned.taxi.R
|
||||
import com.mogo.och.unmanned.taxi.TaxiUnmannedDriverProvider
|
||||
import com.mogo.och.unmanned.taxi.bean.StartGrayAndQueryContrailRsp
|
||||
import kotlinx.android.synthetic.main.unmanned_routing_switch.view.routingRunningView
|
||||
import kotlinx.android.synthetic.main.unmanned_routing_switch.view.routingSelectView
|
||||
import kotlinx.android.synthetic.main.unmanned_routing_switch.view.switch_routing_loading
|
||||
import kotlinx.android.synthetic.main.biz_taxi_switch.view.routingRunningView
|
||||
import kotlinx.android.synthetic.main.biz_taxi_switch.view.routingSelectView
|
||||
import kotlinx.android.synthetic.main.biz_taxi_switch.view.switch_routing_loading
|
||||
|
||||
class RoutingSwitchView: ConstraintLayout, RoutingSwitchModel.SwtichLineViewCallback {
|
||||
|
||||
@@ -35,17 +33,15 @@ class RoutingSwitchView: ConstraintLayout, RoutingSwitchModel.SwtichLineViewCall
|
||||
|
||||
private var viewModel: RoutingSwitchModel?=null
|
||||
|
||||
private var fragment: LifecycleOwner?=null
|
||||
|
||||
|
||||
init {
|
||||
LayoutInflater.from(context).inflate(R.layout.unmanned_routing_switch, this, true)
|
||||
LayoutInflater.from(context).inflate(R.layout.biz_taxi_switch, this, true)
|
||||
initView()
|
||||
initEventBus()
|
||||
}
|
||||
|
||||
private fun initView(){
|
||||
fragment = TaxiUnmannedDriverProvider.getFragmentInfo()
|
||||
switch_routing_loading.setEmptyText(ResourcesUtils.getString(R.string.common_biz_loading))
|
||||
}
|
||||
|
||||
@@ -1,16 +1,15 @@
|
||||
package com.mogo.och.unmanned.taxi.ui.routing.errorpoint
|
||||
package com.mogo.och.biz.routing.ui.errorpoint
|
||||
|
||||
import android.content.Context
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import android.widget.CheckBox
|
||||
import androidx.appcompat.widget.AppCompatImageView
|
||||
import androidx.appcompat.widget.AppCompatTextView
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import com.mogo.eagle.core.utilcode.kotlin.onClick
|
||||
import com.mogo.och.unmanned.taxi.R
|
||||
import com.mogo.och.unmanned.taxi.bean.PointError
|
||||
import com.mogo.och.biz.R
|
||||
import com.mogo.och.biz.routing.bean.PointError
|
||||
import me.jessyan.autosize.AutoSizeCompat
|
||||
|
||||
/**
|
||||
@@ -40,7 +39,7 @@ class ErrorPointItemAdapter(
|
||||
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): TextVH {
|
||||
val view: View
|
||||
val inflater = LayoutInflater.from(context)
|
||||
view = inflater.inflate(R.layout.taxt_report_error_point_item, parent, false)
|
||||
view = inflater.inflate(R.layout.biz_taxi_report_error_point_item, parent, false)
|
||||
return TextVH(view)
|
||||
}
|
||||
|
||||
@@ -48,9 +47,9 @@ class ErrorPointItemAdapter(
|
||||
val errorInfo = dataList[holder.bindingAdapterPosition]
|
||||
AutoSizeCompat.autoConvertDensityOfGlobal(holder.itemView.resources)
|
||||
if (errorInfo.isCheck) {
|
||||
holder.cbErrorInfo.setImageResource(R.drawable.taxi_routing_check)
|
||||
holder.cbErrorInfo.setImageResource(R.drawable.biz_taxi_routing_check)
|
||||
}else{
|
||||
holder.cbErrorInfo.setImageResource(R.drawable.taxi_routing_uncheck)
|
||||
holder.cbErrorInfo.setImageResource(R.drawable.biz_taxi_uncheck)
|
||||
}
|
||||
holder.cbErrorResong.text = errorInfo.name
|
||||
holder.itemView.onClick {
|
||||
@@ -1,29 +1,25 @@
|
||||
package com.mogo.och.unmanned.taxi.ui.routing.errorpoint
|
||||
package com.mogo.och.biz.routing.ui.errorpoint
|
||||
|
||||
import android.content.Context
|
||||
import android.util.AttributeSet
|
||||
import android.view.LayoutInflater
|
||||
import androidx.lifecycle.ViewModelProvider
|
||||
import androidx.recyclerview.widget.GridLayoutManager
|
||||
import com.google.android.flexbox.AlignItems
|
||||
import com.google.android.flexbox.FlexDirection
|
||||
import com.google.android.flexbox.FlexWrap
|
||||
import com.google.android.flexbox.FlexboxLayoutManager
|
||||
import com.mogo.eagle.core.utilcode.kotlin.onClick
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant
|
||||
import com.mogo.eagle.core.utilcode.util.TimeUtils
|
||||
import com.mogo.eagle.core.utilcode.util.ToastUtils
|
||||
import com.mogo.och.biz.R
|
||||
import com.mogo.och.biz.routing.bean.PointError
|
||||
import com.mogo.och.common.module.wigets.WindowRelativeLayout
|
||||
import com.mogo.och.common.module.wigets.dialog.CommonDialogView
|
||||
import com.mogo.och.common.module.wigets.dialog.CommonFeedbackDialog
|
||||
import com.mogo.och.unmanned.taxi.R
|
||||
import com.mogo.och.unmanned.taxi.bean.PointError
|
||||
import kotlinx.android.synthetic.main.taxt_report_error_point_panel.view.lvs_loding
|
||||
import kotlinx.android.synthetic.main.taxt_report_error_point_panel.view.rvErrorPointReason
|
||||
import kotlinx.android.synthetic.main.taxt_report_error_point_panel.view.tv_report_error_point_reason
|
||||
import kotlinx.android.synthetic.main.taxt_report_error_point_panel.view.tv_report_error_point_reason_cancel
|
||||
import kotlinx.android.synthetic.main.taxt_report_error_point_panel.view.tv_work_order_time
|
||||
import kotlinx.android.synthetic.main.biz_taxi_report_error_point_panel.view.rvErrorPointReason
|
||||
import kotlinx.android.synthetic.main.biz_taxi_report_error_point_panel.view.lvs_loding
|
||||
import kotlinx.android.synthetic.main.biz_taxi_report_error_point_panel.view.tv_report_error_point_reason
|
||||
import kotlinx.android.synthetic.main.biz_taxi_report_error_point_panel.view.tv_report_error_point_reason_cancel
|
||||
import kotlinx.android.synthetic.main.biz_taxi_report_error_point_panel.view.tv_work_order_time
|
||||
|
||||
/**
|
||||
*
|
||||
@@ -78,7 +74,7 @@ class ReportErrorPointView : WindowRelativeLayout,
|
||||
|
||||
private fun initView() {
|
||||
d(SceneConstant.M_TAXI_P + TAG, "initView")
|
||||
LayoutInflater.from(context).inflate(R.layout.taxt_report_error_point_panel, this, true)
|
||||
LayoutInflater.from(context).inflate(R.layout.biz_taxi_report_error_point_panel, this, true)
|
||||
|
||||
rvErrorPointReason?.layoutManager = GridLayoutManager(context, 2)
|
||||
rvErrorPointReason?.setHasFixedSize(true)
|
||||
@@ -1,16 +1,16 @@
|
||||
package com.mogo.och.unmanned.taxi.ui.routing.errorpoint
|
||||
package com.mogo.och.biz.routing.ui.errorpoint
|
||||
|
||||
import androidx.lifecycle.ViewModel
|
||||
import com.mogo.commons.AbsMogoApplication
|
||||
import com.mogo.eagle.core.data.BaseData
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
|
||||
import com.mogo.eagle.core.utilcode.util.ToastUtils
|
||||
import com.mogo.och.biz.routing.bean.PointError
|
||||
import com.mogo.och.biz.routing.bean.QueryPointErrorReasonsRsp
|
||||
import com.mogo.och.biz.routing.bean.SaveGrayContrailErrorReasons
|
||||
import com.mogo.och.biz.routing.net.RoutingServiceManager
|
||||
import com.mogo.och.bridge.autopilot.location.OchLocationManager
|
||||
import com.mogo.och.common.module.network.OchCommonServiceCallback
|
||||
import com.mogo.och.unmanned.taxi.bean.PointError
|
||||
import com.mogo.och.unmanned.taxi.bean.QueryPointErrorReasonsRsp
|
||||
import com.mogo.och.unmanned.taxi.bean.SaveGrayContrailErrorReasons
|
||||
import com.mogo.och.unmanned.taxi.network.TaxiRoutingServiceManager
|
||||
|
||||
class ReportErrorPointViewModel : ViewModel() {
|
||||
|
||||
@@ -30,7 +30,7 @@ class ReportErrorPointViewModel : ViewModel() {
|
||||
}
|
||||
|
||||
fun getPointErrorReasons(){
|
||||
TaxiRoutingServiceManager.getErrorPointReasons(
|
||||
RoutingServiceManager.getErrorPointReasons(
|
||||
AbsMogoApplication.getApp(),
|
||||
object : OchCommonServiceCallback<QueryPointErrorReasonsRsp> {
|
||||
override fun onSuccess(data: QueryPointErrorReasonsRsp?) {
|
||||
@@ -79,7 +79,7 @@ class ReportErrorPointViewModel : ViewModel() {
|
||||
occurrenceTime,
|
||||
errorReasonCodes
|
||||
)
|
||||
TaxiRoutingServiceManager.saveDotDetail(
|
||||
RoutingServiceManager.saveDotDetail(
|
||||
AbsMogoApplication.getApp(),
|
||||
saveGrayContrailErrorReasons,
|
||||
object : OchCommonServiceCallback<BaseData> {
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.mogo.och.unmanned.taxi.ui.routing.routingselect
|
||||
package com.mogo.och.biz.routing.ui.routingselect
|
||||
|
||||
import android.content.Context
|
||||
import android.view.LayoutInflater
|
||||
@@ -8,8 +8,8 @@ import androidx.appcompat.widget.AppCompatTextView
|
||||
import androidx.recyclerview.widget.DiffUtil
|
||||
import androidx.recyclerview.widget.DiffUtil.Callback
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import com.mogo.och.unmanned.taxi.R
|
||||
import com.mogo.och.unmanned.taxi.bean.GrayLineBean
|
||||
import com.mogo.och.biz.R
|
||||
import com.mogo.och.biz.routing.bean.GrayLineBean
|
||||
import me.jessyan.autosize.AutoSizeCompat
|
||||
|
||||
/**
|
||||
@@ -42,7 +42,7 @@ class RoutingItemAdapter(
|
||||
viewType: Int
|
||||
): RoutingItemViewHolder {
|
||||
val view = LayoutInflater.from(mContext).inflate(
|
||||
R.layout.unmanned_routing_select_item, parent, false
|
||||
R.layout.biz_taxi_select_item, parent, false
|
||||
)
|
||||
return RoutingItemViewHolder(view)
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.mogo.och.unmanned.taxi.ui.routing.routingselect
|
||||
package com.mogo.och.biz.routing.ui.routingselect
|
||||
|
||||
import androidx.lifecycle.ViewModel
|
||||
import com.mogo.commons.AbsMogoApplication
|
||||
@@ -9,17 +9,16 @@ import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
|
||||
import com.mogo.eagle.core.utilcode.util.GsonUtils
|
||||
import com.mogo.eagle.core.utilcode.util.NetworkUtils
|
||||
import com.mogo.eagle.core.utilcode.util.ToastUtils
|
||||
import com.mogo.och.biz.routing.bean.GrayLineBean
|
||||
import com.mogo.och.biz.routing.bean.QueryGrayContrailListRsp
|
||||
import com.mogo.och.biz.routing.bean.StartGrayAndQueryContrailRsp
|
||||
import com.mogo.och.biz.routing.net.RoutingServiceManager
|
||||
import com.mogo.och.bridge.autopilot.line.LineManager
|
||||
import com.mogo.och.common.module.network.OchCommonServiceCallback
|
||||
import com.mogo.och.data.bean.BusStationBean
|
||||
import com.mogo.och.data.bean.LineInfo
|
||||
import com.mogo.och.unmanned.taxi.bean.GrayLineBean
|
||||
import com.mogo.och.unmanned.taxi.bean.QueryGrayContrailListRsp
|
||||
import com.mogo.och.unmanned.taxi.bean.StartGrayAndQueryContrailRsp
|
||||
import com.mogo.och.unmanned.taxi.network.TaxiRoutingServiceManager
|
||||
import com.mogo.och.unmanned.taxi.ui.debug.DebugView
|
||||
import com.mogo.och.unmanned.taxi.ui.routing.TaxiRoutingModel
|
||||
import com.mogo.och.unmanned.taxi.ui.routing.routingrunning.RoutingRunningModel
|
||||
import com.mogo.och.biz.routing.ui.runing.taxi.routingrunning.RoutingRunningModel
|
||||
import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager
|
||||
|
||||
/**
|
||||
* @author XuXinChao
|
||||
@@ -43,9 +42,9 @@ class RoutingSelectModel : ViewModel() {
|
||||
* 查询灰度路线
|
||||
*/
|
||||
fun queryRoutingGrayLineList() {
|
||||
DebugView.printInfoMsg("[查询灰度路线] 准备发送请求,sn=${SharedPrefsMgr.getInstance().sn}")
|
||||
OchChainLogManager.writeChainLogRouting("[查询灰度路线]","[查询灰度路线] 准备发送请求,sn=${SharedPrefsMgr.getInstance().sn}")
|
||||
|
||||
TaxiRoutingServiceManager.queryRoutingGrayLineList(
|
||||
RoutingServiceManager.queryRoutingGrayLineList(
|
||||
content,
|
||||
object : OchCommonServiceCallback<QueryGrayContrailListRsp> {
|
||||
override fun onSuccess(data: QueryGrayContrailListRsp) {
|
||||
@@ -53,7 +52,7 @@ class RoutingSelectModel : ViewModel() {
|
||||
TAG,
|
||||
"queryRoutingGrayLineList onSuccess: data=${GsonUtils.toJson(data)}"
|
||||
)
|
||||
DebugView.printInfoMsg("[查询灰度路线] 请求success,dataSize=${data?.data?.size}")
|
||||
OchChainLogManager.writeChainLogRouting("[查询灰度路线]","[查询灰度路线] 请求success,dataSize=${data?.data?.size}")
|
||||
val result = mutableListOf<GrayLineBean>()
|
||||
data.data?.also {
|
||||
result.addAll(it)
|
||||
@@ -66,7 +65,7 @@ class RoutingSelectModel : ViewModel() {
|
||||
TAG,
|
||||
"queryRoutingGrayLineList onFail: code=$code, msg=$msg"
|
||||
)
|
||||
DebugView.printErrorMsg("[查询灰度路线] 请求fail, code=$code, msg=$msg, sn=${SharedPrefsMgr.getInstance().sn}")
|
||||
OchChainLogManager.writeChainLogRouting("[查询灰度路线]","[查询灰度路线] 请求fail, code=$code, msg=$msg, sn=${SharedPrefsMgr.getInstance().sn}")
|
||||
ToastUtils.showShort("查询灰度线路列表异常, 请稍后重试, code=$code")
|
||||
viewCallback?.onQueryRoutingGrayLineListFailed(msg ?: "查询灰度线路列表异常, 请稍后重试")
|
||||
}
|
||||
@@ -83,7 +82,7 @@ class RoutingSelectModel : ViewModel() {
|
||||
TAG,
|
||||
"queryRoutingGrayLineList onError, msg=$hintStr, sn=${SharedPrefsMgr.getInstance().sn}"
|
||||
)
|
||||
DebugView.printErrorMsg("[查询灰度路线] 请求error, msg=$hintStr")
|
||||
OchChainLogManager.writeChainLogRouting("[查询灰度路线]","[查询灰度路线] 请求error, msg=$hintStr")
|
||||
viewCallback?.onQueryRoutingGrayLineListFailed(hintStr)
|
||||
}
|
||||
})
|
||||
@@ -93,8 +92,8 @@ class RoutingSelectModel : ViewModel() {
|
||||
* 开始灰度任务&查询轨迹详情
|
||||
*/
|
||||
fun startGrayTaskAndQueryRoutingContrail(contrailId: Long, grayLineBean: GrayLineBean) {
|
||||
DebugView.printInfoMsg("[开始灰度任务&查询轨迹详情] 准备发送请求,contrailId=${contrailId}, lineId=${grayLineBean.lineId}")
|
||||
TaxiRoutingServiceManager.startGrayTaskAndQueryRoutingContrail(
|
||||
OchChainLogManager.writeChainLogRouting("[开始灰度任务&查询轨迹详情]","[开始灰度任务&查询轨迹详情] 准备发送请求,contrailId=${contrailId}, lineId=${grayLineBean.lineId}")
|
||||
RoutingServiceManager.startGrayTaskAndQueryRoutingContrail(
|
||||
content,
|
||||
sn = SharedPrefsMgr.getInstance().sn,
|
||||
contrailId = contrailId,
|
||||
@@ -109,7 +108,7 @@ class RoutingSelectModel : ViewModel() {
|
||||
)
|
||||
}"
|
||||
)
|
||||
DebugView.printInfoMsg("[开始灰度任务&查询轨迹详情] 请求success,taskId=${data.taskId}, contrailId=${contrailId}, lineId=${grayLineBean.lineId}")
|
||||
OchChainLogManager.writeChainLogRouting("[开始灰度任务&查询轨迹详情]","[开始灰度任务&查询轨迹详情] 请求success,taskId=${data.taskId}, contrailId=${contrailId}, lineId=${grayLineBean.lineId}")
|
||||
|
||||
initAutopilot(data)
|
||||
}
|
||||
@@ -119,7 +118,7 @@ class RoutingSelectModel : ViewModel() {
|
||||
TAG,
|
||||
"startGrayTaskAndQueryRoutingContrail onFail: code=$code, msg=$msg"
|
||||
)
|
||||
DebugView.printErrorMsg("[开始灰度任务&查询轨迹详情] 请求fail, code=$code, msg=$msg, contrailId=${contrailId}, lineId=${grayLineBean.lineId}")
|
||||
OchChainLogManager.writeChainLogRouting("[开始灰度任务&查询轨迹详情]","[开始灰度任务&查询轨迹详情] 请求fail, code=$code, msg=$msg, contrailId=${contrailId}, lineId=${grayLineBean.lineId}")
|
||||
viewCallback?.onStartGrayTaskAndQueryContrailFailed( msg ?: "startGrayTaskAndQueryRoutingContrail onFail")
|
||||
}
|
||||
|
||||
@@ -135,7 +134,7 @@ class RoutingSelectModel : ViewModel() {
|
||||
TAG,
|
||||
"startGrayTaskAndQueryRoutingContrail onError, msg=$hintStr, contrailId=${contrailId}, lineId=${grayLineBean.lineId}"
|
||||
)
|
||||
DebugView.printErrorMsg("[开始灰度任务&查询轨迹详情] 请求error, msg=$hintStr")
|
||||
OchChainLogManager.writeChainLogRouting("[开始灰度任务&查询轨迹详情]","[开始灰度任务&查询轨迹详情] 请求error, msg=$hintStr")
|
||||
viewCallback?.onStartGrayTaskAndQueryContrailFailed(hintStr)
|
||||
}
|
||||
}
|
||||
@@ -143,16 +142,16 @@ class RoutingSelectModel : ViewModel() {
|
||||
}
|
||||
|
||||
private fun initAutopilot(data: StartGrayAndQueryContrailRsp) {
|
||||
DebugView.printInfoMsg("[开始任务] 准备开始任务")
|
||||
OchChainLogManager.writeChainLogRouting("[开始任务]","[开始任务] 准备开始任务")
|
||||
val grayLineBean = data.grayLineBean
|
||||
val contrailBean = data.contrail
|
||||
val grayId = data.taskId
|
||||
if (grayLineBean == null || contrailBean == null) {
|
||||
ToastUtils.showShort("灰度线路或轨迹信息异常,请稍后再试")
|
||||
DebugView.printErrorMsg("[开始任务] 灰度线路或轨迹信息异常,请稍后再试")
|
||||
OchChainLogManager.writeChainLogRouting("[开始任务]","[开始任务] 灰度线路或轨迹信息异常,请稍后再试")
|
||||
return
|
||||
}
|
||||
DebugView.printInfoMsg("[启自驾] 准备启动自驾")
|
||||
OchChainLogManager.writeChainLogRouting("[启自驾]","[启自驾] 准备启动自驾")
|
||||
|
||||
val startStation = grayLineBean.startSite?.toBusStationBean()
|
||||
val endStation = grayLineBean.endSite?.toBusStationBean()
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.mogo.och.unmanned.taxi.ui.routing.routingselect
|
||||
package com.mogo.och.biz.routing.ui.routingselect
|
||||
|
||||
import android.content.Context
|
||||
import android.util.AttributeSet
|
||||
@@ -9,16 +9,16 @@ import androidx.lifecycle.ViewModelProvider
|
||||
import androidx.lifecycle.findViewTreeViewModelStoreOwner
|
||||
import com.mogo.eagle.core.utilcode.mogo.view.SpacesItemDecoration
|
||||
import com.mogo.eagle.core.utilcode.util.ToastUtils
|
||||
import com.mogo.och.biz.R
|
||||
import com.mogo.och.biz.routing.bean.GrayLineBean
|
||||
import com.mogo.och.biz.routing.bean.StartGrayAndQueryContrailRsp
|
||||
import com.mogo.och.common.module.wigets.WrapContentLinearLayoutManager
|
||||
import com.mogo.och.unmanned.taxi.R
|
||||
import com.mogo.och.unmanned.taxi.bean.GrayLineBean
|
||||
import com.mogo.och.unmanned.taxi.bean.StartGrayAndQueryContrailRsp
|
||||
import com.mogo.och.unmanned.taxi.ui.debug.DebugView
|
||||
import com.mogo.och.unmanned.taxi.ui.routing.RoutingSwitchModel
|
||||
import com.mogo.och.unmanned.taxi.ui.routing.routingselect.RoutingSelectModel.SwtichRoutingViewCallback
|
||||
import kotlinx.android.synthetic.main.unmanned_routing_select.view.include_empty
|
||||
import kotlinx.android.synthetic.main.unmanned_routing_select.view.include_error
|
||||
import kotlinx.android.synthetic.main.unmanned_routing_select.view.switch_routing_rv
|
||||
import com.mogo.och.biz.routing.ui.RoutingSwitchModel
|
||||
import com.mogo.och.biz.routing.ui.routingselect.RoutingSelectModel.SwtichRoutingViewCallback
|
||||
import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager
|
||||
import kotlinx.android.synthetic.main.biz_taxi_select.view.include_empty
|
||||
import kotlinx.android.synthetic.main.biz_taxi_select.view.include_error
|
||||
import kotlinx.android.synthetic.main.biz_taxi_select.view.switch_routing_rv
|
||||
import me.jessyan.autosize.utils.AutoSizeUtils
|
||||
|
||||
class RoutingSelectView: ConstraintLayout, SwtichRoutingViewCallback {
|
||||
@@ -48,7 +48,7 @@ class RoutingSelectView: ConstraintLayout, SwtichRoutingViewCallback {
|
||||
|
||||
|
||||
init {
|
||||
LayoutInflater.from(context).inflate(R.layout.unmanned_routing_select, this, true)
|
||||
LayoutInflater.from(context).inflate(R.layout.biz_taxi_select, this, true)
|
||||
initView()
|
||||
}
|
||||
|
||||
@@ -61,12 +61,13 @@ class RoutingSelectView: ConstraintLayout, SwtichRoutingViewCallback {
|
||||
switch_routing_rv.addItemDecoration(SpacesItemDecoration(AutoSizeUtils.dp2px(context,20f)))
|
||||
switch_routing_rv.adapter = mChooseLineListAdapter
|
||||
//设置item 点击事件
|
||||
mChooseLineListAdapter.setOnLineItemClickListener(object : RoutingItemAdapter.LineItemClickListener {
|
||||
mChooseLineListAdapter.setOnLineItemClickListener(object :
|
||||
RoutingItemAdapter.LineItemClickListener {
|
||||
override fun onItemClick(data: GrayLineBean) {
|
||||
if(data.contrailId==null||data.contrailId!!<=0L){
|
||||
ToastUtils.showShort("请设置轨迹信息")
|
||||
}
|
||||
DebugView.printInfoMsg("[选择灰度任务] 当前选择 mCurrentChosenPosition=$mCurrentChosenPosition, ")
|
||||
OchChainLogManager.writeChainLogRouting("[选择灰度任务]","[选择灰度任务] 当前选择 mCurrentChosenPosition=$mCurrentChosenPosition, ")
|
||||
swtichViewModel?.showLoading()
|
||||
viewModel?.startGrayTaskAndQueryRoutingContrail(data.contrailId!!,data)
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.mogo.och.unmanned.taxi.ui.routing.routingrunning
|
||||
package com.mogo.och.biz.routing.ui.runing.taxi.routingrunning
|
||||
|
||||
import androidx.lifecycle.ViewModel
|
||||
import com.mogo.commons.AbsMogoApplication
|
||||
@@ -9,6 +9,12 @@ import com.mogo.eagle.core.function.call.och.CallerEagleBaseFunctionCall4OchMana
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
|
||||
import com.mogo.eagle.core.utilcode.util.GsonUtils
|
||||
import com.mogo.eagle.core.utilcode.util.NetworkUtils
|
||||
import com.mogo.och.biz.routing.bean.ContrailBean
|
||||
import com.mogo.och.biz.routing.bean.EndGrayContrailTaskReq
|
||||
import com.mogo.och.biz.routing.bean.EndGrayTaskFeedbackType
|
||||
import com.mogo.och.biz.routing.bean.GrayLineBean
|
||||
import com.mogo.och.biz.routing.bean.StartGrayAndQueryContrailRsp
|
||||
import com.mogo.och.biz.routing.net.RoutingServiceManager
|
||||
import com.mogo.och.bridge.autopilot.autopilot.IOchAutopilotStatusListener
|
||||
import com.mogo.och.bridge.autopilot.autopilot.OchAutoPilotStatusListenerManager
|
||||
import com.mogo.och.bridge.autopilot.autopilot.bean.ArrivedStation
|
||||
@@ -16,15 +22,9 @@ import com.mogo.och.bridge.autopilot.line.ILineCallback
|
||||
import com.mogo.och.bridge.autopilot.line.LineManager
|
||||
import com.mogo.och.bridge.distance.IDistanceListener
|
||||
import com.mogo.och.bridge.distance.TrajectoryAndDistanceManager
|
||||
import com.mogo.och.common.module.constant.OchCommonConst
|
||||
import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager
|
||||
import com.mogo.och.common.module.network.OchCommonServiceCallback
|
||||
import com.mogo.och.unmanned.taxi.bean.ContrailBean
|
||||
import com.mogo.och.unmanned.taxi.bean.EndGrayContrailTaskReq
|
||||
import com.mogo.och.unmanned.taxi.bean.EndGrayTaskFeedbackType
|
||||
import com.mogo.och.unmanned.taxi.bean.GrayLineBean
|
||||
import com.mogo.och.unmanned.taxi.bean.StartGrayAndQueryContrailRsp
|
||||
import com.mogo.och.unmanned.taxi.constant.TaxiUnmannedConst
|
||||
import com.mogo.och.unmanned.taxi.network.TaxiRoutingServiceManager
|
||||
import com.mogo.och.unmanned.taxi.ui.debug.DebugView
|
||||
|
||||
/**
|
||||
* @author XuXinChao
|
||||
@@ -57,16 +57,14 @@ class RoutingRunningModel : ViewModel(), IDistanceListener {
|
||||
TAG,
|
||||
"onAutopilotArriveAtStation = ${arrivalNotification.toString()}"
|
||||
)
|
||||
DebugView.printInfoMsg("[MAP到站通知] 上报到站,location=${arrivalNotification?.endLocation}")
|
||||
OchChainLogManager.writeChainLogRouting("MAP到站通知","[MAP到站通知] 上报到站,location=${arrivalNotification?.endLocation}")
|
||||
viewCallback?.onArrivedStation(currentGrayId)
|
||||
}
|
||||
}
|
||||
|
||||
private val lineCallback: ILineCallback = object : ILineCallback {
|
||||
override fun arrivedStationSuccessBySearch() {
|
||||
DebugView.printInfoMsg(
|
||||
"[自车定位围栏] 并查询底盘触发到站, endSiteId=${currentGrayLineBean?.endSite?.siteId}, endSiteName=${currentGrayLineBean?.endSite?.siteName}, lineId=${currentGrayLineBean?.lineId},围栏范围:${TaxiUnmannedConst.ARRIVE_AT_START_STATION_DISTANCE}米 没有过站、速度基本为零且在15m内"
|
||||
)
|
||||
OchChainLogManager.writeChainLogRouting("[自车定位围栏]","\"[自车定位围栏] 并查询底盘触发到站, endSiteId=${currentGrayLineBean?.endSite?.siteId}, endSiteName=${currentGrayLineBean?.endSite?.siteName}, lineId=${currentGrayLineBean?.lineId},围栏范围:${OchCommonConst.ARRIVE_AT_START_STATION_DISTANCE}米 没有过站、速度基本为零且在15m内\"")
|
||||
viewCallback?.onArrivedStation(currentGrayId)
|
||||
}
|
||||
}
|
||||
@@ -91,7 +89,7 @@ class RoutingRunningModel : ViewModel(), IDistanceListener {
|
||||
|
||||
|
||||
override fun distanceCallback(distance: Float) {
|
||||
val lastTime = distance / TaxiUnmannedConst.TAXI_AVERAGE_SPEED * 3.6 //秒
|
||||
val lastTime = distance / OchCommonConst.TAXI_AVERAGE_SPEED * 3.6 //秒
|
||||
this.viewCallback?.showDistance(distance.toLong(),lastTime.toLong())
|
||||
}
|
||||
|
||||
@@ -110,9 +108,9 @@ class RoutingRunningModel : ViewModel(), IDistanceListener {
|
||||
* 结束灰度任务
|
||||
*/
|
||||
fun endGrayTask(grayId: Long, type: EndGrayTaskFeedbackType, occurrenceTime: Long) {
|
||||
DebugView.printInfoMsg("[结束灰度任务] 准备发送请求,grayId=$grayId, type=${type.type}, typeName=${type.name}")
|
||||
OchChainLogManager.writeChainLogRouting("[结束灰度任务]","[结束灰度任务] 准备发送请求,grayId=$grayId, type=${type.type}, typeName=${type.name}")
|
||||
val submit = EndGrayContrailTaskReq(grayId, type.type, occurrenceTime)
|
||||
TaxiRoutingServiceManager.endGrayTask(
|
||||
RoutingServiceManager.endGrayTask(
|
||||
content,
|
||||
submit,
|
||||
object : OchCommonServiceCallback<BaseData> {
|
||||
@@ -125,7 +123,7 @@ class RoutingRunningModel : ViewModel(), IDistanceListener {
|
||||
)
|
||||
}"
|
||||
)
|
||||
DebugView.printInfoMsg("[结束灰度任务] 请求success,grayId=$grayId, type=${type.type}, typeName=${type.name}")
|
||||
OchChainLogManager.writeChainLogRouting("[结束灰度任务]","[结束灰度任务] 请求success,grayId=$grayId, type=${type.type}, typeName=${type.name}")
|
||||
clearData()
|
||||
viewCallback?.onSubmitEndTaskSuccess()
|
||||
}
|
||||
@@ -135,7 +133,7 @@ class RoutingRunningModel : ViewModel(), IDistanceListener {
|
||||
TAG,
|
||||
"endGrayTask onFail: code=$code, msg=$msg"
|
||||
)
|
||||
DebugView.printErrorMsg("[结束灰度任务] 请求fail, code=$code, msg=$msg, grayId=$grayId, type=${type.type}, typeName=${type.name}")
|
||||
OchChainLogManager.writeChainLogRouting("[结束灰度任务]","[结束灰度任务] 请求fail, code=$code, msg=$msg, grayId=$grayId, type=${type.type}, typeName=${type.name}")
|
||||
viewCallback?.onSubmitEndTaskFailed(msg ?: "endGrayTask onFail")
|
||||
}
|
||||
|
||||
@@ -151,7 +149,7 @@ class RoutingRunningModel : ViewModel(), IDistanceListener {
|
||||
TAG,
|
||||
"endGrayTask onError, msg=$hintStr"
|
||||
)
|
||||
DebugView.printErrorMsg("[结束灰度任务] 请求error, msg=$hintStr, grayId=$grayId, type=${type.type}, typeName=${type.name}")
|
||||
OchChainLogManager.writeChainLogRouting("[结束灰度任务]","[结束灰度任务] 请求error, msg=$hintStr, grayId=$grayId, type=${type.type}, typeName=${type.name}")
|
||||
viewCallback?.onSubmitEndTaskFailed(hintStr)
|
||||
}
|
||||
})
|
||||
@@ -183,7 +181,7 @@ class RoutingRunningModel : ViewModel(), IDistanceListener {
|
||||
private fun cancelAutopilot() {
|
||||
try {
|
||||
CallerAutoPilotControlManager.cancelAutoPilot()
|
||||
DebugView.printInfoMsg("[取消自驾] 调用成功")
|
||||
OchChainLogManager.writeChainLogRouting("[取消自驾]","[取消自驾] 调用成功")
|
||||
CallerLogger.d(TAG, "结束自动驾驶")
|
||||
} catch (e: Exception) {
|
||||
e.printStackTrace()
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.mogo.och.unmanned.taxi.ui.routing.routingrunning
|
||||
package com.mogo.och.biz.routing.ui.runing.taxi.routingrunning
|
||||
|
||||
import android.content.Context
|
||||
import android.util.AttributeSet
|
||||
@@ -13,29 +13,29 @@ import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
|
||||
import com.mogo.eagle.core.utilcode.util.ThreadUtils
|
||||
import com.mogo.eagle.core.utilcode.util.ToastUtils
|
||||
import com.mogo.eagle.core.utilcode.util.UiThreadHandler
|
||||
import com.mogo.och.biz.R
|
||||
import com.mogo.och.biz.routing.RoutingServiceManager
|
||||
import com.mogo.och.biz.routing.bean.EndGrayTaskFeedbackType
|
||||
import com.mogo.och.biz.routing.bean.StartGrayAndQueryContrailRsp
|
||||
import com.mogo.och.bridge.autopilot.location.OchLocationManager
|
||||
import com.mogo.och.common.module.manager.loop.BizLoopManager
|
||||
import com.mogo.och.common.module.map.AmapNaviToDestinationModel
|
||||
import com.mogo.och.common.module.map.ICommonNaviChangedCallback
|
||||
import com.mogo.och.unmanned.taxi.R
|
||||
import com.mogo.och.unmanned.taxi.bean.EndGrayTaskFeedbackType
|
||||
import com.mogo.och.unmanned.taxi.bean.StartGrayAndQueryContrailRsp
|
||||
import com.mogo.och.unmanned.taxi.constant.TaxiUnmannedConst
|
||||
import com.mogo.och.unmanned.taxi.ui.routing.RoutingSwitchModel
|
||||
import com.mogo.och.unmanned.taxi.ui.routing.TaxiRoutingModel
|
||||
import com.mogo.och.biz.routing.ui.RoutingSwitchModel
|
||||
import com.mogo.och.common.module.map.MapMakerManager
|
||||
import com.mogo.och.common.module.wigets.dialog.CommonDialogStatus
|
||||
import com.mogo.och.unmanned.taxi.ui.routing.errorpoint.ReportErrorPointView
|
||||
import com.mogo.och.unmanned.taxi.utils.TaskUtils
|
||||
import kotlinx.android.synthetic.main.unmanned_routing_running.view.actv_current_itinerary_end_name
|
||||
import kotlinx.android.synthetic.main.unmanned_routing_running.view.actv_current_itinerary_start_name
|
||||
import kotlinx.android.synthetic.main.unmanned_routing_running.view.actv_distance_end
|
||||
import kotlinx.android.synthetic.main.unmanned_routing_running.view.actv_end_routing
|
||||
import kotlinx.android.synthetic.main.unmanned_routing_running.view.actv_routing_name
|
||||
import kotlinx.android.synthetic.main.unmanned_routing_running.view.actv_submit_task
|
||||
import kotlinx.android.synthetic.main.unmanned_routing_running.view.goutp_show_routing_info
|
||||
import kotlinx.android.synthetic.main.unmanned_routing_running.view.include_empty
|
||||
import kotlinx.android.synthetic.main.unmanned_routing_running.view.naviToStart
|
||||
import com.mogo.och.biz.routing.ui.errorpoint.ReportErrorPointView
|
||||
import com.mogo.och.biz.routing.ui.utils.TimeDistanceUtils
|
||||
import com.mogo.och.common.module.constant.OchCommonConst
|
||||
import kotlinx.android.synthetic.main.biz_taxi_running.view.actv_end_routing
|
||||
import kotlinx.android.synthetic.main.biz_taxi_running.view.actv_current_itinerary_end_name
|
||||
import kotlinx.android.synthetic.main.biz_taxi_running.view.actv_current_itinerary_start_name
|
||||
import kotlinx.android.synthetic.main.biz_taxi_running.view.actv_distance_end
|
||||
import kotlinx.android.synthetic.main.biz_taxi_running.view.actv_routing_name
|
||||
import kotlinx.android.synthetic.main.biz_taxi_running.view.actv_submit_task
|
||||
import kotlinx.android.synthetic.main.biz_taxi_running.view.goutp_show_routing_info
|
||||
import kotlinx.android.synthetic.main.biz_taxi_running.view.include_empty
|
||||
import kotlinx.android.synthetic.main.biz_taxi_running.view.naviToStart
|
||||
|
||||
class RoutingRunningView: ConstraintLayout, RoutingRunningModel.RoutingRuningCallback,
|
||||
ICommonNaviChangedCallback {
|
||||
@@ -61,7 +61,7 @@ class RoutingRunningView: ConstraintLayout, RoutingRunningModel.RoutingRuningCal
|
||||
|
||||
|
||||
init {
|
||||
LayoutInflater.from(context).inflate(R.layout.unmanned_routing_running, this, true)
|
||||
LayoutInflater.from(context).inflate(R.layout.biz_taxi_running, this, true)
|
||||
initView()
|
||||
initListener()
|
||||
}
|
||||
@@ -91,7 +91,7 @@ class RoutingRunningView: ConstraintLayout, RoutingRunningModel.RoutingRuningCal
|
||||
.title("路线验证结束")
|
||||
.tips("请点击按钮反馈验证结果")
|
||||
.showClose(true)
|
||||
.cancelTextColor(R.color.taxi_color_FF4E41)
|
||||
.cancelTextColor(R.color.biz_routing_FF4E41)
|
||||
.cancelStr("线路不可用")
|
||||
.confirmStr("线路可用")
|
||||
.status(CommonDialogStatus.Status.success)
|
||||
@@ -132,7 +132,7 @@ class RoutingRunningView: ConstraintLayout, RoutingRunningModel.RoutingRuningCal
|
||||
}
|
||||
|
||||
private fun removeAllMapMarker() {
|
||||
MapMakerManager.removeAllMapMarkerByOwner(TaxiUnmannedConst.TYPE_MARKER_ROUTING_VERIFY)
|
||||
MapMakerManager.removeAllMapMarkerByOwner(OchCommonConst.TYPE_MARKER_ROUTING_VERIFY)
|
||||
}
|
||||
|
||||
private fun initStartNaviToStationParam(
|
||||
@@ -162,16 +162,8 @@ class RoutingRunningView: ConstraintLayout, RoutingRunningModel.RoutingRuningCal
|
||||
*/
|
||||
private fun updateCurrentTaskTripInfo(meters: Long, timeInSecond: Long) {
|
||||
UiThreadHandler.post {
|
||||
CallerLogger.d(
|
||||
TAG,
|
||||
"updateCurrentTaskTripInfo, taskUtil, ${
|
||||
TaskUtils.getCurrentTaskTripHtml(
|
||||
meters,
|
||||
timeInSecond
|
||||
)
|
||||
}"
|
||||
)
|
||||
actv_distance_end.text = "${TaskUtils.getCurrentTaskDistance(meters)} ${TaskUtils.getCurrentTaskTime(timeInSecond)}"
|
||||
CallerLogger.d(TAG, "updateCurrentTaskTripInfo, taskUtil, ${TimeDistanceUtils.getCurrentTaskTripHtml(meters, timeInSecond)}")
|
||||
actv_distance_end.text = "${TimeDistanceUtils.getCurrentTaskDistance(meters)} ${TimeDistanceUtils.getCurrentTaskTime(timeInSecond)}"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -188,7 +180,7 @@ class RoutingRunningView: ConstraintLayout, RoutingRunningModel.RoutingRuningCal
|
||||
resourceId: Int
|
||||
) {
|
||||
if (isAdd) {
|
||||
MapMakerManager.addMapMaker(TaxiUnmannedConst.TYPE_MARKER_ROUTING_VERIFY, uuid, lat, lon, resourceId)
|
||||
MapMakerManager.addMapMaker(OchCommonConst.TYPE_MARKER_ROUTING_VERIFY, uuid, lat, lon, resourceId)
|
||||
} else {
|
||||
MapMakerManager.removeMapMaker(uuid, lat, lon)
|
||||
}
|
||||
@@ -223,7 +215,7 @@ class RoutingRunningView: ConstraintLayout, RoutingRunningModel.RoutingRuningCal
|
||||
override fun reInitNaviAmap(isPlay: Boolean, isRestart: Boolean) {
|
||||
CallerLogger.d(TAG, "isPlay = $isPlay, isRestart=$isRestart")
|
||||
if (!isRestart) {
|
||||
TaxiRoutingModel.startNaviToEndStationByAMap(false)
|
||||
RoutingServiceManager.invokeCallback(false)
|
||||
return
|
||||
}
|
||||
}
|
||||
@@ -244,11 +236,11 @@ class RoutingRunningView: ConstraintLayout, RoutingRunningModel.RoutingRuningCal
|
||||
it.gcjLon
|
||||
)
|
||||
naviToStart.setOnClickListener {
|
||||
TaxiRoutingModel.startNaviToEndStationByAMap(true)
|
||||
RoutingServiceManager.invokeCallback(true)
|
||||
}
|
||||
setOrRemoveMapMaker(
|
||||
true,
|
||||
TaxiUnmannedConst.TAXI_ROUTING_VERIFY_START_SITE,
|
||||
OchCommonConst.TAXI_ROUTING_VERIFY_START_SITE,
|
||||
it.wgs84Lat,
|
||||
it.wgs84Lon,
|
||||
R.raw.star_marker
|
||||
@@ -258,7 +250,7 @@ class RoutingRunningView: ConstraintLayout, RoutingRunningModel.RoutingRuningCal
|
||||
data.grayLineBean.endSite?.also {
|
||||
setOrRemoveMapMaker(
|
||||
true,
|
||||
TaxiUnmannedConst.TAXI_ROUTING_VERIFY_END_SITE,
|
||||
OchCommonConst.TAXI_ROUTING_VERIFY_END_SITE,
|
||||
it.wgs84Lat,
|
||||
it.wgs84Lon,
|
||||
R.raw.end_marker
|
||||
@@ -271,7 +263,7 @@ class RoutingRunningView: ConstraintLayout, RoutingRunningModel.RoutingRuningCal
|
||||
|
||||
override fun onSubmitEndTaskSuccess() {
|
||||
ToastUtils.showLong("结束任务成功")
|
||||
TaxiRoutingModel.startNaviToEndStationByAMap(false)
|
||||
RoutingServiceManager.invokeCallback(false)
|
||||
// 移除高德导航计算距离
|
||||
AmapNaviToDestinationModel.getInstance(context).destroyAmaNavi()
|
||||
swtichViewModel?.showRoutingSelectView()
|
||||
@@ -0,0 +1,112 @@
|
||||
package com.mogo.och.biz.routing.ui.utils
|
||||
|
||||
import android.text.Spanned
|
||||
import androidx.core.text.HtmlCompat
|
||||
import com.mogo.eagle.core.utilcode.util.DateTimeUtils
|
||||
import com.mogo.och.common.module.utils.DateTimeUtil
|
||||
import com.mogo.och.common.module.utils.NumberFormatUtil
|
||||
import java.util.Calendar
|
||||
import kotlin.math.ceil
|
||||
import kotlin.math.roundToInt
|
||||
|
||||
object TimeDistanceUtils {
|
||||
|
||||
fun getCurrentTaskDistance(meters: Long):String{
|
||||
var dis = "0"
|
||||
var disUnit = "公里"
|
||||
if (meters > 0) {
|
||||
if (meters / 1000 < 1) {
|
||||
disUnit = "米"
|
||||
dis = meters.toFloat().roundToInt().toString()
|
||||
} else {
|
||||
disUnit = "公里"
|
||||
dis = NumberFormatUtil.formatLong(meters.toDouble() / 1000)
|
||||
}
|
||||
}
|
||||
return "${dis}${disUnit}"
|
||||
}
|
||||
|
||||
fun getCurrentTaskTime(timeInSecond: Long):String{
|
||||
val min = ceil(timeInSecond.toDouble() / 60f).toInt()
|
||||
return "${min}分钟"
|
||||
}
|
||||
|
||||
/**
|
||||
* 剩余里程和剩余时间 html
|
||||
*/
|
||||
fun getCurrentTaskTripHtml(meters: Long, timeInSecond: Long): Spanned {
|
||||
var dis = "0"
|
||||
var disUnit = "公里"
|
||||
if (meters > 0) {
|
||||
if (meters / 1000 < 1) {
|
||||
disUnit = "米"
|
||||
dis = meters.toFloat().roundToInt().toString()
|
||||
} else {
|
||||
disUnit = "公里"
|
||||
dis = NumberFormatUtil.formatLong(meters.toDouble() / 1000)
|
||||
}
|
||||
}
|
||||
val min = ceil(timeInSecond.toDouble() / 60f).toInt()
|
||||
val strHtml =
|
||||
("<font color=\"#CAD6FF\">里程 </font>"
|
||||
+ "<b><font color=\"#FFFFFF\">"
|
||||
+ dis + "</font></b>"
|
||||
+ "<font color=\"#CAD6FF\"> "
|
||||
+ disUnit + "</font>"
|
||||
+ "<font color=\"#CAD6FF\">,剩余 </font>"
|
||||
+ "<b><font color=\"#FFFFFF\">"
|
||||
+ min + "</font></b>"
|
||||
+ "<font color=\"#CAD6FF\"> 分钟</font>")
|
||||
return HtmlCompat.fromHtml(strHtml, HtmlCompat.FROM_HTML_MODE_LEGACY)
|
||||
}
|
||||
|
||||
fun getCurrentTaskWaitTimeHtml(): Spanned {
|
||||
val currentCale = DateTimeUtils.getCurrentDateTime()
|
||||
val currentDay =
|
||||
DateTimeUtil.formatCalendarToString(currentCale, DateTimeUtil.yyyy_MM_dd)
|
||||
currentCale.add(Calendar.MINUTE, 10)
|
||||
val strHtml13: String = if (currentDay == DateTimeUtil.formatCalendarToString(
|
||||
currentCale,
|
||||
DateTimeUtil.yyyy_MM_dd
|
||||
)
|
||||
) {
|
||||
("<font color=\"#CAD6FF\">免费等待至 </font>"
|
||||
+ "<b><font color=\"#FFFFFF\"><big>" + DateTimeUtil.formatCalendarToString(
|
||||
currentCale,
|
||||
DateTimeUtil.HH_mm
|
||||
) + "</big></b></font>")
|
||||
} else {
|
||||
("<font color=\"#CAD6FF\">免费等待至</font>"
|
||||
+ "<font color=\"#FFFFFF\"><big>" + DateTimeUtil.formatCalendarToString(
|
||||
currentCale,
|
||||
DateTimeUtil.MM_dd_HH_mm
|
||||
) + "</big></font>")
|
||||
}
|
||||
return HtmlCompat.fromHtml(strHtml13, HtmlCompat.FROM_HTML_MODE_LEGACY)
|
||||
}
|
||||
|
||||
fun getCurrentTaskTotalAndDurationHtml(mileage: Float, duration: Int): Spanned {
|
||||
val strHtml =
|
||||
("<font color=\"#CAD6FF\">全程 </font>" + "<font color=\"#FFFFFF\"> $mileage </font>" + "<font color=\"#CAD6FF\"> 公里 </font>"
|
||||
+ "<font color=\"#CAD6FF\">,总用时 </font>" + "<font color=\"#FFFFFF\"> $duration </font>" + "<font color=\"#CAD6FF\"> 分钟</font>")
|
||||
return HtmlCompat.fromHtml(strHtml, HtmlCompat.FROM_HTML_MODE_LEGACY)
|
||||
}
|
||||
|
||||
fun getCurrentTaskPhoneNumAndPassengerCountHtml(phoneNum: String, passengerSize: Int): Spanned {
|
||||
return HtmlCompat.fromHtml(
|
||||
"<font color=\"#FFFFFF\"> " + phoneNum + "</font>" +
|
||||
"<font color=\"#6473B2\"> | </font>" +
|
||||
"<font color=\"#FFFFFF\">" + passengerSize + "人" + "</font>",
|
||||
HtmlCompat.FROM_HTML_MODE_LEGACY
|
||||
)
|
||||
}
|
||||
|
||||
fun getNextTaskPhoneNumAndPassengerCountHtml(phoneNum: String, passengerSize: Int): Spanned {
|
||||
return HtmlCompat.fromHtml(
|
||||
"<font color=\"#FFFFFF\"> " + phoneNum + "</font>" +
|
||||
"<font color=\"#6473B2\"> | </font>" +
|
||||
"<font color=\"#FFFFFF\">" + passengerSize + "人" + "</font>",
|
||||
HtmlCompat.FROM_HTML_MODE_LEGACY
|
||||
)
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item android:color="@color/biz_routing_FF4E41" android:state_pressed="true"/>
|
||||
<item android:color="@color/biz_routing_FF4E41" android:state_pressed="false"/>
|
||||
<item android:color="@color/biz_routing_FF4E41"/>
|
||||
</selector>
|
||||
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item android:color="@color/biz_routing_2eacff" android:state_pressed="true"/>
|
||||
<item android:color="@color/biz_routing_2eacff" android:state_pressed="false"/>
|
||||
<item android:color="@color/biz_routing_2eacff"/>
|
||||
</selector>
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 1.2 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 1.2 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 1.6 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 14 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 3.4 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 2.4 KiB |
@@ -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/biz_routing_4D000000"/>
|
||||
<corners android:radius="@dimen/dp_30"/>
|
||||
</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/biz_routing_80000000"/>
|
||||
<corners android:radius="@dimen/dp_30"/>
|
||||
</shape>
|
||||
@@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item android:state_pressed="true" android:drawable="@drawable/biz_button_selected"/>
|
||||
<item android:state_pressed="false" android:drawable="@drawable/biz_button_normal"/>
|
||||
<item android:state_checked="true" android:drawable="@drawable/biz_button_selected"/>
|
||||
<item android:state_checked="false" android:drawable="@drawable/biz_button_normal"/>
|
||||
<item android:drawable="@drawable/biz_button_normal"/>
|
||||
</selector>
|
||||
@@ -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/biz_routing_4D000000" />
|
||||
<corners android:radius="@dimen/dp_30"/>
|
||||
</shape>
|
||||
@@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
<gradient
|
||||
android:endColor="#660043FF"
|
||||
android:startColor="#0028345E" />
|
||||
</shape>
|
||||
@@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
<gradient
|
||||
android:endColor="#CC0043FF"
|
||||
android:startColor="#0028345E" />
|
||||
</shape>
|
||||
@@ -4,7 +4,7 @@
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="@dimen/dp_12"
|
||||
android:background="@drawable/routing_choose_line_shape_select_line_item_bg_normal"
|
||||
android:background="@drawable/biz_shape_select_line_item_bg_normal"
|
||||
android:orientation="vertical"
|
||||
android:paddingStart="@dimen/dp_78"
|
||||
android:paddingEnd="@dimen/dp_78">
|
||||
@@ -51,7 +51,7 @@
|
||||
android:layout_toRightOf="@+id/todayVerifyNumTextView"
|
||||
android:gravity="right|center_vertical"
|
||||
android:maxLines="1"
|
||||
android:textColor="@color/taxi_color_ccb9c3e9"
|
||||
android:textColor="@color/biz_routing_ccb9c3e9"
|
||||
android:textSize="@dimen/dp_30"
|
||||
tools:text="路线累计反馈0可用,1不可用" />
|
||||
</RelativeLayout>
|
||||
@@ -13,7 +13,7 @@
|
||||
android:id="@+id/no_routing_data_iv"
|
||||
android:layout_width="@dimen/dp_386"
|
||||
android:layout_height="@dimen/dp_350"
|
||||
android:src="@drawable/no_order_data"
|
||||
android:src="@drawable/biz_taxi_no_order_data"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
@@ -10,7 +10,7 @@
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
android:src="@drawable/taxi_routing_uncheck"
|
||||
android:src="@drawable/biz_taxi_uncheck"
|
||||
android:layout_width="@dimen/dp_53"
|
||||
android:layout_height="@dimen/dp_53"/>
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
@@ -54,7 +54,7 @@
|
||||
android:background="@drawable/common_button_cancle"
|
||||
android:gravity="center"
|
||||
android:text="打点"
|
||||
android:textColor="@color/taxi_color_2eacff"
|
||||
android:textColor="@color/biz_routing_2eacff"
|
||||
android:textSize="@dimen/sp_40"
|
||||
android:textStyle="bold"
|
||||
android:layout_marginBottom="@dimen/dp_65"
|
||||
@@ -5,7 +5,7 @@
|
||||
android:layout_width="@dimen/dp_880"
|
||||
android:layout_height="match_parent"
|
||||
tools:layout_height="@dimen/dp_966"
|
||||
tools:background="@drawable/shape_itinerary_bg_default"
|
||||
tools:background="@drawable/biz_shape_itinerary_bg_default"
|
||||
xmlns:tools="http://schemas.android.com/tools">
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
@@ -41,7 +41,7 @@
|
||||
android:layout_marginStart="@dimen/dp_54"
|
||||
android:layout_marginEnd="@dimen/dp_52"
|
||||
android:layout_width="match_parent"
|
||||
android:background="@drawable/shape_itinerary_bg_default"
|
||||
android:background="@drawable/biz_shape_itinerary_bg_default"
|
||||
android:layout_height="@dimen/dp_272"/>
|
||||
|
||||
<androidx.appcompat.widget.AppCompatImageView
|
||||
@@ -52,7 +52,7 @@
|
||||
android:layout_marginTop="@dimen/dp_34"
|
||||
android:layout_width="@dimen/dp_45"
|
||||
android:layout_height="@dimen/dp_45"
|
||||
android:src="@drawable/taxi_task_current_start_station_point" />
|
||||
android:src="@drawable/biz_taxi_current_start_station_point" />
|
||||
|
||||
<View
|
||||
android:id="@+id/v_line_current_start_end"
|
||||
@@ -60,7 +60,7 @@
|
||||
app:layout_constraintStart_toStartOf="@+id/aciv_current_itinerary_start_point"
|
||||
app:layout_constraintEnd_toEndOf="@+id/aciv_current_itinerary_start_point"
|
||||
android:layout_marginTop="@dimen/dp_8"
|
||||
android:background="@color/taxi_color_4D000000"
|
||||
android:background="@color/biz_routing_4D000000"
|
||||
android:layout_width="@dimen/dp_6"
|
||||
android:layout_height="@dimen/dp_92"/>
|
||||
|
||||
@@ -72,7 +72,7 @@
|
||||
android:layout_marginTop="@dimen/dp_8"
|
||||
android:layout_width="@dimen/dp_45"
|
||||
android:layout_height="@dimen/dp_45"
|
||||
android:src="@drawable/taxi_task_current_end_station_point" />
|
||||
android:src="@drawable/biz_taxi_current_end_station_point" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
android:id="@+id/actv_current_itinerary_start_name"
|
||||
@@ -91,7 +91,7 @@
|
||||
app:layout_constraintTop_toTopOf="@+id/actv_current_itinerary_start_name"
|
||||
app:layout_constraintBottom_toBottomOf="@+id/actv_current_itinerary_start_name"
|
||||
app:layout_constraintEnd_toEndOf="@+id/v_bg_itinerary_info"
|
||||
android:src="@drawable/taxi_task_nav"
|
||||
android:src="@drawable/biz_taxi_nav"
|
||||
android:layout_marginEnd="@dimen/dp_36"
|
||||
android:layout_width="@dimen/dp_46"
|
||||
android:layout_height="@dimen/dp_46"/>
|
||||
@@ -101,7 +101,7 @@
|
||||
android:id="@+id/actv_distance_end"
|
||||
android:text="5.2公里"
|
||||
android:textSize="@dimen/dp_32"
|
||||
android:textColor="@color/taxi_color_CCCCCC"
|
||||
android:textColor="@color/biz_routing_CCCCCC"
|
||||
app:layout_constraintTop_toBottomOf="@+id/actv_current_itinerary_start_name"
|
||||
app:layout_constraintStart_toStartOf="@+id/actv_current_itinerary_start_name"
|
||||
app:layout_constraintBottom_toTopOf="@+id/actv_current_itinerary_end_name"
|
||||
@@ -131,8 +131,8 @@
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
android:layout_marginStart="@dimen/dp_54"
|
||||
android:layout_marginBottom="@dimen/dp_55"
|
||||
android:background="@drawable/taxi_button_selector"
|
||||
android:textColor="@color/taxi_submit_text_color_selector"
|
||||
android:background="@drawable/biz_button_selector"
|
||||
android:textColor="@color/biz_taxi_submit_text_color_selector"
|
||||
android:textSize="@dimen/dp_40" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
@@ -146,8 +146,8 @@
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
android:layout_marginEnd="@dimen/dp_54"
|
||||
android:layout_marginBottom="@dimen/dp_55"
|
||||
android:background="@drawable/taxi_button_selector"
|
||||
android:textColor="@color/taxi_button_red_text_color"
|
||||
android:background="@drawable/biz_button_selector"
|
||||
android:textColor="@color/biz_taxi_button_red_text_color"
|
||||
android:textSize="@dimen/dp_40" />
|
||||
|
||||
<androidx.constraintlayout.widget.Group
|
||||
@@ -5,7 +5,7 @@
|
||||
android:layout_width="@dimen/dp_880"
|
||||
android:layout_height="match_parent"
|
||||
tools:layout_height="@dimen/dp_966"
|
||||
tools:background="@drawable/shape_itinerary_bg_default"
|
||||
tools:background="@drawable/biz_shape_itinerary_bg_default"
|
||||
xmlns:tools="http://schemas.android.com/tools">
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
@@ -4,7 +4,7 @@
|
||||
tools:parentTag="androidx.constraintlayout.widget.ConstraintLayout"
|
||||
android:layout_width="@dimen/dp_774"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@drawable/shape_itinerary_bg_default"
|
||||
android:background="@drawable/biz_shape_itinerary_bg_default"
|
||||
xmlns:tools="http://schemas.android.com/tools">
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
@@ -28,7 +28,7 @@
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
android:layout_marginEnd="@dimen/dp_40"
|
||||
android:layout_marginTop="@dimen/dp_31"
|
||||
android:textColor="@color/taxi_color_CCFFFFFF"
|
||||
android:textColor="@color/biz_routing_CCFFFFFF"
|
||||
android:textSize="@dimen/dp_32"
|
||||
tools:text="今日验证:2次"
|
||||
android:layout_width="wrap_content"
|
||||
@@ -63,7 +63,7 @@
|
||||
app:layout_constraintTop_toTopOf="@+id/actv_history_verify_num_title"
|
||||
app:layout_constraintBottom_toBottomOf="@+id/actv_history_verify_num_title"
|
||||
app:layout_constraintStart_toEndOf="@+id/actv_history_verify_num_title"
|
||||
android:textColor="@color/taxi_color_26C14F"
|
||||
android:textColor="@color/biz_routing_26C14F"
|
||||
android:layout_marginStart="@dimen/dp_17"
|
||||
android:textSize="@dimen/dp_30"
|
||||
tools:text="5可用"
|
||||
@@ -75,7 +75,7 @@
|
||||
app:layout_constraintTop_toTopOf="@+id/actv_history_verify_num_title"
|
||||
app:layout_constraintBottom_toBottomOf="@+id/actv_history_verify_num_title"
|
||||
app:layout_constraintStart_toEndOf="@+id/actv_history_verify_num_enable_num"
|
||||
android:textColor="@color/taxi_color_FF852E"
|
||||
android:textColor="@color/biz_routing_FF852E"
|
||||
android:layout_marginStart="@dimen/dp_28"
|
||||
android:textSize="@dimen/dp_30"
|
||||
tools:text="2不可用"
|
||||
@@ -87,7 +87,7 @@
|
||||
android:id="@+id/actv_routing_start"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
android:textColor="@color/taxi_color_2eacff"
|
||||
android:textColor="@color/biz_routing_2eacff"
|
||||
android:layout_marginEnd="@dimen/dp_40"
|
||||
android:layout_marginBottom="@dimen/dp_32"
|
||||
android:textSize="@dimen/dp_30"
|
||||
@@ -7,7 +7,7 @@
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
tools:parentTag="androidx.constraintlayout.widget.ConstraintLayout">
|
||||
|
||||
<com.mogo.och.unmanned.taxi.ui.routing.routingselect.RoutingSelectView
|
||||
<com.mogo.och.biz.routing.ui.routingselect.RoutingSelectView
|
||||
android:id="@+id/routingSelectView"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
@@ -15,7 +15,7 @@
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"/>
|
||||
|
||||
<com.mogo.och.unmanned.taxi.ui.routing.routingrunning.RoutingRunningView
|
||||
<com.mogo.och.biz.routing.ui.runing.taxi.routingrunning.RoutingRunningView
|
||||
android:id="@+id/routingRunningView"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
BIN
OCH/common/biz/src/main/res/routing/raw/end_marker.nt3d
Normal file
BIN
OCH/common/biz/src/main/res/routing/raw/end_marker.nt3d
Normal file
Binary file not shown.
BIN
OCH/common/biz/src/main/res/routing/raw/star_marker.nt3d
Normal file
BIN
OCH/common/biz/src/main/res/routing/raw/star_marker.nt3d
Normal file
Binary file not shown.
13
OCH/common/biz/src/main/res/routing/values/colors.xml
Normal file
13
OCH/common/biz/src/main/res/routing/values/colors.xml
Normal file
@@ -0,0 +1,13 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
|
||||
<color name="biz_routing_FF4E41">#FF4E41</color>
|
||||
<color name="biz_routing_2eacff">#2EACFF</color>
|
||||
<color name="biz_routing_ccb9c3e9">#CCB9C3E9</color>
|
||||
<color name="biz_routing_4D000000">#4D000000</color>
|
||||
<color name="biz_routing_80000000">#80000000</color>
|
||||
<color name="biz_routing_CCCCCC">#CCCCCC</color>
|
||||
<color name="biz_routing_CCFFFFFF">#CCFFFFFF</color>
|
||||
<color name="biz_routing_26C14F">#26C14F</color>
|
||||
<color name="biz_routing_FF852E">#FF852E</color>
|
||||
</resources>
|
||||
@@ -61,7 +61,7 @@ dependencies {
|
||||
testImplementation project(path: ':OCH:common:common')
|
||||
androidTestImplementation 'androidx.test.ext:junit:1.1.1'
|
||||
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
|
||||
implementation rootProject.ext.dependencies.amapnavi3dmap
|
||||
api rootProject.ext.dependencies.amapnavi3dmap
|
||||
implementation rootProject.ext.dependencies.rxandroid
|
||||
|
||||
implementation rootProject.ext.dependencies.arouter
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
package com.mogo.och.common.module.biz.routing;
|
||||
|
||||
public interface RoutingCallback {
|
||||
void showMap(boolean show);
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
package com.mogo.och.common.module.biz.routing
|
||||
|
||||
import android.view.View
|
||||
import androidx.fragment.app.Fragment
|
||||
import com.alibaba.android.arouter.launcher.ARouter
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_OCHCOMMON
|
||||
import com.mogo.och.common.module.biz.time.TimeService
|
||||
import com.mogo.och.common.module.constant.OchCommonConst
|
||||
import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager
|
||||
import com.mogo.och.common.module.manager.loop.BizLoopManager
|
||||
|
||||
object RoutingManager {
|
||||
|
||||
private const val TAG = M_OCHCOMMON+"RoutingManager"
|
||||
|
||||
private var routingService: RoutingService? =
|
||||
ARouter.getInstance().build(OchCommonConst.BIZ_ROUTING).navigation() as RoutingService
|
||||
|
||||
|
||||
fun load(){
|
||||
OchChainLogManager.writeChainLogInit("初始化信息","初始化算路验证系统")
|
||||
d(TAG,"初始化信息_初始化算路验证系统")
|
||||
}
|
||||
|
||||
fun getRoutingView():View?{
|
||||
return routingService?.getRoutingView()
|
||||
}
|
||||
|
||||
fun setRoutingCallback(callback: RoutingCallback?){
|
||||
routingService?.setRoutingCallback(callback)
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
package com.mogo.och.common.module.biz.routing
|
||||
|
||||
import android.view.View
|
||||
import androidx.fragment.app.Fragment
|
||||
import com.alibaba.android.arouter.facade.template.IProvider
|
||||
|
||||
interface RoutingService : IProvider {
|
||||
|
||||
fun getRoutingView(): View?
|
||||
|
||||
fun setRoutingCallback(callback: RoutingCallback?)
|
||||
|
||||
}
|
||||
@@ -37,6 +37,7 @@ class OchCommonConst {
|
||||
const val BIZ_SKIN = "/ochbiz/common/skin"
|
||||
const val BIZ_SCANNER = "/ochbiz/common/scanner"
|
||||
const val BIZ_TIME = "/ochbiz/common/time"
|
||||
const val BIZ_ROUTING = "/ochbiz/common/routing"
|
||||
const val BIZ_OFFLINE = "/offlinedriver/offlinedata"
|
||||
const val BIZ_Bridge = "/birdge/bridge"
|
||||
|
||||
@@ -71,5 +72,21 @@ class OchCommonConst {
|
||||
const val AUTOMATIC_PLANNING_MAX_DISTANCE = 15
|
||||
|
||||
const val ARRIVE_AT_END_STATION_DISTANCE = 10
|
||||
|
||||
|
||||
// taxi 到达起始点围栏
|
||||
const val ARRIVE_AT_START_STATION_DISTANCE = 15 //围栏由20m改为50m 再次改为15m
|
||||
|
||||
//总里程/平均车速。(bus的平均里程:25km/h,taxi的平均里程:38km/h),单位为:分钟,不足1分钟时,显示1分钟。
|
||||
const val TAXI_AVERAGE_SPEED = 38
|
||||
|
||||
//算路终点UUID
|
||||
const val TAXI_ROUTING_VERIFY_END_SITE = "taxi_routing_verify_end_site"
|
||||
|
||||
//算路起点UUID
|
||||
const val TAXI_ROUTING_VERIFY_START_SITE = "taxi_routing_verify_start_site"
|
||||
|
||||
const val TYPE_MARKER_ROUTING_VERIFY = "TYPE_MARKER_TAXI_ROUTING_VERIFY"
|
||||
|
||||
}
|
||||
}
|
||||
@@ -64,6 +64,13 @@ object OchChainLogManager {
|
||||
|
||||
const val EVENT_KEY_INFO_ERROR = "analytics_event_och_error"
|
||||
|
||||
// 算路验证模式
|
||||
const val EVENT_KEY_INFO_ROUTING = "analytics_event_och_routing"
|
||||
|
||||
fun writeChainLogRouting(title: String, info: String) {
|
||||
writeChainLog(title, info, true, EVENT_KEY_INFO_ROUTING)
|
||||
}
|
||||
|
||||
|
||||
fun writeChainLogEye(title: String, info: String) {
|
||||
writeChainLog(title, info, true, EVENT_KEY_INFO_CALL_EYE)
|
||||
|
||||
@@ -12,6 +12,7 @@ import com.mogo.och.common.module.biz.lansocket.LoginLanDriverSocket
|
||||
import com.mogo.och.common.module.biz.login.EnumLoginStatus
|
||||
import com.mogo.och.common.module.biz.login.LoginStatusManager
|
||||
import com.mogo.och.common.module.biz.offline.OfflineManager
|
||||
import com.mogo.och.common.module.biz.routing.RoutingManager
|
||||
import com.mogo.och.common.module.manager.socket.lan.LanSocketManager
|
||||
import com.mogo.och.facade.constant.FacadeConst
|
||||
|
||||
@@ -43,6 +44,7 @@ class FacadeDriverProvider : FacadeProvider() {
|
||||
CheckVinManager.load()
|
||||
OfflineManager.load()
|
||||
OTAManager.load()
|
||||
RoutingManager.load()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -250,6 +250,32 @@ data class OrderCompletedReqBean(
|
||||
var sn: String, var orderNo: String
|
||||
)
|
||||
|
||||
/**
|
||||
* 站点信息
|
||||
*/
|
||||
data class RoutingSite(
|
||||
var siteId: Long,// 站点ID
|
||||
var siteName: String,// 站点名称
|
||||
var gcjLat: Double,// 高德坐标
|
||||
var gcjLon: Double,// 高德坐标
|
||||
var wgs84Lon: Double,//高精坐标
|
||||
var wgs84Lat: Double,//高精坐标
|
||||
var pointType: Int // 1:途径点 2:禁行点 3:站点
|
||||
) {
|
||||
fun toBusStationBean(): BusStationBean {
|
||||
val temp = BusStationBean()
|
||||
temp.siteId = siteId.toInt()
|
||||
temp.name = siteName
|
||||
temp.lat = wgs84Lat
|
||||
temp.lon = wgs84Lon
|
||||
temp.gcjLat = gcjLat
|
||||
temp.gcjLon = gcjLon
|
||||
temp.pointType = pointType
|
||||
temp.isLeaving = true
|
||||
return temp
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 轨迹路线
|
||||
*/
|
||||
|
||||
@@ -4,6 +4,7 @@ import android.annotation.SuppressLint
|
||||
import android.content.Context
|
||||
import android.os.Bundle
|
||||
import android.view.View
|
||||
import androidx.fragment.app.Fragment
|
||||
import androidx.fragment.app.FragmentTransaction
|
||||
import com.mogo.commons.module.status.MogoStatusManager
|
||||
import com.mogo.commons.mvp.MvpFragment
|
||||
@@ -18,7 +19,6 @@ import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant
|
||||
import com.mogo.eagle.core.utilcode.util.ToastUtils
|
||||
import com.mogo.map.listener.IMogoMapListener
|
||||
import com.mogo.map.uicontroller.VisualAngleMode
|
||||
import com.mogo.och.common.module.biz.login.EnumOpenOrderStatus
|
||||
import com.mogo.och.data.taxi.TaxiOrderStatusEnum
|
||||
import com.mogo.och.common.module.utils.FlowBus
|
||||
import com.mogo.och.common.module.wigets.StartAutopilotAnimationView
|
||||
@@ -27,7 +27,7 @@ import com.mogo.och.unmanned.taxi.R
|
||||
import com.mogo.och.unmanned.taxi.constant.TaxiDriverEventConst
|
||||
import com.mogo.och.unmanned.taxi.constant.TaxiUnmannedConst.Companion.START_AUTOPILOT_ANIMATION_INTERVAL
|
||||
import com.mogo.och.unmanned.taxi.ui.navi.amap.TaxiAmapNaviFragment
|
||||
import com.mogo.och.unmanned.taxi.ui.navi.auto.TaxiRoutingNaviFragment
|
||||
import com.mogo.och.common.module.biz.routing.RoutingManager
|
||||
import com.mogo.och.unmanned.taxi.ui.operational.OperationalManager
|
||||
import com.mogo.och.unmanned.taxi.ui.task.TaxiTaskModel
|
||||
import com.mogo.och.unmanned.taxi.ui.task.itinerarycurrent.ItineraryCurrentView
|
||||
@@ -52,7 +52,7 @@ class TaxiFragment :MvpFragment<TaxiFragment?, TaxiPresenter?>(),
|
||||
private var ochAmapNaviFragment: TaxiAmapNaviFragment? = null
|
||||
|
||||
// 高德地图轨迹展示fragment
|
||||
private var taxiRoutingNaviFragment: TaxiRoutingNaviFragment? = null
|
||||
private var taxiRoutingNaviFragment: Fragment? = null
|
||||
|
||||
private val runningTaskGateWay = "RUNNINGTASKGATEWAY"
|
||||
private val lineView = "LINEVIEW"
|
||||
@@ -231,24 +231,24 @@ class TaxiFragment :MvpFragment<TaxiFragment?, TaxiPresenter?>(),
|
||||
}
|
||||
|
||||
fun showRoutingToStationFragment(isShow: Boolean) {
|
||||
val transaction: FragmentTransaction = childFragmentManager.beginTransaction()
|
||||
closeRoutingViewIfHadAdd()
|
||||
if (isShow) {
|
||||
closeAmapViewIFHadeAdd()
|
||||
taxiRoutingNaviFragment = TaxiRoutingNaviFragment.newInstance()
|
||||
if (taxiRoutingNaviFragment!!.isAdded) {
|
||||
return
|
||||
}
|
||||
transaction.add(R.id.module_mogo_och_navi_panel_container, taxiRoutingNaviFragment!!)
|
||||
.show(taxiRoutingNaviFragment!!)
|
||||
transaction.commitAllowingStateLoss()
|
||||
taxi_close_navi_icon.visibility = View.VISIBLE
|
||||
module_mogo_och_navi_panel_container.visibility = View.VISIBLE
|
||||
} else {
|
||||
taxi_close_navi_icon.visibility = View.GONE
|
||||
module_mogo_och_navi_panel_container.visibility =
|
||||
View.INVISIBLE //2023.9.4高德导航由gone设置成INVISIBLE,保留导航实例,避免导航被挂起
|
||||
}
|
||||
// val transaction: FragmentTransaction = childFragmentManager.beginTransaction()
|
||||
// closeRoutingViewIfHadAdd()
|
||||
// if (isShow) {
|
||||
// closeAmapViewIFHadeAdd()
|
||||
// taxiRoutingNaviFragment = TaxiRoutingNaviFragment.newInstance()
|
||||
// if (taxiRoutingNaviFragment!!.isAdded) {
|
||||
// return
|
||||
// }
|
||||
// transaction.add(R.id.module_mogo_och_navi_panel_container, taxiRoutingNaviFragment!!)
|
||||
// .show(taxiRoutingNaviFragment!!)
|
||||
// transaction.commitAllowingStateLoss()
|
||||
// taxi_close_navi_icon.visibility = View.VISIBLE
|
||||
// module_mogo_och_navi_panel_container.visibility = View.VISIBLE
|
||||
// } else {
|
||||
// taxi_close_navi_icon.visibility = View.GONE
|
||||
// module_mogo_och_navi_panel_container.visibility =
|
||||
// View.INVISIBLE //2023.9.4高德导航由gone设置成INVISIBLE,保留导航实例,避免导航被挂起
|
||||
// }
|
||||
}
|
||||
|
||||
fun startNaviToEndStation(isShow: Boolean) {
|
||||
|
||||
@@ -14,6 +14,8 @@ import com.mogo.och.common.module.biz.login.ILoginCallback;
|
||||
import com.mogo.och.common.module.biz.login.EnumLoginStatus;
|
||||
import com.mogo.och.common.module.biz.login.LoginStatusManager;
|
||||
import com.mogo.och.common.module.biz.login.EnumOpenOrderStatus;
|
||||
import com.mogo.och.common.module.biz.routing.RoutingCallback;
|
||||
import com.mogo.och.common.module.biz.routing.RoutingManager;
|
||||
import com.mogo.och.unmanned.taxi.utils.order.OrderListener;
|
||||
import com.mogo.och.unmanned.taxi.utils.order.OrderModel;
|
||||
import com.mogo.och.data.taxi.TaxiOrderStatusEnum;
|
||||
@@ -23,7 +25,6 @@ import com.mogo.och.data.taxi.BaseOrderBean;
|
||||
import com.mogo.och.unmanned.taxi.callback.ITaxiADASStatusCallback;
|
||||
import com.mogo.och.unmanned.taxi.callback.ITaxiControllerStatusCallback;
|
||||
import com.mogo.och.unmanned.taxi.callback.ITaxiOrderStatusCallback;
|
||||
import com.mogo.och.unmanned.taxi.ui.routing.TaxiRoutingModel;
|
||||
import com.mogo.och.unmanned.taxi.ui.task.TaxiTaskModel;
|
||||
|
||||
/**
|
||||
@@ -33,7 +34,7 @@ import com.mogo.och.unmanned.taxi.ui.task.TaxiTaskModel;
|
||||
* 描述
|
||||
*/
|
||||
public class TaxiPresenter extends Presenter<TaxiFragment> implements ITaxiADASStatusCallback,
|
||||
ITaxiOrderStatusCallback, ITaxiControllerStatusCallback, ILoginCallback, OrderListener {
|
||||
ITaxiOrderStatusCallback, ITaxiControllerStatusCallback, ILoginCallback, OrderListener, RoutingCallback {
|
||||
|
||||
private static final String TAG = TaxiPresenter.class.getSimpleName();
|
||||
|
||||
@@ -55,7 +56,7 @@ public class TaxiPresenter extends Presenter<TaxiFragment> implements ITaxiADASS
|
||||
TaxiTaskModel.INSTANCE.setADASStatusCallback(this);
|
||||
TaxiTaskModel.INSTANCE.setControllerStatusCallback(this);
|
||||
TaxiTaskModel.INSTANCE.setOrderStatusCallback(this);
|
||||
TaxiRoutingModel.INSTANCE.setOrderStatusCallback(this);
|
||||
RoutingManager.INSTANCE.setRoutingCallback(this);
|
||||
LoginStatusManager.INSTANCE.addListener(TAG,this);
|
||||
OrderModel.INSTANCE.setOrderStatusCallback(TAG,this);
|
||||
OchTransform.INSTANCE.addListener(TAG,ochTransform);
|
||||
@@ -65,6 +66,7 @@ public class TaxiPresenter extends Presenter<TaxiFragment> implements ITaxiADASS
|
||||
TaxiTaskModel.INSTANCE.setADASStatusCallback(null);
|
||||
TaxiTaskModel.INSTANCE.setControllerStatusCallback(null);
|
||||
TaxiTaskModel.INSTANCE.setOrderStatusCallback(null);
|
||||
RoutingManager.INSTANCE.setRoutingCallback(null);
|
||||
OCHAdasAbilityManager.getInstance().release();
|
||||
TaxiTaskModel.INSTANCE.setMoGoAutopilotPlanningListener(null);
|
||||
LoginStatusManager.INSTANCE.removeListener(TAG);
|
||||
@@ -226,4 +228,9 @@ public class TaxiPresenter extends Presenter<TaxiFragment> implements ITaxiADASS
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void showMap(boolean show) {
|
||||
mView.showAmapNaviToStationFragment(show);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,6 +5,7 @@ import android.util.AttributeSet
|
||||
import android.view.LayoutInflater
|
||||
import androidx.lifecycle.ViewModelProvider
|
||||
import androidx.lifecycle.findViewTreeViewModelStoreOwner
|
||||
import com.mogo.och.common.module.biz.routing.RoutingManager
|
||||
import com.mogo.och.common.module.wigets.WindowRelativeLayout
|
||||
import com.mogo.och.unmanned.taxi.R
|
||||
import kotlinx.android.synthetic.main.unmanned_switch_biz.view.itinerarySwitchView
|
||||
@@ -45,11 +46,17 @@ class SwitchBizView: WindowRelativeLayout, SwtichBizeModel.SwtichLineViewCallbac
|
||||
override fun showTaskView() {
|
||||
itinerarySwitchView.visibility = VISIBLE
|
||||
routingSwitchView.visibility = GONE
|
||||
RoutingManager.getRoutingView()?.let {
|
||||
routingSwitchView.removeView(it)
|
||||
}
|
||||
}
|
||||
|
||||
override fun showRoutingView() {
|
||||
itinerarySwitchView.visibility = GONE
|
||||
routingSwitchView.visibility = VISIBLE
|
||||
RoutingManager.getRoutingView()?.let {
|
||||
routingSwitchView.addView(it)
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,24 +0,0 @@
|
||||
package com.mogo.och.unmanned.taxi.ui.routing
|
||||
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant
|
||||
|
||||
import com.mogo.och.unmanned.taxi.callback.ITaxiOrderStatusCallback
|
||||
|
||||
object TaxiRoutingModel {
|
||||
private val TAG = SceneConstant.M_TAXI + TaxiRoutingModel::class.java.simpleName
|
||||
|
||||
private var mOrderStatusCallback: ITaxiOrderStatusCallback? = null
|
||||
|
||||
fun setOrderStatusCallback(callback: ITaxiOrderStatusCallback?) {
|
||||
mOrderStatusCallback = callback
|
||||
}
|
||||
|
||||
/**
|
||||
* 显示/隐藏 前往任务目的地的导航
|
||||
*
|
||||
* @param isShow
|
||||
*/
|
||||
fun startNaviToEndStationByAMap(isShow: Boolean) {
|
||||
mOrderStatusCallback?.onNaviToEnd(true, isShow)
|
||||
}
|
||||
}
|
||||
@@ -1,270 +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"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="@dimen/dp_618"
|
||||
android:layout_height="@dimen/dp_960"
|
||||
android:paddingTop="@dimen/dp_26"
|
||||
android:paddingBottom="@dimen/dp_32"
|
||||
android:paddingStart="@dimen/dp_29"
|
||||
android:paddingEnd="@dimen/dp_29"
|
||||
android:background="@drawable/taxi_order_bg"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent">
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:id="@+id/headerTitleContainer"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:visibility="gone"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent">
|
||||
|
||||
<com.mogo.och.common.module.wigets.MarqueeTextView
|
||||
android:id="@+id/taskTitleTv"
|
||||
android:layout_width="@dimen/dp_420"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="@dimen/dp_35"
|
||||
android:ellipsize="marquee"
|
||||
android:marqueeRepeatLimit="marquee_forever"
|
||||
android:singleLine="true"
|
||||
android:text="路线name路线name"
|
||||
android:textColor="@android:color/white"
|
||||
android:textSize="@dimen/dp_46"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="0dp"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/headerTitleContainer">
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:id="@+id/bottomBtnContainer"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintRight_toRightOf="parent">
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
android:id="@+id/btnChooseTask"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="@dimen/dp_116"
|
||||
android:background="@drawable/routing_click_btn_bg"
|
||||
android:gravity="center"
|
||||
android:text="@string/routing_verify_btn_choose_task"
|
||||
android:textColor="#FFFFFF"
|
||||
android:textSize="@dimen/dp_44"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
tools:visibility="gone" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
android:id="@+id/btnStartTask"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="@dimen/dp_116"
|
||||
android:background="@drawable/routing_click_btn_bg"
|
||||
android:gravity="center"
|
||||
android:text="@string/routing_verify_btn_start_task"
|
||||
android:textColor="#FFFFFF"
|
||||
android:textSize="@dimen/dp_44"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
tools:visibility="gone" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/btnFinishTask"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="@dimen/dp_116"
|
||||
android:layout_weight="1"
|
||||
android:background="@drawable/routing_btn_bg_finish_task"
|
||||
android:gravity="center"
|
||||
android:text="结束任务"
|
||||
android:textColor="@android:color/white"
|
||||
android:textSize="@dimen/dp_44"
|
||||
android:visibility="visible"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintWidth_percent="0.55" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/btnSummitIssue"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="@dimen/dp_116"
|
||||
android:layout_weight="1"
|
||||
android:background="@drawable/routing_btn_bg_submit_issue"
|
||||
android:gravity="center"
|
||||
android:text="问题打点"
|
||||
android:textColor="@android:color/white"
|
||||
android:textSize="@dimen/dp_44"
|
||||
android:visibility="visible"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintWidth_percent="0.55" />
|
||||
|
||||
<androidx.constraintlayout.widget.Group
|
||||
android:id="@+id/finishSubmitIssueGroup"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:visibility="visible"
|
||||
app:constraint_referenced_ids="btnFinishTask,btnSummitIssue"
|
||||
tools:visibility="visible" />
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:id="@+id/mCurrentTaskLayout"
|
||||
android:layout_width="@dimen/module_och_taxi_panel_width"
|
||||
android:layout_height="0dp"
|
||||
android:visibility="gone"
|
||||
app:layout_constraintBottom_toTopOf="@+id/bottomBtnContainer"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent">
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
android:id="@+id/taskHintTextView"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="@dimen/dp_40"
|
||||
android:layout_marginTop="@dimen/dp_54"
|
||||
android:text="当前任务"
|
||||
android:textColor="@android:color/white"
|
||||
android:textSize="@dimen/dp_34"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
android:id="@+id/startStationTag"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="@dimen/dp_78"
|
||||
android:layout_marginTop="@dimen/dp_30"
|
||||
android:text="上车:"
|
||||
android:textColor="@color/station_tag_color"
|
||||
android:textSize="@dimen/dp_32"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/taskHintTextView"
|
||||
app:layout_goneMarginTop="@dimen/dp_68" />
|
||||
|
||||
<com.mogo.och.common.module.wigets.MarqueeTextView
|
||||
android:id="@+id/startStationName"
|
||||
android:layout_width="@dimen/dp_366"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="@dimen/dp_12"
|
||||
android:ellipsize="marquee"
|
||||
android:marqueeRepeatLimit="marquee_forever"
|
||||
android:singleLine="true"
|
||||
android:text="始发站"
|
||||
android:textColor="@android:color/white"
|
||||
android:textSize="@dimen/dp_44"
|
||||
app:layout_constraintLeft_toLeftOf="@+id/startStationTag"
|
||||
app:layout_constraintTop_toBottomOf="@+id/startStationTag" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatImageView
|
||||
android:id="@+id/naviToStart"
|
||||
android:layout_width="@dimen/dp_48"
|
||||
android:layout_height="@dimen/dp_48"
|
||||
android:layout_marginEnd="@dimen/dp_40"
|
||||
android:src="@drawable/taxi_navi_icon"
|
||||
app:layout_constraintBottom_toBottomOf="@id/startStationName"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintTop_toTopOf="@+id/startStationName"
|
||||
app:layout_goneMarginEnd="@dimen/dp_40" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatImageView
|
||||
android:id="@+id/naviToEnd"
|
||||
android:layout_width="@dimen/dp_48"
|
||||
android:layout_height="@dimen/dp_48"
|
||||
android:layout_marginEnd="@dimen/dp_40"
|
||||
android:src="@drawable/taxi_navi_icon"
|
||||
app:layout_constraintBottom_toBottomOf="@id/endStationName"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintTop_toTopOf="@+id/endStationName"
|
||||
app:layout_goneMarginEnd="@dimen/dp_40" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
android:id="@+id/endStationTag"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="@dimen/dp_52"
|
||||
android:text="下车:"
|
||||
android:textColor="@color/station_tag_color"
|
||||
android:textSize="@dimen/dp_32"
|
||||
app:layout_constraintStart_toStartOf="@+id/startStationTag"
|
||||
app:layout_constraintTop_toBottomOf="@+id/startStationName" />
|
||||
|
||||
<com.mogo.och.common.module.wigets.MarqueeTextView
|
||||
android:id="@+id/endStationName"
|
||||
android:layout_width="@dimen/dp_366"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="@dimen/dp_12"
|
||||
android:ellipsize="marquee"
|
||||
android:marqueeRepeatLimit="marquee_forever"
|
||||
android:singleLine="true"
|
||||
android:text="终点站"
|
||||
android:textColor="@android:color/white"
|
||||
android:textSize="@dimen/dp_44"
|
||||
app:layout_constraintLeft_toLeftOf="@+id/startStationTag"
|
||||
app:layout_constraintTop_toBottomOf="@+id/endStationTag" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatImageView
|
||||
android:id="@+id/startPoint"
|
||||
android:layout_width="@dimen/dp_38"
|
||||
android:layout_height="@dimen/dp_38"
|
||||
android:src="@drawable/taxi_driver_circle_green_big"
|
||||
app:layout_constraintBottom_toBottomOf="@+id/startStationName"
|
||||
app:layout_constraintLeft_toLeftOf="@+id/taskHintTextView"
|
||||
app:layout_constraintTop_toTopOf="@+id/startStationName" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatImageView
|
||||
android:id="@+id/taper"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="0dp"
|
||||
android:scaleType="fitXY"
|
||||
android:src="@drawable/taxi_grab_dot_line"
|
||||
app:layout_constraintBottom_toTopOf="@+id/endPoint"
|
||||
app:layout_constraintLeft_toLeftOf="@+id/startPoint"
|
||||
app:layout_constraintRight_toRightOf="@+id/startPoint"
|
||||
app:layout_constraintTop_toBottomOf="@+id/startPoint" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatImageView
|
||||
android:id="@+id/endPoint"
|
||||
android:layout_width="@dimen/dp_38"
|
||||
android:layout_height="@dimen/dp_38"
|
||||
android:src="@drawable/taxi_driver_circle_blue_big"
|
||||
app:layout_constraintBottom_toBottomOf="@+id/endStationName"
|
||||
app:layout_constraintLeft_toLeftOf="@+id/taskHintTextView"
|
||||
app:layout_constraintTop_toTopOf="@+id/endStationName" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
android:id="@+id/taskTripInfo"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="@dimen/dp_30"
|
||||
android:layout_marginBottom="36dp"
|
||||
android:text="距离 -- 公里, 用时 -- 分钟"
|
||||
android:textColor="@color/station_tag_color"
|
||||
android:textSize="@dimen/dp_30"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintLeft_toLeftOf="@+id/endPoint"
|
||||
app:layout_constraintTop_toBottomOf="@+id/endStationName" />
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
<include
|
||||
android:id="@+id/noDataContainer"
|
||||
layout="@layout/unmanned_routing_no_data_common_view"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:visibility="visible"
|
||||
app:layout_constraintBottom_toTopOf="@+id/bottomBtnContainer"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
@@ -57,7 +57,7 @@
|
||||
android:layout_width="@dimen/dp_880"
|
||||
android:layout_height="0dp"/>
|
||||
|
||||
<com.mogo.och.unmanned.taxi.ui.routing.RoutingSwitchView
|
||||
<FrameLayout
|
||||
android:id="@+id/routingSwitchView"
|
||||
app:layout_constraintTop_toTopOf="@+id/guideline_h_top"
|
||||
app:layout_constraintStart_toStartOf="@+id/guideline_v_left"
|
||||
|
||||
Reference in New Issue
Block a user