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