package com.driverdispatch.www.customerview;
import android.app.Activity;
import android.arch.lifecycle.ViewModelProviders;
import android.content.Context;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.support.annotation.NonNull;
import android.support.v7.widget.DividerItemDecoration;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.WindowManager;
import android.widget.Button;
import android.widget.EditText;
import android.widget.PopupWindow;
import com.driverdispatch.www.R;
import com.driverdispatch.www.ViewStytle.RecycleViewDivider;
import com.driverdispatch.www.activity.CustomerShiporderDoneActivity;
import com.driverdispatch.www.activity.CustomerShiporderReachActivity;
import com.driverdispatch.www.activity.CustomerShiporderRoutingActivity;
import com.driverdispatch.www.activity.CustomerShiporderWaitLoadingActivity;
import com.driverdispatch.www.adapter.CustomerShiporderWaitLoadingListAdapter;
import com.driverdispatch.www.adapter.SelDriverListAdapter;
import com.driverdispatch.www.entity.CarLengthBean;
import com.driverdispatch.www.entity.CarTypeBean;
import com.driverdispatch.www.entity.SelectDriverBean;
import com.driverdispatch.www.entity.Status;
import com.driverdispatch.www.model.SelDriverListModel;
import com.driverdispatch.www.pojo.ShipOrderAndUnusual;
import com.driverdispatch.www.util.AndroidTool;
import com.driverdispatch.www.util.ToastUtil;
import com.jcodecraeer.xrecyclerview.XRecyclerView;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
/**
-
@date
**/
public class SelDriverPopWindow extends PopupWindow implements View.OnClickListener {
private CustomerShiporderWaitLoadingActivity wlactivity;
private CustomerShiporderRoutingActivity roactivity;
private CustomerShiporderReachActivity retivity;
private CustomerShiporderDoneActivity dtivity;
private Activity activity;
// private List selectDriverBean;
private SelDriverListModel model;
private SelDriver selDriver;
private boolean flag=true;
private Integer holderfresh=0;
private static EditText tvnameseldriver;
private static EditText tvnoseldriver;
private String name;
private String number;
private SelDriverListAdapter selDriverListAdapter = null;
public static Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
Bundle data = msg.getData();
String name = data.getString(“name”);
String number = data.getString(“number”);
tvnameseldriver.setText(name);
tvnoseldriver.setText(number);}
};
public interface SelDriver {
void onSelDriver(String name, String number);
}public SelDriverPopWindow(CustomerShiporderWaitLoadingActivity activity, SelDriver selDriver) {
super(activity);
this.selDriver=selDriver;
this.wlactivity=activity;
initView();
}
public SelDriverPopWindow(CustomerShiporderRoutingActivity activity, SelDriver selDriver) {
super(activity);
this.selDriver=selDriver;
this.roactivity=activity;
initView();
}
public SelDriverPopWindow(CustomerShiporderReachActivity activity, SelDriver selDriver) {
super(activity);
this.selDriver=selDriver;
this.retivity=activity;
initView();
}
public SelDriverPopWindow(CustomerShiporderDoneActivity activity, SelDriver selDriver) {
super(activity);
this.selDriver=selDriver;
this.dtivity=activity;
initView();
}private void initView() {
View view=null;
if (wlactivity != null){
activity = wlactivity;
view = LayoutInflater.from(wlactivity).inflate(R.layout.pop_driver_sel, null);
selDriverListAdapter = new SelDriverListAdapter(wlactivity,new ArrayList<>());
model = ViewModelProviders.of(wlactivity).get(SelDriverListModel.class);
model.mLiveDriverData.observe(wlactivity, listResource -> {
if (listResource == null) return;
if (listResource.status == Status.SUCCESS) {
if (listResource.data != null) {
holderfresh++;
if (listResource.retry) {
if (flag){
selDriverListAdapter.setData(listResource.data);
}else{
selDriverListAdapter.addData(listResource.data);
}
if (holderfresh == 1){
model.getSelDriverData(AndroidTool.getIMEI(activity),“1”);
}
} else {
if (flag){
selDriverListAdapter.setData(listResource.data);
}else{
selDriverListAdapter.addData(listResource.data);
}
if (holderfresh == 1){
model.getSelDriverData(AndroidTool.getIMEI(activity),“1”);
}
}
} else {
ToastUtil.showToast(activity, “没有数据了!”);
}
} else {
ToastUtil.showToast(activity, listResource.msg);
}}); } if (roactivity != null){ activity = roactivity; view = LayoutInflater.from(roactivity).inflate(R.layout.pop_driver_sel, null); selDriverListAdapter = new SelDriverListAdapter(roactivity,new ArrayList<>()); model = ViewModelProviders.of(roactivity).get(SelDriverListModel.class); model.mLiveDriverData.observe(roactivity, listResource -> { if (listResource == null) return; if (listResource.status == Status.SUCCESS) { if (listResource.data != null) { holderfresh++; if (listResource.retry) { if (flag){ selDriverListAdapter.setData(listResource.data); }else{ selDriverListAdapter.addData(listResource.data); } if (holderfresh == 1){ model.getSelDriverData(AndroidTool.getIMEI(activity),"1"); } } else { if (flag){ selDriverListAdapter.setData(listResource.data); }else{ selDriverListAdapter.addData(listResource.data); } if (holderfresh == 1){ model.getSelDriverData(AndroidTool.getIMEI(activity),"1"); } } } else { ToastUtil.showToast(activity, "没有数据了!"); } } else { ToastUtil.showToast(activity, listResource.msg); } }); } if (retivity != null){ activity = retivity; view = LayoutInflater.from(retivity).inflate(R.layout.pop_driver_sel, null); selDriverListAdapter = new SelDriverListAdapter(retivity,new ArrayList<>()); model = ViewModelProviders.of(retivity).get(SelDriverListModel.class); model.mLiveDriverData.observe(retivity, listResource -> { if (listResource == null) return; if (listResource.status == Status.SUCCESS) { if (listResource.data != null) { holderfresh++; if (listResource.retry) { if (flag){ selDriverListAdapter.setData(listResource.data); }else{ selDriverListAdapter.addData(listResource.data); } if (holderfresh == 1){ model.getSelDriverData(AndroidTool.getIMEI(activity),"1"); } } else { if (flag){ selDriverListAdapter.setData(listResource.data); }else{ selDriverListAdapter.addData(listResource.data); } if (holderfresh == 1){ model.getSelDriverData(AndroidTool.getIMEI(activity),"1"); } } } else { ToastUtil.showToast(activity, "没有数据了!"); } } else { ToastUtil.showToast(activity, listResource.msg); } }); } if (dtivity != null){ activity = dtivity; view = LayoutInflater.from(dtivity).inflate(R.layout.pop_driver_sel, null); selDriverListAdapter = new SelDriverListAdapter(dtivity,new ArrayList<>()); model = ViewModelProviders.of(dtivity).get(SelDriverListModel.class); model.mLiveDriverData.observe(dtivity, listResource -> { if (listResource == null) return; if (listResource.status == Status.SUCCESS) { if (listResource.data != null) { holderfresh++; if (listResource.retry) { if (flag){ selDriverListAdapter.setData(listResource.data); }else{ selDriverListAdapter.addData(listResource.data); } if (holderfresh == 1){ model.getSelDriverData(AndroidTool.getIMEI(activity),"1"); } } else { if (flag){ selDriverListAdapter.setData(listResource.data); }else{ selDriverListAdapter.addData(listResource.data); } if (holderfresh == 1){ model.getSelDriverData(AndroidTool.getIMEI(activity),"1"); } } } else { ToastUtil.showToast(activity, "没有数据了!"); } } else { ToastUtil.showToast(activity, listResource.msg); } }); } Button btncancelseldriver = view.findViewById(R.id.btncancelseldriver); tvnameseldriver = view.findViewById(R.id.tvnameseldriver); tvnoseldriver = view.findViewById(R.id.tvnoseldriver); XRecyclerView xrseldriver = view.findViewById(R.id.xrseldriver); Button btnsubmitseldriver = view.findViewById(R.id.btnsubmitseldriver); btncancelseldriver.setOnClickListener(this); btnsubmitseldriver.setOnClickListener(this); //tvTitle.setText("请选择车型车长"); xrseldriver.setPullRefreshEnabled(true); xrseldriver.setLoadingMoreEnabled(true); //xrseldriver.addFootView(View view, int footerHeight) CustomDecoration dividerItemDecoration = new CustomDecoration(activity, DividerItemDecoration.VERTICAL, R.drawable.message_divider_bg, 0); xrseldriver.addItemDecoration(dividerItemDecoration); LinearLayoutManager manager = new LinearLayoutManager(activity); manager.setOrientation(LinearLayoutManager.VERTICAL); xrseldriver.setLayoutManager(manager); xrseldriver.addItemDecoration(new RecycleViewDivider( activity, LinearLayoutManager.VERTICAL,1,"#D8D8EB")); xrseldriver.setAdapter(selDriverListAdapter); model.getSelDriverData(AndroidTool.getIMEI(activity),"1"); xrseldriver.setLoadingListener(new XRecyclerView.LoadingListener (){ private int i=1; @Override public void onRefresh() { i=1; flag=true; model.getSelDriverData(AndroidTool.getIMEI(activity),i+""); //刷新 xrseldriver.refreshComplete(); }
//这个会失效
@Override
public void onLoadMore() {
flag = false;
model.getSelDriverData(AndroidTool.getIMEI(activity),(++i)+"");
//加载更多
xrseldriver.loadMoreComplete();
}
});
//用这个实现上拉 加载更多数据
xrseldriver.addOnScrollListener(new RecyclerView.OnScrollListener() {
private int i=1;
@Override
public void onScrollStateChanged(@NonNull RecyclerView recyclerView, int newState) {
super.onScrollStateChanged(recyclerView, newState);
if (newState == RecyclerView.SCROLL_STATE_IDLE) {
int lastVisiblePosition = manager.findLastVisibleItemPosition();
if (lastVisiblePosition >= manager.getItemCount() - 1) {
flag = false;
model.getSelDriverData(AndroidTool.getIMEI(activity),(++i)+"");
//加载更多
xrseldriver.loadMoreComplete();
}
}
}
});
//添加到popwidow中
setWidth(WindowManager.LayoutParams.MATCH_PARENT);
setHeight(WindowManager.LayoutParams.WRAP_CONTENT);
setOutsideTouchable(true);
setContentView(view);
}
@Override
public void onClick(View v) {
dismiss();
switch (v.getId()) {
case R.id.btnsubmitseldriver:
name = tvnameseldriver.getText().toString();
number = tvnoseldriver.getText().toString();
if (number != null && !"".equals(number.trim())){
number=number.trim();
}
if (name != null && !"".equals(name.trim())) {
name = name.trim();
}
if (selDriver != null ) {
selDriver.onSelDriver(name,number);
}
break;
case R.id.btncancelseldriver:
ToastUtil.showToast(activity, "cancel");
break;
}
}
}