package com.dayu.pipirrapp.activity;
|
|
import android.content.Intent;
|
import android.os.Bundle;
|
import android.view.LayoutInflater;
|
|
import androidx.activity.result.ActivityResult;
|
import androidx.activity.result.ActivityResultCallback;
|
import androidx.activity.result.ActivityResultLauncher;
|
import androidx.activity.result.contract.ActivityResultContracts;
|
import androidx.annotation.Nullable;
|
import androidx.recyclerview.widget.LinearLayoutManager;
|
|
import com.dayu.pipirrapp.MyApplication;
|
import com.dayu.pipirrapp.adapter.IssueAdapter;
|
import com.dayu.pipirrapp.bean.net.IssueListResult;
|
import com.dayu.pipirrapp.bean.net.IssueResult;
|
import com.dayu.pipirrapp.databinding.ActivityIssueListBinding;
|
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.ToastUtil;
|
import com.dayu.pipirrapp.view.TitleBar;
|
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;
|
|
/**
|
* IssueListActivity -
|
*
|
* @author zuoxiao
|
* @version 1.0
|
* @since 2024-12-10
|
*/
|
public class IssueListActivity extends BaseActivity {
|
public static final int RESULT_REFRESH = 1001;
|
|
|
ActivityIssueListBinding binding;
|
RefreshLayout myRefreshLayout;
|
List<IssueResult> recordsList = new ArrayList<>();
|
IssueAdapter mAdapter;
|
|
private final ActivityResultLauncher<Intent> activityResultLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), new ActivityResultCallback<ActivityResult>() {
|
@Override
|
public void onActivityResult(ActivityResult result) {
|
if (result.getResultCode() == RESULT_REFRESH) {
|
myRefreshLayout.autoRefresh();
|
}
|
}
|
});
|
|
@Override
|
protected void onCreate(@Nullable Bundle savedInstanceState) {
|
super.onCreate(savedInstanceState);
|
binding = ActivityIssueListBinding.inflate(LayoutInflater.from(this));
|
setContentView(binding.getRoot());
|
initView();
|
getData(true);
|
}
|
|
private void initView() {
|
new TitleBar(this).setTitleText("问题列表").setLeftIco().setLeftIcoListening(v -> IssueListActivity.this.finish());
|
myRefreshLayout = (RefreshLayout) binding.refreshLayout;
|
myRefreshLayout.setRefreshHeader(new ClassicsHeader(this));
|
myRefreshLayout.setRefreshFooter(new ClassicsFooter(this));
|
|
myRefreshLayout.setOnRefreshListener(refreshlayout -> {
|
// refreshlayout.finishRefresh(2000/*,false*/);//传入false表示刷新失败
|
recordsList.clear();
|
page = 0;
|
getData(true);
|
});
|
myRefreshLayout.setOnLoadMoreListener(refreshlayout -> {
|
page = page + 1;
|
getData(false);
|
});
|
|
mAdapter = new IssueAdapter(this, recordsList);
|
LinearLayoutManager layoutManager = new LinearLayoutManager(this);
|
binding.recyclerView.setLayoutManager(layoutManager);
|
binding.recyclerView.setAdapter(mAdapter);
|
}
|
|
|
private void getData(boolean isRefresh) {
|
Map<String, Object> params = new HashMap<>();
|
if (isRefresh) {
|
page = 1;
|
recordsList.clear();
|
}
|
params.put("pageSize", pageSize);
|
params.put("pageCurr", page);
|
params.put("inspectorId", MyApplication.myApplication.userId);
|
|
ApiManager.getInstance().requestGetHideLoading(this, Constants.BASE_URL + "/app/issue/getIssueReports", IssueListResult.class, params, new SubscriberListener<BaseResponse<IssueListResult>>() {
|
@Override
|
public void onNext(BaseResponse<IssueListResult> t) {
|
if (t.isSuccess()) {
|
if (t.isSuccess()) {
|
if (t.getContent().getObj() != null && t.getContent().getObj().size() > 0) {
|
recordsList.addAll(t.getContent().getObj());
|
if (t.getContent().getPageTotal() == page) {
|
myRefreshLayout.finishLoadMoreWithNoMoreData();
|
}
|
} else {
|
myRefreshLayout.finishLoadMoreWithNoMoreData();
|
}
|
}
|
} else {
|
ToastUtil.showToast(IssueListActivity.this, t.getMsg());
|
}
|
}
|
|
@Override
|
public void onCloose() {
|
super.onCloose();
|
layoutFinish(myRefreshLayout, isRefresh);
|
mAdapter.notifyDataSetChanged();
|
|
}
|
|
});
|
}
|
|
public void startDetail(String issueReportId) {
|
Intent intent = new Intent(IssueListActivity.this, IssueDetailActivity.class);
|
intent.putExtra("issueReportId", issueReportId);
|
activityResultLauncher.launch(intent);
|
}
|
}
|