package com.dayu.pipirrapp.activity;
|
|
import android.os.Bundle;
|
import android.view.LayoutInflater;
|
import android.view.View;
|
|
import androidx.annotation.Nullable;
|
import androidx.core.content.res.ResourcesCompat;
|
import androidx.recyclerview.widget.GridLayoutManager;
|
import androidx.recyclerview.widget.RecyclerView;
|
import androidx.recyclerview.widget.SimpleItemAnimator;
|
|
import com.dayu.pipirrapp.MyApplication;
|
import com.dayu.pipirrapp.R;
|
import com.dayu.pipirrapp.adapter.ImageAdapter;
|
import com.dayu.pipirrapp.bean.ImageBean;
|
import com.dayu.pipirrapp.bean.net.ImageResult;
|
import com.dayu.pipirrapp.bean.net.IssueResult;
|
import com.dayu.pipirrapp.bean.net.UplodFileState;
|
import com.dayu.pipirrapp.databinding.ActivityIssueDetailBinding;
|
import com.dayu.pipirrapp.fragment.OrderFragment;
|
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.tool.FullyGridLayoutManager;
|
import com.dayu.pipirrapp.utils.ToastUtil;
|
import com.dayu.pipirrapp.view.ConfirmDialog;
|
import com.dayu.pipirrapp.view.TitleBar;
|
import com.luck.picture.lib.decoration.GridSpacingItemDecoration;
|
import com.luck.picture.lib.utils.DensityUtil;
|
|
import java.util.ArrayList;
|
import java.util.HashMap;
|
import java.util.List;
|
import java.util.Map;
|
|
import cc.shinichi.library.ImagePreview;
|
import cc.shinichi.library.bean.ImageInfo;
|
import cc.shinichi.library.bean.Type;
|
|
/**
|
* IssueDetailActivity - 问题上报详情界面
|
*
|
* @author zuoxiao
|
* @version 1.0
|
* @since 2024-12-12
|
*/
|
public class IssueDetailActivity extends BaseActivity {
|
|
RecyclerView mRecyclerView;
|
ActivityIssueDetailBinding binding;
|
ImageAdapter mAdapter;
|
List<ImageInfo> imageInfoList = new ArrayList<>();
|
List<ImageBean> images = new ArrayList<>();
|
int state;
|
String issueReportId;
|
|
@Override
|
protected void onCreate(@Nullable Bundle savedInstanceState) {
|
super.onCreate(savedInstanceState);
|
binding = ActivityIssueDetailBinding.inflate(LayoutInflater.from(this));
|
setContentView(binding.getRoot());
|
issueReportId = this.getIntent().getStringExtra("issueReportId");
|
initView();
|
|
getData(issueReportId);
|
}
|
|
private void initView() {
|
new TitleBar(this).setTitleText("问题详情").setLeftIco().setLeftIcoListening(v -> IssueDetailActivity.this.finish());
|
mRecyclerView = binding.recyclerView;
|
FullyGridLayoutManager manager = new FullyGridLayoutManager(this, 4, GridLayoutManager.VERTICAL, false);
|
mRecyclerView.setLayoutManager(manager);
|
RecyclerView.ItemAnimator itemAnimator = mRecyclerView.getItemAnimator();
|
if (itemAnimator != null) {
|
((SimpleItemAnimator) itemAnimator).setSupportsChangeAnimations(false);
|
}
|
// 添加间距装饰,确保图片有合适的间隔
|
mRecyclerView.addItemDecoration(new GridSpacingItemDecoration(4, DensityUtil.dip2px(this, 8), false));
|
mAdapter = new ImageAdapter(this, images, (v, position) -> {
|
ImagePreview.getInstance().with(IssueDetailActivity.this).setIndex(position).setMediaInfoList(imageInfoList).start();
|
});
|
mRecyclerView.setAdapter(mAdapter);
|
}
|
|
private void getData(String issueReportId) {
|
Map<String, Object> params = new HashMap<>();
|
params.put("issueReportId", issueReportId);
|
ApiManager.getInstance().requestGet(this, Constants.BASE_URL + "/app/issue/getOneIssueReport", IssueResult.class, params, new SubscriberListener<BaseResponse<IssueResult>>() {
|
@Override
|
public void onNext(BaseResponse<IssueResult> t) {
|
if (t.isSuccess()) {
|
if (t.isSuccess()) {
|
if (t.getContent() != null) {
|
IssueResult orderDetailResult = t.getContent();
|
binding.setData(orderDetailResult);
|
binding.setItemclidk(IssueDetailActivity.this);
|
state = orderDetailResult.getStateId();
|
if (!t.getContent().getImages().isEmpty()){
|
for (ImageResult imageResult:t.getContent().getImages()){
|
ImageBean imageBean=new ImageBean();
|
imageBean.setId(imageResult.getId());
|
imageBean.setWebPath(imageResult.getWebPath());
|
imageBean.setType(UplodFileState.IMG_TYPE);
|
images.add(imageBean);
|
ImageInfo info=new ImageInfo();
|
info.setOriginUrl(imageResult.getWebPath());
|
info.setType(Type.IMAGE);
|
imageInfoList.add(info);
|
}
|
}
|
if (!t.getContent().getVideos().isEmpty()){
|
for (ImageResult imageResult:t.getContent().getVideos()){
|
ImageBean imageBean=new ImageBean();
|
imageBean.setId(imageResult.getId());
|
imageBean.setWebPath(imageResult.getWebPath());
|
imageBean.setType(UplodFileState.VIDEO_TYPE);
|
images.add(imageBean);
|
ImageInfo info=new ImageInfo();
|
info.setOriginUrl(imageResult.getWebPath());
|
info.setType(Type.VIDEO);
|
imageInfoList.add(info);
|
}
|
}
|
mAdapter.notifyDataSetChanged();
|
switch (state) {
|
case 1://未受理
|
binding.stateText.setTextColor(IssueDetailActivity.this.getResources().getColor(R.color.black, null));
|
binding.stateText.setBackground(ResourcesCompat.getDrawable(IssueDetailActivity.this.getResources(), R.drawable.order_state_no_bg, null));
|
binding.callBackLL.setVisibility(View.GONE);
|
binding.deleteButton.setVisibility(View.VISIBLE);
|
break;
|
case 2://已受理
|
binding.stateText.setTextColor(IssueDetailActivity.this.getResources().getColor(R.color.white, null));
|
binding.stateText.setBackground(ResourcesCompat.getDrawable(IssueDetailActivity.this.getResources(), R.drawable.order_state_wait_bg, null));
|
binding.callBackLL.setVisibility(View.VISIBLE);
|
binding.deleteButton.setVisibility(View.GONE);
|
break;
|
case 3://3已删除
|
binding.stateText.setTextColor(IssueDetailActivity.this.getResources().getColor(R.color.white, null));
|
binding.stateText.setBackground(ResourcesCompat.getDrawable(IssueDetailActivity.this.getResources(), R.drawable.order_state_reject_bg, null));
|
binding.callBackLL.setVisibility(View.VISIBLE);
|
binding.deleteButton.setVisibility(View.GONE);
|
break;
|
|
}
|
} else {
|
ToastUtil.showToast(IssueDetailActivity.this, t.getMsg());
|
}
|
} else if (t.DATA_NULL.equals(t.getCode())) {
|
//工单已被删除
|
ToastUtil.showToast(IssueDetailActivity.this, "订单已被删除!");
|
setResult(OrderFragment.RESULT_REFRESH);
|
IssueDetailActivity.this.finish();
|
|
} else {
|
ToastUtil.showToast(IssueDetailActivity.this, t.getMsg());
|
IssueDetailActivity.this.finish();
|
}
|
} else {
|
ToastUtil.showToast(IssueDetailActivity.this, t.getMsg());
|
}
|
}
|
|
@Override
|
public void onCloose() {
|
super.onCloose();
|
}
|
|
@Override
|
public void onError(Throwable e) {
|
super.onError(e);
|
ToastUtil.showToastLong(IssueDetailActivity.this, "获取详情失败,请稍后再试");
|
IssueDetailActivity.this.finish();
|
}
|
});
|
}
|
|
public void deleteIssue() {
|
ConfirmDialog confirmDialog = new ConfirmDialog(IssueDetailActivity.this, "确认删除当前问题吗?", (confirmDialog1, v1) -> {
|
confirmDialog1.dismiss();
|
delete(issueReportId);
|
});
|
confirmDialog.show();
|
}
|
|
private void delete(String issueReportId) {
|
Map<String, Object> params = new HashMap<>();
|
params.put("issueReportId", issueReportId);
|
params.put("inspectorId", MyApplication.myApplication.userId);
|
ApiManager.getInstance().requestPost(this, Constants.BASE_URL + "/app/issue/deleteIssueReport", IssueResult.class, params, new SubscriberListener<BaseResponse<IssueResult>>() {
|
@Override
|
public void onNext(BaseResponse<IssueResult> t) {
|
if (t.isSuccess()) {
|
setResult(IssueListActivity.RESULT_REFRESH);
|
ToastUtil.showToastLong(IssueDetailActivity.this, "删除成功!");
|
IssueDetailActivity.this.finish();
|
} else {
|
ToastUtil.showToast(IssueDetailActivity.this, t.getMsg());
|
}
|
}
|
|
@Override
|
public void onCloose() {
|
super.onCloose();
|
}
|
|
@Override
|
public void onError(Throwable e) {
|
super.onError(e);
|
ToastUtil.showToastLong(IssueDetailActivity.this, "删除失败,请稍后再试");
|
|
}
|
});
|
}
|
}
|