[6.0.0] 任务和UI调整
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
package com.mogo.och.taxi.constant/**
|
||||
* Created on 2023/8/7
|
||||
* taskType = 1 虚拟任务(演练), = 2 接驾任务(运营), = 3 //送驾任务(运营)
|
||||
* taskType = 1 虚拟任务(演练任务), = 2 接驾任务(运营), = 3 //送驾任务(运营)
|
||||
*/
|
||||
enum class TaskTypeEnum(val code: Int) {
|
||||
None(0),
|
||||
|
||||
@@ -601,7 +601,11 @@ object TaxiModel {
|
||||
}
|
||||
}
|
||||
|
||||
private fun arriveSite(siteId: Long, isArriveEndSite: Boolean) {
|
||||
/**
|
||||
* 到站(起点、终点)
|
||||
* isArriveEndSite true 终点, false 起点
|
||||
*/
|
||||
public fun arriveSite(siteId: Long, isArriveEndSite: Boolean) {
|
||||
arriveSite(mContext!!,siteId,object : OchCommonServiceCallback<BaseData>{
|
||||
override fun onSuccess(data: BaseData?) {
|
||||
if (data == null || data.code != 0) return
|
||||
|
||||
@@ -25,6 +25,7 @@ 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.network.CarServiceManager
|
||||
import com.mogo.och.taxi.network.CarServiceManager.cancelOrder
|
||||
import com.mogo.och.taxi.network.CarServiceManager.contrailList
|
||||
import com.mogo.och.taxi.network.CarServiceManager.queryCarOrderByOrderNo
|
||||
import com.mogo.och.taxi.ui.unmanned.TaskAndOrderUiState
|
||||
@@ -72,8 +73,31 @@ class TaxiUnmannedViewModel : BaseViewModel<UnmannedState, UnmannedIntent>(){
|
||||
}
|
||||
|
||||
is UnmannedIntent.CloseOrderByDriver -> {
|
||||
|
||||
if (mCurrentTaskAndOrder != null && mCurrentTaskAndOrder!!.order != null){
|
||||
val site = mCurrentTaskAndOrder!!.order!!.orderEndSite;
|
||||
TaxiModel.arriveSite(site!!.siteId,true)
|
||||
}
|
||||
}
|
||||
|
||||
is UnmannedIntent.CancelOrder -> {// 取消订单, 暂未加取消类型和原因
|
||||
handleCancelOrder()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private fun handleCancelOrder() {
|
||||
if (mCurrentTaskAndOrder != null && mCurrentTaskAndOrder!!.order != null){
|
||||
cancelOrder(mContext, mCurrentTaskAndOrder!!.order!!.orderNo,
|
||||
object : OchCommonServiceCallback<BaseData>{
|
||||
override fun onSuccess(data: BaseData?) {
|
||||
d(SceneConstant.M_TAXI + TAG, "handleCancelOrder() = onSuccess")
|
||||
}
|
||||
|
||||
override fun onFail(code: Int, msg: String?) {
|
||||
d(SceneConstant.M_TAXI + TAG, "handleCancelOrder() $code $msg")
|
||||
}
|
||||
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
@@ -265,7 +289,7 @@ class TaxiUnmannedViewModel : BaseViewModel<UnmannedState, UnmannedIntent>(){
|
||||
|
||||
/**
|
||||
* 查询接驾/送驾任务轨迹集合
|
||||
* 注: 运营单刚来的时候, 有可能还在运行一个演练单, 要先跑完演练单才跑运营单
|
||||
* 注: 运营单刚来的时候, 有可能还在运行一个演练任务, 要先跑完演练任务才跑运营单
|
||||
*/
|
||||
private fun queryOrderContrails(planningLines: Array<Long>?) {
|
||||
if (planningLines == null) return
|
||||
|
||||
@@ -36,6 +36,7 @@ import com.mogo.och.taxi.bean.OrderDetail
|
||||
import com.mogo.och.taxi.bean.OrderQueryRouteInfoRespBean
|
||||
import com.mogo.och.taxi.bean.QueryCurrentTaskRespBean
|
||||
import com.mogo.och.taxi.bean.StartServiceRespBean
|
||||
import com.mogo.och.taxi.constant.TaskStatusEnum
|
||||
import com.mogo.och.taxi.constant.TaskTypeEnum
|
||||
import com.mogo.och.taxi.constant.TaxiOrderStatusEnum
|
||||
import com.mogo.och.taxi.constant.TaxiUnmannedConst.Companion.TAXI_END_MAP_MAKER
|
||||
@@ -43,6 +44,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.TaxiOrderCancelDialog.CommitReasonListener
|
||||
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
|
||||
@@ -193,7 +195,7 @@ class TaxiBeingTaskFragment : BaseFragment(),
|
||||
/**
|
||||
* 根据任务类型判断任务显示,
|
||||
* 虚拟单, 显示在进行中 前往上车点
|
||||
* 演练单,显示演练单, 同时有订单显示在待服务中
|
||||
* 演练任务,显示演练任务, 同时有订单显示在待服务中
|
||||
* 当前任务是接驾任务,显示订单状态+运营单 订单显示在进行中, 任务不再显示
|
||||
*/
|
||||
val taskType = taskAndOrder.taskType // 任务类型
|
||||
@@ -427,25 +429,19 @@ class TaxiBeingTaskFragment : BaseFragment(),
|
||||
|
||||
private fun updateUIShowStatus(taskType: Int, currentStatus: Int, order: OrderDetail?) {
|
||||
when (taskType) {
|
||||
TaskTypeEnum.VirtualTask.code -> { //演练单
|
||||
taskStatus.visibility = View.VISIBLE
|
||||
taskTypeTv.visibility = View.VISIBLE
|
||||
TaskTypeEnum.VirtualTask.code -> { //演练任务
|
||||
cancelOrder.visibility = View.GONE
|
||||
orderPhoneAndNum.visibility = View.GONE
|
||||
startStationName.visibility = View.VISIBLE
|
||||
endStationName.visibility = View.VISIBLE
|
||||
taskClickBtn.visibility = View.GONE
|
||||
// currentStatus 0:空闲 1:获取任务 2:开始任务 3:到达目的地
|
||||
naviToStart.visibility = View.GONE
|
||||
naviToEnd.visibility = if (currentStatus == 2) View.VISIBLE else View.GONE
|
||||
taskOtherInfo.visibility = if (currentStatus == 0) View.GONE else View.VISIBLE
|
||||
naviToEnd.visibility = if (currentStatus >= TaskStatusEnum.StartTask.code) View.VISIBLE else View.GONE
|
||||
taskOtherInfo.visibility = if (currentStatus == TaskStatusEnum.GetTask.code) View.GONE else View.VISIBLE
|
||||
}
|
||||
TaskTypeEnum.ToOrderEndTask.code,TaskTypeEnum.ToOrderStartTask.code -> {// 运营单(接驾任务、送驾任务)
|
||||
if (order == null) return
|
||||
taskStatus.visibility = View.VISIBLE
|
||||
taskTypeTv.visibility = View.VISIBLE
|
||||
cancelOrder.visibility = View.VISIBLE
|
||||
orderPhoneAndNum.visibility = View.VISIBLE
|
||||
startStationName.visibility = View.VISIBLE
|
||||
endStationName.visibility = View.VISIBLE
|
||||
taskClickBtn.visibility = View.VISIBLE
|
||||
// orderStatus: 0 订单创建(为派单), 10 已派上司机(司机去往上车点), 20 司机到达上车点,
|
||||
// 30 乘客到达上车点, 40 服务中(去往目的地), 50 到达目的地, 60 已完成, 70 已取消
|
||||
@@ -618,9 +614,12 @@ class TaxiBeingTaskFragment : BaseFragment(),
|
||||
d(SceneConstant.M_TAXI + TAG, taskStatus.text.toString())
|
||||
startOrEndService()
|
||||
} else if (v.id == cancelOrder.id) {
|
||||
if (mCurrentTaskAndOrder != null && mCurrentTaskAndOrder!!.order != null){
|
||||
TaxiOrderCancelDialog(mActivity,
|
||||
mCurrentTaskAndOrder!!.order!!.orderNo,mCurrentTaskAndOrder!!.order!!.orderStatus).show()
|
||||
if (mCurrentTaskAndOrder!!.order != null){
|
||||
TaxiOrderCancelDialog(mActivity,mCurrentTaskAndOrder!!.order!!.orderStatus
|
||||
) { type, reason ->
|
||||
mViewModel.sendUiIntent(UnmannedIntent.CancelOrder(type,reason))
|
||||
}
|
||||
.show()
|
||||
}
|
||||
} else if (v.id == naviToStart.id) {
|
||||
if (mTaxiFragment != null) {
|
||||
|
||||
@@ -38,20 +38,18 @@ public class TaxiOrderCancelDialog extends AlertDialog implements View.OnClickLi
|
||||
|
||||
private static final String TAG = "OCHTaxiOrderCancelDial";
|
||||
protected WeakReference<Context> contextWeakReference;
|
||||
private GridView mContentView;
|
||||
private TextView mCancelCommitTv;
|
||||
private TextView mDialogCancelTv;
|
||||
private String mCurrentReason = "";
|
||||
private ContentAdapter mContentAdapter;
|
||||
private int mOrderStatus;//1:预约单,其他为即时单的状态, 主要是控制乘客上车 乘客下车这几个选项的显示
|
||||
private String[] mContentArrays;
|
||||
private String mOrderNo;
|
||||
|
||||
protected TaxiOrderCancelDialog(Context context, String orderNo, int orderStatus) {
|
||||
private CommitReasonListener mCommitListener = null;
|
||||
|
||||
protected TaxiOrderCancelDialog(Context context, int orderStatus,CommitReasonListener commitListener) {
|
||||
super(context,R.style.OrderCancelDialog);
|
||||
mOrderNo = orderNo;
|
||||
this.mOrderStatus = orderStatus;
|
||||
contextWeakReference = new WeakReference<>(context);
|
||||
this.mCommitListener = commitListener;
|
||||
initReasonArray();
|
||||
}
|
||||
|
||||
@@ -86,15 +84,6 @@ public class TaxiOrderCancelDialog extends AlertDialog implements View.OnClickLi
|
||||
}
|
||||
}
|
||||
|
||||
protected TaxiOrderCancelDialog(Context context, boolean cancelable, OnCancelListener cancelListener) {
|
||||
super(context, cancelable, cancelListener);
|
||||
}
|
||||
|
||||
protected TaxiOrderCancelDialog(Context context, int themeResId) {
|
||||
super(context, themeResId);
|
||||
}
|
||||
|
||||
@RequiresApi(api = Build.VERSION_CODES.M)
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
@@ -122,11 +111,10 @@ public class TaxiOrderCancelDialog extends AlertDialog implements View.OnClickLi
|
||||
window.setAttributes(params);
|
||||
}
|
||||
|
||||
@RequiresApi(api = Build.VERSION_CODES.M)
|
||||
private void initView() {
|
||||
mContentView = findViewById(R.id.module_och_taxi_order_cancel_content_gv);
|
||||
mCancelCommitTv = findViewById(R.id.order_cancel_commit_tv);
|
||||
mDialogCancelTv = findViewById(R.id.order_dialog_cancel_tv);
|
||||
GridView mContentView = findViewById(R.id.module_och_taxi_order_cancel_content_gv);
|
||||
TextView mCancelCommitTv = findViewById(R.id.order_cancel_commit_tv);
|
||||
TextView mDialogCancelTv = findViewById(R.id.order_dialog_cancel_tv);
|
||||
mContentAdapter = new ContentAdapter(contextWeakReference.get(), mContentArrays);
|
||||
mContentView.setAdapter(mContentAdapter);
|
||||
mContentView.setSelector(new ColorDrawable(Color.TRANSPARENT));
|
||||
@@ -140,12 +128,9 @@ public class TaxiOrderCancelDialog extends AlertDialog implements View.OnClickLi
|
||||
public void onClick(View v) {
|
||||
if (v.getId() == R.id.order_cancel_commit_tv) {//bt commit
|
||||
if (!TextUtils.isEmpty(mCurrentReason) && TaxiOrderCancelReasons.getType(mCurrentReason) != 0) {
|
||||
if (1 == mOrderStatus){//订单
|
||||
// mOchTaxiFragmentWeak.get().cancelOrderById(mOrderNo, TaxiOrderCancelReasons.getType(mCurrentReason),mCurrentReason);
|
||||
//todo 取消还未执行的订单
|
||||
}else {//任务
|
||||
//todo 取消正在执行的任务
|
||||
// mOchTaxiFragmentWeak.get().cancelCurOrder(TaxiOrderCancelReasons.getType(mCurrentReason),mCurrentReason);
|
||||
//todo 取消正在执行的任务
|
||||
if (mCommitListener != null){
|
||||
mCommitListener.cancelCurOrder(TaxiOrderCancelReasons.getType(mCurrentReason),mCurrentReason);
|
||||
}
|
||||
dismiss();
|
||||
}else {
|
||||
@@ -161,13 +146,13 @@ public class TaxiOrderCancelDialog extends AlertDialog implements View.OnClickLi
|
||||
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
|
||||
CallerLogger.INSTANCE.d(M_TAXI + TAG,"mCurrentReason ="+ mContentArrays[position]);
|
||||
mCurrentReason = mContentArrays[position];
|
||||
// GradientDrawable background = (GradientDrawable) mCancelBt.getBackground();//GradientDrawable是Drawable的子类
|
||||
// background.setColor(Color.parseColor("#2B6EFF"));
|
||||
// mCancelBt.setTextColor(Color.parseColor("#FFFFFF"));
|
||||
// mCancelBt.setClickable(true);
|
||||
mContentAdapter.notifyCurrentReasons(mCurrentReason);
|
||||
}
|
||||
|
||||
interface CommitReasonListener{
|
||||
void cancelCurOrder(int type, String reason);
|
||||
}
|
||||
|
||||
class ContentAdapter extends BaseAdapter{
|
||||
|
||||
private Context context;
|
||||
|
||||
@@ -8,29 +8,11 @@ import com.mogo.och.taxi.base.IUiIntent
|
||||
*/
|
||||
sealed class UnmannedIntent: IUiIntent{
|
||||
|
||||
//获取接单/暂停接单状态
|
||||
object GetReceivingOrderState : UnmannedIntent()
|
||||
|
||||
//开始接单 、 暂停接单
|
||||
object StartOrPauseReceivingOrder : UnmannedIntent()
|
||||
|
||||
//获取当前任务信息
|
||||
object GetCurrentTask : UnmannedIntent()
|
||||
|
||||
//到站获取下一个执行的任务信息
|
||||
object GetNextTask: UnmannedIntent()
|
||||
|
||||
//开始接单后获取要前往的虚拟站点
|
||||
object GetVirtualStation: UnmannedIntent()
|
||||
|
||||
//开始执行任务
|
||||
object StartTask: UnmannedIntent()
|
||||
|
||||
//到达乘客上车点
|
||||
object ArrivedOrderStartStation: UnmannedIntent()
|
||||
|
||||
//到达乘客下车点
|
||||
object ArrivedOrderEndStation: UnmannedIntent()
|
||||
//取消订单
|
||||
class CancelOrder(type: Int, reason: String) : UnmannedIntent()
|
||||
|
||||
//订单服务完成
|
||||
object JourneyCompleted: UnmannedIntent()
|
||||
|
||||
@@ -18,7 +18,7 @@ sealed class OrderUiState {
|
||||
|
||||
sealed class TaskAndOrderUiState {
|
||||
object INIT : TaskAndOrderUiState()
|
||||
data class TASKANDORDER(val model: QueryCurrentTaskRespBean.Result?) : TaskAndOrderUiState()//演练、接驾、送驾任务
|
||||
data class TASKANDORDER(val model: QueryCurrentTaskRespBean.Result?) : TaskAndOrderUiState()//演练任务、接驾、送驾任务
|
||||
|
||||
data class UNTRUTHTASK(val untruthTask: StartServiceRespBean.Result?) : TaskAndOrderUiState()//伪任务
|
||||
data class ORDERCANCEL(var isCancel: Boolean) : TaskAndOrderUiState()//伪任务
|
||||
|
||||
Reference in New Issue
Block a user