diff --git a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/unmanned/taxi/ui/task/itinerarynext/ItineraryNextView.kt b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/unmanned/taxi/ui/task/itinerarynext/ItineraryNextView.kt index 964d18fa25..84faaa5f93 100644 --- a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/unmanned/taxi/ui/task/itinerarynext/ItineraryNextView.kt +++ b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/unmanned/taxi/ui/task/itinerarynext/ItineraryNextView.kt @@ -3,14 +3,30 @@ package com.mogo.och.unmanned.taxi.ui.task.itinerarynext import android.content.Context import android.util.AttributeSet import android.view.LayoutInflater +import android.view.View import androidx.constraintlayout.widget.ConstraintLayout import androidx.lifecycle.LifecycleOwner import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.findViewTreeViewModelStoreOwner -import com.mogo.och.common.module.wigets.WindowRelativeLayout +import com.mogo.eagle.core.utilcode.kotlin.onClick +import com.mogo.och.common.module.utils.FlowBus import com.mogo.och.unmanned.taxi.R import com.mogo.och.unmanned.taxi.TaxiUnmannedDriverProvider +import com.mogo.och.unmanned.taxi.bean.OrderDetail +import com.mogo.och.unmanned.taxi.bean.QueryCurrentTaskRespBean +import com.mogo.och.unmanned.taxi.constant.TaskStatusEnum +import com.mogo.och.unmanned.taxi.constant.TaskTypeEnum +import com.mogo.och.unmanned.taxi.constant.TaxiDriverEventConst import com.mogo.och.unmanned.taxi.ui.itinerarynext.ItineraryNextModel +import com.mogo.och.unmanned.taxi.ui.task.TaxiOrderCancelDialog +import com.mogo.och.unmanned.taxi.ui.task.TaxiTaskModel +import kotlinx.android.synthetic.main.unmanned_itinerary_next.view.aciv_order_close +import kotlinx.android.synthetic.main.unmanned_itinerary_next.view.actv_end_station_name +import kotlinx.android.synthetic.main.unmanned_itinerary_next.view.actv_order_count +import kotlinx.android.synthetic.main.unmanned_itinerary_next.view.actv_order_phone +import kotlinx.android.synthetic.main.unmanned_itinerary_next.view.actv_start_station_name +import kotlinx.android.synthetic.main.unmanned_itinerary_next.view.group_order_next +import kotlinx.android.synthetic.main.unmanned_itinerary_next.view.include_empty class ItineraryNextView: ConstraintLayout, ItineraryNextModel.SwtichLineViewCallback { @@ -40,6 +56,17 @@ class ItineraryNextView: ConstraintLayout, ItineraryNextModel.SwtichLineViewCall private fun initView() { fragment = TaxiUnmannedDriverProvider.getFragmentInfo() + + aciv_order_close.onClick { //取消待服务订单 + val currentWithOrder = TaxiTaskModel.getCurrentTaskWithOrder() + if (currentWithOrder?.order != null) { + val order = currentWithOrder.order + TaxiOrderCancelDialog(context, order!!.orderStatus) { type -> + TaxiTaskModel.cancelOrder(order.orderNo,type) + }.show() + } + } + showNoNextTaskView() } @@ -49,6 +76,69 @@ class ItineraryNextView: ConstraintLayout, ItineraryNextModel.SwtichLineViewCall ViewModelProvider(it)[ItineraryNextModel::class.java] } viewModel?.setDistanceCallback(this) + initTaskDebugViewListener() + } + + fun onTaskDataChanged(taskWithOrder: QueryCurrentTaskRespBean.Result?) { + if (taskWithOrder?.order == null) { + showNoNextTaskView() + return + } + + if (taskWithOrder.taskType == TaskTypeEnum.VirtualTask.code && + taskWithOrder.currentStatus != TaskStatusEnum.CompleteTask.code + ) { + val order = taskWithOrder.order + updateTaskUI(order!!) + } else { + showNoNextTaskView() + } + } + + private fun showNoNextTaskView() { + include_empty.visibility = View.VISIBLE + group_order_next.visibility = View.GONE + } + + private fun showNextTaskView() { + include_empty.visibility = View.GONE + group_order_next.visibility = View.VISIBLE + } + + private fun updateTaskUI(order: OrderDetail) { + showNextTaskView() + + var tempPhone = order.bookingUserPhone + + tempPhone.let { + if (it.length > 8) { + //截取电话号码前三位 + val phoneNumPre = it.substring(0, 3) + //截取电话号码后四位 + val phoneNumFix = it.substring(7) + tempPhone = "$phoneNumPre****$phoneNumFix" + } + } + actv_order_phone.text = tempPhone + + order.passengerSize + actv_order_count.text = "${order.passengerSize}人" + + order.orderStartSite?.let { + actv_start_station_name.text = it.siteName + } + order.orderEndSite?.let { + actv_end_station_name.text = it.siteName + } + } + + private fun initTaskDebugViewListener() { + fragment?.let { fr-> + FlowBus.with(TaxiDriverEventConst.TabFragmentEvent.EVENT_TYPE_TASK_WITH_ORDER_CHANGED) + .register(fr) { taskWithOrder -> + onTaskDataChanged(taskWithOrder) + } + } } } diff --git a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/unmanned/taxi/ui/task/itinerayswitch/ItinerarySwitchView.kt b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/unmanned/taxi/ui/task/itinerayswitch/ItinerarySwitchView.kt index bc24b02e20..5a4ed664ae 100644 --- a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/unmanned/taxi/ui/task/itinerayswitch/ItinerarySwitchView.kt +++ b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/unmanned/taxi/ui/task/itinerayswitch/ItinerarySwitchView.kt @@ -84,10 +84,6 @@ class ItinerarySwitchView: ConstraintLayout, ItinerarySwitchModel.SwtichLineView .register(it) { show -> taxiServerSelector.setNextItineraryRedBagVisable( if (show) View.VISIBLE else View.GONE) } -// FlowBus.with(TaxiDriverEventConst.TabFragmentEvent.EVENT_TYPE_TASK_WITH_ORDER_CHANGED) -// .register(it) { taskWithOrder -> -// nextTaskFragment?.onTaskDataChanged(taskWithOrder) -// } } } diff --git a/OCH/taxi/unmanned-driver/src/main/res/layout/unmanned_itinerary_next.xml b/OCH/taxi/unmanned-driver/src/main/res/layout/unmanned_itinerary_next.xml index 52d197d77d..154b09b2c4 100644 --- a/OCH/taxi/unmanned-driver/src/main/res/layout/unmanned_itinerary_next.xml +++ b/OCH/taxi/unmanned-driver/src/main/res/layout/unmanned_itinerary_next.xml @@ -72,17 +72,6 @@ android:layout_width="wrap_content" android:layout_height="wrap_content"/> - - - + + + + \ No newline at end of file