[fea]
[待服务页面]
This commit is contained in:
yangyakun
2024-10-12 16:43:23 +08:00
parent 3b9061a216
commit 6223e3bb59
3 changed files with 113 additions and 16 deletions

View File

@@ -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<QueryCurrentTaskRespBean.Result?>(TaxiDriverEventConst.TabFragmentEvent.EVENT_TYPE_TASK_WITH_ORDER_CHANGED)
.register(fr) { taskWithOrder ->
onTaskDataChanged(taskWithOrder)
}
}
}
}

View File

@@ -84,10 +84,6 @@ class ItinerarySwitchView: ConstraintLayout, ItinerarySwitchModel.SwtichLineView
.register(it) { show ->
taxiServerSelector.setNextItineraryRedBagVisable( if (show) View.VISIBLE else View.GONE)
}
// FlowBus.with<QueryCurrentTaskRespBean.Result?>(TaxiDriverEventConst.TabFragmentEvent.EVENT_TYPE_TASK_WITH_ORDER_CHANGED)
// .register(it) { taskWithOrder ->
// nextTaskFragment?.onTaskDataChanged(taskWithOrder)
// }
}
}

View File

@@ -72,17 +72,6 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/aciv_task_type_exercise"
app:layout_constraintTop_toTopOf="@+id/v_next_itinerary_bg"
app:layout_constraintStart_toStartOf="@+id/v_next_itinerary_bg"
android:layout_marginTop="@dimen/dp_29"
android:src="@drawable/taxi_task_exercise"
android:layout_marginStart="@dimen/dp_30"
android:layout_width="@dimen/dp_120"
android:layout_height="@dimen/dp_50"/>
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/aciv_next_start_station_point"
android:src="@drawable/taxi_task_start_station_point"
@@ -94,6 +83,7 @@
android:layout_height="@dimen/dp_30"/>
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/actv_start_station_name"
app:layout_constraintTop_toTopOf="@+id/aciv_next_start_station_point"
app:layout_constraintBottom_toBottomOf="@+id/aciv_next_start_station_point"
app:layout_constraintStart_toEndOf="@+id/aciv_next_start_station_point"
@@ -128,6 +118,7 @@
android:layout_height="@dimen/dp_30"/>
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/actv_end_station_name"
app:layout_constraintTop_toTopOf="@+id/aciv_next_end_station_point"
app:layout_constraintBottom_toBottomOf="@+id/aciv_next_end_station_point"
app:layout_constraintStart_toEndOf="@+id/aciv_next_end_station_point"
@@ -140,4 +131,24 @@
android:lineSpacingMultiplier="1.2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<androidx.constraintlayout.widget.Group
android:id="@+id/group_order_next"
android:visibility="gone"
tools:visibility="visible"
app:constraint_referenced_ids="v_next_itinerary_bg,actv_order_phone,actv_order_count,aciv_next_end_station_point,aciv_task_type_order,aciv_order_close,aciv_next_start_station_point,actv_start_station_name,v_line_next_start_end,actv_end_station_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<com.mogo.och.common.module.wigets.commonview.EmptyView
android:id="@+id/include_empty"
tools:visibility="gone"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:empty_title="暂无服务订单"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</merge>