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 4b0dfa7535..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 @@ -117,9 +118,11 @@ class LoginFragment : MvpFragment(), ILoginView } } biz_actv_login_show_sn.text = SharedPrefsMgr.getInstance().sn - biz_actv_login_show_sn.setOnLongClickListener { - bv_switch_business.selectBusniess() - true + if(BuildConfig.DEBUG) { + biz_actv_login_show_sn.setOnLongClickListener { + bv_switch_business.selectBusniess() + true + } } } diff --git a/OCH/common/biz/src/main/java/com/mogo/och/biz/login/ui/LoginPassengerFragment.kt b/OCH/common/biz/src/main/java/com/mogo/och/biz/login/ui/LoginPassengerFragment.kt index 4e6bf92d3f..d94fcf32b7 100644 --- a/OCH/common/biz/src/main/java/com/mogo/och/biz/login/ui/LoginPassengerFragment.kt +++ b/OCH/common/biz/src/main/java/com/mogo/och/biz/login/ui/LoginPassengerFragment.kt @@ -63,11 +63,11 @@ class LoginPassengerFragment : MvpFragment { - 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/biz/src/main/res/layout/biz_login_business_view.xml b/OCH/common/biz/src/main/res/layout/biz_login_business_view.xml index 48ebd3c80b..1c6f235c3e 100644 --- a/OCH/common/biz/src/main/res/layout/biz_login_business_view.xml +++ b/OCH/common/biz/src/main/res/layout/biz_login_business_view.xml @@ -3,7 +3,7 @@ xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="@dimen/dp_200" - android:layout_height="@dimen/dp_300" + android:layout_height="@dimen/dp_400" android:background="@drawable/biz_login_error_info"> + \ No newline at end of file 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/driver/src/main/java/com/mogo/och/taxi/presenter/TaxiPresenter.java b/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/presenter/TaxiPresenter.java index dd8da0424f..99fbe1b5d6 100644 --- a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/presenter/TaxiPresenter.java +++ b/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/presenter/TaxiPresenter.java @@ -500,6 +500,9 @@ public class TaxiPresenter extends Presenter implements ITaxiADASS @Override public void onOpenOrderStatusEnumChange(OpenOrderStatusEnum businessEnum) { + if(businessEnum==OpenOrderStatusEnum.Ordering){ + TaxiModel.getInstance().startOrStopOrderLoop(LoginStatusManager.isLogin()&&LoginStatusManager.isOpenOrderType()); + } UiThreadHandler.post(new Runnable() { @Override public void run() { 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..aa5fd325a5 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 @@ -45,13 +45,24 @@ data class StartGrayContrailTaskReq(var sn: String, var contrailId: Long) data class StartGrayContrailTaskRsp(var data: Long?) : BaseData() data class QueryRoutingContrailByIdRsp(var data: ContrailBean?) : BaseData() data class SubmitGrayLineIssueLocationReq(var grayId: Long, var gcjLon: Double, var gcjLat: Double) -data class EndGrayContrailTaskReq(var grayId: Long, var feedback: Int) //feedback 1:成功 2:失败 +data class EndGrayContrailTaskReq(var grayId: Long, var feedback: Int,var occurrenceTime:Long) //feedback 1:成功 2:失败 data class StartGrayAndQueryContrailRsp( var taskId: Long?, 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 occurrenceTime:Long, + 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..2360de2777 --- /dev/null +++ b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/errorpoint/ReportErrorPointView.kt @@ -0,0 +1,161 @@ +package com.mogo.och.taxi.ui.errorpoint + +import android.content.Context +import android.util.AttributeSet +import android.view.LayoutInflater +import androidx.lifecycle.ViewModelProvider +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 var occurrenceTime:Long = System.currentTimeMillis() + + 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,occurrenceTime) + } + } + + override fun onVisibilityAggregated(isVisible: Boolean) { + super.onVisibilityAggregated(isVisible) + d(SceneConstant.M_TAXI_P + TAG, "展示---:${isVisible}") + if (isVisible) { + occurrenceTime = System.currentTimeMillis() + tv_work_order_time.text = "时间:${TimeUtils.millis2String(occurrenceTime, 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..6d0cd5baa8 --- /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 + +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, occurrenceTime: Long) { + 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, + occurrenceTime, + 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..da83878c81 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 @@ -247,6 +254,7 @@ class TaxiRoutingFragment : BaseFragment(), ICommonNaviChangedCallback { } private fun showFeedbackDialog(grayId: Long) { + val occurrenceTime = System.currentTimeMillis() val builder: TaxiRoutingFeedbackDialog.Builder = TaxiRoutingFeedbackDialog.Builder() builder.cancelStr( MainMoGoApplication.getApp() @@ -261,7 +269,8 @@ class TaxiRoutingFragment : BaseFragment(), ICommonNaviChangedCallback { mViewModel.sendUiIntent( TaxiRoutingUiIntent.SubmitEndTask( grayId, - EndGrayTaskFeedbackType.USABLE_YES + EndGrayTaskFeedbackType.USABLE_YES, + occurrenceTime ) ) } @@ -270,7 +279,8 @@ class TaxiRoutingFragment : BaseFragment(), ICommonNaviChangedCallback { mViewModel.sendUiIntent( TaxiRoutingUiIntent.SubmitEndTask( grayId, - EndGrayTaskFeedbackType.USABLE_NO + EndGrayTaskFeedbackType.USABLE_NO, + occurrenceTime ) ) } diff --git a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/routing/TaxiRoutingFragmentViewModel.kt b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/routing/TaxiRoutingFragmentViewModel.kt index 839d5a5bb6..b8436acf82 100644 --- a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/routing/TaxiRoutingFragmentViewModel.kt +++ b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/routing/TaxiRoutingFragmentViewModel.kt @@ -112,7 +112,7 @@ class TaxiRoutingFragmentViewModel : BaseViewModel { DebugView.printInfoMsg("[结束任务] 准备结束任务,grayId=${intent.grayId}, type=${intent.type.name}") - TaxiRoutingModel.endGrayTask(intent.grayId, intent.type) + TaxiRoutingModel.endGrayTask(intent.grayId, intent.type,intent.occurrenceTime) } } } diff --git a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/routing/TaxiRoutingModel.kt b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/routing/TaxiRoutingModel.kt index b4a02d84c4..2392b26090 100644 --- a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/routing/TaxiRoutingModel.kt +++ b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/routing/TaxiRoutingModel.kt @@ -374,9 +374,9 @@ object TaxiRoutingModel { ) } - fun endGrayTask(grayId: Long, type: EndGrayTaskFeedbackType) { + fun endGrayTask(grayId: Long, type: EndGrayTaskFeedbackType, occurrenceTime:Long,) { DebugView.printInfoMsg("[结束灰度任务] 准备发送请求,grayId=$grayId, type=${type.type}, typeName=${type.name}") - val submit = EndGrayContrailTaskReq(grayId, type.type) + val submit = EndGrayContrailTaskReq(grayId, type.type,occurrenceTime) TaxiRoutingServiceManager.endGrayTask( mContext, submit, diff --git a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/routing/TaxiRoutingUiIntent.kt b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/routing/TaxiRoutingUiIntent.kt index 6a39b3f763..801c4db4d1 100644 --- a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/routing/TaxiRoutingUiIntent.kt +++ b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/routing/TaxiRoutingUiIntent.kt @@ -29,6 +29,6 @@ sealed class TaxiRoutingUiIntent : IUiIntent { data class ShowFeedbackDialog(val grayId: Long) : TaxiRoutingUiIntent() //结束任务 - data class SubmitEndTask(val grayId: Long, val type: EndGrayTaskFeedbackType) : + data class SubmitEndTask(val grayId: Long, val type: EndGrayTaskFeedbackType,val occurrenceTime:Long) : TaxiRoutingUiIntent() } \ No newline at end of file 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 diff --git a/app/build.gradle b/app/build.gradle index a385002589..7b1b22d0de 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -289,6 +289,7 @@ static def getBuildTime() { Object readFileToJson(env) { try { + println "对比结果${env}----------" // 加载config.json 文件 File file = new File("${rootDir}/app/config/urlConfig.json") def jsonSlurper = new JsonSlurper() @@ -314,11 +315,12 @@ Object readFileToJson(env) { def variantName() { if(gradle.startParameter.taskNames.size()>0) { for (String taskName : gradle.startParameter.taskNames) { - + println "对比结果----------${taskName}" if (taskName.contains("Yantai")) { project.dependencies.add('implementation', project.project(':tts:tts-iflytek')) }else if (taskName.contains("Mogo")) { - if(taskName.contains("TaxiPassenger")) { + if(taskName.contains("Passenger")&&taskName.contains("T1T2")) { + println "Mogo环境T1T2车 引入小智----------${taskName}" project.dependencies.add('implementation', project.project(':tts:tts-zhi')) }else { project.dependencies.add('implementation', project.project(':tts:tts-pad')) @@ -326,7 +328,8 @@ def variantName() { }else if (taskName.contains("Dali")) { project.dependencies.add('implementation', project.project(':tts:tts-pad')) }else if (taskName.contains("Saas")) { - if(taskName.contains("TaxiunmannedPassenger")) { + if(taskName.contains("Passenger")&&taskName.contains("T1T2")) { + println "Saas环境T1T2车 引入小智----------${taskName}" project.dependencies.add('implementation', project.project(':tts:tts-zhi')) }else { project.dependencies.add('implementation', project.project(':tts:tts-pad')) diff --git a/core/function-impl/mogo-core-function-chat/src/main/java/com/mogo/eagle/core/function/chat/facade/voice/VoiceControlFacade.kt b/core/function-impl/mogo-core-function-chat/src/main/java/com/mogo/eagle/core/function/chat/facade/voice/VoiceControlFacade.kt index 1fb5dfd91f..3d05d2fa71 100644 --- a/core/function-impl/mogo-core-function-chat/src/main/java/com/mogo/eagle/core/function/chat/facade/voice/VoiceControlFacade.kt +++ b/core/function-impl/mogo-core-function-chat/src/main/java/com/mogo/eagle/core/function/chat/facade/voice/VoiceControlFacade.kt @@ -114,6 +114,17 @@ object VoiceControlFacade: IMoGoVoiceControlFacade, IMogoVoiceCmdCallBack, IMogo } } + override fun onStopTts(speakText: String?) { + super.onStopTts(speakText) + listeners + .filter { + it.get() != null + } + .forEach { + it.get()?.onSpeakEnd() + } + } + override fun register() { if (hasRegister.get()) { return diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiProvider.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiProvider.kt index 3c01dda4d9..cda2a7f5bf 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiProvider.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiProvider.kt @@ -167,6 +167,11 @@ class MoGoHmiProvider : IMoGoHmiProvider { super.onSpeakError(speakText, errorMsg) isPlayingTts.set(false) } + + override fun onStopTts(speakText: String?) { + super.onStopTts(speakText) + isPlayingTts.set(false) + } }) isPlayingTts.set(true) } diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/adapter/DriverMsgBoxListAdapter.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/adapter/DriverMsgBoxListAdapter.kt index 4147dff501..3eca1f6edd 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/adapter/DriverMsgBoxListAdapter.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/adapter/DriverMsgBoxListAdapter.kt @@ -179,8 +179,8 @@ class DriverMsgBoxListAdapter(private val activity: Activity) : holder.tvFmActionOpen.text = "建议操作:暂无" holder.tvFmActionNormal.text = "建议操作:暂无" //Title - holder.tvFmTitleNormal.text = MsgFmData.getFmPolicyName(fmInfoMsg.policyCode) - holder.tvFmTitleOpen.text = MsgFmData.getFmPolicyName(fmInfoMsg.policyCode) + holder.tvFmTitleNormal.text = "暂无建议操作" + holder.tvFmTitleOpen.text = "暂无建议操作" }else{ val receiveFaultLevel = ArrayList() fmInfoMsg.fmInfoList!!.forEach { info -> @@ -200,8 +200,8 @@ class DriverMsgBoxListAdapter(private val activity: Activity) : receiveFaultLevel.sort() // receiveFaultLevel.reverse() //Title - holder.tvFmTitleNormal.text = MsgFmData.FaultAction.getFaultAction(receiveFaultLevel[0]) - holder.tvFmTitleOpen.text = MsgFmData.FaultAction.getFaultAction(receiveFaultLevel[0]) + holder.tvFmTitleNormal.text = MsgFmData.FaultAction.getFaultTitle(receiveFaultLevel[0]) + holder.tvFmTitleOpen.text = MsgFmData.FaultAction.getFaultTitle(receiveFaultLevel[0]) //不同级别的Icon显示 when(receiveFaultLevel[0]){ 0->{ diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/StatusBarView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/StatusBarView.kt index 64583ba3da..f0cef47ebd 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/StatusBarView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/StatusBarView.kt @@ -21,7 +21,9 @@ import com.mogo.eagle.core.utilcode.kotlin.scope import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils import com.mogo.eagle.core.utilcode.util.BarUtils import com.mogo.eagle.core.utilcode.util.ThreadUtils +import com.mogo.eagle.core.utilcode.util.UiThreadHandler import kotlinx.android.synthetic.main.view_status_bar.view.* +import kotlinx.coroutines.Runnable import kotlinx.coroutines.delay import kotlinx.coroutines.launch import java.util.concurrent.CopyOnWriteArrayList @@ -62,6 +64,7 @@ class StatusBarView @JvmOverloads constructor( if (AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)){ updateStatusBarLeftView(true, FUNC_MODE_DEMO, DemoModeView(this.context)) updateStatusBarLeftView(true, FUNC_MODE_RAIN, RainModeView(this.context)) + routeDownloadStatusRoot?.visibility = View.GONE CallerDevaToolsManager.registerRouteDownloadListener(TAG) { state -> when(state) { 0 -> { @@ -76,10 +79,7 @@ class StatusBarView @JvmOverloads constructor( routeDownloadStatusRoot?.visibility = View.VISIBLE routeDownloadStatus?.background = ContextCompat.getDrawable(context, R.drawable.bg_autopilot_route_download_success) routeDownloadFailMark?.visibility = View.GONE - scope.launch { - delay(3000) - routeDownloadStatusRoot?.visibility = View.GONE - } + UiThreadHandler.postDelayed(Runnable { routeDownloadStatusRoot?.visibility = View.GONE }, 3000) } 3 -> { routeDownloadStatusRoot?.visibility = View.VISIBLE diff --git a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/config/HmiBuildConfig.kt b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/config/HmiBuildConfig.kt index 2979cfd2c3..e43e6b0546 100644 --- a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/config/HmiBuildConfig.kt +++ b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/config/HmiBuildConfig.kt @@ -13,18 +13,21 @@ object HmiBuildConfig { * 是否显示 限速UI */ @JvmField + @Volatile var isShowLimitingVelocityView = false /** * 是否显示 红绿等 */ @JvmField + @Volatile var isShowTrafficLightView = false /** * 是否显示 车端融合红绿等 */ @JvmField + @Volatile var isShowCarSourceTrafficLightView = false /** diff --git a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/msgbox/MsgFmData.kt b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/msgbox/MsgFmData.kt index 52d3682e4b..2b168ef74a 100644 --- a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/msgbox/MsgFmData.kt +++ b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/msgbox/MsgFmData.kt @@ -15,13 +15,13 @@ class MsgFmData{ val faultLevel: Int//故障处理级别 ){ //请求平行驾驶接管 - FM_ACT_NEED_PARALLEL_DERVING_TAKEOVER("恢复策略","请求平行驾驶接管","FM_ACT_NEED_PARALLEL_DERVING_TAKEOVER","如planing出站时,规划失败",3), + FM_ACT_NEED_PARALLEL_DERVING_TAKEOVER("恢复策略","请求平行驾驶,请注意随时接管","FM_ACT_NEED_PARALLEL_DERVING_TAKEOVER","如planing出站时,规划失败",3), //请求人工驾驶接管 FM_ACT_NEED_MANNUAL_DERVING("恢复策略","请求人工驾驶接管","FM_ACT_NEED_MANNUAL_DERVING","如planing规划失败,且存在弱网判断",0), //系统重启 - FM_ACT_NEED_RESTART_SYSTEM("恢复策略","系统重启","FM_ACT_NEED_RESTART_SYSTEM","如检测到出现多个节点奔溃",2), + FM_ACT_NEED_RESTART_SYSTEM("恢复策略","请进行系统软重启","FM_ACT_NEED_RESTART_SYSTEM","如检测到出现多个节点奔溃",2), //整车下电重启 - FM_ACT_MUST_VEHICLE_POWER_RESET("恢复策略","整车下电重启","FM_ACT_MUST_VEHICLE_POWER_RESET","如底盘无数据,需要下电重启",1), + FM_ACT_MUST_VEHICLE_POWER_RESET("恢复策略","请进行整车下电重启","FM_ACT_MUST_VEHICLE_POWER_RESET","如底盘无数据,需要下电重启",1), //请联系硬件工程师 FM_ACT_CONTACT_HARDWARE_ENGINEER("人工处理","请联系硬件工程师","FM_ACT_CONTACT_HARDWARE_ENGINEER","硬件接线,域控启动等故障",4), //请联系运维工程师 @@ -48,7 +48,7 @@ class MsgFmData{ FM_ACT_CONTACT_OPERATIONS_ENGINEER.faultActionCode ->FM_ACT_CONTACT_OPERATIONS_ENGINEER.faultLevel //请联系软件工程师 FM_ACT_CONTACT_SOFTWARE_ENGINEER.faultActionCode -> FM_ACT_CONTACT_SOFTWARE_ENGINEER.faultLevel - else -> 0 + else -> 5 } } @@ -69,7 +69,27 @@ class MsgFmData{ FM_ACT_CONTACT_OPERATIONS_ENGINEER.faultLevel ->FM_ACT_CONTACT_OPERATIONS_ENGINEER.faultAction //请联系软件工程师 FM_ACT_CONTACT_SOFTWARE_ENGINEER.faultLevel -> FM_ACT_CONTACT_SOFTWARE_ENGINEER.faultAction - else -> "" + else -> "暂无建议操作,请视实际情况注意接管" + } + } + + fun getFaultTitle(faultActionLevel: Int): String{ + return when(faultActionLevel){ + //请求平行驾驶接管 + FM_ACT_NEED_PARALLEL_DERVING_TAKEOVER.faultLevel -> FM_ACT_NEED_PARALLEL_DERVING_TAKEOVER.faultAction + //请求人工驾驶接管 + FM_ACT_NEED_MANNUAL_DERVING.faultLevel -> FM_ACT_NEED_MANNUAL_DERVING.faultAction + //系统重启 + FM_ACT_NEED_RESTART_SYSTEM.faultLevel -> FM_ACT_NEED_RESTART_SYSTEM.faultAction + //整车下电重启 + FM_ACT_MUST_VEHICLE_POWER_RESET.faultLevel -> FM_ACT_MUST_VEHICLE_POWER_RESET.faultAction + //请联系硬件工程师 + FM_ACT_CONTACT_HARDWARE_ENGINEER.faultLevel -> FM_ACT_CONTACT_HARDWARE_ENGINEER.faultAction + //请联系运维工程师 + FM_ACT_CONTACT_OPERATIONS_ENGINEER.faultLevel ->FM_ACT_CONTACT_OPERATIONS_ENGINEER.faultAction + //请联系软件工程师 + FM_ACT_CONTACT_SOFTWARE_ENGINEER.faultLevel -> FM_ACT_CONTACT_SOFTWARE_ENGINEER.faultAction + else -> "暂无建议操作" } } diff --git a/gradle.properties b/gradle.properties index ed16a7246b..89c1c69385 100644 --- a/gradle.properties +++ b/gradle.properties @@ -90,8 +90,8 @@ WEBSOCKET_VERSION=1.1.7 applicationId=com.mogo.launcer applicationName=IntelligentPilot # RoboBus司机端:2.5.1;RoboTaxi司机端:2.5.1;RoboTaxi乘客端:1.0.0 -versionCode=6002004 -versionName=6.2.4 +versionCode=6004002 +versionName=6.4.2 ################# 新架构模块Maven版本管理 ################# MOGO_CORE_FUNCTION_HMI_VERSION=0.0.58.10 @@ -149,7 +149,7 @@ MATRIX_VERSION=2.0.8 # 公交模式司机端版本号 -DRIVER_VERSION=6.4.0 +DRIVER_VERSION=6.4.2 # 公交模式乘客端端版本号 -PASSENGER_VERSION=5.4.0 +PASSENGER_VERSION=5.4.2 diff --git a/libraries/mogo-map/src/main/java/com/mogo/map/utils/ObjectUtils.java b/libraries/mogo-map/src/main/java/com/mogo/map/utils/ObjectUtils.java index 9a45c2732f..6d9b5a7013 100644 --- a/libraries/mogo-map/src/main/java/com/mogo/map/utils/ObjectUtils.java +++ b/libraries/mogo-map/src/main/java/com/mogo/map/utils/ObjectUtils.java @@ -121,10 +121,11 @@ public class ObjectUtils { if(trafficData.getColor().contains("-drawColor")){ // markerOptions.setColorType(3); markerOptions.setColor(trafficData.getColor().split("-")[0]); - } - if(trafficData.getColor().contains("-resetColor")){ + } else if(trafficData.getColor().contains("-resetColor")){ // markerOptions.setColorType(4); markerOptions.setColor(trafficData.getColor().split("-")[0]); + } else{ + markerOptions.setColor(trafficData.getColor()); } }else{ // markerOptions.setColorType(0); diff --git a/tts/tts-base/src/main/java/com/mogo/tts/base/IMogoTTSCallback.java b/tts/tts-base/src/main/java/com/mogo/tts/base/IMogoTTSCallback.java index 7f6d964542..d42ba17133 100644 --- a/tts/tts-base/src/main/java/com/mogo/tts/base/IMogoTTSCallback.java +++ b/tts/tts-base/src/main/java/com/mogo/tts/base/IMogoTTSCallback.java @@ -74,6 +74,9 @@ interface IMogoTTSCallback { default void onSpeakEnd( String speakText ) { } + default void onStopTts( String speakText ) { + } + default void onSpeakError( String speakText, String errorMsg) { } diff --git a/tts/tts-iflytek/src/main/java/com/mogo/tts/iflytek/IFlyTekTts.kt b/tts/tts-iflytek/src/main/java/com/mogo/tts/iflytek/IFlyTekTts.kt index 1897430cd1..43d7b0e2f7 100644 --- a/tts/tts-iflytek/src/main/java/com/mogo/tts/iflytek/IFlyTekTts.kt +++ b/tts/tts-iflytek/src/main/java/com/mogo/tts/iflytek/IFlyTekTts.kt @@ -156,7 +156,7 @@ class IFlyTekTts : IMogoTTS, InitListener { curTtsEntity?.let { val string = it.toString() if (speakVoiceMap.containsKey(string)) { - speakVoiceMap.remove(string) + speakVoiceMap.remove(string)?.onStopTts(string) } curTtsEntity = null } diff --git a/tts/tts-pad/src/main/java/com/mogo/tts/pad/PadTTS.java b/tts/tts-pad/src/main/java/com/mogo/tts/pad/PadTTS.java index 79987d66f3..b8cb7fad71 100644 --- a/tts/tts-pad/src/main/java/com/mogo/tts/pad/PadTTS.java +++ b/tts/tts-pad/src/main/java/com/mogo/tts/pad/PadTTS.java @@ -357,7 +357,10 @@ public class PadTTS implements IMogoTTS, VoiceClient.VoiceCmdCallBack { public void stopSpeakTts(String text) { if (mEngine != null && mHasAuth) { - mSpeakVoiceMap.remove(text); + IMogoTTSCallback callBack = mSpeakVoiceMap.remove(text); + if (callBack != null) { + callBack.onStopTts(curTtsContent); + } curTtsContent = ""; curTtsLevel = -1; mEngine.stop(); @@ -366,7 +369,10 @@ public class PadTTS implements IMogoTTS, VoiceClient.VoiceCmdCallBack { public void stopTts() { if (mEngine != null && mHasAuth) { - mSpeakVoiceMap.remove(curTtsContent); + IMogoTTSCallback callBack = mSpeakVoiceMap.remove(curTtsContent); + if (callBack != null) { + callBack.onStopTts(curTtsContent); + } // tts过程中调用stop不会有回调事件 curTtsContent = ""; curTtsLevel = -1;