[Taxi/Bus Driver 2.5.1] taxi 订单页优化

This commit is contained in:
wangmingjun
2022-02-16 17:42:06 +08:00
parent 2b8f45bb10
commit a4765905fa
4 changed files with 81 additions and 18 deletions

View File

@@ -68,13 +68,18 @@ public class OCHTaxiPersonalDialogFragment extends DialogFragment implements Vie
private static OCHTaxiFragment mTaxiFragment;
private static boolean serverHadNoData = false;
public OCHTaxiPersonalDialogFragment(){
}
public OCHTaxiPersonalDialogFragment(OCHTaxiFragment taxiFragment){
mTaxiFragment = taxiFragment;
}
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
getDialog().requestWindowFeature(Window.FEATURE_NO_TITLE);
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container,
@Nullable Bundle savedInstanceState) {
// getDialog().requestWindowFeature(Window.FEATURE_NO_TITLE);
View view = inflater.inflate(R.layout.taxi_orders_list_view, container, false);
initView(view);
return view;
@@ -87,6 +92,8 @@ public class OCHTaxiPersonalDialogFragment extends DialogFragment implements Vie
getDialog().setCanceledOnTouchOutside(true);
Window window = getDialog().getWindow();
//dialog padding 去掉
window.getDecorView().setPadding(0,0,0,0);
window.setDimAmount(0f);
WindowManager.LayoutParams params = window.getAttributes();
params.x = 0;
params.y = 0;
@@ -94,12 +101,13 @@ public class OCHTaxiPersonalDialogFragment extends DialogFragment implements Vie
Point point = new Point();
windowManager.getDefaultDisplay().getSize(point);
params.width = (int)(point.x * 0.375);
params.height = point.y;
Log.d(TAG,"width= "+params.width+"height= "+params.height);
params.height = ViewGroup.LayoutParams.MATCH_PARENT;
window.setAttributes(params);
window.getDecorView().setBackgroundColor(Color.parseColor("#00FFFFFF"));//设置背景, 不然显示不全
//设置背景, 不然显示不全
window.getDecorView().setBackgroundColor(Color.parseColor("#00FFFFFF"));
window.setGravity(Gravity.LEFT|Gravity.BOTTOM);
}
private void initView(View view) {
initOperationTabDatas(view);
mCloseIv = view.findViewById(R.id.module_och_taxi_order_list_close_iv);
@@ -178,15 +186,28 @@ public class OCHTaxiPersonalDialogFragment extends DialogFragment implements Vie
public void onPageScrollStateChanged(int state) {
}
});
mOperationViewPager.setAdapter(new OrdersOperationFragmentAdapter(getChildFragmentManager(), FragmentPagerAdapter.BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT));
mOperationViewPager.setAdapter(new OrdersOperationFragmentAdapter(getChildFragmentManager()
, FragmentPagerAdapter.BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT));
fragments.get(0).setmType(0);
mTaxiFragment.queryDriverServiceData();
if (mTaxiFragment == null){
dismiss();
}else {
mTaxiFragment.queryDriverServiceData();
}
}
/**
* 更新运营数据 时间和订单数
* @param dailyTimeDuration
* @param dailyOrderNum
*/
public void onServiceDataUpdate(long dailyTimeDuration, long dailyOrderNum){
for (int i=0; i< fragments.size();i++){
fragments.get(i).updateData(dailyTimeDuration,dailyOrderNum);
}
}
private void changeOperationTabLayoutTabUI(TabLayout.Tab tab, boolean isSelected) {
TextView textView = (TextView) tab.getCustomView().findViewById(R.id.operation_tab_title);
ImageView imageView = (ImageView) tab.getCustomView().findViewById(R.id.operation_tab_line_iv);
@@ -232,9 +253,20 @@ public class OCHTaxiPersonalDialogFragment extends DialogFragment implements Vie
});
mOrdersRv.setAdapter(mAdapter);
}
/**
* 请求订单数据
* @param page
* @param size
*/
private void requestOrdersList(int page, int size){
mTaxiFragment.queryOrdersList(page,size);
}
/**
* 订单数据结果返回
* @param ordersList
*/
public void onOrdersListPageRefresh(List<OrderQueryRespBean.Result> ordersList){
if (null == ordersList && mNextPage == 0){//无数据
mOrdersRv.setVisibility(View.GONE);
@@ -256,6 +288,7 @@ public class OCHTaxiPersonalDialogFragment extends DialogFragment implements Vie
mAdapter.notifyDataSetChanged();
mNextPage = mNextPage +1;
}
class OrderAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder>{
private static final int ORDER_DETAIL_ITEM = 0;
private static final int DAY_GROUP_ITEM = 1;
@@ -270,11 +303,13 @@ public class OCHTaxiPersonalDialogFragment extends DialogFragment implements Vie
@Override
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
if (viewType == ORDER_DETAIL_ITEM){
View view = LayoutInflater.from(context).inflate(R.layout.taxi_orders_list_item,parent,false);
View view = LayoutInflater.from(context).inflate(R.layout.taxi_orders_list_item,parent
,false);
OrderDetailViewHolder viewHolder = new OrderDetailViewHolder(view);
return viewHolder;
}else if (viewType == DAY_GROUP_ITEM){
View view = LayoutInflater.from(context).inflate(R.layout.taxi_orders_list_day_item,parent,false);
View view = LayoutInflater.from(context).inflate(R.layout.taxi_orders_list_day_item,parent
,false);
DayGroupViewHolder viewHolder = new DayGroupViewHolder(view);
return viewHolder;
}
@@ -289,8 +324,9 @@ public class OCHTaxiPersonalDialogFragment extends DialogFragment implements Vie
if (holder instanceof DayGroupViewHolder){
DayGroupViewHolder groupViewHolder = (DayGroupViewHolder)holder;
groupViewHolder.dayGroupTv.setText(OchTaxiUtils.getYMDTime(queryRespBean.createTime));
bindOrderDetailData(queryRespBean,groupViewHolder.orderTimeTv,groupViewHolder.startStationTv,groupViewHolder.endStationTv,
groupViewHolder.orderStatusBt,groupViewHolder.orderTypeBt,groupViewHolder.orderNumTv);
bindOrderDetailData(queryRespBean,groupViewHolder.orderTimeTv,groupViewHolder.startStationTv
, groupViewHolder.endStationTv, groupViewHolder.orderStatusBt,groupViewHolder.orderTypeBt
,groupViewHolder.orderNumTv);
if (isNoLineItem(position)){
groupViewHolder.dividerLine.setVisibility(View.VISIBLE);
}else {
@@ -303,7 +339,8 @@ public class OCHTaxiPersonalDialogFragment extends DialogFragment implements Vie
}
}else if (holder instanceof OrderDetailViewHolder){
OrderDetailViewHolder detailViewHolder = (OrderDetailViewHolder)holder;
bindOrderDetailData(queryRespBean,detailViewHolder.orderTimeTv,detailViewHolder.startStationTv,detailViewHolder.endStationTv,
bindOrderDetailData(queryRespBean,detailViewHolder.orderTimeTv,
detailViewHolder.startStationTv,detailViewHolder.endStationTv,
detailViewHolder.orderStatusBt,detailViewHolder.orderTypeBt,detailViewHolder.orderNumTv);
if (isNoLineItem(position)){
detailViewHolder.dividerLine.setVisibility(View.VISIBLE);
@@ -352,8 +389,10 @@ public class OCHTaxiPersonalDialogFragment extends DialogFragment implements Vie
public int getItemCount() {
return orders.size();
}
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
private void bindOrderDetailData(OrderQueryRespBean.Result queryRespBean, TextView orderTimeTv, TextView startStationTv, TextView endStationTv,
private void bindOrderDetailData(OrderQueryRespBean.Result queryRespBean, TextView orderTimeTv,
TextView startStationTv, TextView endStationTv,
Button orderStatusBt, Button orderTypeBt, TextView orderNumTv){
Calendar calendar= Calendar.getInstance();
calendar.setTimeInMillis(queryRespBean.createTime);
@@ -364,6 +403,7 @@ public class OCHTaxiPersonalDialogFragment extends DialogFragment implements Vie
orderTypeBt.setText(getOrderType(queryRespBean.orderType,orderTypeBt));
orderNumTv.setText("订单编号:"+String.valueOf(queryRespBean.orderId));
}
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
private String getOrderStatus(int status, Button button){
OrderStatusEnum orderStatus = OrderStatusEnum.valueOf(status);
@@ -379,6 +419,7 @@ public class OCHTaxiPersonalDialogFragment extends DialogFragment implements Vie
return "服务中";
}
}
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
private String getOrderType(int type, Button button){
if (type == OrderTypeEnum.Reserved.getType()){
@@ -391,6 +432,7 @@ public class OCHTaxiPersonalDialogFragment extends DialogFragment implements Vie
}
}
class OrderDetailViewHolder extends RecyclerView.ViewHolder{
protected TextView orderTimeTv;
@@ -420,6 +462,7 @@ public class OCHTaxiPersonalDialogFragment extends DialogFragment implements Vie
}
}
}
class DayGroupViewHolder extends OrderDetailViewHolder{
private TextView dayGroupTv;

View File

@@ -79,7 +79,7 @@
android:id="@+id/module_och_taxi_order_list"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingBottom="94px">
android:paddingBottom="50px">
</androidx.recyclerview.widget.RecyclerView>
</RelativeLayout>

View File

@@ -68,13 +68,15 @@ public class OCHTaxiPersonalDialogFragment extends DialogFragment implements Vie
private static OCHTaxiFragment mTaxiFragment;
private static boolean serverHadNoData = false;
public OCHTaxiPersonalDialogFragment(){
}
public OCHTaxiPersonalDialogFragment(OCHTaxiFragment taxiFragment){
mTaxiFragment = taxiFragment;
}
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
getDialog().requestWindowFeature(Window.FEATURE_NO_TITLE);
View view = inflater.inflate(R.layout.taxi_orders_list_view, container, false);
initView(view);
return view;
@@ -87,6 +89,8 @@ public class OCHTaxiPersonalDialogFragment extends DialogFragment implements Vie
getDialog().setCanceledOnTouchOutside(true);
Window window = getDialog().getWindow();
//dialog padding 去掉
window.getDecorView().setPadding(0,0,0,0);
window.setDimAmount(0f);
WindowManager.LayoutParams params = window.getAttributes();
params.x = 0;
params.y = 0;
@@ -94,7 +98,7 @@ public class OCHTaxiPersonalDialogFragment extends DialogFragment implements Vie
Point point = new Point();
windowManager.getDefaultDisplay().getSize(point);
params.width = (int)(point.x * 0.375);
params.height = point.y;
params.height = ViewGroup.LayoutParams.MATCH_PARENT;
Log.d(TAG,"width= "+params.width+"height= "+params.height);
window.setAttributes(params);
window.getDecorView().setBackgroundColor(Color.parseColor("#00FFFFFF"));//设置背景, 不然显示不全
@@ -180,13 +184,20 @@ public class OCHTaxiPersonalDialogFragment extends DialogFragment implements Vie
});
mOperationViewPager.setAdapter(new OrdersOperationFragmentAdapter(getChildFragmentManager(), FragmentPagerAdapter.BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT));
fragments.get(0).setmType(0);
mTaxiFragment.queryDriverServiceData();
if (mTaxiFragment == null){
dismiss();
}else {
mTaxiFragment.queryDriverServiceData();
}
}
public void onServiceDataUpdate(long dailyTimeDuration, long dailyOrderNum){
for (int i=0; i< fragments.size();i++){
fragments.get(i).updateData(dailyTimeDuration,dailyOrderNum);
}
}
private void changeOperationTabLayoutTabUI(TabLayout.Tab tab, boolean isSelected) {
TextView textView = (TextView) tab.getCustomView().findViewById(R.id.operation_tab_title);
ImageView imageView = (ImageView) tab.getCustomView().findViewById(R.id.operation_tab_line_iv);
@@ -232,9 +243,11 @@ public class OCHTaxiPersonalDialogFragment extends DialogFragment implements Vie
});
mOrdersRv.setAdapter(mAdapter);
}
private void requestOrdersList(int page, int size){
mTaxiFragment.queryOrdersList(page,size);
}
public void onOrdersListPageRefresh(List<OrderQueryRespBean.Result> ordersList){
if (null == ordersList && mNextPage == 0){//无数据
mOrdersRv.setVisibility(View.GONE);
@@ -256,6 +269,7 @@ public class OCHTaxiPersonalDialogFragment extends DialogFragment implements Vie
mAdapter.notifyDataSetChanged();
mNextPage = mNextPage +1;
}
class OrderAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder>{
private static final int ORDER_DETAIL_ITEM = 0;
private static final int DAY_GROUP_ITEM = 1;
@@ -352,6 +366,7 @@ public class OCHTaxiPersonalDialogFragment extends DialogFragment implements Vie
public int getItemCount() {
return orders.size();
}
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
private void bindOrderDetailData(OrderQueryRespBean.Result queryRespBean, TextView orderTimeTv, TextView startStationTv, TextView endStationTv,
Button orderStatusBt, Button orderTypeBt, TextView orderNumTv){
@@ -364,6 +379,7 @@ public class OCHTaxiPersonalDialogFragment extends DialogFragment implements Vie
orderTypeBt.setText(getOrderType(queryRespBean.orderType,orderTypeBt));
orderNumTv.setText("订单编号:"+String.valueOf(queryRespBean.orderId));
}
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
private String getOrderStatus(int status, Button button){
OrderStatusEnum orderStatus = OrderStatusEnum.valueOf(status);
@@ -379,6 +395,7 @@ public class OCHTaxiPersonalDialogFragment extends DialogFragment implements Vie
return "服务中";
}
}
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
private String getOrderType(int type, Button button){
if (type == OrderTypeEnum.Reserved.getType()){
@@ -391,6 +408,7 @@ public class OCHTaxiPersonalDialogFragment extends DialogFragment implements Vie
}
}
class OrderDetailViewHolder extends RecyclerView.ViewHolder{
protected TextView orderTimeTv;
@@ -420,6 +438,7 @@ public class OCHTaxiPersonalDialogFragment extends DialogFragment implements Vie
}
}
}
class DayGroupViewHolder extends OrderDetailViewHolder{
private TextView dayGroupTv;

View File

@@ -79,10 +79,11 @@
android:id="@+id/module_och_taxi_order_list"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingBottom="94px">
android:paddingBottom="50px">
</androidx.recyclerview.widget.RecyclerView>
</RelativeLayout>
<include
android:layout_width="match_parent"
android:layout_height="wrap_content"