diff --git a/OCH/common/biz/src/main/java/com/mogo/och/biz/login/ui/LoginFragment.kt b/OCH/common/biz/src/main/java/com/mogo/och/biz/login/ui/LoginFragment.kt
index b1d91d3dc3..1e576c5cf1 100644
--- a/OCH/common/biz/src/main/java/com/mogo/och/biz/login/ui/LoginFragment.kt
+++ b/OCH/common/biz/src/main/java/com/mogo/och/biz/login/ui/LoginFragment.kt
@@ -16,6 +16,7 @@ import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant
import com.mogo.eagle.core.utilcode.util.ActivityUtils
import com.mogo.eagle.core.utilcode.util.KeyboardUtils
import com.mogo.eagle.core.utilcode.util.ToastUtils
+import com.mogo.och.biz.BuildConfig
import com.mogo.och.biz.R
import com.mogo.och.biz.login.callback.ILoginViewCallback
import com.mogo.och.biz.login.presenter.LoginPresenter
diff --git a/OCH/common/biz/src/main/java/com/mogo/och/biz/login/ui/debugview/BusinessView.kt b/OCH/common/biz/src/main/java/com/mogo/och/biz/login/ui/debugview/BusinessView.kt
index 2eb8674dba..6d820655c6 100644
--- a/OCH/common/biz/src/main/java/com/mogo/och/biz/login/ui/debugview/BusinessView.kt
+++ b/OCH/common/biz/src/main/java/com/mogo/och/biz/login/ui/debugview/BusinessView.kt
@@ -27,9 +27,18 @@ class BusinessView : ConstraintLayout, BusinessViewModel.IErrorInfoViewCallback
constructor(context: Context, attributeSet: AttributeSet) : super(context, attributeSet)
- constructor(context: Context, attributeSet: AttributeSet, defStyleAttr: Int) : super(context, attributeSet, defStyleAttr)
+ constructor(context: Context, attributeSet: AttributeSet, defStyleAttr: Int) : super(
+ context,
+ attributeSet,
+ defStyleAttr
+ )
- constructor(context: Context, attributeSet: AttributeSet, defStyleAttr: Int, defStyleRes: Int) : super(context, attributeSet, defStyleAttr, defStyleRes)
+ constructor(
+ context: Context,
+ attributeSet: AttributeSet,
+ defStyleAttr: Int,
+ defStyleRes: Int
+ ) : super(context, attributeSet, defStyleAttr, defStyleRes)
private var viewModel: BusinessViewModel? = null
private fun initView() {
@@ -53,7 +62,7 @@ class BusinessView : ConstraintLayout, BusinessViewModel.IErrorInfoViewCallback
actv_debugview.onClick { ToggleDebugView.toggleDebugView.toggle(context) }
}
- private fun swtichBusiness(businessEnum: BusinessEnum){
+ private fun swtichBusiness(businessEnum: BusinessEnum) {
LoginStatusManager.invokeLBusinessTypeChangeDebug(businessEnum)
visibility = GONE
}
@@ -61,62 +70,38 @@ class BusinessView : ConstraintLayout, BusinessViewModel.IErrorInfoViewCallback
override fun onVisibilityAggregated(isVisible: Boolean) {
super.onVisibilityAggregated(isVisible)
- if(isVisible){
+ if (isVisible) {
- }else{
+ } else {
}
}
- fun selectBusniess(){
- if(FunctionBuildConfig.supportBusiness.size==1){
- FunctionBuildConfig.supportBusiness.forEach {
- when (it) {
- "shuttle" -> {
- swtichBusiness(BusinessEnum.Shuttle)
- }
-
- "bus" -> {
- swtichBusiness(BusinessEnum.Bus)
- }
-
- "taxi" -> {
- swtichBusiness(BusinessEnum.Taxi)
- }
-
- "charter" -> {
- swtichBusiness(BusinessEnum.Charter)
- }
-
- else -> {}
+ fun selectBusniess() {
+ visibility = VISIBLE
+ actv_business_shuttle.visibility = GONE
+ actv_business_bus.visibility = GONE
+ actv_business_taxi.visibility = GONE
+ actv_business_charter.visibility = GONE
+ FunctionBuildConfig.supportBusiness.forEach {
+ when (it) {
+ "shuttle" -> {
+ actv_business_shuttle.visibility = VISIBLE
}
- }
- }else {
- visibility = VISIBLE
- actv_business_shuttle.visibility = GONE
- actv_business_bus.visibility = GONE
- actv_business_taxi.visibility = GONE
- actv_business_charter.visibility = GONE
- FunctionBuildConfig.supportBusiness.forEach {
- when (it) {
- "shuttle" -> {
- actv_business_shuttle.visibility = VISIBLE
- }
- "bus" -> {
- actv_business_bus.visibility = VISIBLE
- }
-
- "taxi" -> {
- actv_business_taxi.visibility = VISIBLE
- }
-
- "charter" -> {
- actv_business_charter.visibility = VISIBLE
- }
-
- else -> {}
+ "bus" -> {
+ actv_business_bus.visibility = VISIBLE
}
+
+ "taxi" -> {
+ actv_business_taxi.visibility = VISIBLE
+ }
+
+ "charter" -> {
+ actv_business_charter.visibility = VISIBLE
+ }
+
+ else -> {}
}
}
}
diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/OchCommonApi.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/OchCommonApi.kt
deleted file mode 100644
index b46ad23a84..0000000000
--- a/OCH/common/common/src/main/java/com/mogo/och/common/module/OchCommonApi.kt
+++ /dev/null
@@ -1,24 +0,0 @@
-package com.mogo.och.common.module
-
-/**
- * @author: wangmingjun
- * @date: 2022/4/26
- */
-class OchCommonApi private constructor(){
- companion object{
- private var instance: OchCommonApi? = null
- get() {
- if (field == null){
- field = OchCommonApi();
- }
- return field
- }
- @Synchronized
- fun get():OchCommonApi{
- return instance!!
- }
- }
-
-
-
-}
\ No newline at end of file
diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/wigets/CommonLoadingView.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/wigets/CommonLoadingView.kt
new file mode 100644
index 0000000000..6741844bea
--- /dev/null
+++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/wigets/CommonLoadingView.kt
@@ -0,0 +1,69 @@
+package com.mogo.och.common.module.wigets
+
+import android.animation.ObjectAnimator
+import android.content.Context
+import android.util.AttributeSet
+import android.view.LayoutInflater
+import android.view.animation.LinearInterpolator
+import androidx.constraintlayout.widget.ConstraintLayout
+import com.mogo.commons.module.status.MogoStatusManager
+import com.mogo.eagle.core.data.config.HdMapBuildConfig
+import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
+import com.mogo.eagle.core.utilcode.util.UiThreadHandler
+import com.mogo.map.listener.IMogoMapListener
+import com.mogo.map.listener.MogoMapListenerHandler
+import com.mogo.map.uicontroller.EnumMapUI
+import com.mogo.och.common.module.R
+import kotlinx.android.synthetic.main.common_loading_map.view.aciv_loading_map
+
+class CommonLoadingView @JvmOverloads constructor(
+ context: Context,
+ attrs: AttributeSet? = null,
+ defStyleAttr: Int = 0
+) : ConstraintLayout(context, attrs, defStyleAttr),IMogoMapListener {
+ companion object {
+ const val TAG = "LoadingMapStatusView"
+ }
+
+ private var autopilotLoadingAnimator: ObjectAnimator? = null
+
+ init {
+ LayoutInflater.from(context).inflate(R.layout.common_loading_map, this, true)
+ }
+
+ override fun onAttachedToWindow() {
+ super.onAttachedToWindow()
+ CallerLogger.d(TAG,"onAttachedToWindow")
+ visibility = VISIBLE
+ MogoMapListenerHandler.mogoMapListenerHandler.registerHostMapListener(TAG,this)
+ if (autopilotLoadingAnimator == null) {
+ autopilotLoadingAnimator =
+ ObjectAnimator.ofFloat(aciv_loading_map, "rotation", 0f, 360f)
+ autopilotLoadingAnimator?.setInterpolator(LinearInterpolator())
+ autopilotLoadingAnimator?.setRepeatCount(-1) //无限循环
+ autopilotLoadingAnimator?.setDuration(1000) //设置持续时间
+ }
+ autopilotLoadingAnimator!!.start() //动画开始
+
+ setOnClickListener {
+ CallerLogger.d(TAG,"点击")
+ }
+ }
+
+ override fun onMapLoaded() {
+ MogoStatusManager.getInstance().setScreenCoverMode(TAG, true)
+ HdMapBuildConfig.isMapLoaded = true
+ // 设置地图样式
+ MogoMapListenerHandler.mogoMapListenerHandler.onMapModeChanged(EnumMapUI.MAP_STYLE_DAY_VR)
+ UiThreadHandler.postDelayed({ visibility = GONE },2_000,UiThreadHandler.MODE.QUEUE)
+ }
+
+ override fun onDetachedFromWindow() {
+ super.onDetachedFromWindow()
+ CallerLogger.d(TAG,"onDetachedFromWindow")
+ MogoMapListenerHandler.mogoMapListenerHandler.unregisterHostMapListener(TAG)
+ }
+
+
+
+}
\ No newline at end of file
diff --git a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/widget/WindowRelativeLayout.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/wigets/WindowRelativeLayout.kt
similarity index 95%
rename from OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/widget/WindowRelativeLayout.kt
rename to OCH/common/common/src/main/java/com/mogo/och/common/module/wigets/WindowRelativeLayout.kt
index 31313e52f7..1c499611ef 100644
--- a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/widget/WindowRelativeLayout.kt
+++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/wigets/WindowRelativeLayout.kt
@@ -1,4 +1,4 @@
-package com.mogo.och.taxi.passenger.widget
+package com.mogo.och.common.module.wigets
import android.content.Context
import android.util.AttributeSet
diff --git a/OCH/common/common/src/main/res/drawable-nodpi/common_loading_nor.png b/OCH/common/common/src/main/res/drawable-nodpi/common_loading_nor.png
new file mode 100644
index 0000000000..0ff5309fab
Binary files /dev/null and b/OCH/common/common/src/main/res/drawable-nodpi/common_loading_nor.png differ
diff --git a/OCH/common/common/src/main/res/layout/common_loading.xml b/OCH/common/common/src/main/res/layout/common_loading.xml
new file mode 100644
index 0000000000..bc2af0dbe3
--- /dev/null
+++ b/OCH/common/common/src/main/res/layout/common_loading.xml
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/OCH/taxi/unmanned-driver/build.gradle b/OCH/taxi/unmanned-driver/build.gradle
index 53a8aecc07..b32945f961 100644
--- a/OCH/taxi/unmanned-driver/build.gradle
+++ b/OCH/taxi/unmanned-driver/build.gradle
@@ -56,6 +56,7 @@ dependencies {
implementation rootProject.ext.dependencies.rxandroid
implementation rootProject.ext.dependencies.androidxconstraintlayout
implementation rootProject.ext.dependencies.amapnavi3dmap
+ implementation rootProject.ext.dependencies.flexbox
implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:2.5.1"
diff --git a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/bean/TaxiRoutingBean.kt b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/bean/TaxiRoutingBean.kt
index 3411b14cdb..53b4bf85ad 100644
--- a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/bean/TaxiRoutingBean.kt
+++ b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/bean/TaxiRoutingBean.kt
@@ -51,7 +51,17 @@ data class StartGrayAndQueryContrailRsp(
var contrail: ContrailBean?,
var grayLineBean: GrayLineBean
) : BaseData()
+data class PointError(var code:String,var name:String,var isCheck:Boolean = false)
+data class QueryPointErrorReasonsRsp(var data: MutableList?) : BaseData()
+data class SaveGrayContrailErrorReasons(
+ var grayId: Long,
+ var gcjLon: Double,
+ var gcjLat: Double,
+ var wgs84Lon: Double,
+ var wgs84Lat: Double,
+ var noteCodes: MutableList,
+) //feedback 1:成功 2:失败
enum class EndGrayTaskFeedbackType(var type: Int) {
USABLE_YES(1),
USABLE_NO(2)
diff --git a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/network/TaxiRoutingServiceApi.kt b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/network/TaxiRoutingServiceApi.kt
index 0d751a973e..4e5610c6fc 100644
--- a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/network/TaxiRoutingServiceApi.kt
+++ b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/network/TaxiRoutingServiceApi.kt
@@ -5,7 +5,9 @@ import com.mogo.commons.storage.SharedPrefsMgr
import com.mogo.eagle.core.data.BaseData
import com.mogo.och.taxi.bean.EndGrayContrailTaskReq
import com.mogo.och.taxi.bean.QueryGrayContrailListRsp
+import com.mogo.och.taxi.bean.QueryPointErrorReasonsRsp
import com.mogo.och.taxi.bean.QueryRoutingContrailByIdRsp
+import com.mogo.och.taxi.bean.SaveGrayContrailErrorReasons
import com.mogo.och.taxi.bean.StartGrayContrailTaskReq
import com.mogo.och.taxi.bean.StartGrayContrailTaskRsp
import com.mogo.och.taxi.bean.SubmitGrayLineIssueLocationReq
@@ -73,4 +75,25 @@ interface TaxiRoutingServiceApi {
@Header("ticket") ticket: String = SharedPrefsMgr.getInstance().token,
@Body data: EndGrayContrailTaskReq
): Observable
+
+ /**
+ * 获取打点问题字典
+ */
+ @Headers("Content-type:application/json;charset=UTF-8")
+ @GET("/och-vehicle/api/dict/v1/dot/list")
+ fun getDotErrorList(
+ @Header("appId") appId: String = MoGoAiCloudClientConfig.getInstance().serviceAppId,
+ @Header("ticket") ticket: String = SharedPrefsMgr.getInstance().token,
+ ): Observable
+
+ /**
+ * 结束一个路线的灰度任务
+ */
+ @Headers("Content-type:application/json;charset=UTF-8")
+ @POST("/och-taxi-cabin/api/business/v1/saveDotDetail")
+ fun saveDotDetail(
+ @Header("appId") appId: String = MoGoAiCloudClientConfig.getInstance().serviceAppId,
+ @Header("ticket") ticket: String = SharedPrefsMgr.getInstance().token,
+ @Body data: SaveGrayContrailErrorReasons
+ ): Observable
}
\ No newline at end of file
diff --git a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/network/TaxiRoutingServiceManager.kt b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/network/TaxiRoutingServiceManager.kt
index c0117cc65d..0d1377a6cf 100644
--- a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/network/TaxiRoutingServiceManager.kt
+++ b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/network/TaxiRoutingServiceManager.kt
@@ -11,7 +11,9 @@ import com.mogo.och.common.module.network.interceptor.transformTry
import com.mogo.och.taxi.bean.EndGrayContrailTaskReq
import com.mogo.och.taxi.bean.GrayLineBean
import com.mogo.och.taxi.bean.QueryGrayContrailListRsp
+import com.mogo.och.taxi.bean.QueryPointErrorReasonsRsp
import com.mogo.och.taxi.bean.QueryRoutingContrailByIdRsp
+import com.mogo.och.taxi.bean.SaveGrayContrailErrorReasons
import com.mogo.och.taxi.bean.StartGrayAndQueryContrailRsp
import com.mogo.och.taxi.bean.StartGrayContrailTaskReq
import com.mogo.och.taxi.bean.StartGrayContrailTaskRsp
@@ -87,6 +89,22 @@ object TaxiRoutingServiceManager {
.subscribe(OchCommonSubscribeImpl(context, callback, "endGrayTask"))
}
+ fun getErrorPointReasons(
+ context: Context,
+ callback: OchCommonServiceCallback
+ ) {
+ mRoutingServiceApi.getDotErrorList().transformTry()
+ .subscribe(OchCommonSubscribeImpl(context, callback, "dot/list"))
+ }
+ fun saveDotDetail(
+ context: Context,
+ data: SaveGrayContrailErrorReasons,
+ callback: OchCommonServiceCallback
+ ) {
+ mRoutingServiceApi.saveDotDetail(data = data).transformTry()
+ .subscribe(OchCommonSubscribeImpl(context, callback, "dot/list"))
+ }
+
fun startGrayTaskAndQueryRoutingContrail(
context: Context,
sn: String,
diff --git a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/errorpoint/ErrorPointItemAdapter.kt b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/errorpoint/ErrorPointItemAdapter.kt
new file mode 100644
index 0000000000..1434a5326c
--- /dev/null
+++ b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/errorpoint/ErrorPointItemAdapter.kt
@@ -0,0 +1,64 @@
+package com.mogo.och.taxi.ui.errorpoint
+
+import android.content.Context
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.widget.CheckBox
+import androidx.recyclerview.widget.RecyclerView
+import com.mogo.och.taxi.R
+import com.mogo.och.taxi.bean.PointError
+
+/**
+ * Created by yangyakun on 06/06/17.
+ */
+class ErrorPointItemAdapter(
+ private val context: Context,
+ private val dataList: MutableList
+) : RecyclerView.Adapter() {
+
+ fun setDataList(dataList: List) {
+ this.dataList.clear()
+ this.dataList.addAll(dataList)
+ notifyDataSetChanged()
+ }
+
+ fun getCheckDataList():MutableList{
+ val mutableListOf = mutableListOf()
+ this.dataList.forEach {
+ if(it.isCheck){
+ mutableListOf.add(it)
+ }
+ }
+ return mutableListOf
+ }
+
+ 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)
+ return TextVH(view)
+ }
+
+ override fun onBindViewHolder(holder: TextVH, position: Int) {
+ val errorInfo = dataList[holder.bindingAdapterPosition]
+ holder.cbErrorInfo.text = errorInfo.name
+ holder.cbErrorInfo.isChecked = errorInfo.isCheck
+ holder.cbErrorInfo.setOnCheckedChangeListener { buttonView, isChecked ->
+ if(buttonView==holder.cbErrorInfo){
+ errorInfo.isCheck = isChecked
+ }
+ }
+ }
+
+ override fun getItemCount(): Int {
+ return dataList.size
+ }
+
+ inner class TextVH(itemView: View) : RecyclerView.ViewHolder(itemView) {
+ var cbErrorInfo: CheckBox
+ init {
+ cbErrorInfo = itemView.findViewById(R.id.cb_error_info)
+ }
+ }
+}
\ No newline at end of file
diff --git a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/errorpoint/ReportErrorPointDialog.kt b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/errorpoint/ReportErrorPointDialog.kt
new file mode 100644
index 0000000000..caa4875a95
--- /dev/null
+++ b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/errorpoint/ReportErrorPointDialog.kt
@@ -0,0 +1,38 @@
+package com.mogo.och.taxi.ui.errorpoint
+
+import android.content.Context
+import android.widget.ImageView
+import android.widget.TextView
+import androidx.lifecycle.LifecycleObserver
+import com.mogo.eagle.core.function.hmi.dialog.BaseFloatDialog
+import com.mogo.och.taxi.R
+import kotlinx.android.synthetic.main.dialog_taxt_report_error.repvErrorPointReason
+
+class ReportErrorPointDialog(context: Context,grayId: Long?) : BaseFloatDialog(context), LifecycleObserver {
+
+ init {
+ setContentView(R.layout.dialog_taxt_report_error)
+ setCanceledOnTouchOutside(true)
+ repvErrorPointReason.setGrayId(grayId)
+ repvErrorPointReason.setDismiss(object :ReportErrorPointView.CloseCallback{
+ override fun close() {
+ dismiss()
+ }
+ })
+ }
+
+ fun showDialog() {
+ if (isShowing) {
+ return
+ }
+ show()
+ }
+
+ fun hideDialog() {
+ if (isShowing) {
+ dismiss()
+ }
+ }
+
+
+}
\ No newline at end of file
diff --git a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/errorpoint/ReportErrorPointView.kt b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/errorpoint/ReportErrorPointView.kt
new file mode 100644
index 0000000000..4ded849301
--- /dev/null
+++ b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/errorpoint/ReportErrorPointView.kt
@@ -0,0 +1,160 @@
+package com.mogo.och.taxi.ui.errorpoint
+
+import android.content.Context
+import android.util.AttributeSet
+import android.view.LayoutInflater
+import androidx.constraintlayout.widget.ConstraintLayout
+import androidx.lifecycle.ViewModelProvider
+import androidx.lifecycle.findViewTreeViewModelStoreOwner
+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.common.module.wigets.WindowRelativeLayout
+import com.mogo.och.taxi.R
+import com.mogo.och.taxi.bean.PointError
+import com.mogo.och.taxi.ui.routing.TaxiRoutingLoadingDialog
+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
+
+/**
+ *
+ * 评价View
+ * Created on 2022/5/16
+ */
+class ReportErrorPointView : WindowRelativeLayout,
+ ReportErrorPointViewModel.ReportErrorPointViewCallback {
+
+ constructor(context: Context) : super(context)
+
+ constructor(context: Context, attributeSet: AttributeSet) : super(context, attributeSet)
+
+ constructor(context: Context, attributeSet: AttributeSet, defStyleAttr: Int) : super(
+ context,
+ attributeSet,
+ defStyleAttr
+ )
+
+ constructor(
+ context: Context,
+ attributeSet: AttributeSet,
+ defStyleAttr: Int,
+ defStyleRes: Int
+ ) : super(context, attributeSet, defStyleAttr, defStyleRes)
+
+
+ private var viewModel: ReportErrorPointViewModel? = null
+
+ private lateinit var errorPointItemAdapter: ErrorPointItemAdapter
+
+ private var closeCallback: CloseCallback? = null
+
+ private var grayId: Long?=-1L
+
+ private val mLoadingDialog: TaxiRoutingLoadingDialog by lazy {
+ TaxiRoutingLoadingDialog(
+ context
+ )
+ }
+
+ private fun initView() {
+ d(SceneConstant.M_TAXI_P + TAG, "initView")
+ LayoutInflater.from(context).inflate(R.layout.taxt_report_error_point_panel, this, true)
+
+ val flexboxLayoutManager = FlexboxLayoutManager(context)
+ flexboxLayoutManager.flexDirection = FlexDirection.ROW;
+ flexboxLayoutManager.alignItems = AlignItems.CENTER
+ flexboxLayoutManager.flexWrap = FlexWrap.WRAP
+
+ rvErrorPointReason?.layoutManager = flexboxLayoutManager
+ rvErrorPointReason?.setHasFixedSize(true)
+ errorPointItemAdapter = ErrorPointItemAdapter(
+ context, mutableListOf(
+
+ )
+ )
+ rvErrorPointReason?.adapter = errorPointItemAdapter
+
+ tv_report_error_point_reason_cancel.onClick {
+ this.closeCallback?.close()
+ }
+ tv_report_error_point_reason.onClick {
+ val checkDataList = errorPointItemAdapter.getCheckDataList()
+ if(checkDataList.isEmpty()){
+ ToastUtils.showShort("请选择问题类型")
+ return@onClick
+ }
+ mLoadingDialog.showLoading()
+ this.viewModel?.submitErrorPointReasons(checkDataList)
+ }
+ }
+
+ override fun onVisibilityAggregated(isVisible: Boolean) {
+ super.onVisibilityAggregated(isVisible)
+ d(SceneConstant.M_TAXI_P + TAG, "展示---:${isVisible}")
+ if (isVisible) {
+ tv_work_order_time.text = "时间:${TimeUtils.millis2String(System.currentTimeMillis(), TimeUtils.getHourMinSecondFormat())}"
+ viewModel?.getPointErrorReasons()
+ mLoadingDialog.showLoading()
+ } else {
+
+ }
+
+ }
+
+ override fun onAttachedToWindow() {
+ super.onAttachedToWindow()
+ viewModel = ViewModelProvider(this).get(ReportErrorPointViewModel::class.java)
+ viewModel?.setViewCallback(this)
+ viewModel?.setGrayId(grayId)
+ }
+
+ companion object {
+ const val TAG = "TaxiPassengerArrivedView"
+ }
+
+ init {
+ try {
+ initView()
+ } catch (e: Exception) {
+ e.printStackTrace()
+ }
+ }
+
+ override fun addViewData(it: MutableList) {
+ mLoadingDialog.hideLoading()
+ errorPointItemAdapter.setDataList(it)
+ }
+
+ override fun hideLoadingWithMessage(msg: String?) {
+ msg?.let {
+ ToastUtils.showLong(msg)
+ }
+ mLoadingDialog.hideLoading()
+ }
+
+ override fun submitErrorReasons() {
+ mLoadingDialog.hideLoading()
+ this.closeCallback?.close()
+ }
+
+ fun setDismiss(listener: CloseCallback) {
+ this.closeCallback = listener
+ }
+
+ fun setGrayId(grayId: Long?) {
+ this.grayId = grayId
+ }
+
+ interface CloseCallback {
+ fun close()
+
+ }
+}
\ No newline at end of file
diff --git a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/errorpoint/ReportErrorPointViewModel.kt b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/errorpoint/ReportErrorPointViewModel.kt
new file mode 100644
index 0000000000..e5e98c8992
--- /dev/null
+++ b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/errorpoint/ReportErrorPointViewModel.kt
@@ -0,0 +1,120 @@
+package com.mogo.och.taxi.ui.errorpoint
+
+import androidx.lifecycle.ViewModel
+import com.mogo.commons.AbsMogoApplication
+import com.mogo.eagle.core.data.BaseData
+import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationGCJ02ListenerManager
+import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationWGS84ListenerManager
+import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
+import com.mogo.eagle.core.utilcode.util.ToastUtils
+import com.mogo.och.common.module.network.OchCommonServiceCallback
+import com.mogo.och.taxi.bean.PointError
+import com.mogo.och.taxi.bean.QueryPointErrorReasonsRsp
+import com.mogo.och.taxi.bean.SaveGrayContrailErrorReasons
+import com.mogo.och.taxi.network.TaxiRoutingServiceManager
+import com.mogo.och.taxi.ui.routing.TaxiRoutingModel
+
+class ReportErrorPointViewModel : ViewModel() {
+
+ private val TAG = ReportErrorPointViewModel::class.java.simpleName
+
+ private var viewCallback: ReportErrorPointViewCallback? = null
+
+ private var grayId: Long?=-1L
+
+ init {
+
+ }
+
+ fun setViewCallback(viewCallback: ReportErrorPointViewCallback) {
+ this.viewCallback = viewCallback
+
+ }
+
+ fun getPointErrorReasons(){
+ TaxiRoutingServiceManager.getErrorPointReasons(
+ AbsMogoApplication.getApp(),
+ object : OchCommonServiceCallback {
+ override fun onSuccess(data: QueryPointErrorReasonsRsp?) {
+ data?.data?.let {
+ viewCallback?.addViewData(it)
+ }
+ }
+
+ override fun onFail(code: Int, msg: String?) {
+ viewCallback?.hideLoadingWithMessage(msg)
+ }
+
+ override fun onError() {
+ super.onError()
+ viewCallback?.hideLoadingWithMessage("网络错误、请稍后再试")
+ }
+ }
+ )
+ }
+
+
+ override fun onCleared() {
+ super.onCleared()
+ this.viewCallback = null
+ }
+
+ fun submitErrorPointReasons(checkDataList: MutableList) {
+ CallerLogger.d(TAG,checkDataList,grayId)
+ if (grayId == null || grayId!! < 0L) {
+ viewCallback?.hideLoadingWithMessage("未找到规划Id")
+ return
+ }
+ grayId?.let {
+ val gcj02 = CallerChassisLocationGCJ02ListenerManager.getChassisLocationGCJ02()
+ val wgs84 = CallerChassisLocationWGS84ListenerManager.getChassisLocationWGS84()
+ val errorReasonCodes = mutableListOf()
+ checkDataList.forEach {pointError->
+ errorReasonCodes.add(pointError.code)
+ }
+ val saveGrayContrailErrorReasons = SaveGrayContrailErrorReasons(
+ it,
+ gcj02.longitude,
+ gcj02.latitude,
+ wgs84.longitude,
+ wgs84.latitude,
+ errorReasonCodes
+ )
+ TaxiRoutingServiceManager.saveDotDetail(
+ AbsMogoApplication.getApp(),
+ saveGrayContrailErrorReasons,
+ object : OchCommonServiceCallback {
+ override fun onSuccess(data: BaseData?) {
+ if (data != null && data.code == 0){
+ ToastUtils.showShort("提交成功")
+ viewCallback?.submitErrorReasons()
+ }
+ }
+
+ override fun onFail(code: Int, msg: String?) {
+ viewCallback?.hideLoadingWithMessage(msg)
+ }
+
+ override fun onError() {
+ super.onError()
+ viewCallback?.hideLoadingWithMessage("网络错误、请稍后再试")
+ }
+ }
+ )
+ }
+
+ }
+
+ fun setGrayId(grayId: Long?) {
+ this.grayId = grayId
+ }
+
+
+ interface ReportErrorPointViewCallback {
+ fun addViewData(it: MutableList)
+ fun hideLoadingWithMessage(msg: String?)
+
+ fun submitErrorReasons()
+
+ }
+}
\ No newline at end of file
diff --git a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/routing/TaxiRoutingFragment.kt b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/routing/TaxiRoutingFragment.kt
index 9b910b80b8..f7231d0f69 100644
--- a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/routing/TaxiRoutingFragment.kt
+++ b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/routing/TaxiRoutingFragment.kt
@@ -10,6 +10,7 @@ import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationGCJ02Lis
import com.mogo.eagle.core.function.main.MainMoGoApplication
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant
+import com.mogo.eagle.core.utilcode.util.ActivityUtils
import com.mogo.eagle.core.utilcode.util.ThreadUtils
import com.mogo.eagle.core.utilcode.util.UiThreadHandler
import com.mogo.och.common.module.map.AmapNaviToDestinationModel
@@ -19,6 +20,7 @@ import com.mogo.och.taxi.R
import com.mogo.och.taxi.bean.EndGrayTaskFeedbackType
import com.mogo.och.taxi.constant.TaxiDriverEventConst
import com.mogo.och.taxi.constant.TaxiUnmannedConst
+import com.mogo.och.taxi.ui.errorpoint.ReportErrorPointDialog
import com.mogo.och.taxi.utils.MapMakerManager
import com.mogo.och.taxi.utils.TaskUtils
import kotlinx.android.synthetic.main.routing_fragment.btnChooseTask
@@ -195,11 +197,16 @@ class TaxiRoutingFragment : BaseFragment(), ICommonNaviChangedCallback {
)
}
btnSummitIssue.setOnClickListener {
- mViewModel.sendUiIntent(
- TaxiRoutingUiIntent.SubmitGrayLineIssueLocation(
- routingTask.grayId ?: -1L
- )
- )
+// mViewModel.sendUiIntent(
+// TaxiRoutingUiIntent.SubmitGrayLineIssueLocation(
+// routingTask.grayId ?: -1L
+// )
+// )
+ //ErrorPointFloatWindow(ActivityUtils.getTopActivity()).showFloatWindow()
+ context?.let {
+ ReportErrorPointDialog(it,routingTask.grayId ?: -1L).showDialog()
+ }
+
}
naviToStart.visibility = View.INVISIBLE
diff --git a/OCH/taxi/unmanned-driver/src/main/res/drawable-nodpi/taxi_error_point_head_bg.png b/OCH/taxi/unmanned-driver/src/main/res/drawable-nodpi/taxi_error_point_head_bg.png
new file mode 100644
index 0000000000..de313a3339
Binary files /dev/null and b/OCH/taxi/unmanned-driver/src/main/res/drawable-nodpi/taxi_error_point_head_bg.png differ
diff --git a/OCH/taxi/unmanned-driver/src/main/res/drawable-nodpi/taxi_error_point_report_bg.9.png b/OCH/taxi/unmanned-driver/src/main/res/drawable-nodpi/taxi_error_point_report_bg.9.png
new file mode 100644
index 0000000000..223424b13c
Binary files /dev/null and b/OCH/taxi/unmanned-driver/src/main/res/drawable-nodpi/taxi_error_point_report_bg.9.png differ
diff --git a/OCH/taxi/unmanned-driver/src/main/res/drawable-nodpi/taxi_error_point_report_cancle_bg.png b/OCH/taxi/unmanned-driver/src/main/res/drawable-nodpi/taxi_error_point_report_cancle_bg.png
new file mode 100644
index 0000000000..cf7d73bddc
Binary files /dev/null and b/OCH/taxi/unmanned-driver/src/main/res/drawable-nodpi/taxi_error_point_report_cancle_bg.png differ
diff --git a/OCH/taxi/unmanned-driver/src/main/res/drawable/taxi_error_point_reason_bg.xml b/OCH/taxi/unmanned-driver/src/main/res/drawable/taxi_error_point_reason_bg.xml
new file mode 100644
index 0000000000..1ecd6281e2
--- /dev/null
+++ b/OCH/taxi/unmanned-driver/src/main/res/drawable/taxi_error_point_reason_bg.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/OCH/taxi/unmanned-driver/src/main/res/drawable/taxi_error_point_reason_select.xml b/OCH/taxi/unmanned-driver/src/main/res/drawable/taxi_error_point_reason_select.xml
new file mode 100644
index 0000000000..a97b69d909
--- /dev/null
+++ b/OCH/taxi/unmanned-driver/src/main/res/drawable/taxi_error_point_reason_select.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/OCH/taxi/unmanned-driver/src/main/res/drawable/taxi_error_point_reason_unselect.xml b/OCH/taxi/unmanned-driver/src/main/res/drawable/taxi_error_point_reason_unselect.xml
new file mode 100644
index 0000000000..cb1fa5e3d6
--- /dev/null
+++ b/OCH/taxi/unmanned-driver/src/main/res/drawable/taxi_error_point_reason_unselect.xml
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/OCH/taxi/unmanned-driver/src/main/res/drawable/taxi_error_point_report_submit_bg.xml b/OCH/taxi/unmanned-driver/src/main/res/drawable/taxi_error_point_report_submit_bg.xml
new file mode 100644
index 0000000000..e6263838e3
--- /dev/null
+++ b/OCH/taxi/unmanned-driver/src/main/res/drawable/taxi_error_point_report_submit_bg.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/OCH/taxi/unmanned-driver/src/main/res/layout/dialog_taxt_report_error.xml b/OCH/taxi/unmanned-driver/src/main/res/layout/dialog_taxt_report_error.xml
new file mode 100644
index 0000000000..b6fe17dc88
--- /dev/null
+++ b/OCH/taxi/unmanned-driver/src/main/res/layout/dialog_taxt_report_error.xml
@@ -0,0 +1,8 @@
+
+
+
+
\ No newline at end of file
diff --git a/OCH/taxi/unmanned-driver/src/main/res/layout/taxt_report_error_point_item.xml b/OCH/taxi/unmanned-driver/src/main/res/layout/taxt_report_error_point_item.xml
new file mode 100644
index 0000000000..3eafa3b682
--- /dev/null
+++ b/OCH/taxi/unmanned-driver/src/main/res/layout/taxt_report_error_point_item.xml
@@ -0,0 +1,19 @@
+
+
+
+
\ No newline at end of file
diff --git a/OCH/taxi/unmanned-driver/src/main/res/layout/taxt_report_error_point_panel.xml b/OCH/taxi/unmanned-driver/src/main/res/layout/taxt_report_error_point_panel.xml
new file mode 100644
index 0000000000..5b928cbc03
--- /dev/null
+++ b/OCH/taxi/unmanned-driver/src/main/res/layout/taxt_report_error_point_panel.xml
@@ -0,0 +1,105 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/OCH/taxi/unmanned-driver/src/main/res/layout/taxt_u_p_report_error_point_panel.xml b/OCH/taxi/unmanned-driver/src/main/res/layout/taxt_u_p_report_error_point_panel.xml
new file mode 100644
index 0000000000..d2a193dcea
--- /dev/null
+++ b/OCH/taxi/unmanned-driver/src/main/res/layout/taxt_u_p_report_error_point_panel.xml
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/arrived/ArrivedView.kt b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/arrived/ArrivedView.kt
index a0707f8001..be5c4e284a 100644
--- a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/arrived/ArrivedView.kt
+++ b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/arrived/ArrivedView.kt
@@ -18,7 +18,7 @@ import com.mogo.och.common.module.utils.BigFrameAnimatorContainer
import com.mogo.och.common.module.utils.RxUtils
import com.mogo.och.taxi.passenger.R
import com.mogo.och.taxi.passenger.ui.TaxiPassengerBaseFragment
-import com.mogo.och.taxi.passenger.widget.WindowRelativeLayout
+import com.mogo.och.common.module.wigets.WindowRelativeLayout
import io.reactivex.disposables.Disposable
import kotlinx.android.synthetic.main.taxt_u_p_arrived_end_panel.view.aciv_bg
import kotlinx.android.synthetic.main.taxt_u_p_arrived_end_panel.view.aciv_close
diff --git a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/checkstartautopilot/ChekAndStartAutopilotView.kt b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/checkstartautopilot/ChekAndStartAutopilotView.kt
index 21a3caa6e7..e8d5707443 100644
--- a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/checkstartautopilot/ChekAndStartAutopilotView.kt
+++ b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/checkstartautopilot/ChekAndStartAutopilotView.kt
@@ -21,7 +21,7 @@ import com.mogo.och.common.module.manager.xiaozhi.ZhiViewmanager
import com.mogo.och.common.module.utils.BigFrameAnimatorContainer
import com.mogo.och.taxi.passenger.R
import com.mogo.och.taxi.passenger.model.TaxiPassengerModel
-import com.mogo.och.taxi.passenger.widget.WindowRelativeLayout
+import com.mogo.och.common.module.wigets.WindowRelativeLayout
import kotlinx.android.synthetic.main.taxt_u_p_check_startautopilot.view.aciv_check_autopilot
import kotlinx.android.synthetic.main.taxt_u_p_check_startautopilot.view.aciv_start_autopilt_success_ani
import kotlinx.android.synthetic.main.taxt_u_p_check_startautopilot.view.aciv_start_autopilt_success_bg
diff --git a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/checkstartautopilot/startautopilot/StartAutopilotView.kt b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/checkstartautopilot/startautopilot/StartAutopilotView.kt
index dc90081392..dca0a3e824 100644
--- a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/checkstartautopilot/startautopilot/StartAutopilotView.kt
+++ b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/checkstartautopilot/startautopilot/StartAutopilotView.kt
@@ -13,7 +13,7 @@ import com.mogo.och.common.module.manager.device.data.DoorPosition
import com.mogo.och.common.module.manager.device.data.DoorState
import com.mogo.och.common.module.utils.FrameAnimatorContainer
import com.mogo.och.taxi.passenger.R
-import com.mogo.och.taxi.passenger.widget.WindowRelativeLayout
+import com.mogo.och.common.module.wigets.WindowRelativeLayout
import kotlinx.android.synthetic.main.taxt_u_p_start_autopilot_view.view.aciv_middle_car
import kotlinx.android.synthetic.main.taxt_u_p_start_autopilot_view.view.actv_front_left_door
import kotlinx.android.synthetic.main.taxt_u_p_start_autopilot_view.view.actv_front_right_door