package com.dayu.pipirrapp.fragment;
|
|
import android.content.Intent;
|
import android.graphics.Typeface;
|
import android.os.Bundle;
|
import android.text.TextUtils;
|
import android.view.LayoutInflater;
|
import android.view.View;
|
import android.view.ViewGroup;
|
|
import androidx.activity.result.ActivityResultLauncher;
|
import androidx.activity.result.contract.ActivityResultContracts;
|
import androidx.annotation.NonNull;
|
import androidx.annotation.Nullable;
|
import androidx.recyclerview.widget.LinearLayoutManager;
|
|
import com.dayu.pipirrapp.MyApplication;
|
import com.dayu.pipirrapp.R;
|
import com.dayu.pipirrapp.activity.OrderDetailActivity;
|
import com.dayu.pipirrapp.adapter.OrderAdapter;
|
import com.dayu.pipirrapp.bean.net.OrderListResult;
|
import com.dayu.pipirrapp.databinding.FragmentOrderBinding;
|
import com.dayu.pipirrapp.net.ApiManager;
|
import com.dayu.pipirrapp.net.BaseResponse;
|
import com.dayu.pipirrapp.net.Constants;
|
import com.dayu.pipirrapp.net.subscribers.SubscriberListener;
|
import com.dayu.pipirrapp.utils.CommonKeyName;
|
import com.dayu.pipirrapp.utils.ToastUtil;
|
import com.jeremyliao.liveeventbus.LiveEventBus;
|
import com.scwang.smart.refresh.footer.ClassicsFooter;
|
import com.scwang.smart.refresh.header.ClassicsHeader;
|
import com.scwang.smart.refresh.layout.api.RefreshLayout;
|
|
import java.util.ArrayList;
|
import java.util.HashMap;
|
import java.util.List;
|
import java.util.Map;
|
|
/**
|
* author: zuo
|
* Date: 2023/12/20
|
* Time: 10:12
|
* 备注:首页
|
*/
|
public class OrderFragment extends BaseFragment {
|
public static final int RESULT_REFRESH = 1001;
|
|
private final int STATE_DONE = 2;
|
private final int STATE_UNDONE = 1;
|
|
FragmentOrderBinding binding;
|
OrderAdapter mAdapter;
|
OrderAdapter mDoneAdapter;
|
int page = 1;
|
int pageSize = 10;
|
int state = 1;
|
List<OrderListResult.Data> recordsListDone = new ArrayList<>();
|
List<OrderListResult.Data> recordsList = new ArrayList<>();
|
RefreshLayout myRefreshLayout;
|
|
private ActivityResultLauncher<Intent> activityResultLauncher =
|
registerForActivityResult(
|
new ActivityResultContracts.StartActivityForResult(),
|
result -> {
|
if (result.getResultCode() == RESULT_REFRESH) {
|
myRefreshLayout.autoRefresh();
|
}
|
});
|
|
/**
|
* 设置天气相关信息
|
*
|
* @param
|
*/
|
// private void setWeatherData(WeatherResponse data) {
|
// try {
|
// if (data.getResults() != null) {
|
// binding.cityName.setText(data.getResults()[0].getLocation().getName());
|
// binding.time.setText(data.getDate());
|
// int weatherImg = ImageUtils.getWeatherDrawable(data.getResults()[0].getDaily()[0].getCode_day());
|
// if (weatherImg != 0) {
|
// binding.weatherImg.setImageDrawable(getResources().getDrawable(weatherImg));
|
// }
|
// binding.weatherName.setText(data.getResults()[0].getDaily()[0].getText_day());
|
// binding.weatherTemperature.setText(data.getResults()[0].getDaily()[0].getLow() + "°C ~ " + data.getResults()[0].getDaily()[0].getHigh() + "°C");
|
// }
|
// } catch (Exception e) {
|
// e.printStackTrace();
|
// CrashReport.postCatchedException(e);
|
// }
|
// }
|
@Override
|
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
|
binding = FragmentOrderBinding.inflate(inflater, container, false);
|
initView();
|
//获取定位服务传过来的坐标点
|
LiveEventBus.get(CommonKeyName.MQTTData).observeForever(o -> {
|
});
|
|
return binding.getRoot();
|
}
|
|
|
void initView() {
|
//未完成
|
binding.manageStateProgress.setOnClickListener(v -> {
|
chooseStateView(true);
|
state = STATE_UNDONE;//1 未开始 2 已完成
|
|
});
|
//已完成
|
binding.manageStateFinish.setOnClickListener(v -> {
|
chooseStateView(false);
|
state = STATE_DONE;//1 未开始 2 已完成
|
});
|
//未完成
|
myRefreshLayout = (RefreshLayout) binding.refreshLayout;
|
myRefreshLayout.setRefreshHeader(new ClassicsHeader(this.getContext()));
|
myRefreshLayout.setRefreshFooter(new ClassicsFooter(this.getContext()));
|
|
myRefreshLayout.setOnRefreshListener(refreshlayout -> {
|
// refreshlayout.finishRefresh(2000/*,false*/);//传入false表示刷新失败
|
recordsList.clear();
|
page = 0;
|
getMarkerData(refreshlayout, true, STATE_UNDONE);
|
});
|
myRefreshLayout.setOnLoadMoreListener(refreshlayout -> {
|
page = page + 1;
|
getMarkerData(refreshlayout, false, STATE_UNDONE);
|
});
|
|
mAdapter = new OrderAdapter(this.getContext(), recordsList, this);
|
LinearLayoutManager layoutManager = new LinearLayoutManager(this.getContext());
|
binding.recyclerView.setLayoutManager(layoutManager);
|
binding.recyclerView.setAdapter(mAdapter);
|
getMarkerData(myRefreshLayout, true, STATE_UNDONE);
|
//已完成
|
RefreshLayout myRefreshLayoutDone = (RefreshLayout) binding.refreshLayoutDone;
|
myRefreshLayoutDone.setRefreshHeader(new ClassicsHeader(this.getContext()));
|
myRefreshLayoutDone.setRefreshFooter(new ClassicsFooter(this.getContext()));
|
myRefreshLayoutDone.setOnRefreshListener(refreshlayout -> {
|
// refreshlayout.finishRefresh(2000/*,false*/);//传入false表示刷新失败
|
recordsListDone.clear();
|
page = 0;
|
getMarkerData(refreshlayout, true, STATE_DONE);
|
});
|
myRefreshLayoutDone.setOnLoadMoreListener(refreshlayout -> {
|
page = page + 1;
|
getMarkerData(refreshlayout, false, STATE_DONE);
|
});
|
mDoneAdapter = new OrderAdapter(this.getContext(), recordsListDone, this);
|
LinearLayoutManager layoutManagerDone = new LinearLayoutManager(this.getContext());
|
binding.recyclerViewDone.setLayoutManager(layoutManagerDone);
|
binding.recyclerViewDone.setAdapter(mDoneAdapter);
|
getMarkerData(myRefreshLayoutDone, true, 2);
|
}
|
|
|
@Override
|
public void onStart() {
|
super.onStart();
|
}
|
|
/**
|
* 获取未删除工单
|
*/
|
private void getMarkerData(RefreshLayout refreshlayout, boolean isRefresh, int state) {
|
|
Map<String, Object> params = new HashMap<>();
|
if (isRefresh) {
|
page = 1;
|
if (state == STATE_UNDONE) {
|
recordsList.clear();
|
} else {
|
recordsListDone.clear();
|
}
|
}
|
params.put("pageSize", pageSize);
|
params.put("pageCurr", page);
|
params.put("state", state);
|
params.put("inspectorId", MyApplication.myApplication.userId);
|
|
ApiManager.getInstance().requestGetHideLoading(this.getContext(), Constants.BASE_URL + "/app/workOrder/getWorkOrders", OrderListResult.class, params, new SubscriberListener<BaseResponse<OrderListResult>>() {
|
@Override
|
public void onNext(BaseResponse<OrderListResult> t) {
|
if (t.isSuccess()) {
|
if (t.isSuccess()) {
|
if (t.getContent().getObj() != null && t.getContent().getObj().size() > 0) {
|
if (state == STATE_UNDONE) {
|
recordsList.addAll(t.getContent().getObj());
|
} else {
|
recordsListDone.addAll(t.getContent().getObj());
|
}
|
if (t.getContent().getPageTotal() == page) {
|
refreshlayout.finishLoadMoreWithNoMoreData();
|
}
|
} else {
|
refreshlayout.finishLoadMoreWithNoMoreData();
|
}
|
}
|
} else {
|
ToastUtil.showToast(OrderFragment.this.getContext(), t.getMsg());
|
}
|
}
|
|
@Override
|
public void onCloose() {
|
super.onCloose();
|
layoutFinish(refreshlayout, isRefresh);
|
if (state == STATE_UNDONE) {
|
mAdapter.notifyDataSetChanged();
|
} else {
|
mDoneAdapter.notifyDataSetChanged();
|
}
|
}
|
|
});
|
}
|
|
public void startDetail(String workOrderId, String proResultId) {
|
Intent intent = new Intent(this.getContext(), OrderDetailActivity.class);
|
intent.putExtra("workOrderId", workOrderId);
|
if (!TextUtils.isEmpty(proResultId)) {
|
intent.putExtra("proResultId", proResultId);
|
}
|
activityResultLauncher.launch(intent);
|
}
|
|
|
/**
|
* 修改进度状态
|
*
|
* @param state true为未完成 false为已完成
|
*/
|
|
void chooseStateView(boolean state) {
|
if (state) {
|
binding.manageStateProgress.setTextColor(getResources().getColor(R.color.title_color));
|
binding.manageStateProgress.setBackground(getResources().getDrawable(R.drawable.ic_choose_bg_whit));
|
binding.manageStateProgress.setTypeface(Typeface.defaultFromStyle(Typeface.BOLD));
|
binding.manageStateFinish.setTextColor(getResources().getColor(R.color.black));
|
binding.manageStateFinish.setBackground(getResources().getDrawable(R.color.title_choose_bg));
|
binding.manageStateFinish.setTypeface(Typeface.defaultFromStyle(Typeface.NORMAL));
|
binding.refreshLayout.setVisibility(View.VISIBLE);
|
binding.refreshLayoutDone.setVisibility(View.GONE);
|
} else {
|
binding.manageStateFinish.setTextColor(getResources().getColor(R.color.title_color));
|
binding.manageStateFinish.setBackground(getResources().getDrawable(R.drawable.ic_choose_bg_whit));
|
binding.manageStateFinish.setTypeface(Typeface.defaultFromStyle(Typeface.BOLD));
|
binding.manageStateProgress.setTextColor(getResources().getColor(R.color.black));
|
binding.manageStateProgress.setBackground(getResources().getDrawable(R.color.title_choose_bg));
|
binding.manageStateProgress.setTypeface(Typeface.defaultFromStyle(Typeface.NORMAL));
|
binding.refreshLayout.setVisibility(View.GONE);
|
binding.refreshLayoutDone.setVisibility(View.VISIBLE);
|
}
|
}
|
|
|
}
|