[6.0.0] 任务和UI调整

This commit is contained in:
wangmingjun
2023-08-11 16:39:24 +08:00
parent a760dba176
commit f8797b4d48
7 changed files with 63 additions and 69 deletions

View File

@@ -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),

View File

@@ -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

View File

@@ -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

View File

@@ -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) {

View File

@@ -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;

View File

@@ -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()

View File

@@ -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()//伪任务