From 5cd9cfd197d0e43d9846cb4ed6f22395dd21f254 Mon Sep 17 00:00:00 2001 From: aibingbing Date: Mon, 21 Aug 2023 18:19:33 +0800 Subject: [PATCH] =?UTF-8?q?[Taxi=E6=97=A0=E4=BA=BA=E5=8C=96]=20refactor:?= =?UTF-8?q?=20=E6=8A=BD=E5=8F=96=20base=20/=20debug=20view;?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/mogo/och/taxi/TaxiUnmannedProvider.kt | 2 +- .../callback/ITaxiADASStatusCallback.java | 2 +- .../java/com/mogo/och/taxi/model/TaxiModel.kt | 4 +- .../och/taxi/model/TaxiUnmannedViewModel.kt | 2 +- .../mogo/och/taxi/ui/TaxiBeingTaskFragment.kt | 13 +- .../och/taxi/ui/TaxiReserveOrderFragment.kt | 3 +- .../och/taxi/ui/TaxiServerOrdersFragment.kt | 2 +- .../taxi/{ => ui}/base/BaseTaxiTabFragment.kt | 170 +++++++-------- .../och/taxi/ui/{ => base}/TaxiFragment.kt | 198 +++++++----------- .../{presenter => ui/base}/TaxiPresenter.java | 54 ++--- .../mogo/och/taxi/ui/debug/OrderDebugView.kt | 76 +++++++ .../main/res/layout/taxi_base_fragment.xml | 1 - .../src/main/res/layout/taxi_debug_order.xml | 128 +++++++++++ .../src/main/res/layout/taxi_panel.xml | 128 +---------- 14 files changed, 398 insertions(+), 385 deletions(-) rename OCH/taxi/mogo-och-taxi-unmanned/src/main/java/com/mogo/och/taxi/{ => ui}/base/BaseTaxiTabFragment.kt (94%) rename OCH/taxi/mogo-och-taxi-unmanned/src/main/java/com/mogo/och/taxi/ui/{ => base}/TaxiFragment.kt (61%) rename OCH/taxi/mogo-och-taxi-unmanned/src/main/java/com/mogo/och/taxi/{presenter => ui/base}/TaxiPresenter.java (82%) create mode 100644 OCH/taxi/mogo-och-taxi-unmanned/src/main/java/com/mogo/och/taxi/ui/debug/OrderDebugView.kt create mode 100644 OCH/taxi/mogo-och-taxi-unmanned/src/main/res/layout/taxi_debug_order.xml diff --git a/OCH/taxi/mogo-och-taxi-unmanned/src/main/java/com/mogo/och/taxi/TaxiUnmannedProvider.kt b/OCH/taxi/mogo-och-taxi-unmanned/src/main/java/com/mogo/och/taxi/TaxiUnmannedProvider.kt index c3127aae63..7679529957 100644 --- a/OCH/taxi/mogo-och-taxi-unmanned/src/main/java/com/mogo/och/taxi/TaxiUnmannedProvider.kt +++ b/OCH/taxi/mogo-och-taxi-unmanned/src/main/java/com/mogo/och/taxi/TaxiUnmannedProvider.kt @@ -8,7 +8,7 @@ import com.mogo.eagle.core.function.call.setting.CallerMoGoUiSettingManager.step import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant import com.mogo.och.taxi.constant.TaxiUnmannedConst -import com.mogo.och.taxi.ui.TaxiFragment +import com.mogo.och.taxi.ui.base.TaxiFragment /** * @author congtaowang diff --git a/OCH/taxi/mogo-och-taxi-unmanned/src/main/java/com/mogo/och/taxi/callback/ITaxiADASStatusCallback.java b/OCH/taxi/mogo-och-taxi-unmanned/src/main/java/com/mogo/och/taxi/callback/ITaxiADASStatusCallback.java index 278829580f..7e8a6673f3 100644 --- a/OCH/taxi/mogo-och-taxi-unmanned/src/main/java/com/mogo/och/taxi/callback/ITaxiADASStatusCallback.java +++ b/OCH/taxi/mogo-och-taxi-unmanned/src/main/java/com/mogo/och/taxi/callback/ITaxiADASStatusCallback.java @@ -19,7 +19,7 @@ public interface ITaxiADASStatusCallback { void onAutopilotRunning(); //人机共驾 - void onManMachineCoDriving(); + void onParallelDrivingStatus(); //自驾返回失败 void onStartAdasFailure(); diff --git a/OCH/taxi/mogo-och-taxi-unmanned/src/main/java/com/mogo/och/taxi/model/TaxiModel.kt b/OCH/taxi/mogo-och-taxi-unmanned/src/main/java/com/mogo/och/taxi/model/TaxiModel.kt index 677bf682bb..acdb82c09f 100644 --- a/OCH/taxi/mogo-och-taxi-unmanned/src/main/java/com/mogo/och/taxi/model/TaxiModel.kt +++ b/OCH/taxi/mogo-och-taxi-unmanned/src/main/java/com/mogo/och/taxi/model/TaxiModel.kt @@ -6,7 +6,6 @@ import android.net.ConnectivityManager import android.text.TextUtils import com.alibaba.android.arouter.launcher.ARouter import com.amap.api.maps.model.LatLng -import com.elegant.network.utils.GsonUtil import com.mogo.aicloud.services.socket.IMogoOnMessageListener import com.mogo.commons.module.intent.IMogoIntentListener import com.mogo.commons.module.intent.IntentManager @@ -32,6 +31,7 @@ import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationGCJ02Lis import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationGCJ02ListenerManager.addListener import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationGCJ02ListenerManager.getChassisLocationGCJ02 import com.mogo.eagle.core.function.call.autopilot.CallerPlanningRottingListenerManager +import com.mogo.eagle.core.network.utils.GsonUtil import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.e import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.i @@ -833,7 +833,7 @@ object TaxiModel { return } if (mADASStatusCallback != null) { - mADASStatusCallback!!.onManMachineCoDriving() + mADASStatusCallback!!.onParallelDrivingStatus() } } } diff --git a/OCH/taxi/mogo-och-taxi-unmanned/src/main/java/com/mogo/och/taxi/model/TaxiUnmannedViewModel.kt b/OCH/taxi/mogo-och-taxi-unmanned/src/main/java/com/mogo/och/taxi/model/TaxiUnmannedViewModel.kt index 7904ca67ee..2e1621aaf4 100644 --- a/OCH/taxi/mogo-och-taxi-unmanned/src/main/java/com/mogo/och/taxi/model/TaxiUnmannedViewModel.kt +++ b/OCH/taxi/mogo-och-taxi-unmanned/src/main/java/com/mogo/och/taxi/model/TaxiUnmannedViewModel.kt @@ -2,10 +2,10 @@ package com.mogo.och.taxi.model import android.annotation.SuppressLint import android.content.Context -import com.elegant.network.utils.GsonUtil 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.network.utils.GsonUtil import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.i import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant diff --git a/OCH/taxi/mogo-och-taxi-unmanned/src/main/java/com/mogo/och/taxi/ui/TaxiBeingTaskFragment.kt b/OCH/taxi/mogo-och-taxi-unmanned/src/main/java/com/mogo/och/taxi/ui/TaxiBeingTaskFragment.kt index d8a462e25a..16cf6736db 100644 --- a/OCH/taxi/mogo-och-taxi-unmanned/src/main/java/com/mogo/och/taxi/ui/TaxiBeingTaskFragment.kt +++ b/OCH/taxi/mogo-och-taxi-unmanned/src/main/java/com/mogo/och/taxi/ui/TaxiBeingTaskFragment.kt @@ -9,10 +9,10 @@ import android.os.Bundle import android.text.Html import android.view.View import androidx.annotation.RequiresApi +import androidx.core.text.HtmlCompat import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.lifecycleScope import com.amap.api.navi.model.NaviLatLng -import com.elegant.utils.DateTimeUtils import com.mogo.commons.mvp.BaseFragment import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager.getState @@ -21,6 +21,7 @@ import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager.getMapUIC import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager.getOverlayManager 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.DateTimeUtils import com.mogo.eagle.core.utilcode.util.ToastUtils import com.mogo.eagle.core.utilcode.util.UiThreadHandler import com.mogo.map.overlay.core.Level @@ -45,6 +46,7 @@ import com.mogo.och.taxi.constant.TaxiUnmannedConst.Companion.TAXI_START_MAP_MAK import com.mogo.och.taxi.constant.TaxiUnmannedConst.Companion.TYPE_MARKER_TAXI_ORDER import com.mogo.och.taxi.model.TaxiModel import com.mogo.och.taxi.model.TaxiUnmannedViewModel +import com.mogo.och.taxi.ui.base.TaxiFragment import com.mogo.och.taxi.ui.unmanned.TaskAndOrderUiState import com.mogo.och.taxi.ui.unmanned.UnmannedIntent import kotlinx.android.synthetic.main.taxi_no_data_common_view.noOrderDataTv @@ -520,7 +522,7 @@ class TaxiBeingTaskFragment : BaseFragment(), naviToEnd.visibility = View.GONE AmapNaviToDestinationModel.getInstance(context).destroyAmaNavi() mTaxiFragment?.showAmapNaviToStationFragment(false) - mTaxiFragment?.showRottingToStationFragment(false) + mTaxiFragment?.showRoutingToStationFragment(false) } private fun startNaviToStation(isVoicePlay: Boolean, stationLat: Double, stationLng: Double) { @@ -543,7 +545,7 @@ class TaxiBeingTaskFragment : BaseFragment(), naviToEnd.visibility = View.GONE AmapNaviToDestinationModel.getInstance(context).destroyAmaNavi() mTaxiFragment?.showAmapNaviToStationFragment(false) - mTaxiFragment?.showRottingToStationFragment(false) + mTaxiFragment?.showRoutingToStationFragment(false) } /** @@ -551,7 +553,6 @@ class TaxiBeingTaskFragment : BaseFragment(), * @param meters m * @param timeInSecond 秒 */ - @RequiresApi(Build.VERSION_CODES.N) fun updateDistanceAndTime(meters: Long, timeInSecond: Long) { // CallerLogger.INSTANCE.d(M_TAXI + TAG,"meters = "+meters+"timeInSecond ="+timeInSecond); if (mCurrentTaskAndOrder!!.endSite == null && mCurrentUntruthTask == null) return @@ -572,7 +573,7 @@ class TaxiBeingTaskFragment : BaseFragment(), ("里程 " + "" + dis + "" + " " + disUnit + "" + ",剩余 " + "" + min + "" + " 分钟") - taskOtherInfo.text = Html.fromHtml(strHtml2,Html.FROM_HTML_MODE_LEGACY) + taskOtherInfo.text = HtmlCompat.fromHtml(strHtml2, HtmlCompat.FROM_HTML_MODE_LEGACY) } private fun speekVoice200mTipsOnce() { @@ -731,7 +732,7 @@ class TaxiBeingTaskFragment : BaseFragment(), */ private fun initOrderTestBar() { taskStatus.setOnLongClickListener { - mTaxiFragment?.clickTestBar() + mTaxiFragment?.clickOrderDebugView() false } } diff --git a/OCH/taxi/mogo-och-taxi-unmanned/src/main/java/com/mogo/och/taxi/ui/TaxiReserveOrderFragment.kt b/OCH/taxi/mogo-och-taxi-unmanned/src/main/java/com/mogo/och/taxi/ui/TaxiReserveOrderFragment.kt index c24b62bbe8..1f5b49a3b2 100644 --- a/OCH/taxi/mogo-och-taxi-unmanned/src/main/java/com/mogo/och/taxi/ui/TaxiReserveOrderFragment.kt +++ b/OCH/taxi/mogo-och-taxi-unmanned/src/main/java/com/mogo/och/taxi/ui/TaxiReserveOrderFragment.kt @@ -2,7 +2,6 @@ package com.mogo.och.taxi.ui import android.annotation.SuppressLint import android.app.Activity -import android.content.Context import android.graphics.Color import android.graphics.drawable.GradientDrawable import android.os.Build @@ -15,6 +14,7 @@ import com.mogo.och.taxi.R import com.mogo.och.taxi.bean.OrderDetail import com.mogo.och.taxi.bean.QueryCurrentTaskRespBean import com.mogo.och.taxi.constant.TaskTypeEnum +import com.mogo.och.taxi.ui.base.TaxiFragment import kotlinx.android.synthetic.main.unmanned_being_order.endStationName import kotlinx.android.synthetic.main.unmanned_being_order.mBeingOrderLayout import kotlinx.android.synthetic.main.unmanned_being_order.naviToEnd @@ -24,7 +24,6 @@ import kotlinx.android.synthetic.main.unmanned_being_order.orderPhoneAndNum import kotlinx.android.synthetic.main.unmanned_being_order.startStationName import kotlinx.android.synthetic.main.unmanned_being_order.taskClickBtn import kotlinx.android.synthetic.main.unmanned_being_order.taskOtherInfo -import kotlinx.android.synthetic.main.unmanned_being_order.taskStatus import kotlinx.android.synthetic.main.unmanned_being_order.taskTypeTv /** diff --git a/OCH/taxi/mogo-och-taxi-unmanned/src/main/java/com/mogo/och/taxi/ui/TaxiServerOrdersFragment.kt b/OCH/taxi/mogo-och-taxi-unmanned/src/main/java/com/mogo/och/taxi/ui/TaxiServerOrdersFragment.kt index 7e79ccdb8c..6d84cce10c 100644 --- a/OCH/taxi/mogo-och-taxi-unmanned/src/main/java/com/mogo/och/taxi/ui/TaxiServerOrdersFragment.kt +++ b/OCH/taxi/mogo-och-taxi-unmanned/src/main/java/com/mogo/och/taxi/ui/TaxiServerOrdersFragment.kt @@ -19,6 +19,7 @@ import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant import com.mogo.och.taxi.R import com.mogo.och.taxi.bean.QueryCurrentTaskRespBean +import com.mogo.och.taxi.ui.base.TaxiFragment import kotlinx.android.synthetic.main.taxi_server_orders_panel.module_och_taxi_tab import kotlinx.android.synthetic.main.taxi_server_orders_panel.module_och_taxi_view_pager import me.jessyan.autosize.utils.AutoSizeUtils @@ -158,7 +159,6 @@ class TaxiServerOrdersFragment : BaseFragment(){ beingTaskFragment!!.onNaviToEndAmap(isShow) } - @RequiresApi(Build.VERSION_CODES.N) fun onCurrentOrderDistToEndChanged(meters: Long, timeInSecond: Long) { if (null == beingTaskFragment) return beingTaskFragment!!.updateDistanceAndTime(meters, timeInSecond) diff --git a/OCH/taxi/mogo-och-taxi-unmanned/src/main/java/com/mogo/och/taxi/base/BaseTaxiTabFragment.kt b/OCH/taxi/mogo-och-taxi-unmanned/src/main/java/com/mogo/och/taxi/ui/base/BaseTaxiTabFragment.kt similarity index 94% rename from OCH/taxi/mogo-och-taxi-unmanned/src/main/java/com/mogo/och/taxi/base/BaseTaxiTabFragment.kt rename to OCH/taxi/mogo-och-taxi-unmanned/src/main/java/com/mogo/och/taxi/ui/base/BaseTaxiTabFragment.kt index 7803ac53f6..fb269eeb0b 100644 --- a/OCH/taxi/mogo-och-taxi-unmanned/src/main/java/com/mogo/och/taxi/base/BaseTaxiTabFragment.kt +++ b/OCH/taxi/mogo-och-taxi-unmanned/src/main/java/com/mogo/och/taxi/ui/base/BaseTaxiTabFragment.kt @@ -1,21 +1,14 @@ -package com.mogo.och.taxi.base +package com.mogo.och.taxi.ui.base import android.animation.ObjectAnimator import android.annotation.SuppressLint import android.os.Bundle -import android.os.CountDownTimer import android.os.Handler import android.os.Looper import android.os.SystemClock import android.view.LayoutInflater import android.view.View import android.view.animation.LinearInterpolator -import android.widget.FrameLayout -import android.widget.ImageView -import android.widget.LinearLayout -import android.widget.RelativeLayout -import android.widget.TextView -import androidx.constraintlayout.widget.Group import androidx.fragment.app.FragmentTransaction import com.mogo.commons.mvp.IView import com.mogo.commons.mvp.MvpFragment @@ -71,12 +64,19 @@ import kotlin.math.abs */ abstract class BaseTaxiTabFragment> : MvpFragment(), IMogoMapListener, IMoGoAutopilotRecordListener { + companion object { + const val TAG = "BaseTaxiTabFragment" + } - private val TAG = "BaseOchFragment" - + // 高德导航fragment private var ochAmapNaviFragment: TaxiAmapNaviFragment? = null + + // 高德地图轨迹展示fragment private var taxiRottingNaviFragment: TaxiRottingNaviFragment? = null + // 开发调试时展示信息德panel + private var debugPanelView: View? = null + private val mHandler = Handler(Looper.getMainLooper()) private val startAutopilotDrawableIds = arrayOf( @@ -139,7 +139,19 @@ abstract class BaseTaxiTabFragment> : MvpFragment> : MvpFragment> : MvpFragment> : MvpFragment> : MvpFragment> : MvpFragment> : MvpFragment> : MvpFragment> : MvpFragment> : MvpFragment> : MvpFragment> : MvpFragment> : MvpFragment> : MvpFragment> : MvpFragment(), ITaxiView { - private var serverOrdersFragmentWR: WeakReference? = null + + companion object { + const val TAG = "TaxiFragment" + fun newInstance(): TaxiFragment { + val args = Bundle() + val fragment = TaxiFragment() + fragment.arguments = args + return fragment + } + } + + private var servedOrdersFragment: WeakReference? = null private var personalDialogFragment: WeakReference? = null private var loginService: LoginService? = null + @Subscribe(threadMode = ThreadMode.MAIN) + fun changeOverview(eventLogout: EventLogout) { + if (eventLogout.messgae == EventLogout.LOGOUT_TYPE) { + d(SceneConstant.M_TAXI + TAG, "changeOverview Event消息去登出") + mPresenter.logout() + } + } + + @Subscribe(threadMode = ThreadMode.MAIN) + fun openOperationalInfoView(eventLogout: EventLogout) { +// V6.0.0 临时注释,后台目前没有提供相应接口和数据来展示 +// if (eventLogout.messgae == EventLogout.PERSONAL_TYPE) { +// 个人信息, 运营数据在无人化阶段暂时不展示 +// d(SceneConstant.M_TAXI + TAG, "openOperationalInfoView Event个人中心") +// openOperationalInfoView() +// } + } + + private fun openOperationalInfoView() { + personalDialogFragment = WeakReference(TaxiPersonalDialogFragment()) + activity?.supportFragmentManager?.let { + personalDialogFragment!!.get() + ?.show(it, "service_data") + } + } + + override fun getTagName(): String { + return "TaxiFragment" + } + override fun onActivityCreated(savedInstanceState: Bundle?) { super.onActivityCreated(savedInstanceState) loginService = @@ -83,24 +117,20 @@ class TaxiFragment : BaseTaxiTabFragment(), mPresenter.startNaviToEndStation(isShow) } - override fun getTagName(): String { - return "TaxiFragment" - } - override fun initViews() { super.initViews() initFragment() - hidPanel() + hideDebugPanel() switchVRFlatMode(MogoStatusManager.getInstance().isVrMode) module_mogo_och_operation_status.visibility = View.VISIBLE - initOrderTestBar() + initOrderDebugView() } private fun initFragment() { - serverOrdersFragmentWR = WeakReference(TaxiServerOrdersFragment.newInstance()) + servedOrdersFragment = WeakReference(TaxiServerOrdersFragment.newInstance()) val transaction: FragmentTransaction = childFragmentManager.beginTransaction() //默认显示OCHTaxiServerOrdersFragment - serverOrdersFragmentWR?.get()?.let { + servedOrdersFragment?.get()?.let { transaction.add(R.id.fragment_container, it).show( it ) @@ -114,14 +144,14 @@ class TaxiFragment : BaseTaxiTabFragment(), override fun onChangeOperationStatus() { super.onChangeOperationStatus() - if (null == serverOrdersFragmentWR || serverOrdersFragmentWR!!.get() == null) return - serverOrdersFragmentWR!!.get()!!.onChangeOperationStatus() + if (null == servedOrdersFragment || servedOrdersFragment!!.get() == null) return + servedOrdersFragment!!.get()!!.onChangeOperationStatus() } @RequiresApi(Build.VERSION_CODES.N) - fun updateReserveOrderChanged(taskAndOrder: QueryCurrentTaskRespBean.Result?){ - if (null == serverOrdersFragmentWR || serverOrdersFragmentWR!!.get() == null) return - serverOrdersFragmentWR!!.get()!!.updateOrderChanged(taskAndOrder) + fun updateReserveOrderChanged(taskAndOrder: QueryCurrentTaskRespBean.Result?) { + if (null == servedOrdersFragment || servedOrdersFragment!!.get() == null) return + servedOrdersFragment!!.get()!!.updateOrderChanged(taskAndOrder) } fun switchVRFlatMode(isVRMode: Boolean) { @@ -161,7 +191,7 @@ class TaxiFragment : BaseTaxiTabFragment(), null, null ) - showPanel() + showDebugPanel() } else { taxi_driver_role_tv.visibility = View.GONE module_mogo_och_operation_status.text = "接单" @@ -175,35 +205,27 @@ class TaxiFragment : BaseTaxiTabFragment(), } override fun onMapLoaded() {} + fun updateAutopilotStatus(status: Int) { onAutopilotStatusChanged(status) } fun onNaviToEnd(isAmap: Boolean, isShow: Boolean) { if (isAmap) { - if (null == serverOrdersFragmentWR || serverOrdersFragmentWR!!.get() == null) return - serverOrdersFragmentWR!!.get()!!.onNaviToEndAMap(isShow) - } else if (isShow) { //使用rotting数据 - showRottingToStationFragment(true) + if (null == servedOrdersFragment || servedOrdersFragment!!.get() == null) return + servedOrdersFragment!!.get()!!.onNaviToEndAMap(isShow) + } else if (isShow) { //使用routing数据 + showRoutingToStationFragment(true) } else { showAmapNaviToStationFragment(false) } } - /** - * 高德计算出来的到达目的地的剩余里程和时间 - * @param meters - * @param timeInSecond - */ - fun reportToEndDisAndTime(meters: Int, timeInSecond: Long) { //米/秒 - mPresenter.reportToEndDisAndTime(meters.toString().toLong(), timeInSecond) - } - /** * 订单流转debug START */ - private fun initOrderTestBar() { - findViewById(R.id.test_bar_to_virtual)?.setOnClickListener{ + private fun initOrderDebugView() { + findViewById(R.id.test_bar_to_virtual)?.setOnClickListener { TaxiModel.setArriveAtUntruthStation() } @@ -211,7 +233,7 @@ class TaxiFragment : BaseTaxiTabFragment(), TaxiModel.setArriveAtEndStation() } - findViewById(R.id.test_bar_start_service_confirm)?.setOnClickListener{ + findViewById(R.id.test_bar_start_service_confirm)?.setOnClickListener { TaxiModel.toStartTask() } @@ -221,100 +243,20 @@ class TaxiFragment : BaseTaxiTabFragment(), } TaxiModel.setOnTheWayToEndStation() } + findViewById(R.id.test_bar_route)?.setOnClickListener { testRouteInfoUpload() } } - @Subscribe(threadMode = ThreadMode.MAIN) - fun changeOverview(eventLogout: EventLogout) { - if (eventLogout.messgae == EventLogout.LOGOUT_TYPE) { - d(SceneConstant.M_TAXI + TAG, "changeOverview Event消息去登出") - mPresenter.logout() - } - } - - @Subscribe(threadMode = ThreadMode.MAIN) - fun openOperationalInfoView(eventLogout: EventLogout) { -// if (eventLogout.messgae == EventLogout.PERSONAL_TYPE) { - // 个人信息, 运营数据在无人化阶段暂时不展示 -// d(SceneConstant.M_TAXI + TAG, "openOperationalInfoView Event个人中心") -// openOperationalInfoView() -// } - } - - private fun openOperationalInfoView() { - personalDialogFragment = WeakReference(TaxiPersonalDialogFragment()) - activity?.supportFragmentManager?.let { - personalDialogFragment!!.get() - ?.show(it, "service_data") - } - } - - @RequiresApi(Build.VERSION_CODES.N) fun onCurrentOrderDistToEndChanged(meters: Long, timeInSecond: Long) { - if (null == serverOrdersFragmentWR || serverOrdersFragmentWR!!.get() == null) return - serverOrdersFragmentWR!!.get()!!.onCurrentOrderDistToEndChanged(meters, timeInSecond) + if (null == servedOrdersFragment || servedOrdersFragment!!.get() == null) return + servedOrdersFragment!!.get()!!.onCurrentOrderDistToEndChanged(meters, timeInSecond) } private fun testRouteInfoUpload() { TPRouteDataTestUtils.converToRouteData() } - //region Taxi调试信息:订单、线路、轨迹等信息 - private var testBar: View? = null - private var testCurOrderId: TextView? = null - private var testCurLineId: TextView? = null - private var testCurTrajMd5: TextView? = null - private var testCurStopMd5: TextView? = null - private var testCurTrajMd5DPQP: TextView? = null - private var testCurStopMd5DPQP: TextView? = null - @SuppressLint("SetTextI18n") - fun clickTestBar() { - if (testBar == null) { - testBar = findViewById(R.id.module_och_taxi_order_status_change_test_bar) - testCurOrderId = findViewById(R.id.test_bar_current_order_id) - testCurLineId = findViewById(R.id.test_bar_current_line_id) - testCurTrajMd5 = findViewById(R.id.test_bar_current_traj_md5) - testCurStopMd5 = findViewById(R.id.test_bar_current_stop_md5) - testCurTrajMd5DPQP = findViewById(R.id.test_bar_current_traj_md5_dpqp) - testCurStopMd5DPQP = findViewById(R.id.test_bar_current_stop_md5_dpqp) - } - if (testBar!!.visibility == View.VISIBLE) { - testBar!!.visibility = View.GONE - } else { - val result = TaxiModel.getCurTaskAndOrder() - val order = result?.order - testCurOrderId!!.text = "orderNo: " + order?.orderNo - testCurLineId!!.text = "当前任务lineId: " + result?.lineId - taskType2.text = "当前任务类型: " + result?.taskType - taskStatus2.text = "任务状态: "+ result?.currentStatus - taskStartSite.text = "任务开始站点: "+ result?.startSite?.siteName + - ", siteId: " + result?.startSite?.siteId - taskEndSite.text = "任务结束站点: "+ result?.endSite?.siteName + - ", siteId: " + result?.endSite?.siteId - - orderInfo.text = "订单信息: 开始: " + order?.orderStartSite?.siteName + ", 结束: "+ - order?.orderEndSite?.siteName + ", orderStatus: "+ order?.orderStatus - - orderToStartLines.text = "接驾任务的lineId集合: " + GsonUtil.jsonFromObject(order?.planningLines) - - val curContrail = TaxiModel.getCurTaskContrail() - testCurTrajMd5!!.text = "TMd5:" + curContrail?.csvFileMd5 - testCurStopMd5!!.text = "SMd5:" + curContrail?.txtFileMd5 - testCurTrajMd5DPQP!!.text = - "TMd5DPQP:" + curContrail?.csvFileMd5DPQP - testCurStopMd5DPQP!!.text = - "SMd5DPQP:" + curContrail?.txtFileMd5DPQP - testBar!!.visibility = View.VISIBLE - } - } - - companion object { - const val TAG = "TaxiFragment" - fun newInstance(): TaxiFragment { - val args = Bundle() - val fragment = TaxiFragment() - fragment.arguments = args - return fragment - } + fun clickOrderDebugView() { + orderDebugView.updateData() } } \ No newline at end of file diff --git a/OCH/taxi/mogo-och-taxi-unmanned/src/main/java/com/mogo/och/taxi/presenter/TaxiPresenter.java b/OCH/taxi/mogo-och-taxi-unmanned/src/main/java/com/mogo/och/taxi/ui/base/TaxiPresenter.java similarity index 82% rename from OCH/taxi/mogo-och-taxi-unmanned/src/main/java/com/mogo/och/taxi/presenter/TaxiPresenter.java rename to OCH/taxi/mogo-och-taxi-unmanned/src/main/java/com/mogo/och/taxi/ui/base/TaxiPresenter.java index 8c69e52120..9affbd1801 100644 --- a/OCH/taxi/mogo-och-taxi-unmanned/src/main/java/com/mogo/och/taxi/presenter/TaxiPresenter.java +++ b/OCH/taxi/mogo-och-taxi-unmanned/src/main/java/com/mogo/och/taxi/ui/base/TaxiPresenter.java @@ -1,6 +1,4 @@ -package com.mogo.och.taxi.presenter; - -import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_TAXI; +package com.mogo.och.taxi.ui.base; import android.os.Looper; @@ -11,7 +9,6 @@ import com.mogo.commons.AbsMogoApplication; import com.mogo.commons.mvp.Presenter; import com.mogo.eagle.core.data.map.MogoLocation; import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener; -import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; import com.mogo.eagle.core.utilcode.util.UiThreadHandler; import com.mogo.och.common.module.biz.bean.DriverStatusQueryRespBean; import com.mogo.och.common.module.biz.callback.ILoginCallback; @@ -19,17 +16,16 @@ import com.mogo.och.common.module.manager.OCHAdasAbilityManager; import com.mogo.och.taxi.callback.ITaxiADASStatusCallback; import com.mogo.och.taxi.callback.ITaxiControllerStatusCallback; import com.mogo.och.taxi.callback.ITaxiOrderStatusCallback; -import com.mogo.och.taxi.constant.TaxiUnmannedConst; import com.mogo.och.taxi.constant.TaxiDriverRoleEnum; import com.mogo.och.taxi.constant.TaxiOrderStatusEnum; +import com.mogo.och.taxi.constant.TaxiUnmannedConst; import com.mogo.och.taxi.constant.TaxtServingStatusManager; import com.mogo.och.taxi.model.TaxiModel; -import com.mogo.och.taxi.ui.TaxiFragment; /** * @author congtaowang * @since 2021/1/18 - * + *

* 描述 */ public class TaxiPresenter extends Presenter implements ITaxiADASStatusCallback, @@ -47,17 +43,10 @@ public class TaxiPresenter extends Presenter implements ITaxiADASS } @Override - public void onCreate( @NonNull LifecycleOwner owner ) { - super.onCreate( owner ); - CallerLogger.INSTANCE.d( M_TAXI + TAG, "网约车-出租车拿到订单" ); - } - - @Override - public void onDestroy( @NonNull LifecycleOwner owner ) { - super.onDestroy( owner ); - + public void onDestroy(@NonNull LifecycleOwner owner) { releaseListeners(); TaxiModel.INSTANCE.release(); + super.onDestroy(owner); } private void initListeners() { @@ -74,12 +63,12 @@ public class TaxiPresenter extends Presenter implements ITaxiADASS TaxiModel.INSTANCE.setMoGoAutopilotPlanningListener(null); } - private void runOnUIThread( Runnable executor ) { - if ( executor == null ) { + private void runOnUIThread(Runnable executor) { + if (executor == null) { return; } - if ( Looper.myLooper() != Looper.getMainLooper() ) { - UiThreadHandler.post( executor ); + if (Looper.myLooper() != Looper.getMainLooper()) { + UiThreadHandler.post(executor); } else { executor.run(); } @@ -103,17 +92,16 @@ public class TaxiPresenter extends Presenter implements ITaxiADASS } //导航去订单目的地 - public void startNaviToEndStation(boolean isShow){ - TaxiModel.INSTANCE.startNaviToEndStation(isShow); + public void startNaviToEndStation(boolean isShow) { + TaxiModel.INSTANCE.startNaviToEndStation(isShow); } - public void reportToEndDisAndTime(long lastSumLength, long duration){//米/秒 + public void reportToEndDisAndTime(long lastSumLength, long duration) {//米/秒 // TaxiModel.INSTANCE.reportOrderRemain(lastSumLength,duration); } @Override public void onAutopilotArriveEnd() { - } @Override @@ -132,17 +120,16 @@ public class TaxiPresenter extends Presenter implements ITaxiADASS @Override public void onAutopilotRunning() { - if (preAutopilotStatus != IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING){ + if (preAutopilotStatus != IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING) { runOnUIThread(() -> mView.updateAutopilotStatus( IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING)); } preAutopilotStatus = IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING; } - @Override - public void onManMachineCoDriving() { - runOnUIThread(() -> mView.onManMachineCoDriving(IMoGoAutopilotStatusListener.STATUS_PARALLEL_DRIVING)); + public void onParallelDrivingStatus() { + runOnUIThread(() -> mView.onParallelDrivingStatus(IMoGoAutopilotStatusListener.STATUS_PARALLEL_DRIVING)); preAutopilotStatus = IMoGoAutopilotStatusListener.STATUS_PARALLEL_DRIVING; } @@ -153,12 +140,12 @@ public class TaxiPresenter extends Presenter implements ITaxiADASS @Override public void onNaviToEnd(boolean isAmap, boolean isShow) { - runOnUIThread( () -> mView.onNaviToEnd(isAmap,isShow)); + runOnUIThread(() -> mView.onNaviToEnd(isAmap, isShow)); } @Override public void onCurrentOrderDistToEndChanged(long meters, long timeInSecond) { - runOnUIThread(() -> mView.onCurrentOrderDistToEndChanged(meters,timeInSecond)); + runOnUIThread(() -> mView.onCurrentOrderDistToEndChanged(meters, timeInSecond)); } @Override @@ -168,7 +155,7 @@ public class TaxiPresenter extends Presenter implements ITaxiADASS @Override public void onCarLocationChanged(MogoLocation location) { - if (null != location){ + if (null != location) { runOnUIThread(() -> { mView.updateSpeedView((float) location.getGnssSpeed()); }); @@ -207,13 +194,12 @@ public class TaxiPresenter extends Presenter implements ITaxiADASS mView.updateOperationStatus(TaxtServingStatusManager.isOpeningOrderStatus(), finalRole); }); - if (!TaxiModel.INSTANCE.checkCurrentTask()){ - mView.showPanel(); + if (!TaxiModel.INSTANCE.checkCurrentTask()) { + mView.showDebugPanel(); } } @Override public void loginFail(boolean isLogin) { - } } diff --git a/OCH/taxi/mogo-och-taxi-unmanned/src/main/java/com/mogo/och/taxi/ui/debug/OrderDebugView.kt b/OCH/taxi/mogo-och-taxi-unmanned/src/main/java/com/mogo/och/taxi/ui/debug/OrderDebugView.kt new file mode 100644 index 0000000000..e3d07b077d --- /dev/null +++ b/OCH/taxi/mogo-och-taxi-unmanned/src/main/java/com/mogo/och/taxi/ui/debug/OrderDebugView.kt @@ -0,0 +1,76 @@ +package com.mogo.och.taxi.ui.debug + +import android.content.Context +import android.util.AttributeSet +import android.view.LayoutInflater +import android.view.View +import android.widget.LinearLayout +import com.mogo.eagle.core.network.utils.GsonUtil +import com.mogo.och.taxi.R +import com.mogo.och.taxi.model.TaxiModel +import kotlinx.android.synthetic.main.taxi_debug_order.view.orderDebugContainer +import kotlinx.android.synthetic.main.taxi_debug_order.view.orderInfo +import kotlinx.android.synthetic.main.taxi_debug_order.view.orderToStartLines +import kotlinx.android.synthetic.main.taxi_debug_order.view.taskEndSite +import kotlinx.android.synthetic.main.taxi_debug_order.view.taskStartSite +import kotlinx.android.synthetic.main.taxi_debug_order.view.taskStatus2 +import kotlinx.android.synthetic.main.taxi_debug_order.view.taskType2 +import kotlinx.android.synthetic.main.taxi_debug_order.view.test_bar_current_line_id +import kotlinx.android.synthetic.main.taxi_debug_order.view.test_bar_current_order_id +import kotlinx.android.synthetic.main.taxi_debug_order.view.test_bar_current_stop_md5 +import kotlinx.android.synthetic.main.taxi_debug_order.view.test_bar_current_stop_md5_dpqp +import kotlinx.android.synthetic.main.taxi_debug_order.view.test_bar_current_traj_md5 +import kotlinx.android.synthetic.main.taxi_debug_order.view.test_bar_current_traj_md5_dpqp + +class OrderDebugView @JvmOverloads constructor( + context: Context, + attrs: AttributeSet? = null, + defStyleAttr: Int = 0, + defStyleRes: Int = 0 +) : LinearLayout(context, attrs, defStyleAttr, defStyleRes) { + companion object { + const val TAG = "OrderDebugView" + } + + init { + LayoutInflater.from(context) + .inflate(R.layout.taxi_debug_order, this, true) + visibility = GONE + } + + fun updateData() { + val data = TaxiModel.getCurTaskAndOrder() + if (data == null) { + orderDebugContainer?.visibility = View.GONE + return + + } + orderDebugContainer.visibility = + if (orderDebugContainer?.visibility == View.VISIBLE) + View.GONE + else + View.VISIBLE + data.order?.also { + test_bar_current_order_id.text = "orderNo: $it.orderNo" + test_bar_current_line_id!!.text = "当前任务lineId: $it.lineId" + taskType2.text = "当前任务类型: $it.taskType" + taskStatus2.text = "任务状态: $it.currentStatus" + taskStartSite.text = + "任务开始站点: ${data.startSite?.siteName} , siteId: ${data.startSite?.siteId}" + taskEndSite.text = + "任务结束站点: ${data.endSite?.siteName}, siteId: ${data?.endSite?.siteId}" + orderInfo.text = + "订单信息: 开始: ${it.orderStartSite?.siteName}, 结束: ${it.orderEndSite?.siteName}, orderStatus: ${it.orderStatus}" + orderToStartLines.text = + "接驾任务的lineId集合: " + GsonUtil.jsonFromObject(it.planningLines) + + val curContrail = TaxiModel.getCurTaskContrail() + curContrail?.also { + test_bar_current_traj_md5.text = "TrajMd5: ${curContrail?.csvFileMd5}" + test_bar_current_stop_md5.text = "StopMd5: ${curContrail?.txtFileMd5}" + test_bar_current_traj_md5_dpqp.text = "TrajMd5DPQP: ${curContrail?.csvFileMd5DPQP}" + test_bar_current_stop_md5_dpqp.text = "StopMd5DPQP: ${curContrail?.txtFileMd5DPQP}" + } + } + } +} \ No newline at end of file diff --git a/OCH/taxi/mogo-och-taxi-unmanned/src/main/res/layout/taxi_base_fragment.xml b/OCH/taxi/mogo-och-taxi-unmanned/src/main/res/layout/taxi_base_fragment.xml index 9cb230ae7a..dfb68b252f 100644 --- a/OCH/taxi/mogo-och-taxi-unmanned/src/main/res/layout/taxi_base_fragment.xml +++ b/OCH/taxi/mogo-och-taxi-unmanned/src/main/res/layout/taxi_base_fragment.xml @@ -246,7 +246,6 @@ android:textColor="@color/taxi_autopilot_text_color_selector" android:textSize="@dimen/dp_40" android:textStyle="bold" - app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintLeft_toLeftOf="parent" /> diff --git a/OCH/taxi/mogo-och-taxi-unmanned/src/main/res/layout/taxi_debug_order.xml b/OCH/taxi/mogo-och-taxi-unmanned/src/main/res/layout/taxi_debug_order.xml new file mode 100644 index 0000000000..cd75e6d17f --- /dev/null +++ b/OCH/taxi/mogo-och-taxi-unmanned/src/main/res/layout/taxi_debug_order.xml @@ -0,0 +1,128 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + +