[6.0.0] 重构代码后取消订单问题解决

This commit is contained in:
wangmingjun
2023-08-24 11:42:14 +08:00
committed by zhongchao
parent f5ff9be5dc
commit 7193f9b0c7
2 changed files with 36 additions and 37 deletions

View File

@@ -600,8 +600,8 @@ class TaxiCurrentTaskFragment : BaseFragment(),
activity?.also {
TaxiOrderCancelDialog(
it, mCurrentTaskWithOrder!!.order!!.orderStatus
) {
mViewModel.sendUiIntent(UnmannedIntent.CancelOrder(it))
) {type ->
mViewModel.sendUiIntent(UnmannedIntent.CancelOrder(type))
}.show()
}
}

View File

@@ -1,4 +1,4 @@
package com.mogo.och.taxi.ui.task;
package com.mogo.och.taxi.ui;
import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_TAXI;
@@ -22,17 +22,16 @@ import android.widget.TextView;
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger;
import com.mogo.eagle.core.utilcode.util.ToastUtils;
import com.mogo.och.taxi.constant.TaxiOrderStatusEnum;
import com.mogo.och.taxi.R;
import com.mogo.och.taxi.constant.TaxiOrderCancelReasons;
import com.mogo.och.taxi.constant.TaxiOrderStatusEnum;
import java.lang.ref.WeakReference;
/**
* @author: wangmingjun
* @date: 2021/8/18
*/
public class TaxiOrderCancelDialog extends AlertDialog implements View.OnClickListener, AdapterView.OnItemClickListener {
public class TaxiOrderCancelDialog extends AlertDialog implements View.OnClickListener,AdapterView.OnItemClickListener {
private static final String TAG = "OCHTaxiOrderCancelDial";
protected WeakReference<Context> contextWeakReference;
@@ -40,10 +39,11 @@ public class TaxiOrderCancelDialog extends AlertDialog implements View.OnClickLi
private ContentAdapter mContentAdapter;
private int mOrderStatus;//1预约单其他为即时单的状态 主要是控制乘客上车 乘客下车这几个选项的显示
private String[] mContentArrays;
private CommitReasonListener mCommitListener = null;
public TaxiOrderCancelDialog(Context context, int orderStatus, CommitReasonListener commitListener) {
super(context, R.style.OrderCancelDialog);
public TaxiOrderCancelDialog(Context context, int orderStatus,CommitReasonListener commitListener) {
super(context,R.style.OrderCancelDialog);
this.mOrderStatus = orderStatus;
contextWeakReference = new WeakReference<>(context);
this.mCommitListener = commitListener;
@@ -62,14 +62,14 @@ public class TaxiOrderCancelDialog extends AlertDialog implements View.OnClickLi
case ArriveAtStart:
mContentArrays = new String[]{TaxiOrderCancelReasons.CarBroken.getMsg(), TaxiOrderCancelReasons.DeviceBroken.getMsg(),
TaxiOrderCancelReasons.BatteryLow.getMsg(), TaxiOrderCancelReasons.DriverIsIll.getMsg(),
TaxiOrderCancelReasons.PassengerNotArrive.getMsg(), TaxiOrderCancelReasons.UnContractPassenger.getMsg(),
TaxiOrderCancelReasons.PassengerCancel.getMsg(), TaxiOrderCancelReasons.Other.getMsg()};
TaxiOrderCancelReasons.PassengerNotArrive.getMsg(),TaxiOrderCancelReasons.UnContractPassenger.getMsg(),
TaxiOrderCancelReasons.PassengerCancel.getMsg(),TaxiOrderCancelReasons.Other.getMsg()};
break;
case OnTheWayToEnd:
case ArriveAtEnd:
mContentArrays = new String[]{TaxiOrderCancelReasons.CarBroken.getMsg(), TaxiOrderCancelReasons.DeviceBroken.getMsg(),
TaxiOrderCancelReasons.BatteryLow.getMsg(), TaxiOrderCancelReasons.DriverIsIll.getMsg(),
TaxiOrderCancelReasons.PassengerStopOver.getMsg(), TaxiOrderCancelReasons.Other.getMsg()};
TaxiOrderCancelReasons.PassengerStopOver.getMsg(),TaxiOrderCancelReasons.Other.getMsg()};
break;
default:
mContentArrays = new String[]{TaxiOrderCancelReasons.CarBroken.getMsg(), TaxiOrderCancelReasons.DeviceBroken.getMsg(),
@@ -77,6 +77,7 @@ public class TaxiOrderCancelDialog extends AlertDialog implements View.OnClickLi
TaxiOrderCancelReasons.PassengerNotArrive.getMsg(), TaxiOrderCancelReasons.PassengerStopOver.getMsg(),
TaxiOrderCancelReasons.Other.getMsg()};
break;
}
}
@@ -95,7 +96,7 @@ public class TaxiOrderCancelDialog extends AlertDialog implements View.OnClickLi
private void initWindowView() {
Window window = getWindow();
//dialog padding 去掉
window.getDecorView().setPadding(0, 0, 0, 0);
window.getDecorView().setPadding(0,0,0,0);
window.setDimAmount(0.5f);
window.getDecorView().setBackgroundColor(Color.parseColor("#00FFFFFF"));//设置背景, 不然显示不全
@@ -123,16 +124,16 @@ public class TaxiOrderCancelDialog extends AlertDialog implements View.OnClickLi
@Override
public void onClick(View v) {
if (v.getId() == R.id.order_cancel_commit_tv) {//bt commit
if (!TextUtils.isEmpty(mCurrentReason) && TaxiOrderCancelReasons.getType(mCurrentReason) != 0) {
//todo 取消正在执行的任务
if (mCommitListener != null) {
mCommitListener.cancelCurOrder(TaxiOrderCancelReasons.getType(mCurrentReason));
}
dismiss();
} else {
ToastUtils.showShort("取消原因不能为空");
}
} else if (v.getId() == R.id.order_dialog_cancel_tv) {//close icon
if (!TextUtils.isEmpty(mCurrentReason) && TaxiOrderCancelReasons.getType(mCurrentReason) != 0) {
//todo 取消正在执行的任务
if (mCommitListener != null){
mCommitListener.cancelCurOrder(TaxiOrderCancelReasons.getType(mCurrentReason));
}
dismiss();
}else {
ToastUtils.showShort("取消原因不能为空");
}
}else if (v.getId() == R.id.order_dialog_cancel_tv){//close icon
mCurrentReason = "";
dismiss();
}
@@ -140,27 +141,27 @@ public class TaxiOrderCancelDialog extends AlertDialog implements View.OnClickLi
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
CallerLogger.INSTANCE.d(M_TAXI + TAG, "mCurrentReason =" + mContentArrays[position]);
CallerLogger.INSTANCE.d(M_TAXI + TAG,"mCurrentReason ="+ mContentArrays[position]);
mCurrentReason = mContentArrays[position];
mContentAdapter.notifyCurrentReasons(mCurrentReason);
}
interface CommitReasonListener {
public interface CommitReasonListener{
void cancelCurOrder(int type);
}
class ContentAdapter extends BaseAdapter {
class ContentAdapter extends BaseAdapter{
private Context context;
private String[] datas;
private LayoutInflater layoutInflater;
private String currentReasons = "";
public ContentAdapter(Context context, String[] array) {
public ContentAdapter(Context context, String[] array){
this.context = context;
datas = array;
layoutInflater = LayoutInflater.from(context);
}
@Override
public int getCount() {
return datas.length;
@@ -179,28 +180,26 @@ public class TaxiOrderCancelDialog extends AlertDialog implements View.OnClickLi
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder viewHolder = null;
if (convertView == null) {
convertView = layoutInflater.inflate(R.layout.taxi_order_checkbox_item, null);
if (convertView == null){
convertView = layoutInflater.inflate(R.layout.taxi_order_checkbox_item,null);
viewHolder = new ViewHolder();
viewHolder.checkBoxTv = convertView.findViewById(R.id.item_checkbox);
convertView.setTag(viewHolder);
} else {
}else {
viewHolder = (ViewHolder) convertView.getTag();
}
viewHolder.checkBoxTv.setText(datas[position]);
if (viewHolder.checkBoxTv.getText().toString().equals(currentReasons)) {
viewHolder.checkBoxTv.setCompoundDrawablesWithIntrinsicBounds(context.getResources().getDrawable(R.drawable.shape_size_taxi_selected_btn), null, null, null);
} else {
viewHolder.checkBoxTv.setCompoundDrawablesWithIntrinsicBounds(context.getResources().getDrawable(R.drawable.shape_size_taxi_unselected_btn), null, null, null);
if(viewHolder.checkBoxTv.getText().toString().equals(currentReasons)){
viewHolder.checkBoxTv.setCompoundDrawablesWithIntrinsicBounds(context.getResources().getDrawable(R.drawable.shape_size_taxi_selected_btn),null,null,null);
}else {
viewHolder.checkBoxTv.setCompoundDrawablesWithIntrinsicBounds(context.getResources().getDrawable(R.drawable.shape_size_taxi_unselected_btn),null,null,null);
}
return convertView;
}
public void notifyCurrentReasons(String reason) {
public void notifyCurrentReasons(String reason){
currentReasons = reason;
notifyDataSetChanged();
}
class ViewHolder {
TextView checkBoxTv;
}