diff --git a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/constant/TaxiDriverEventConst.java b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/constant/TaxiDriverEventConst.java new file mode 100644 index 0000000000..f2dc8a3cff --- /dev/null +++ b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/constant/TaxiDriverEventConst.java @@ -0,0 +1,16 @@ +package com.mogo.och.taxi.constant; + +public interface TaxiDriverEventConst { + + interface TaxiFragmentEvent { + String EVENT_TYPE_SHOW_DEBUG_VIEW = "event_type_taxi_fragment_show_debug_view"; + String EVENT_TYPE_SHOW_AMAP_NAVI_TO_STATION_FRAGMENT = "event_type_taxi_fragment_show_amap_navi_to_station_fragment"; + String EVENT_TYPE_SHOW_ROUTING_TO_STATION_FRAGMENT = "event_type_taxi_fragment_show_routing_to_station_fragment"; + String EVENT_TYPE_START_NAVI_TO_END_STATION = "event_type_taxi_fragment_start_navi_to_end_station"; + } + + interface TabFragmentEvent { + String EVENT_TYPE_SHOW_RED_POINT = "event_type_tab_fragment_show_red_point"; + String EVENT_TYPE_TASK_WITH_ORDER_CHANGED = "event_type_tab_fragment_task_with_order_changed"; + } +} diff --git a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/constant/TaxiDriverEventConst.kt b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/constant/TaxiDriverEventConst.kt deleted file mode 100644 index 11e87f2668..0000000000 --- a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/constant/TaxiDriverEventConst.kt +++ /dev/null @@ -1,6 +0,0 @@ -package com.mogo.och.taxi.constant - -object TaxiDriverEventConst { - val EVENT_TYPE_TAB_FRAGMENT_SHOW_RED_POINT = "event_type_tab_fragment_show_red_point" - val EVENT_TYPE_TAB_FRAGMENT_TASK_WITH_ORDER_CHANGED = "event_type_tab_fragment_task_with_order_changed" -} \ No newline at end of file diff --git a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/base/TaxiFragment.kt b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/base/TaxiFragment.kt index 2e1fc7ed65..43d750a70b 100644 --- a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/base/TaxiFragment.kt +++ b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/base/TaxiFragment.kt @@ -15,7 +15,9 @@ 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.constant.OchCommonConst import com.mogo.och.common.module.biz.provider.LoginService +import com.mogo.och.common.module.utils.FlowBus import com.mogo.och.taxi.R +import com.mogo.och.taxi.constant.TaxiDriverEventConst import com.mogo.och.taxi.constant.TaxiOrderStatusEnum import com.mogo.och.taxi.network.TaxiDriverLoginImpl import com.mogo.och.taxi.ui.personal.TaxiPersonalDialogFragment @@ -115,6 +117,7 @@ class TaxiFragment : BaseTaxiTabFragment(), override fun initViews() { super.initViews() + initFlowEvent() initFragment() hideDebugPanel() switchVRFlatMode(MogoStatusManager.getInstance().isVrMode) @@ -122,6 +125,25 @@ class TaxiFragment : BaseTaxiTabFragment(), initOrderDebugView() } + private fun initFlowEvent() { + FlowBus.with(TaxiDriverEventConst.TaxiFragmentEvent.EVENT_TYPE_SHOW_DEBUG_VIEW) + .register(this) { _ -> + clickOrderDebugView() + } + FlowBus.with(TaxiDriverEventConst.TaxiFragmentEvent.EVENT_TYPE_SHOW_AMAP_NAVI_TO_STATION_FRAGMENT) + .register(this) { show -> + showAmapNaviToStationFragment(show) + } + FlowBus.with(TaxiDriverEventConst.TaxiFragmentEvent.EVENT_TYPE_SHOW_ROUTING_TO_STATION_FRAGMENT) + .register(this) { show -> + showRoutingToStationFragment(show) + } + FlowBus.with(TaxiDriverEventConst.TaxiFragmentEvent.EVENT_TYPE_START_NAVI_TO_END_STATION) + .register(this) { show -> + startNaviToEndStation(show) + } + } + private fun initFragment() { taskTabFragment = WeakReference(TaxiTaskTabFragment.newInstance()) val transaction: FragmentTransaction = childFragmentManager.beginTransaction() diff --git a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/task/TaxiCurrentTaskFragment.kt b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/task/TaxiCurrentTaskFragment.kt index b55ab6b148..0bae199794 100644 --- a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/task/TaxiCurrentTaskFragment.kt +++ b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/task/TaxiCurrentTaskFragment.kt @@ -41,7 +41,6 @@ import com.mogo.och.taxi.constant.TaxiOrderStatusEnum import com.mogo.och.taxi.constant.TaxiUnmannedConst.Companion.TAXI_END_MAP_MAKER import com.mogo.och.taxi.constant.TaxiUnmannedConst.Companion.TAXI_START_MAP_MAKER import com.mogo.och.taxi.constant.TaxiUnmannedConst.Companion.TYPE_MARKER_TAXI_ORDER -import com.mogo.och.taxi.ui.base.TaxiFragment import com.mogo.och.taxi.utils.MapMakerManager import com.mogo.och.taxi.utils.TaskUtils import kotlinx.android.synthetic.main.task_fragment_current.cancelOrder @@ -76,10 +75,8 @@ class TaxiCurrentTaskFragment : BaseFragment(), companion object { const val TAG = M_TAXI + "TaxiCurrentTaskFragment" - private var mTaxiFragment: TaxiFragment? = null - fun newInstance(taxiFragment: TaxiFragment?): TaxiCurrentTaskFragment { - mTaxiFragment = taxiFragment + fun newInstance(): TaxiCurrentTaskFragment { val args = Bundle() val fragment = TaxiCurrentTaskFragment() fragment.arguments = args @@ -146,7 +143,8 @@ class TaxiCurrentTaskFragment : BaseFragment(), private fun initTaskDebugViewListener() { taskStatus.setOnLongClickListener { - mTaxiFragment?.clickOrderDebugView() + FlowBus.with(TaxiDriverEventConst.TaxiFragmentEvent.EVENT_TYPE_SHOW_DEBUG_VIEW) + .post(this.lifecycleScope, true) false } } @@ -296,7 +294,7 @@ class TaxiCurrentTaskFragment : BaseFragment(), } private fun updateNextTaskFragment(result: QueryCurrentTaskRespBean.Result?) { - FlowBus.with(TaxiDriverEventConst.EVENT_TYPE_TAB_FRAGMENT_TASK_WITH_ORDER_CHANGED) + FlowBus.with(TaxiDriverEventConst.TabFragmentEvent.EVENT_TYPE_TASK_WITH_ORDER_CHANGED) .post(this.lifecycleScope, result) if (result != null @@ -305,10 +303,10 @@ class TaxiCurrentTaskFragment : BaseFragment(), && result.currentStatus != TaskStatusEnum.CompleteTask.code ) { VoiceNotice.showNotice("已为您提前接到下一订单,待完成当前任务后服务") - FlowBus.with(TaxiDriverEventConst.EVENT_TYPE_TAB_FRAGMENT_SHOW_RED_POINT) + FlowBus.with(TaxiDriverEventConst.TabFragmentEvent.EVENT_TYPE_SHOW_RED_POINT) .post(this.lifecycleScope, true) } else { - FlowBus.with(TaxiDriverEventConst.EVENT_TYPE_TAB_FRAGMENT_SHOW_RED_POINT) + FlowBus.with(TaxiDriverEventConst.TabFragmentEvent.EVENT_TYPE_SHOW_RED_POINT) .post(this.lifecycleScope, false) } } @@ -327,7 +325,7 @@ class TaxiCurrentTaskFragment : BaseFragment(), private fun updateRemainDistanceAndTime(isVoicePlay: Boolean) { val currentTaskWithOrder = TaxiTaskModel.getCurrentTaskWithOrder() ?: return d(TAG, "updateRemainDistanceAndTime ${currentTaskWithOrder.currentStatus}") - if (currentTaskWithOrder.currentStatus == TaskStatusEnum.StartTask.code){ + if (currentTaskWithOrder.currentStatus == TaskStatusEnum.StartTask.code) { if (currentTaskWithOrder.endSite != null) { startNaviToStation( isVoicePlay, currentTaskWithOrder.endSite!!.gcjLat, @@ -335,10 +333,11 @@ class TaxiCurrentTaskFragment : BaseFragment(), ) } - }else if(currentTaskWithOrder.currentStatus == TaskStatusEnum.CompleteTask.code && - currentTaskWithOrder.taskType <= TaskTypeEnum.ToOrderStartTask.code){ + } else if (currentTaskWithOrder.currentStatus == TaskStatusEnum.CompleteTask.code && + currentTaskWithOrder.taskType <= TaskTypeEnum.ToOrderStartTask.code + ) { taskOtherInfo.text = "已到达 ${currentTaskWithOrder.endSite?.siteName}" - }else { + } else { taskOtherInfo.text = "距离 -- 公里, 用时 -- 分钟" } } @@ -588,8 +587,11 @@ class TaxiCurrentTaskFragment : BaseFragment(), naviToStart.visibility = View.GONE naviToEnd.visibility = View.GONE AmapNaviToDestinationModel.getInstance(context).destroyAmaNavi() - mTaxiFragment?.showAmapNaviToStationFragment(false) - mTaxiFragment?.showRoutingToStationFragment(false) + + FlowBus.with(TaxiDriverEventConst.TaxiFragmentEvent.EVENT_TYPE_SHOW_AMAP_NAVI_TO_STATION_FRAGMENT) + .post(this.lifecycleScope, false) + FlowBus.with(TaxiDriverEventConst.TaxiFragmentEvent.EVENT_TYPE_SHOW_ROUTING_TO_STATION_FRAGMENT) + .post(this.lifecycleScope, false) } private fun startNaviToStation(isVoicePlay: Boolean, stationLat: Double, stationLng: Double) { @@ -713,7 +715,8 @@ class TaxiCurrentTaskFragment : BaseFragment(), * @param isShow */ private fun showNaviToEndStationFragment(isShow: Boolean) { - mTaxiFragment?.startNaviToEndStation(isShow) + FlowBus.with(TaxiDriverEventConst.TaxiFragmentEvent.EVENT_TYPE_START_NAVI_TO_END_STATION) + .post(this.lifecycleScope, isShow) } override fun onCurrentNaviDistAndTimeChanged(meters: Int, timeInSecond: Long) { @@ -723,7 +726,8 @@ class TaxiCurrentTaskFragment : BaseFragment(), override fun reInitNaviAmap(isPlay: Boolean, isRestart: Boolean) { d(TAG, "isPlay = $isPlay, isRestart=$isRestart") if (!isRestart) { - mTaxiFragment?.showAmapNaviToStationFragment(false) + FlowBus.with(TaxiDriverEventConst.TaxiFragmentEvent.EVENT_TYPE_SHOW_AMAP_NAVI_TO_STATION_FRAGMENT) + .post(this.lifecycleScope, false) return } val currentTaskWithOrder = TaxiTaskModel.getCurrentTaskWithOrder() @@ -753,10 +757,14 @@ class TaxiCurrentTaskFragment : BaseFragment(), fun onNaviToEndStationByAmap(isShow: Boolean) { val currentTaskWithOrder = TaxiTaskModel.getCurrentTaskWithOrder() ?: return - mTaxiFragment?.showAmapNaviToStationFragment( - if (currentTaskWithOrder.currentStatus == TaskStatusEnum.StartTask.code) - isShow else true - ) + FlowBus.with(TaxiDriverEventConst.TaxiFragmentEvent.EVENT_TYPE_SHOW_AMAP_NAVI_TO_STATION_FRAGMENT) + .post( + this.lifecycleScope, + if (currentTaskWithOrder.currentStatus == TaskStatusEnum.StartTask.code) + isShow + else + true + ) updateRemainDistanceAndTime( if (currentTaskWithOrder.currentStatus == TaskStatusEnum.StartTask.code) isShow else true diff --git a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/task/TaxiTaskTabFragment.kt b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/task/TaxiTaskTabFragment.kt index 0f9e29c346..23b4470f7d 100644 --- a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/task/TaxiTaskTabFragment.kt +++ b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/task/TaxiTaskTabFragment.kt @@ -19,7 +19,6 @@ import com.mogo.och.common.module.utils.FlowBus import com.mogo.och.taxi.R import com.mogo.och.taxi.bean.QueryCurrentTaskRespBean import com.mogo.och.taxi.constant.TaxiDriverEventConst -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 kotlinx.android.synthetic.main.taxi_server_orders_panel.wait_order_num @@ -84,9 +83,7 @@ class TaxiTaskTabFragment : BaseFragment() { if (TAB_POSITION_CURRENT == position) { module_och_taxi_tab.addTab(tab, true) changeTabLayoutUI(tab, true) - currentTaskFragment = TaxiCurrentTaskFragment.newInstance( - parentFragment as TaxiFragment? - ) + currentTaskFragment = TaxiCurrentTaskFragment.newInstance() mFragments.add(currentTaskFragment!!) } else if (TAB_POSITION_NEXT == position) { module_och_taxi_tab.addTab(tab) @@ -184,11 +181,11 @@ class TaxiTaskTabFragment : BaseFragment() { } private fun initEventBus() { - FlowBus.with(TaxiDriverEventConst.EVENT_TYPE_TAB_FRAGMENT_SHOW_RED_POINT) + FlowBus.with(TaxiDriverEventConst.TabFragmentEvent.EVENT_TYPE_SHOW_RED_POINT) .register(this) { show -> wait_order_num.visibility = if (show) View.VISIBLE else View.GONE } - FlowBus.with(TaxiDriverEventConst.EVENT_TYPE_TAB_FRAGMENT_TASK_WITH_ORDER_CHANGED) + FlowBus.with(TaxiDriverEventConst.TabFragmentEvent.EVENT_TYPE_TASK_WITH_ORDER_CHANGED) .register(this) { taskWithOrder -> nextTaskFragment?.onTaskDataChanged(taskWithOrder) }