diff --git a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/manager/orderlogmanager/OchChainLogManager.kt b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/manager/orderlogmanager/OchChainLogManager.kt index 659b546924..a4417e2b64 100644 --- a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/manager/orderlogmanager/OchChainLogManager.kt +++ b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/manager/orderlogmanager/OchChainLogManager.kt @@ -27,18 +27,20 @@ object OchChainLogManager { nodeAliasCode = ChainConstant.CHAIN_CODE_OCH_COMMON_DISTANCE, paramIndexes = [0,1] ) - fun writeChainLog(Info: String, changeInfo: String) { + fun writeChainLog(Info: String, changeInfo: String,upload:Boolean = true) { d(SceneConstant.M_OCHCOMMON + TAG, Info) d(SceneConstant.M_OCHCOMMON + TAG, changeInfo) - val plateNum = AppConfigInfo.plateNumber - val params = HashMap() - params["sn"] = MoGoAiCloudClientConfig.getInstance().sn - params["env"] = DebugConfig.getNetMode() - params["plate_number"] = if (TextUtils.isEmpty(plateNum)) "" else plateNum - params["time"] = DateTimeUtils.getTimeText(DateTimeUtils.yyyy_MM_dd_HH_mm_ss) - params["info"] = Info - params["changeInfo"] = changeInfo - MogoAnalyticUtils.track(EVENT_KEY_INFE_WITH_CHANGE, params) + if(upload) { + val plateNum = AppConfigInfo.plateNumber + val params = HashMap() + params["sn"] = MoGoAiCloudClientConfig.getInstance().sn + params["env"] = DebugConfig.getNetMode() + params["plate_number"] = if (TextUtils.isEmpty(plateNum)) "" else plateNum + params["time"] = DateTimeUtils.getTimeText(DateTimeUtils.yyyy_MM_dd_HH_mm_ss) + params["info"] = Info + params["changeInfo"] = changeInfo + MogoAnalyticUtils.track(EVENT_KEY_INFE_WITH_CHANGE, params) + } } } \ No newline at end of file diff --git a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/bean/TaxiPassengerOrdersInServiceQueryRespBean.java b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/bean/TaxiPassengerOrdersInServiceQueryRespBean.java index a0f9b9d8f1..8f8f890425 100644 --- a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/bean/TaxiPassengerOrdersInServiceQueryRespBean.java +++ b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/bean/TaxiPassengerOrdersInServiceQueryRespBean.java @@ -69,6 +69,20 @@ public class TaxiPassengerOrdersInServiceQueryRespBean extends BaseData { public int hashCode() { return Objects.hash(orderNo, orderStatus, bookingUserPhone, passengerSize, orderStartSite, orderEndSite, planningLines); } + + @Override + public String toString() { + return "OrderBean{" + + "orderNo='" + orderNo + '\'' + + ", 订单状态=" + orderStatus + + ", 用户手机号='" + bookingUserPhone + '\'' + + ", 乘客人数=" + passengerSize + + ", 站点-起点=" + orderStartSite + + ", 站点-终点=" + orderEndSite + + ", 预加载的line=" + planningLines + + ", 送驾的lineId=" + orderLine + + '}'; + } } } diff --git a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/model/AutopilotManager.kt b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/model/AutopilotManager.kt index f2b02d14b4..42a9fae2b4 100644 --- a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/model/AutopilotManager.kt +++ b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/model/AutopilotManager.kt @@ -12,6 +12,7 @@ import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant import com.mogo.eagle.core.utilcode.util.ToastUtils import com.mogo.och.common.module.biz.network.OchCommonServiceCallback import com.mogo.och.common.module.manager.autopilotmanager.OCHAdasAbilityManager +import com.mogo.och.common.module.manager.orderlogmanager.OchChainLogManager import com.mogo.och.common.module.voice.VoiceNotice import com.mogo.och.taxi.passenger.bean.TaxiPassengerBaseRespBean import com.mogo.och.taxi.passenger.constant.TaxiPassengerConst @@ -199,6 +200,7 @@ object AutopilotManager : IMoGoAutopilotStatusListener { private fun startAutoPilotServiceByPassenger() { if (TaxiPassengerModel.currentOCHOrder == null) return //val currentLocation = CallerChassisLocationGCJ02ListenerManager.getChassisLocationGCJ02() + OchChainLogManager.writeChainLog(TaxiPassengerModel.currentOCHOrder.toString(),"action:启动自驾状态流转") TaxiPassengerServiceManager.startAutoPilotServiceByPassenger( TaxiPassengerModel.currentOCHOrder!!.orderNo, TaxiPassengerModel.currentLineId, diff --git a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/model/TaxiPassengerModel.kt b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/model/TaxiPassengerModel.kt index 4ee5711666..7bd7c8b84a 100644 --- a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/model/TaxiPassengerModel.kt +++ b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/model/TaxiPassengerModel.kt @@ -26,6 +26,7 @@ import com.mogo.och.common.module.manager.distancemamager.IDistanceListener import com.mogo.och.common.module.manager.distancemamager.TrajectoryAndDistanceManager import com.mogo.och.common.module.manager.loopmanager.BizLoopManager import com.mogo.och.common.module.manager.loopmanager.LoopInfo +import com.mogo.och.common.module.manager.orderlogmanager.OchChainLogManager import com.mogo.och.common.module.utils.RxUtils import com.mogo.och.common.module.voice.VoiceNotice import com.mogo.och.taxi.passenger.bean.TaxiPassengerBaseRespBean @@ -365,6 +366,7 @@ object TaxiPassengerModel { fun checkPhoneAndUpdateStatus(phoneTail: String) { if (currentOCHOrder == null) return + OchChainLogManager.writeChainLog(currentOCHOrder.toString(),"action:手机号开始验证") TaxiPassengerServiceManager.checkPhoneAndUpdateOrderStatus( currentOCHOrder!!.orderNo, phoneTail, @@ -396,6 +398,7 @@ object TaxiPassengerModel { orderStatusChangeInner() if (mOrderStatusCallbackMap.isNotEmpty()) { d(M_TAXI_P + TAG, "最新的状态-->${curOrderStatus}") + OchChainLogManager.writeChainLog(currentOCHOrder.toString(),"最新的状态-->${curOrderStatus}") for (callback in mOrderStatusCallbackMap.values) { callback.onCurrentOrderStatusChanged(currentOCHOrder) } diff --git a/config.gradle b/config.gradle index d83c5927da..2711344e63 100644 --- a/config.gradle +++ b/config.gradle @@ -214,7 +214,7 @@ ext { weak_network : "com.mogo.weak:network:1.0.1", btrace : "com.bytedance.btrace:rhea-core:2.0.0", - mofang_runtime : "com.mogo.eagle.core.mofang:runtime:2.0.6", + mofang_runtime : "com.mogo.eagle.core.mofang:runtime:2.0.7", log_runtime : "com.mogo.eagle.core.log.record:runtime:1.0.15", // 安全证书 diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/ParallelDriveView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/ParallelDriveView.kt index 79b85ef6d7..f8168e2b70 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/ParallelDriveView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/ParallelDriveView.kt @@ -60,9 +60,11 @@ class ParallelDriveView @JvmOverloads constructor( private lateinit var rootLayout: ConstraintLayout private lateinit var statusIcon: ImageView + private lateinit var statusIconOuter: ImageView private lateinit var statusTitle: TextView private var listener: ClickEventListener? = null private var animator: ObjectAnimator? = null + private var syncAnimator: ObjectAnimator? = null init { LayoutInflater.from(context).inflate(R.layout.view_parallel_drive, this, true) @@ -79,6 +81,7 @@ class ParallelDriveView @JvmOverloads constructor( private fun initView() { rootLayout = findViewById(R.id.parDriveLayout) statusIcon = findViewById(R.id.ivStatusIcon) + statusIconOuter = findViewById(R.id.ivStatusProgress) statusTitle = findViewById(R.id.tvAutopilotContent) rootLayout.setOnClickListener { when (state) { @@ -211,6 +214,8 @@ class ParallelDriveView @JvmOverloads constructor( when (state) { 0 -> { stopRotateAnimation() + stopSyncAnimation() + statusIconOuter.visibility = GONE rootLayout.isEnabled = true rootLayout.alpha = 1f statusIcon.background = @@ -222,7 +227,9 @@ class ParallelDriveView @JvmOverloads constructor( } APP_REQUESTING -> { + stopSyncAnimation() rootLayout.isEnabled = true + statusIconOuter.visibility = GONE rootLayout.alpha = 1f statusIcon.background = resources.getDrawable(R.drawable.icon_para_requesting, null) @@ -234,7 +241,9 @@ class ParallelDriveView @JvmOverloads constructor( } AD_REQUESTING -> { + stopSyncAnimation() rootLayout.isEnabled = false + statusIconOuter.visibility = GONE rootLayout.alpha = 1f statusIcon.background = resources.getDrawable(R.drawable.icon_para_requesting, null) @@ -250,15 +259,19 @@ class ParallelDriveView @JvmOverloads constructor( rootLayout.isEnabled = false rootLayout.alpha = 1f statusIcon.background = - resources.getDrawable(R.drawable.icon_para_syn, null) + resources.getDrawable(R.drawable.icon_para_syn_inner, null) statusTitle.setTextColor(Color.parseColor("#FFFFFF")) statusIcon.alpha = 1f + statusIconOuter.visibility = VISIBLE + startSyncAnimation() statusTitle.text = context.getString(R.string.parallel_drive_synchronizing) rootLayout.background = resources.getDrawable(R.drawable.bg_auto_pilot, null) } PARALLEL_DRIVING -> { stopRotateAnimation() + stopSyncAnimation() + statusIconOuter.visibility = GONE rootLayout.isEnabled = false rootLayout.alpha = 1f statusIcon.background = @@ -272,6 +285,8 @@ class ParallelDriveView @JvmOverloads constructor( FAILURE -> { stopRotateAnimation() + stopSyncAnimation() + statusIconOuter.visibility = GONE rootLayout.isEnabled = false rootLayout.alpha = 1f rootLayout.postDelayed({ @@ -287,6 +302,8 @@ class ParallelDriveView @JvmOverloads constructor( ONE_EXCEPTION -> { stopRotateAnimation() + stopSyncAnimation() + statusIconOuter.visibility = GONE rootLayout.isEnabled = false rootLayout.alpha = 1f rootLayout.postDelayed({ @@ -302,6 +319,8 @@ class ParallelDriveView @JvmOverloads constructor( TWO_EXCEPTION -> { stopRotateAnimation() + stopSyncAnimation() + statusIconOuter.visibility = GONE rootLayout.isEnabled = false rootLayout.alpha = 1f rootLayout.postDelayed({ @@ -317,7 +336,9 @@ class ParallelDriveView @JvmOverloads constructor( UNAVAILABLE -> { stopRotateAnimation() - rootLayout.isEnabled = false + stopSyncAnimation() + statusIconOuter.visibility = GONE + rootLayout.isEnabled = true rootLayout.alpha = 0.4f statusIcon.background = resources.getDrawable(R.drawable.icon_autopilot_status, null) @@ -391,6 +412,28 @@ class ParallelDriveView @JvmOverloads constructor( it.cancel() } } + statusIcon.rotation = 0f + } + + @SuppressLint("Recycle") + private fun startSyncAnimation() { + if (syncAnimator == null) { + syncAnimator = ObjectAnimator.ofFloat(statusIconOuter, "rotation", 0f, 360f).apply { + duration = 1500 + repeatMode = ValueAnimator.RESTART + repeatCount = ValueAnimator.INFINITE + interpolator = LinearInterpolator() + } + } + syncAnimator?.start() + } + + private fun stopSyncAnimation() { + syncAnimator?.let { + if (it.isRunning) { + it.cancel() + } + } } override fun onDetachedFromWindow() { diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_parallel_drive.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_parallel_drive.xml index e6e9048bba..ac8a28b33e 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_parallel_drive.xml +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_parallel_drive.xml @@ -16,6 +16,18 @@ app:layout_constraintTop_toTopOf="parent" android:layout_marginStart="72dp" android:layout_marginTop="56dp" + tools:background="@drawable/icon_para_syn_inner" + /> + +