diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index b6a8d08..c78d07c 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -64,8 +64,8 @@
-
-
+
+
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index b6a8d08..c78d07c 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -64,8 +64,8 @@
-
-
+
+
diff --git a/app/src/main/java/com/casic/dcms/adapter/CheckCaseListAdapter.java b/app/src/main/java/com/casic/dcms/adapter/CheckCaseListAdapter.java
deleted file mode 100644
index 254f0cd..0000000
--- a/app/src/main/java/com/casic/dcms/adapter/CheckCaseListAdapter.java
+++ /dev/null
@@ -1,99 +0,0 @@
-package com.casic.dcms.adapter;
-
-import android.annotation.SuppressLint;
-import android.content.Context;
-import android.text.TextUtils;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.TextView;
-
-import androidx.annotation.NonNull;
-import androidx.recyclerview.widget.RecyclerView;
-
-import com.bumptech.glide.Glide;
-import com.casic.dcms.R;
-import com.casic.dcms.model.check.CaseCheckModel;
-import com.casic.dcms.utils.StringHelper;
-import com.pengxh.androidx.lite.hub.StringHub;
-import com.qmuiteam.qmui.widget.QMUIRadiusImageView;
-
-import java.util.List;
-
-public class CheckCaseListAdapter extends RecyclerView.Adapter {
-
- private final Context context;
- private final List dataBeans;
- private final LayoutInflater layoutInflater;
-
- public CheckCaseListAdapter(Context context, List dataRows) {
- this.context = context;
- this.dataBeans = dataRows;
- this.layoutInflater = LayoutInflater.from(context);
- }
-
- @NonNull
- @Override
- public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
- return new ItemViewHolder(layoutInflater.inflate(R.layout.item_case_rv_l, parent, false));
- }
-
- @Override
- public void onBindViewHolder(@NonNull ItemViewHolder holder, @SuppressLint("RecyclerView") int position) {
- holder.bindView(dataBeans.get(position));
- if (clickListener != null) {
- holder.itemView.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- clickListener.onClick(position);
- }
- });
- }
- }
-
- @Override
- public int getItemCount() {
- return dataBeans.size();
- }
-
- class ItemViewHolder extends RecyclerView.ViewHolder {
-
- private final QMUIRadiusImageView caseImageView;
- private final TextView caseTitleView;
- private final TextView casePlaceView;
- private final TextView caseTimeView;
-
- ItemViewHolder(@NonNull View itemView) {
- super(itemView);
- caseImageView = itemView.findViewById(R.id.caseImageView);
- caseTitleView = itemView.findViewById(R.id.caseTitleView);
- casePlaceView = itemView.findViewById(R.id.casePlaceView);
- caseTimeView = itemView.findViewById(R.id.caseTimeView);
- }
-
- void bindView(CaseCheckModel.DataDTO.RowsDTO rowsBean) {
- //处理图片
- String fileIdProcess = rowsBean.getFileIdProcess();
- if (!TextUtils.isEmpty(fileIdProcess)) {
- String[] split = fileIdProcess.split(",");
- String firstImage = split[0];
- if (firstImage.endsWith(".jpg") || firstImage.contains(".jpeg") || firstImage.contains(".png")) {
- Glide.with(context).load(StringHelper.appendCompleteURL(firstImage)).into(caseImageView);
- }
- }
- caseTitleView.setText(StringHub.filterSpaceOrEnter(rowsBean.getDescription()));
- casePlaceView.setText("发生地点:" + StringHub.filterSpaceOrEnter(rowsBean.getFieldintro()));
- caseTimeView.setText("上报时间:" + rowsBean.getReportTime());
- }
- }
-
- private OnItemClickListener clickListener;
-
- public interface OnItemClickListener {
- void onClick(int position);
- }
-
- public void setOnItemClickListener(OnItemClickListener onItemClickListener) {
- this.clickListener = onItemClickListener;
- }
-}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index b6a8d08..c78d07c 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -64,8 +64,8 @@
-
-
+
+
diff --git a/app/src/main/java/com/casic/dcms/adapter/CheckCaseListAdapter.java b/app/src/main/java/com/casic/dcms/adapter/CheckCaseListAdapter.java
deleted file mode 100644
index 254f0cd..0000000
--- a/app/src/main/java/com/casic/dcms/adapter/CheckCaseListAdapter.java
+++ /dev/null
@@ -1,99 +0,0 @@
-package com.casic.dcms.adapter;
-
-import android.annotation.SuppressLint;
-import android.content.Context;
-import android.text.TextUtils;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.TextView;
-
-import androidx.annotation.NonNull;
-import androidx.recyclerview.widget.RecyclerView;
-
-import com.bumptech.glide.Glide;
-import com.casic.dcms.R;
-import com.casic.dcms.model.check.CaseCheckModel;
-import com.casic.dcms.utils.StringHelper;
-import com.pengxh.androidx.lite.hub.StringHub;
-import com.qmuiteam.qmui.widget.QMUIRadiusImageView;
-
-import java.util.List;
-
-public class CheckCaseListAdapter extends RecyclerView.Adapter {
-
- private final Context context;
- private final List dataBeans;
- private final LayoutInflater layoutInflater;
-
- public CheckCaseListAdapter(Context context, List dataRows) {
- this.context = context;
- this.dataBeans = dataRows;
- this.layoutInflater = LayoutInflater.from(context);
- }
-
- @NonNull
- @Override
- public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
- return new ItemViewHolder(layoutInflater.inflate(R.layout.item_case_rv_l, parent, false));
- }
-
- @Override
- public void onBindViewHolder(@NonNull ItemViewHolder holder, @SuppressLint("RecyclerView") int position) {
- holder.bindView(dataBeans.get(position));
- if (clickListener != null) {
- holder.itemView.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- clickListener.onClick(position);
- }
- });
- }
- }
-
- @Override
- public int getItemCount() {
- return dataBeans.size();
- }
-
- class ItemViewHolder extends RecyclerView.ViewHolder {
-
- private final QMUIRadiusImageView caseImageView;
- private final TextView caseTitleView;
- private final TextView casePlaceView;
- private final TextView caseTimeView;
-
- ItemViewHolder(@NonNull View itemView) {
- super(itemView);
- caseImageView = itemView.findViewById(R.id.caseImageView);
- caseTitleView = itemView.findViewById(R.id.caseTitleView);
- casePlaceView = itemView.findViewById(R.id.casePlaceView);
- caseTimeView = itemView.findViewById(R.id.caseTimeView);
- }
-
- void bindView(CaseCheckModel.DataDTO.RowsDTO rowsBean) {
- //处理图片
- String fileIdProcess = rowsBean.getFileIdProcess();
- if (!TextUtils.isEmpty(fileIdProcess)) {
- String[] split = fileIdProcess.split(",");
- String firstImage = split[0];
- if (firstImage.endsWith(".jpg") || firstImage.contains(".jpeg") || firstImage.contains(".png")) {
- Glide.with(context).load(StringHelper.appendCompleteURL(firstImage)).into(caseImageView);
- }
- }
- caseTitleView.setText(StringHub.filterSpaceOrEnter(rowsBean.getDescription()));
- casePlaceView.setText("发生地点:" + StringHub.filterSpaceOrEnter(rowsBean.getFieldintro()));
- caseTimeView.setText("上报时间:" + rowsBean.getReportTime());
- }
- }
-
- private OnItemClickListener clickListener;
-
- public interface OnItemClickListener {
- void onClick(int position);
- }
-
- public void setOnItemClickListener(OnItemClickListener onItemClickListener) {
- this.clickListener = onItemClickListener;
- }
-}
diff --git a/app/src/main/java/com/casic/dcms/fragment/check/CaseCheckFragment.java b/app/src/main/java/com/casic/dcms/fragment/check/CaseCheckFragment.java
index 85cebc6..667981d 100644
--- a/app/src/main/java/com/casic/dcms/fragment/check/CaseCheckFragment.java
+++ b/app/src/main/java/com/casic/dcms/fragment/check/CaseCheckFragment.java
@@ -1,19 +1,27 @@
package com.casic.dcms.fragment.check;
+import static com.luck.picture.lib.thread.PictureThreadUtils.runOnUiThread;
+
+import android.graphics.drawable.Drawable;
import android.os.Handler;
import android.os.Message;
+import android.text.TextUtils;
import android.view.View;
import androidx.annotation.NonNull;
import androidx.lifecycle.Observer;
import androidx.lifecycle.ViewModelProvider;
-import com.casic.dcms.adapter.CheckCaseListAdapter;
+import com.bumptech.glide.Glide;
+import com.casic.dcms.R;
import com.casic.dcms.databinding.FragmentCheckCaseBinding;
-import com.casic.dcms.model.check.CaseCheckModel;
+import com.casic.dcms.model.CaseCheckModel;
import com.casic.dcms.utils.LocaleConstant;
-import com.casic.dcms.view.check.CaseCheckDetailActivity;
+import com.casic.dcms.utils.StringHelper;
+import com.casic.dcms.view.check.CheckDetailActivity;
import com.casic.dcms.vm.CaseViewModel;
+import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter;
+import com.pengxh.androidx.lite.adapter.ViewHolder;
import com.pengxh.androidx.lite.base.AndroidxBaseFragment;
import com.pengxh.androidx.lite.hub.ContextHub;
import com.pengxh.androidx.lite.hub.StringHub;
@@ -24,14 +32,15 @@
import java.util.ArrayList;
import java.util.List;
+import java.util.concurrent.ExecutionException;
public class CaseCheckFragment extends AndroidxBaseFragment {
private static final String TAG = "CaseCheckFragment";
private WeakReferenceHandler weakReferenceHandler;
private CaseViewModel caseViewModel;
- private CheckCaseListAdapter adapter;
- private List dataBeans = new ArrayList<>();
+ private NormalRecyclerAdapter adapter;
+ private List dataBeans = new ArrayList<>();
private int pageIndex = 1;
private boolean isRefresh, isLoadMore = false;
@@ -49,12 +58,37 @@
protected void initData() {
weakReferenceHandler = new WeakReferenceHandler(callback);
caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class);
+ caseViewModel.caseCheckModel.observe(this, new Observer() {
+ @Override
+ public void onChanged(CaseCheckModel resultBean) {
+ if (resultBean.isSuccess()) {
+ List dataRows = resultBean.getData().getRows();
+ if (isRefresh) {
+ dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题
+ dataBeans = dataRows;
+ viewBinding.refreshLayout.finishRefresh();
+ isRefresh = false;
+ } else if (isLoadMore) {
+ if (dataRows.size() == 0) {
+ StringHub.show(requireContext(), "到底了,别拉了");
+ }
+ dataBeans.addAll(dataRows);
+ viewBinding.refreshLayout.finishLoadMore();
+ isLoadMore = false;
+ } else {
+ dataBeans = dataRows;
+ }
+ weakReferenceHandler.sendEmptyMessage(202104251);
+ }
+ }
+ });
}
@Override
public void onResume() {
- obtainCheckCaseList();
super.onResume();
+ pageIndex = 1;
+ obtainCheckCaseList();
}
private void obtainCheckCaseList() {
@@ -80,31 +114,6 @@
obtainCheckCaseList();
}
});
-
- caseViewModel.caseCheckModel.observe(this, new Observer() {
- @Override
- public void onChanged(CaseCheckModel resultBean) {
- if (resultBean.isSuccess()) {
- List dataRows = resultBean.getData().getRows();
- if (isRefresh) {
- dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题
- dataBeans = dataRows;
- viewBinding.refreshLayout.finishRefresh();
- isRefresh = false;
- } else if (isLoadMore) {
- if (dataRows.size() == 0) {
- StringHub.show(requireContext(), "到底了,别拉了");
- }
- dataBeans.addAll(dataRows);
- viewBinding.refreshLayout.finishLoadMore();
- isLoadMore = false;
- } else {
- dataBeans = dataRows;
- }
- weakReferenceHandler.sendEmptyMessage(202104251);
- }
- }
- });
}
private final Handler.Callback callback = new Handler.Callback() {
@@ -125,16 +134,42 @@
});
} else {
viewBinding.emptyView.hide();
- adapter = new CheckCaseListAdapter(requireContext(), dataBeans);
- viewBinding.caseRecyclerView.setAdapter(adapter);
- adapter.setOnItemClickListener(new CheckCaseListAdapter.OnItemClickListener() {
+ adapter = new NormalRecyclerAdapter(R.layout.item_case_rv_l, dataBeans) {
@Override
- public void onClick(int position) {
- ContextHub.navigatePageTo(
- requireContext(),
- CaseCheckDetailActivity.class,
- dataBeans.get(position).getId()
- );
+ public void convertView(ViewHolder viewHolder, int position, CaseCheckModel.DataModel.RowsModel item) {
+ String fileIdProcess = item.getFileIdProcess();
+ if (!TextUtils.isEmpty(fileIdProcess)) {
+ String[] split = fileIdProcess.split(",");
+ String firstImage = split[0];
+ if (firstImage.endsWith(".jpg") || firstImage.contains(".jpeg") || firstImage.contains(".png")) {
+ new Thread(new Runnable() {
+ @Override
+ public void run() {
+ try {
+ Drawable drawable = Glide.with(requireContext()).load(StringHelper.appendCompleteURL(firstImage)).submit().get();
+ runOnUiThread(new Runnable() {
+ @Override
+ public void run() {
+ viewHolder.setImageResource(R.id.caseImageView, drawable);
+ }
+ });
+ } catch (ExecutionException | InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+ }).start();
+ }
+ }
+ viewHolder.setText(R.id.caseTitleView, StringHub.filterSpaceOrEnter(item.getDescription()))
+ .setText(R.id.casePlaceView, "发生地点:" + StringHub.filterSpaceOrEnter(item.getFieldintro()))
+ .setText(R.id.caseTimeView, "上报时间:" + item.getReportTime());
+ }
+ };
+ viewBinding.caseRecyclerView.setAdapter(adapter);
+ adapter.setOnItemClickedListener(new NormalRecyclerAdapter.OnItemClickedListener() {
+ @Override
+ public void onItemClicked(int position, CaseCheckModel.DataModel.RowsModel rowsModel) {
+ ContextHub.navigatePageTo(requireContext(), CheckDetailActivity.class, rowsModel.getId());
}
});
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index b6a8d08..c78d07c 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -64,8 +64,8 @@
-
-
+
+
diff --git a/app/src/main/java/com/casic/dcms/adapter/CheckCaseListAdapter.java b/app/src/main/java/com/casic/dcms/adapter/CheckCaseListAdapter.java
deleted file mode 100644
index 254f0cd..0000000
--- a/app/src/main/java/com/casic/dcms/adapter/CheckCaseListAdapter.java
+++ /dev/null
@@ -1,99 +0,0 @@
-package com.casic.dcms.adapter;
-
-import android.annotation.SuppressLint;
-import android.content.Context;
-import android.text.TextUtils;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.TextView;
-
-import androidx.annotation.NonNull;
-import androidx.recyclerview.widget.RecyclerView;
-
-import com.bumptech.glide.Glide;
-import com.casic.dcms.R;
-import com.casic.dcms.model.check.CaseCheckModel;
-import com.casic.dcms.utils.StringHelper;
-import com.pengxh.androidx.lite.hub.StringHub;
-import com.qmuiteam.qmui.widget.QMUIRadiusImageView;
-
-import java.util.List;
-
-public class CheckCaseListAdapter extends RecyclerView.Adapter {
-
- private final Context context;
- private final List dataBeans;
- private final LayoutInflater layoutInflater;
-
- public CheckCaseListAdapter(Context context, List dataRows) {
- this.context = context;
- this.dataBeans = dataRows;
- this.layoutInflater = LayoutInflater.from(context);
- }
-
- @NonNull
- @Override
- public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
- return new ItemViewHolder(layoutInflater.inflate(R.layout.item_case_rv_l, parent, false));
- }
-
- @Override
- public void onBindViewHolder(@NonNull ItemViewHolder holder, @SuppressLint("RecyclerView") int position) {
- holder.bindView(dataBeans.get(position));
- if (clickListener != null) {
- holder.itemView.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- clickListener.onClick(position);
- }
- });
- }
- }
-
- @Override
- public int getItemCount() {
- return dataBeans.size();
- }
-
- class ItemViewHolder extends RecyclerView.ViewHolder {
-
- private final QMUIRadiusImageView caseImageView;
- private final TextView caseTitleView;
- private final TextView casePlaceView;
- private final TextView caseTimeView;
-
- ItemViewHolder(@NonNull View itemView) {
- super(itemView);
- caseImageView = itemView.findViewById(R.id.caseImageView);
- caseTitleView = itemView.findViewById(R.id.caseTitleView);
- casePlaceView = itemView.findViewById(R.id.casePlaceView);
- caseTimeView = itemView.findViewById(R.id.caseTimeView);
- }
-
- void bindView(CaseCheckModel.DataDTO.RowsDTO rowsBean) {
- //处理图片
- String fileIdProcess = rowsBean.getFileIdProcess();
- if (!TextUtils.isEmpty(fileIdProcess)) {
- String[] split = fileIdProcess.split(",");
- String firstImage = split[0];
- if (firstImage.endsWith(".jpg") || firstImage.contains(".jpeg") || firstImage.contains(".png")) {
- Glide.with(context).load(StringHelper.appendCompleteURL(firstImage)).into(caseImageView);
- }
- }
- caseTitleView.setText(StringHub.filterSpaceOrEnter(rowsBean.getDescription()));
- casePlaceView.setText("发生地点:" + StringHub.filterSpaceOrEnter(rowsBean.getFieldintro()));
- caseTimeView.setText("上报时间:" + rowsBean.getReportTime());
- }
- }
-
- private OnItemClickListener clickListener;
-
- public interface OnItemClickListener {
- void onClick(int position);
- }
-
- public void setOnItemClickListener(OnItemClickListener onItemClickListener) {
- this.clickListener = onItemClickListener;
- }
-}
diff --git a/app/src/main/java/com/casic/dcms/fragment/check/CaseCheckFragment.java b/app/src/main/java/com/casic/dcms/fragment/check/CaseCheckFragment.java
index 85cebc6..667981d 100644
--- a/app/src/main/java/com/casic/dcms/fragment/check/CaseCheckFragment.java
+++ b/app/src/main/java/com/casic/dcms/fragment/check/CaseCheckFragment.java
@@ -1,19 +1,27 @@
package com.casic.dcms.fragment.check;
+import static com.luck.picture.lib.thread.PictureThreadUtils.runOnUiThread;
+
+import android.graphics.drawable.Drawable;
import android.os.Handler;
import android.os.Message;
+import android.text.TextUtils;
import android.view.View;
import androidx.annotation.NonNull;
import androidx.lifecycle.Observer;
import androidx.lifecycle.ViewModelProvider;
-import com.casic.dcms.adapter.CheckCaseListAdapter;
+import com.bumptech.glide.Glide;
+import com.casic.dcms.R;
import com.casic.dcms.databinding.FragmentCheckCaseBinding;
-import com.casic.dcms.model.check.CaseCheckModel;
+import com.casic.dcms.model.CaseCheckModel;
import com.casic.dcms.utils.LocaleConstant;
-import com.casic.dcms.view.check.CaseCheckDetailActivity;
+import com.casic.dcms.utils.StringHelper;
+import com.casic.dcms.view.check.CheckDetailActivity;
import com.casic.dcms.vm.CaseViewModel;
+import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter;
+import com.pengxh.androidx.lite.adapter.ViewHolder;
import com.pengxh.androidx.lite.base.AndroidxBaseFragment;
import com.pengxh.androidx.lite.hub.ContextHub;
import com.pengxh.androidx.lite.hub.StringHub;
@@ -24,14 +32,15 @@
import java.util.ArrayList;
import java.util.List;
+import java.util.concurrent.ExecutionException;
public class CaseCheckFragment extends AndroidxBaseFragment {
private static final String TAG = "CaseCheckFragment";
private WeakReferenceHandler weakReferenceHandler;
private CaseViewModel caseViewModel;
- private CheckCaseListAdapter adapter;
- private List dataBeans = new ArrayList<>();
+ private NormalRecyclerAdapter adapter;
+ private List dataBeans = new ArrayList<>();
private int pageIndex = 1;
private boolean isRefresh, isLoadMore = false;
@@ -49,12 +58,37 @@
protected void initData() {
weakReferenceHandler = new WeakReferenceHandler(callback);
caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class);
+ caseViewModel.caseCheckModel.observe(this, new Observer() {
+ @Override
+ public void onChanged(CaseCheckModel resultBean) {
+ if (resultBean.isSuccess()) {
+ List dataRows = resultBean.getData().getRows();
+ if (isRefresh) {
+ dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题
+ dataBeans = dataRows;
+ viewBinding.refreshLayout.finishRefresh();
+ isRefresh = false;
+ } else if (isLoadMore) {
+ if (dataRows.size() == 0) {
+ StringHub.show(requireContext(), "到底了,别拉了");
+ }
+ dataBeans.addAll(dataRows);
+ viewBinding.refreshLayout.finishLoadMore();
+ isLoadMore = false;
+ } else {
+ dataBeans = dataRows;
+ }
+ weakReferenceHandler.sendEmptyMessage(202104251);
+ }
+ }
+ });
}
@Override
public void onResume() {
- obtainCheckCaseList();
super.onResume();
+ pageIndex = 1;
+ obtainCheckCaseList();
}
private void obtainCheckCaseList() {
@@ -80,31 +114,6 @@
obtainCheckCaseList();
}
});
-
- caseViewModel.caseCheckModel.observe(this, new Observer() {
- @Override
- public void onChanged(CaseCheckModel resultBean) {
- if (resultBean.isSuccess()) {
- List dataRows = resultBean.getData().getRows();
- if (isRefresh) {
- dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题
- dataBeans = dataRows;
- viewBinding.refreshLayout.finishRefresh();
- isRefresh = false;
- } else if (isLoadMore) {
- if (dataRows.size() == 0) {
- StringHub.show(requireContext(), "到底了,别拉了");
- }
- dataBeans.addAll(dataRows);
- viewBinding.refreshLayout.finishLoadMore();
- isLoadMore = false;
- } else {
- dataBeans = dataRows;
- }
- weakReferenceHandler.sendEmptyMessage(202104251);
- }
- }
- });
}
private final Handler.Callback callback = new Handler.Callback() {
@@ -125,16 +134,42 @@
});
} else {
viewBinding.emptyView.hide();
- adapter = new CheckCaseListAdapter(requireContext(), dataBeans);
- viewBinding.caseRecyclerView.setAdapter(adapter);
- adapter.setOnItemClickListener(new CheckCaseListAdapter.OnItemClickListener() {
+ adapter = new NormalRecyclerAdapter(R.layout.item_case_rv_l, dataBeans) {
@Override
- public void onClick(int position) {
- ContextHub.navigatePageTo(
- requireContext(),
- CaseCheckDetailActivity.class,
- dataBeans.get(position).getId()
- );
+ public void convertView(ViewHolder viewHolder, int position, CaseCheckModel.DataModel.RowsModel item) {
+ String fileIdProcess = item.getFileIdProcess();
+ if (!TextUtils.isEmpty(fileIdProcess)) {
+ String[] split = fileIdProcess.split(",");
+ String firstImage = split[0];
+ if (firstImage.endsWith(".jpg") || firstImage.contains(".jpeg") || firstImage.contains(".png")) {
+ new Thread(new Runnable() {
+ @Override
+ public void run() {
+ try {
+ Drawable drawable = Glide.with(requireContext()).load(StringHelper.appendCompleteURL(firstImage)).submit().get();
+ runOnUiThread(new Runnable() {
+ @Override
+ public void run() {
+ viewHolder.setImageResource(R.id.caseImageView, drawable);
+ }
+ });
+ } catch (ExecutionException | InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+ }).start();
+ }
+ }
+ viewHolder.setText(R.id.caseTitleView, StringHub.filterSpaceOrEnter(item.getDescription()))
+ .setText(R.id.casePlaceView, "发生地点:" + StringHub.filterSpaceOrEnter(item.getFieldintro()))
+ .setText(R.id.caseTimeView, "上报时间:" + item.getReportTime());
+ }
+ };
+ viewBinding.caseRecyclerView.setAdapter(adapter);
+ adapter.setOnItemClickedListener(new NormalRecyclerAdapter.OnItemClickedListener() {
+ @Override
+ public void onItemClicked(int position, CaseCheckModel.DataModel.RowsModel rowsModel) {
+ ContextHub.navigatePageTo(requireContext(), CheckDetailActivity.class, rowsModel.getId());
}
});
}
diff --git a/app/src/main/java/com/casic/dcms/fragment/check/CaseCheckedFragment.java b/app/src/main/java/com/casic/dcms/fragment/check/CaseCheckedFragment.java
index 3e2d904..6775b65 100644
--- a/app/src/main/java/com/casic/dcms/fragment/check/CaseCheckedFragment.java
+++ b/app/src/main/java/com/casic/dcms/fragment/check/CaseCheckedFragment.java
@@ -1,19 +1,27 @@
package com.casic.dcms.fragment.check;
+import static com.luck.picture.lib.thread.PictureThreadUtils.runOnUiThread;
+
+import android.graphics.drawable.Drawable;
import android.os.Handler;
import android.os.Message;
+import android.text.TextUtils;
import android.view.View;
import androidx.annotation.NonNull;
import androidx.lifecycle.Observer;
import androidx.lifecycle.ViewModelProvider;
-import com.casic.dcms.adapter.CheckCaseListAdapter;
+import com.bumptech.glide.Glide;
+import com.casic.dcms.R;
import com.casic.dcms.databinding.FragmentCheckCaseBinding;
-import com.casic.dcms.model.check.CaseCheckModel;
+import com.casic.dcms.model.CaseCheckModel;
import com.casic.dcms.utils.LocaleConstant;
-import com.casic.dcms.view.check.CaseCheckedDetailActivity;
+import com.casic.dcms.utils.StringHelper;
+import com.casic.dcms.view.check.CheckedDetailActivity;
import com.casic.dcms.vm.CaseViewModel;
+import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter;
+import com.pengxh.androidx.lite.adapter.ViewHolder;
import com.pengxh.androidx.lite.base.AndroidxBaseFragment;
import com.pengxh.androidx.lite.hub.ContextHub;
import com.pengxh.androidx.lite.hub.StringHub;
@@ -24,14 +32,15 @@
import java.util.ArrayList;
import java.util.List;
+import java.util.concurrent.ExecutionException;
public class CaseCheckedFragment extends AndroidxBaseFragment {
private static final String TAG = "CaseCheckedFragment";
private WeakReferenceHandler weakReferenceHandler;
private CaseViewModel caseViewModel;
- private CheckCaseListAdapter adapter;
- private List dataBeans = new ArrayList<>();
+ private NormalRecyclerAdapter adapter;
+ private List dataBeans = new ArrayList<>();
private int pageIndex = 1;
private boolean isRefresh, isLoadMore = false;
@@ -50,12 +59,37 @@
protected void initData() {
weakReferenceHandler = new WeakReferenceHandler(callback);
caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class);
+ caseViewModel.caseCheckModel.observe(this, new Observer() {
+ @Override
+ public void onChanged(CaseCheckModel resultBean) {
+ if (resultBean.isSuccess()) {
+ List dataRows = resultBean.getData().getRows();
+ if (isRefresh) {
+ dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题
+ dataBeans = dataRows;
+ viewBinding.refreshLayout.finishRefresh();
+ isRefresh = false;
+ } else if (isLoadMore) {
+ if (dataRows.size() == 0) {
+ StringHub.show(requireContext(), "到底了,别拉了");
+ }
+ dataBeans.addAll(dataRows);
+ viewBinding.refreshLayout.finishLoadMore();
+ isLoadMore = false;
+ } else {
+ dataBeans = dataRows;
+ }
+ weakReferenceHandler.sendEmptyMessage(202104252);
+ }
+ }
+ });
}
@Override
public void onResume() {
- obtainCheckCaseList();
super.onResume();
+ pageIndex = 1;
+ obtainCheckCaseList();
}
private void obtainCheckCaseList() {
@@ -81,32 +115,6 @@
obtainCheckCaseList();
}
});
-
- caseViewModel.caseCheckModel.observe(this, new Observer() {
-
- @Override
- public void onChanged(CaseCheckModel resultBean) {
- if (resultBean.isSuccess()) {
- List dataRows = resultBean.getData().getRows();
- if (isRefresh) {
- dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题
- dataBeans = dataRows;
- viewBinding.refreshLayout.finishRefresh();
- isRefresh = false;
- } else if (isLoadMore) {
- if (dataRows.size() == 0) {
- StringHub.show(requireContext(), "到底了,别拉了");
- }
- dataBeans.addAll(dataRows);
- viewBinding.refreshLayout.finishLoadMore();
- isLoadMore = false;
- } else {
- dataBeans = dataRows;
- }
- weakReferenceHandler.sendEmptyMessage(202104252);
- }
- }
- });
}
private final Handler.Callback callback = new Handler.Callback() {
@@ -127,16 +135,42 @@
});
} else {
viewBinding.emptyView.hide();
- adapter = new CheckCaseListAdapter(requireContext(), dataBeans);
- viewBinding.caseRecyclerView.setAdapter(adapter);
- adapter.setOnItemClickListener(new CheckCaseListAdapter.OnItemClickListener() {
+ adapter = new NormalRecyclerAdapter(R.layout.item_case_rv_l, dataBeans) {
@Override
- public void onClick(int position) {
- ContextHub.navigatePageTo(
- requireContext(),
- CaseCheckedDetailActivity.class,
- dataBeans.get(position).getId()
- );
+ public void convertView(ViewHolder viewHolder, int position, CaseCheckModel.DataModel.RowsModel item) {
+ String fileIdProcess = item.getFileIdProcess();
+ if (!TextUtils.isEmpty(fileIdProcess)) {
+ String[] split = fileIdProcess.split(",");
+ String firstImage = split[0];
+ if (firstImage.endsWith(".jpg") || firstImage.contains(".jpeg") || firstImage.contains(".png")) {
+ new Thread(new Runnable() {
+ @Override
+ public void run() {
+ try {
+ Drawable drawable = Glide.with(requireContext()).load(StringHelper.appendCompleteURL(firstImage)).submit().get();
+ runOnUiThread(new Runnable() {
+ @Override
+ public void run() {
+ viewHolder.setImageResource(R.id.caseImageView, drawable);
+ }
+ });
+ } catch (ExecutionException | InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+ }).start();
+ }
+ }
+ viewHolder.setText(R.id.caseTitleView, StringHub.filterSpaceOrEnter(item.getDescription()))
+ .setText(R.id.casePlaceView, "发生地点:" + StringHub.filterSpaceOrEnter(item.getFieldintro()))
+ .setText(R.id.caseTimeView, "上报时间:" + item.getReportTime());
+ }
+ };
+ viewBinding.caseRecyclerView.setAdapter(adapter);
+ adapter.setOnItemClickedListener(new NormalRecyclerAdapter.OnItemClickedListener() {
+ @Override
+ public void onItemClicked(int position, CaseCheckModel.DataModel.RowsModel rowsModel) {
+ ContextHub.navigatePageTo(requireContext(), CheckedDetailActivity.class, rowsModel.getId());
}
});
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index b6a8d08..c78d07c 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -64,8 +64,8 @@
-
-
+
+
diff --git a/app/src/main/java/com/casic/dcms/adapter/CheckCaseListAdapter.java b/app/src/main/java/com/casic/dcms/adapter/CheckCaseListAdapter.java
deleted file mode 100644
index 254f0cd..0000000
--- a/app/src/main/java/com/casic/dcms/adapter/CheckCaseListAdapter.java
+++ /dev/null
@@ -1,99 +0,0 @@
-package com.casic.dcms.adapter;
-
-import android.annotation.SuppressLint;
-import android.content.Context;
-import android.text.TextUtils;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.TextView;
-
-import androidx.annotation.NonNull;
-import androidx.recyclerview.widget.RecyclerView;
-
-import com.bumptech.glide.Glide;
-import com.casic.dcms.R;
-import com.casic.dcms.model.check.CaseCheckModel;
-import com.casic.dcms.utils.StringHelper;
-import com.pengxh.androidx.lite.hub.StringHub;
-import com.qmuiteam.qmui.widget.QMUIRadiusImageView;
-
-import java.util.List;
-
-public class CheckCaseListAdapter extends RecyclerView.Adapter {
-
- private final Context context;
- private final List dataBeans;
- private final LayoutInflater layoutInflater;
-
- public CheckCaseListAdapter(Context context, List dataRows) {
- this.context = context;
- this.dataBeans = dataRows;
- this.layoutInflater = LayoutInflater.from(context);
- }
-
- @NonNull
- @Override
- public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
- return new ItemViewHolder(layoutInflater.inflate(R.layout.item_case_rv_l, parent, false));
- }
-
- @Override
- public void onBindViewHolder(@NonNull ItemViewHolder holder, @SuppressLint("RecyclerView") int position) {
- holder.bindView(dataBeans.get(position));
- if (clickListener != null) {
- holder.itemView.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- clickListener.onClick(position);
- }
- });
- }
- }
-
- @Override
- public int getItemCount() {
- return dataBeans.size();
- }
-
- class ItemViewHolder extends RecyclerView.ViewHolder {
-
- private final QMUIRadiusImageView caseImageView;
- private final TextView caseTitleView;
- private final TextView casePlaceView;
- private final TextView caseTimeView;
-
- ItemViewHolder(@NonNull View itemView) {
- super(itemView);
- caseImageView = itemView.findViewById(R.id.caseImageView);
- caseTitleView = itemView.findViewById(R.id.caseTitleView);
- casePlaceView = itemView.findViewById(R.id.casePlaceView);
- caseTimeView = itemView.findViewById(R.id.caseTimeView);
- }
-
- void bindView(CaseCheckModel.DataDTO.RowsDTO rowsBean) {
- //处理图片
- String fileIdProcess = rowsBean.getFileIdProcess();
- if (!TextUtils.isEmpty(fileIdProcess)) {
- String[] split = fileIdProcess.split(",");
- String firstImage = split[0];
- if (firstImage.endsWith(".jpg") || firstImage.contains(".jpeg") || firstImage.contains(".png")) {
- Glide.with(context).load(StringHelper.appendCompleteURL(firstImage)).into(caseImageView);
- }
- }
- caseTitleView.setText(StringHub.filterSpaceOrEnter(rowsBean.getDescription()));
- casePlaceView.setText("发生地点:" + StringHub.filterSpaceOrEnter(rowsBean.getFieldintro()));
- caseTimeView.setText("上报时间:" + rowsBean.getReportTime());
- }
- }
-
- private OnItemClickListener clickListener;
-
- public interface OnItemClickListener {
- void onClick(int position);
- }
-
- public void setOnItemClickListener(OnItemClickListener onItemClickListener) {
- this.clickListener = onItemClickListener;
- }
-}
diff --git a/app/src/main/java/com/casic/dcms/fragment/check/CaseCheckFragment.java b/app/src/main/java/com/casic/dcms/fragment/check/CaseCheckFragment.java
index 85cebc6..667981d 100644
--- a/app/src/main/java/com/casic/dcms/fragment/check/CaseCheckFragment.java
+++ b/app/src/main/java/com/casic/dcms/fragment/check/CaseCheckFragment.java
@@ -1,19 +1,27 @@
package com.casic.dcms.fragment.check;
+import static com.luck.picture.lib.thread.PictureThreadUtils.runOnUiThread;
+
+import android.graphics.drawable.Drawable;
import android.os.Handler;
import android.os.Message;
+import android.text.TextUtils;
import android.view.View;
import androidx.annotation.NonNull;
import androidx.lifecycle.Observer;
import androidx.lifecycle.ViewModelProvider;
-import com.casic.dcms.adapter.CheckCaseListAdapter;
+import com.bumptech.glide.Glide;
+import com.casic.dcms.R;
import com.casic.dcms.databinding.FragmentCheckCaseBinding;
-import com.casic.dcms.model.check.CaseCheckModel;
+import com.casic.dcms.model.CaseCheckModel;
import com.casic.dcms.utils.LocaleConstant;
-import com.casic.dcms.view.check.CaseCheckDetailActivity;
+import com.casic.dcms.utils.StringHelper;
+import com.casic.dcms.view.check.CheckDetailActivity;
import com.casic.dcms.vm.CaseViewModel;
+import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter;
+import com.pengxh.androidx.lite.adapter.ViewHolder;
import com.pengxh.androidx.lite.base.AndroidxBaseFragment;
import com.pengxh.androidx.lite.hub.ContextHub;
import com.pengxh.androidx.lite.hub.StringHub;
@@ -24,14 +32,15 @@
import java.util.ArrayList;
import java.util.List;
+import java.util.concurrent.ExecutionException;
public class CaseCheckFragment extends AndroidxBaseFragment {
private static final String TAG = "CaseCheckFragment";
private WeakReferenceHandler weakReferenceHandler;
private CaseViewModel caseViewModel;
- private CheckCaseListAdapter adapter;
- private List dataBeans = new ArrayList<>();
+ private NormalRecyclerAdapter adapter;
+ private List dataBeans = new ArrayList<>();
private int pageIndex = 1;
private boolean isRefresh, isLoadMore = false;
@@ -49,12 +58,37 @@
protected void initData() {
weakReferenceHandler = new WeakReferenceHandler(callback);
caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class);
+ caseViewModel.caseCheckModel.observe(this, new Observer() {
+ @Override
+ public void onChanged(CaseCheckModel resultBean) {
+ if (resultBean.isSuccess()) {
+ List dataRows = resultBean.getData().getRows();
+ if (isRefresh) {
+ dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题
+ dataBeans = dataRows;
+ viewBinding.refreshLayout.finishRefresh();
+ isRefresh = false;
+ } else if (isLoadMore) {
+ if (dataRows.size() == 0) {
+ StringHub.show(requireContext(), "到底了,别拉了");
+ }
+ dataBeans.addAll(dataRows);
+ viewBinding.refreshLayout.finishLoadMore();
+ isLoadMore = false;
+ } else {
+ dataBeans = dataRows;
+ }
+ weakReferenceHandler.sendEmptyMessage(202104251);
+ }
+ }
+ });
}
@Override
public void onResume() {
- obtainCheckCaseList();
super.onResume();
+ pageIndex = 1;
+ obtainCheckCaseList();
}
private void obtainCheckCaseList() {
@@ -80,31 +114,6 @@
obtainCheckCaseList();
}
});
-
- caseViewModel.caseCheckModel.observe(this, new Observer() {
- @Override
- public void onChanged(CaseCheckModel resultBean) {
- if (resultBean.isSuccess()) {
- List dataRows = resultBean.getData().getRows();
- if (isRefresh) {
- dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题
- dataBeans = dataRows;
- viewBinding.refreshLayout.finishRefresh();
- isRefresh = false;
- } else if (isLoadMore) {
- if (dataRows.size() == 0) {
- StringHub.show(requireContext(), "到底了,别拉了");
- }
- dataBeans.addAll(dataRows);
- viewBinding.refreshLayout.finishLoadMore();
- isLoadMore = false;
- } else {
- dataBeans = dataRows;
- }
- weakReferenceHandler.sendEmptyMessage(202104251);
- }
- }
- });
}
private final Handler.Callback callback = new Handler.Callback() {
@@ -125,16 +134,42 @@
});
} else {
viewBinding.emptyView.hide();
- adapter = new CheckCaseListAdapter(requireContext(), dataBeans);
- viewBinding.caseRecyclerView.setAdapter(adapter);
- adapter.setOnItemClickListener(new CheckCaseListAdapter.OnItemClickListener() {
+ adapter = new NormalRecyclerAdapter(R.layout.item_case_rv_l, dataBeans) {
@Override
- public void onClick(int position) {
- ContextHub.navigatePageTo(
- requireContext(),
- CaseCheckDetailActivity.class,
- dataBeans.get(position).getId()
- );
+ public void convertView(ViewHolder viewHolder, int position, CaseCheckModel.DataModel.RowsModel item) {
+ String fileIdProcess = item.getFileIdProcess();
+ if (!TextUtils.isEmpty(fileIdProcess)) {
+ String[] split = fileIdProcess.split(",");
+ String firstImage = split[0];
+ if (firstImage.endsWith(".jpg") || firstImage.contains(".jpeg") || firstImage.contains(".png")) {
+ new Thread(new Runnable() {
+ @Override
+ public void run() {
+ try {
+ Drawable drawable = Glide.with(requireContext()).load(StringHelper.appendCompleteURL(firstImage)).submit().get();
+ runOnUiThread(new Runnable() {
+ @Override
+ public void run() {
+ viewHolder.setImageResource(R.id.caseImageView, drawable);
+ }
+ });
+ } catch (ExecutionException | InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+ }).start();
+ }
+ }
+ viewHolder.setText(R.id.caseTitleView, StringHub.filterSpaceOrEnter(item.getDescription()))
+ .setText(R.id.casePlaceView, "发生地点:" + StringHub.filterSpaceOrEnter(item.getFieldintro()))
+ .setText(R.id.caseTimeView, "上报时间:" + item.getReportTime());
+ }
+ };
+ viewBinding.caseRecyclerView.setAdapter(adapter);
+ adapter.setOnItemClickedListener(new NormalRecyclerAdapter.OnItemClickedListener() {
+ @Override
+ public void onItemClicked(int position, CaseCheckModel.DataModel.RowsModel rowsModel) {
+ ContextHub.navigatePageTo(requireContext(), CheckDetailActivity.class, rowsModel.getId());
}
});
}
diff --git a/app/src/main/java/com/casic/dcms/fragment/check/CaseCheckedFragment.java b/app/src/main/java/com/casic/dcms/fragment/check/CaseCheckedFragment.java
index 3e2d904..6775b65 100644
--- a/app/src/main/java/com/casic/dcms/fragment/check/CaseCheckedFragment.java
+++ b/app/src/main/java/com/casic/dcms/fragment/check/CaseCheckedFragment.java
@@ -1,19 +1,27 @@
package com.casic.dcms.fragment.check;
+import static com.luck.picture.lib.thread.PictureThreadUtils.runOnUiThread;
+
+import android.graphics.drawable.Drawable;
import android.os.Handler;
import android.os.Message;
+import android.text.TextUtils;
import android.view.View;
import androidx.annotation.NonNull;
import androidx.lifecycle.Observer;
import androidx.lifecycle.ViewModelProvider;
-import com.casic.dcms.adapter.CheckCaseListAdapter;
+import com.bumptech.glide.Glide;
+import com.casic.dcms.R;
import com.casic.dcms.databinding.FragmentCheckCaseBinding;
-import com.casic.dcms.model.check.CaseCheckModel;
+import com.casic.dcms.model.CaseCheckModel;
import com.casic.dcms.utils.LocaleConstant;
-import com.casic.dcms.view.check.CaseCheckedDetailActivity;
+import com.casic.dcms.utils.StringHelper;
+import com.casic.dcms.view.check.CheckedDetailActivity;
import com.casic.dcms.vm.CaseViewModel;
+import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter;
+import com.pengxh.androidx.lite.adapter.ViewHolder;
import com.pengxh.androidx.lite.base.AndroidxBaseFragment;
import com.pengxh.androidx.lite.hub.ContextHub;
import com.pengxh.androidx.lite.hub.StringHub;
@@ -24,14 +32,15 @@
import java.util.ArrayList;
import java.util.List;
+import java.util.concurrent.ExecutionException;
public class CaseCheckedFragment extends AndroidxBaseFragment {
private static final String TAG = "CaseCheckedFragment";
private WeakReferenceHandler weakReferenceHandler;
private CaseViewModel caseViewModel;
- private CheckCaseListAdapter adapter;
- private List dataBeans = new ArrayList<>();
+ private NormalRecyclerAdapter adapter;
+ private List dataBeans = new ArrayList<>();
private int pageIndex = 1;
private boolean isRefresh, isLoadMore = false;
@@ -50,12 +59,37 @@
protected void initData() {
weakReferenceHandler = new WeakReferenceHandler(callback);
caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class);
+ caseViewModel.caseCheckModel.observe(this, new Observer() {
+ @Override
+ public void onChanged(CaseCheckModel resultBean) {
+ if (resultBean.isSuccess()) {
+ List dataRows = resultBean.getData().getRows();
+ if (isRefresh) {
+ dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题
+ dataBeans = dataRows;
+ viewBinding.refreshLayout.finishRefresh();
+ isRefresh = false;
+ } else if (isLoadMore) {
+ if (dataRows.size() == 0) {
+ StringHub.show(requireContext(), "到底了,别拉了");
+ }
+ dataBeans.addAll(dataRows);
+ viewBinding.refreshLayout.finishLoadMore();
+ isLoadMore = false;
+ } else {
+ dataBeans = dataRows;
+ }
+ weakReferenceHandler.sendEmptyMessage(202104252);
+ }
+ }
+ });
}
@Override
public void onResume() {
- obtainCheckCaseList();
super.onResume();
+ pageIndex = 1;
+ obtainCheckCaseList();
}
private void obtainCheckCaseList() {
@@ -81,32 +115,6 @@
obtainCheckCaseList();
}
});
-
- caseViewModel.caseCheckModel.observe(this, new Observer() {
-
- @Override
- public void onChanged(CaseCheckModel resultBean) {
- if (resultBean.isSuccess()) {
- List dataRows = resultBean.getData().getRows();
- if (isRefresh) {
- dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题
- dataBeans = dataRows;
- viewBinding.refreshLayout.finishRefresh();
- isRefresh = false;
- } else if (isLoadMore) {
- if (dataRows.size() == 0) {
- StringHub.show(requireContext(), "到底了,别拉了");
- }
- dataBeans.addAll(dataRows);
- viewBinding.refreshLayout.finishLoadMore();
- isLoadMore = false;
- } else {
- dataBeans = dataRows;
- }
- weakReferenceHandler.sendEmptyMessage(202104252);
- }
- }
- });
}
private final Handler.Callback callback = new Handler.Callback() {
@@ -127,16 +135,42 @@
});
} else {
viewBinding.emptyView.hide();
- adapter = new CheckCaseListAdapter(requireContext(), dataBeans);
- viewBinding.caseRecyclerView.setAdapter(adapter);
- adapter.setOnItemClickListener(new CheckCaseListAdapter.OnItemClickListener() {
+ adapter = new NormalRecyclerAdapter(R.layout.item_case_rv_l, dataBeans) {
@Override
- public void onClick(int position) {
- ContextHub.navigatePageTo(
- requireContext(),
- CaseCheckedDetailActivity.class,
- dataBeans.get(position).getId()
- );
+ public void convertView(ViewHolder viewHolder, int position, CaseCheckModel.DataModel.RowsModel item) {
+ String fileIdProcess = item.getFileIdProcess();
+ if (!TextUtils.isEmpty(fileIdProcess)) {
+ String[] split = fileIdProcess.split(",");
+ String firstImage = split[0];
+ if (firstImage.endsWith(".jpg") || firstImage.contains(".jpeg") || firstImage.contains(".png")) {
+ new Thread(new Runnable() {
+ @Override
+ public void run() {
+ try {
+ Drawable drawable = Glide.with(requireContext()).load(StringHelper.appendCompleteURL(firstImage)).submit().get();
+ runOnUiThread(new Runnable() {
+ @Override
+ public void run() {
+ viewHolder.setImageResource(R.id.caseImageView, drawable);
+ }
+ });
+ } catch (ExecutionException | InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+ }).start();
+ }
+ }
+ viewHolder.setText(R.id.caseTitleView, StringHub.filterSpaceOrEnter(item.getDescription()))
+ .setText(R.id.casePlaceView, "发生地点:" + StringHub.filterSpaceOrEnter(item.getFieldintro()))
+ .setText(R.id.caseTimeView, "上报时间:" + item.getReportTime());
+ }
+ };
+ viewBinding.caseRecyclerView.setAdapter(adapter);
+ adapter.setOnItemClickedListener(new NormalRecyclerAdapter.OnItemClickedListener() {
+ @Override
+ public void onItemClicked(int position, CaseCheckModel.DataModel.RowsModel rowsModel) {
+ ContextHub.navigatePageTo(requireContext(), CheckedDetailActivity.class, rowsModel.getId());
}
});
}
diff --git a/app/src/main/java/com/casic/dcms/model/CaseCheckModel.java b/app/src/main/java/com/casic/dcms/model/CaseCheckModel.java
new file mode 100644
index 0000000..550a1fe
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/model/CaseCheckModel.java
@@ -0,0 +1,358 @@
+package com.casic.dcms.model;
+
+import java.util.List;
+
+/**
+ * 核查-已办/待办共用一个Model
+ */
+public class CaseCheckModel {
+
+ private int code;
+ private DataModel data;
+ private String message;
+ private boolean success;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public DataModel getData() {
+ return data;
+ }
+
+ public void setData(DataModel data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
+ public static class DataModel {
+ private List rows;
+ private int total;
+
+ public List getRows() {
+ return rows;
+ }
+
+ public void setRows(List rows) {
+ this.rows = rows;
+ }
+
+ public int getTotal() {
+ return total;
+ }
+
+ public void setTotal(int total) {
+ this.total = total;
+ }
+
+ public static class RowsModel {
+ private String isPostpone;
+ private String description;
+ private String source;
+ private String eorcName;
+ private String casetypeDetailName;
+ private String remainingTime;
+ private String casetypeName;
+ private String currUserId;
+ private String currUserName;
+ private String processId;
+ private String caseState;
+ private String id;
+ private String shopId;
+ private String fieldintro;
+ private String lat;
+ private String caseStateName;
+ private String lng;
+ private String isOvertime;
+ private String currRoleName;
+ private String fileIdVerify;
+ private String casetypeDetailCode;
+ private String onedeptid;
+ private String eorc;
+ private String currRoleId;
+ private String caseid;
+ private String casetypeCode;
+ private String nodeLimittime;
+ private String taskName;
+ private String sourceName;
+ private String fileIdProcess;
+ private String reportTime;
+ private String onedeptName;
+
+ public String getIsPostpone() {
+ return isPostpone;
+ }
+
+ public void setIsPostpone(String isPostpone) {
+ this.isPostpone = isPostpone;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ public String getSource() {
+ return source;
+ }
+
+ public void setSource(String source) {
+ this.source = source;
+ }
+
+ public String getEorcName() {
+ return eorcName;
+ }
+
+ public void setEorcName(String eorcName) {
+ this.eorcName = eorcName;
+ }
+
+ public String getCasetypeDetailName() {
+ return casetypeDetailName;
+ }
+
+ public void setCasetypeDetailName(String casetypeDetailName) {
+ this.casetypeDetailName = casetypeDetailName;
+ }
+
+ public String getRemainingTime() {
+ return remainingTime;
+ }
+
+ public void setRemainingTime(String remainingTime) {
+ this.remainingTime = remainingTime;
+ }
+
+ public String getCasetypeName() {
+ return casetypeName;
+ }
+
+ public void setCasetypeName(String casetypeName) {
+ this.casetypeName = casetypeName;
+ }
+
+ public String getCurrUserId() {
+ return currUserId;
+ }
+
+ public void setCurrUserId(String currUserId) {
+ this.currUserId = currUserId;
+ }
+
+ public String getCurrUserName() {
+ return currUserName;
+ }
+
+ public void setCurrUserName(String currUserName) {
+ this.currUserName = currUserName;
+ }
+
+ public String getProcessId() {
+ return processId;
+ }
+
+ public void setProcessId(String processId) {
+ this.processId = processId;
+ }
+
+ public String getCaseState() {
+ return caseState;
+ }
+
+ public void setCaseState(String caseState) {
+ this.caseState = caseState;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getShopId() {
+ return shopId;
+ }
+
+ public void setShopId(String shopId) {
+ this.shopId = shopId;
+ }
+
+ public String getFieldintro() {
+ return fieldintro;
+ }
+
+ public void setFieldintro(String fieldintro) {
+ this.fieldintro = fieldintro;
+ }
+
+ public String getLat() {
+ return lat;
+ }
+
+ public void setLat(String lat) {
+ this.lat = lat;
+ }
+
+ public String getCaseStateName() {
+ return caseStateName;
+ }
+
+ public void setCaseStateName(String caseStateName) {
+ this.caseStateName = caseStateName;
+ }
+
+ public String getLng() {
+ return lng;
+ }
+
+ public void setLng(String lng) {
+ this.lng = lng;
+ }
+
+ public String getIsOvertime() {
+ return isOvertime;
+ }
+
+ public void setIsOvertime(String isOvertime) {
+ this.isOvertime = isOvertime;
+ }
+
+ public String getCurrRoleName() {
+ return currRoleName;
+ }
+
+ public void setCurrRoleName(String currRoleName) {
+ this.currRoleName = currRoleName;
+ }
+
+ public String getFileIdVerify() {
+ return fileIdVerify;
+ }
+
+ public void setFileIdVerify(String fileIdVerify) {
+ this.fileIdVerify = fileIdVerify;
+ }
+
+ public String getCasetypeDetailCode() {
+ return casetypeDetailCode;
+ }
+
+ public void setCasetypeDetailCode(String casetypeDetailCode) {
+ this.casetypeDetailCode = casetypeDetailCode;
+ }
+
+ public String getOnedeptid() {
+ return onedeptid;
+ }
+
+ public void setOnedeptid(String onedeptid) {
+ this.onedeptid = onedeptid;
+ }
+
+ public String getEorc() {
+ return eorc;
+ }
+
+ public void setEorc(String eorc) {
+ this.eorc = eorc;
+ }
+
+ public String getCurrRoleId() {
+ return currRoleId;
+ }
+
+ public void setCurrRoleId(String currRoleId) {
+ this.currRoleId = currRoleId;
+ }
+
+ public String getCaseid() {
+ return caseid;
+ }
+
+ public void setCaseid(String caseid) {
+ this.caseid = caseid;
+ }
+
+ public String getCasetypeCode() {
+ return casetypeCode;
+ }
+
+ public void setCasetypeCode(String casetypeCode) {
+ this.casetypeCode = casetypeCode;
+ }
+
+ public String getNodeLimittime() {
+ return nodeLimittime;
+ }
+
+ public void setNodeLimittime(String nodeLimittime) {
+ this.nodeLimittime = nodeLimittime;
+ }
+
+ public String getTaskName() {
+ return taskName;
+ }
+
+ public void setTaskName(String taskName) {
+ this.taskName = taskName;
+ }
+
+ public String getSourceName() {
+ return sourceName;
+ }
+
+ public void setSourceName(String sourceName) {
+ this.sourceName = sourceName;
+ }
+
+ public String getFileIdProcess() {
+ return fileIdProcess;
+ }
+
+ public void setFileIdProcess(String fileIdProcess) {
+ this.fileIdProcess = fileIdProcess;
+ }
+
+ public String getReportTime() {
+ return reportTime;
+ }
+
+ public void setReportTime(String reportTime) {
+ this.reportTime = reportTime;
+ }
+
+ public String getOnedeptName() {
+ return onedeptName;
+ }
+
+ public void setOnedeptName(String onedeptName) {
+ this.onedeptName = onedeptName;
+ }
+ }
+ }
+}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index b6a8d08..c78d07c 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -64,8 +64,8 @@
-
-
+
+
diff --git a/app/src/main/java/com/casic/dcms/adapter/CheckCaseListAdapter.java b/app/src/main/java/com/casic/dcms/adapter/CheckCaseListAdapter.java
deleted file mode 100644
index 254f0cd..0000000
--- a/app/src/main/java/com/casic/dcms/adapter/CheckCaseListAdapter.java
+++ /dev/null
@@ -1,99 +0,0 @@
-package com.casic.dcms.adapter;
-
-import android.annotation.SuppressLint;
-import android.content.Context;
-import android.text.TextUtils;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.TextView;
-
-import androidx.annotation.NonNull;
-import androidx.recyclerview.widget.RecyclerView;
-
-import com.bumptech.glide.Glide;
-import com.casic.dcms.R;
-import com.casic.dcms.model.check.CaseCheckModel;
-import com.casic.dcms.utils.StringHelper;
-import com.pengxh.androidx.lite.hub.StringHub;
-import com.qmuiteam.qmui.widget.QMUIRadiusImageView;
-
-import java.util.List;
-
-public class CheckCaseListAdapter extends RecyclerView.Adapter {
-
- private final Context context;
- private final List dataBeans;
- private final LayoutInflater layoutInflater;
-
- public CheckCaseListAdapter(Context context, List dataRows) {
- this.context = context;
- this.dataBeans = dataRows;
- this.layoutInflater = LayoutInflater.from(context);
- }
-
- @NonNull
- @Override
- public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
- return new ItemViewHolder(layoutInflater.inflate(R.layout.item_case_rv_l, parent, false));
- }
-
- @Override
- public void onBindViewHolder(@NonNull ItemViewHolder holder, @SuppressLint("RecyclerView") int position) {
- holder.bindView(dataBeans.get(position));
- if (clickListener != null) {
- holder.itemView.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- clickListener.onClick(position);
- }
- });
- }
- }
-
- @Override
- public int getItemCount() {
- return dataBeans.size();
- }
-
- class ItemViewHolder extends RecyclerView.ViewHolder {
-
- private final QMUIRadiusImageView caseImageView;
- private final TextView caseTitleView;
- private final TextView casePlaceView;
- private final TextView caseTimeView;
-
- ItemViewHolder(@NonNull View itemView) {
- super(itemView);
- caseImageView = itemView.findViewById(R.id.caseImageView);
- caseTitleView = itemView.findViewById(R.id.caseTitleView);
- casePlaceView = itemView.findViewById(R.id.casePlaceView);
- caseTimeView = itemView.findViewById(R.id.caseTimeView);
- }
-
- void bindView(CaseCheckModel.DataDTO.RowsDTO rowsBean) {
- //处理图片
- String fileIdProcess = rowsBean.getFileIdProcess();
- if (!TextUtils.isEmpty(fileIdProcess)) {
- String[] split = fileIdProcess.split(",");
- String firstImage = split[0];
- if (firstImage.endsWith(".jpg") || firstImage.contains(".jpeg") || firstImage.contains(".png")) {
- Glide.with(context).load(StringHelper.appendCompleteURL(firstImage)).into(caseImageView);
- }
- }
- caseTitleView.setText(StringHub.filterSpaceOrEnter(rowsBean.getDescription()));
- casePlaceView.setText("发生地点:" + StringHub.filterSpaceOrEnter(rowsBean.getFieldintro()));
- caseTimeView.setText("上报时间:" + rowsBean.getReportTime());
- }
- }
-
- private OnItemClickListener clickListener;
-
- public interface OnItemClickListener {
- void onClick(int position);
- }
-
- public void setOnItemClickListener(OnItemClickListener onItemClickListener) {
- this.clickListener = onItemClickListener;
- }
-}
diff --git a/app/src/main/java/com/casic/dcms/fragment/check/CaseCheckFragment.java b/app/src/main/java/com/casic/dcms/fragment/check/CaseCheckFragment.java
index 85cebc6..667981d 100644
--- a/app/src/main/java/com/casic/dcms/fragment/check/CaseCheckFragment.java
+++ b/app/src/main/java/com/casic/dcms/fragment/check/CaseCheckFragment.java
@@ -1,19 +1,27 @@
package com.casic.dcms.fragment.check;
+import static com.luck.picture.lib.thread.PictureThreadUtils.runOnUiThread;
+
+import android.graphics.drawable.Drawable;
import android.os.Handler;
import android.os.Message;
+import android.text.TextUtils;
import android.view.View;
import androidx.annotation.NonNull;
import androidx.lifecycle.Observer;
import androidx.lifecycle.ViewModelProvider;
-import com.casic.dcms.adapter.CheckCaseListAdapter;
+import com.bumptech.glide.Glide;
+import com.casic.dcms.R;
import com.casic.dcms.databinding.FragmentCheckCaseBinding;
-import com.casic.dcms.model.check.CaseCheckModel;
+import com.casic.dcms.model.CaseCheckModel;
import com.casic.dcms.utils.LocaleConstant;
-import com.casic.dcms.view.check.CaseCheckDetailActivity;
+import com.casic.dcms.utils.StringHelper;
+import com.casic.dcms.view.check.CheckDetailActivity;
import com.casic.dcms.vm.CaseViewModel;
+import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter;
+import com.pengxh.androidx.lite.adapter.ViewHolder;
import com.pengxh.androidx.lite.base.AndroidxBaseFragment;
import com.pengxh.androidx.lite.hub.ContextHub;
import com.pengxh.androidx.lite.hub.StringHub;
@@ -24,14 +32,15 @@
import java.util.ArrayList;
import java.util.List;
+import java.util.concurrent.ExecutionException;
public class CaseCheckFragment extends AndroidxBaseFragment {
private static final String TAG = "CaseCheckFragment";
private WeakReferenceHandler weakReferenceHandler;
private CaseViewModel caseViewModel;
- private CheckCaseListAdapter adapter;
- private List dataBeans = new ArrayList<>();
+ private NormalRecyclerAdapter adapter;
+ private List dataBeans = new ArrayList<>();
private int pageIndex = 1;
private boolean isRefresh, isLoadMore = false;
@@ -49,12 +58,37 @@
protected void initData() {
weakReferenceHandler = new WeakReferenceHandler(callback);
caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class);
+ caseViewModel.caseCheckModel.observe(this, new Observer() {
+ @Override
+ public void onChanged(CaseCheckModel resultBean) {
+ if (resultBean.isSuccess()) {
+ List dataRows = resultBean.getData().getRows();
+ if (isRefresh) {
+ dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题
+ dataBeans = dataRows;
+ viewBinding.refreshLayout.finishRefresh();
+ isRefresh = false;
+ } else if (isLoadMore) {
+ if (dataRows.size() == 0) {
+ StringHub.show(requireContext(), "到底了,别拉了");
+ }
+ dataBeans.addAll(dataRows);
+ viewBinding.refreshLayout.finishLoadMore();
+ isLoadMore = false;
+ } else {
+ dataBeans = dataRows;
+ }
+ weakReferenceHandler.sendEmptyMessage(202104251);
+ }
+ }
+ });
}
@Override
public void onResume() {
- obtainCheckCaseList();
super.onResume();
+ pageIndex = 1;
+ obtainCheckCaseList();
}
private void obtainCheckCaseList() {
@@ -80,31 +114,6 @@
obtainCheckCaseList();
}
});
-
- caseViewModel.caseCheckModel.observe(this, new Observer() {
- @Override
- public void onChanged(CaseCheckModel resultBean) {
- if (resultBean.isSuccess()) {
- List dataRows = resultBean.getData().getRows();
- if (isRefresh) {
- dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题
- dataBeans = dataRows;
- viewBinding.refreshLayout.finishRefresh();
- isRefresh = false;
- } else if (isLoadMore) {
- if (dataRows.size() == 0) {
- StringHub.show(requireContext(), "到底了,别拉了");
- }
- dataBeans.addAll(dataRows);
- viewBinding.refreshLayout.finishLoadMore();
- isLoadMore = false;
- } else {
- dataBeans = dataRows;
- }
- weakReferenceHandler.sendEmptyMessage(202104251);
- }
- }
- });
}
private final Handler.Callback callback = new Handler.Callback() {
@@ -125,16 +134,42 @@
});
} else {
viewBinding.emptyView.hide();
- adapter = new CheckCaseListAdapter(requireContext(), dataBeans);
- viewBinding.caseRecyclerView.setAdapter(adapter);
- adapter.setOnItemClickListener(new CheckCaseListAdapter.OnItemClickListener() {
+ adapter = new NormalRecyclerAdapter(R.layout.item_case_rv_l, dataBeans) {
@Override
- public void onClick(int position) {
- ContextHub.navigatePageTo(
- requireContext(),
- CaseCheckDetailActivity.class,
- dataBeans.get(position).getId()
- );
+ public void convertView(ViewHolder viewHolder, int position, CaseCheckModel.DataModel.RowsModel item) {
+ String fileIdProcess = item.getFileIdProcess();
+ if (!TextUtils.isEmpty(fileIdProcess)) {
+ String[] split = fileIdProcess.split(",");
+ String firstImage = split[0];
+ if (firstImage.endsWith(".jpg") || firstImage.contains(".jpeg") || firstImage.contains(".png")) {
+ new Thread(new Runnable() {
+ @Override
+ public void run() {
+ try {
+ Drawable drawable = Glide.with(requireContext()).load(StringHelper.appendCompleteURL(firstImage)).submit().get();
+ runOnUiThread(new Runnable() {
+ @Override
+ public void run() {
+ viewHolder.setImageResource(R.id.caseImageView, drawable);
+ }
+ });
+ } catch (ExecutionException | InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+ }).start();
+ }
+ }
+ viewHolder.setText(R.id.caseTitleView, StringHub.filterSpaceOrEnter(item.getDescription()))
+ .setText(R.id.casePlaceView, "发生地点:" + StringHub.filterSpaceOrEnter(item.getFieldintro()))
+ .setText(R.id.caseTimeView, "上报时间:" + item.getReportTime());
+ }
+ };
+ viewBinding.caseRecyclerView.setAdapter(adapter);
+ adapter.setOnItemClickedListener(new NormalRecyclerAdapter.OnItemClickedListener() {
+ @Override
+ public void onItemClicked(int position, CaseCheckModel.DataModel.RowsModel rowsModel) {
+ ContextHub.navigatePageTo(requireContext(), CheckDetailActivity.class, rowsModel.getId());
}
});
}
diff --git a/app/src/main/java/com/casic/dcms/fragment/check/CaseCheckedFragment.java b/app/src/main/java/com/casic/dcms/fragment/check/CaseCheckedFragment.java
index 3e2d904..6775b65 100644
--- a/app/src/main/java/com/casic/dcms/fragment/check/CaseCheckedFragment.java
+++ b/app/src/main/java/com/casic/dcms/fragment/check/CaseCheckedFragment.java
@@ -1,19 +1,27 @@
package com.casic.dcms.fragment.check;
+import static com.luck.picture.lib.thread.PictureThreadUtils.runOnUiThread;
+
+import android.graphics.drawable.Drawable;
import android.os.Handler;
import android.os.Message;
+import android.text.TextUtils;
import android.view.View;
import androidx.annotation.NonNull;
import androidx.lifecycle.Observer;
import androidx.lifecycle.ViewModelProvider;
-import com.casic.dcms.adapter.CheckCaseListAdapter;
+import com.bumptech.glide.Glide;
+import com.casic.dcms.R;
import com.casic.dcms.databinding.FragmentCheckCaseBinding;
-import com.casic.dcms.model.check.CaseCheckModel;
+import com.casic.dcms.model.CaseCheckModel;
import com.casic.dcms.utils.LocaleConstant;
-import com.casic.dcms.view.check.CaseCheckedDetailActivity;
+import com.casic.dcms.utils.StringHelper;
+import com.casic.dcms.view.check.CheckedDetailActivity;
import com.casic.dcms.vm.CaseViewModel;
+import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter;
+import com.pengxh.androidx.lite.adapter.ViewHolder;
import com.pengxh.androidx.lite.base.AndroidxBaseFragment;
import com.pengxh.androidx.lite.hub.ContextHub;
import com.pengxh.androidx.lite.hub.StringHub;
@@ -24,14 +32,15 @@
import java.util.ArrayList;
import java.util.List;
+import java.util.concurrent.ExecutionException;
public class CaseCheckedFragment extends AndroidxBaseFragment {
private static final String TAG = "CaseCheckedFragment";
private WeakReferenceHandler weakReferenceHandler;
private CaseViewModel caseViewModel;
- private CheckCaseListAdapter adapter;
- private List dataBeans = new ArrayList<>();
+ private NormalRecyclerAdapter adapter;
+ private List dataBeans = new ArrayList<>();
private int pageIndex = 1;
private boolean isRefresh, isLoadMore = false;
@@ -50,12 +59,37 @@
protected void initData() {
weakReferenceHandler = new WeakReferenceHandler(callback);
caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class);
+ caseViewModel.caseCheckModel.observe(this, new Observer() {
+ @Override
+ public void onChanged(CaseCheckModel resultBean) {
+ if (resultBean.isSuccess()) {
+ List dataRows = resultBean.getData().getRows();
+ if (isRefresh) {
+ dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题
+ dataBeans = dataRows;
+ viewBinding.refreshLayout.finishRefresh();
+ isRefresh = false;
+ } else if (isLoadMore) {
+ if (dataRows.size() == 0) {
+ StringHub.show(requireContext(), "到底了,别拉了");
+ }
+ dataBeans.addAll(dataRows);
+ viewBinding.refreshLayout.finishLoadMore();
+ isLoadMore = false;
+ } else {
+ dataBeans = dataRows;
+ }
+ weakReferenceHandler.sendEmptyMessage(202104252);
+ }
+ }
+ });
}
@Override
public void onResume() {
- obtainCheckCaseList();
super.onResume();
+ pageIndex = 1;
+ obtainCheckCaseList();
}
private void obtainCheckCaseList() {
@@ -81,32 +115,6 @@
obtainCheckCaseList();
}
});
-
- caseViewModel.caseCheckModel.observe(this, new Observer() {
-
- @Override
- public void onChanged(CaseCheckModel resultBean) {
- if (resultBean.isSuccess()) {
- List dataRows = resultBean.getData().getRows();
- if (isRefresh) {
- dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题
- dataBeans = dataRows;
- viewBinding.refreshLayout.finishRefresh();
- isRefresh = false;
- } else if (isLoadMore) {
- if (dataRows.size() == 0) {
- StringHub.show(requireContext(), "到底了,别拉了");
- }
- dataBeans.addAll(dataRows);
- viewBinding.refreshLayout.finishLoadMore();
- isLoadMore = false;
- } else {
- dataBeans = dataRows;
- }
- weakReferenceHandler.sendEmptyMessage(202104252);
- }
- }
- });
}
private final Handler.Callback callback = new Handler.Callback() {
@@ -127,16 +135,42 @@
});
} else {
viewBinding.emptyView.hide();
- adapter = new CheckCaseListAdapter(requireContext(), dataBeans);
- viewBinding.caseRecyclerView.setAdapter(adapter);
- adapter.setOnItemClickListener(new CheckCaseListAdapter.OnItemClickListener() {
+ adapter = new NormalRecyclerAdapter(R.layout.item_case_rv_l, dataBeans) {
@Override
- public void onClick(int position) {
- ContextHub.navigatePageTo(
- requireContext(),
- CaseCheckedDetailActivity.class,
- dataBeans.get(position).getId()
- );
+ public void convertView(ViewHolder viewHolder, int position, CaseCheckModel.DataModel.RowsModel item) {
+ String fileIdProcess = item.getFileIdProcess();
+ if (!TextUtils.isEmpty(fileIdProcess)) {
+ String[] split = fileIdProcess.split(",");
+ String firstImage = split[0];
+ if (firstImage.endsWith(".jpg") || firstImage.contains(".jpeg") || firstImage.contains(".png")) {
+ new Thread(new Runnable() {
+ @Override
+ public void run() {
+ try {
+ Drawable drawable = Glide.with(requireContext()).load(StringHelper.appendCompleteURL(firstImage)).submit().get();
+ runOnUiThread(new Runnable() {
+ @Override
+ public void run() {
+ viewHolder.setImageResource(R.id.caseImageView, drawable);
+ }
+ });
+ } catch (ExecutionException | InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+ }).start();
+ }
+ }
+ viewHolder.setText(R.id.caseTitleView, StringHub.filterSpaceOrEnter(item.getDescription()))
+ .setText(R.id.casePlaceView, "发生地点:" + StringHub.filterSpaceOrEnter(item.getFieldintro()))
+ .setText(R.id.caseTimeView, "上报时间:" + item.getReportTime());
+ }
+ };
+ viewBinding.caseRecyclerView.setAdapter(adapter);
+ adapter.setOnItemClickedListener(new NormalRecyclerAdapter.OnItemClickedListener() {
+ @Override
+ public void onItemClicked(int position, CaseCheckModel.DataModel.RowsModel rowsModel) {
+ ContextHub.navigatePageTo(requireContext(), CheckedDetailActivity.class, rowsModel.getId());
}
});
}
diff --git a/app/src/main/java/com/casic/dcms/model/CaseCheckModel.java b/app/src/main/java/com/casic/dcms/model/CaseCheckModel.java
new file mode 100644
index 0000000..550a1fe
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/model/CaseCheckModel.java
@@ -0,0 +1,358 @@
+package com.casic.dcms.model;
+
+import java.util.List;
+
+/**
+ * 核查-已办/待办共用一个Model
+ */
+public class CaseCheckModel {
+
+ private int code;
+ private DataModel data;
+ private String message;
+ private boolean success;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public DataModel getData() {
+ return data;
+ }
+
+ public void setData(DataModel data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
+ public static class DataModel {
+ private List rows;
+ private int total;
+
+ public List getRows() {
+ return rows;
+ }
+
+ public void setRows(List rows) {
+ this.rows = rows;
+ }
+
+ public int getTotal() {
+ return total;
+ }
+
+ public void setTotal(int total) {
+ this.total = total;
+ }
+
+ public static class RowsModel {
+ private String isPostpone;
+ private String description;
+ private String source;
+ private String eorcName;
+ private String casetypeDetailName;
+ private String remainingTime;
+ private String casetypeName;
+ private String currUserId;
+ private String currUserName;
+ private String processId;
+ private String caseState;
+ private String id;
+ private String shopId;
+ private String fieldintro;
+ private String lat;
+ private String caseStateName;
+ private String lng;
+ private String isOvertime;
+ private String currRoleName;
+ private String fileIdVerify;
+ private String casetypeDetailCode;
+ private String onedeptid;
+ private String eorc;
+ private String currRoleId;
+ private String caseid;
+ private String casetypeCode;
+ private String nodeLimittime;
+ private String taskName;
+ private String sourceName;
+ private String fileIdProcess;
+ private String reportTime;
+ private String onedeptName;
+
+ public String getIsPostpone() {
+ return isPostpone;
+ }
+
+ public void setIsPostpone(String isPostpone) {
+ this.isPostpone = isPostpone;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ public String getSource() {
+ return source;
+ }
+
+ public void setSource(String source) {
+ this.source = source;
+ }
+
+ public String getEorcName() {
+ return eorcName;
+ }
+
+ public void setEorcName(String eorcName) {
+ this.eorcName = eorcName;
+ }
+
+ public String getCasetypeDetailName() {
+ return casetypeDetailName;
+ }
+
+ public void setCasetypeDetailName(String casetypeDetailName) {
+ this.casetypeDetailName = casetypeDetailName;
+ }
+
+ public String getRemainingTime() {
+ return remainingTime;
+ }
+
+ public void setRemainingTime(String remainingTime) {
+ this.remainingTime = remainingTime;
+ }
+
+ public String getCasetypeName() {
+ return casetypeName;
+ }
+
+ public void setCasetypeName(String casetypeName) {
+ this.casetypeName = casetypeName;
+ }
+
+ public String getCurrUserId() {
+ return currUserId;
+ }
+
+ public void setCurrUserId(String currUserId) {
+ this.currUserId = currUserId;
+ }
+
+ public String getCurrUserName() {
+ return currUserName;
+ }
+
+ public void setCurrUserName(String currUserName) {
+ this.currUserName = currUserName;
+ }
+
+ public String getProcessId() {
+ return processId;
+ }
+
+ public void setProcessId(String processId) {
+ this.processId = processId;
+ }
+
+ public String getCaseState() {
+ return caseState;
+ }
+
+ public void setCaseState(String caseState) {
+ this.caseState = caseState;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getShopId() {
+ return shopId;
+ }
+
+ public void setShopId(String shopId) {
+ this.shopId = shopId;
+ }
+
+ public String getFieldintro() {
+ return fieldintro;
+ }
+
+ public void setFieldintro(String fieldintro) {
+ this.fieldintro = fieldintro;
+ }
+
+ public String getLat() {
+ return lat;
+ }
+
+ public void setLat(String lat) {
+ this.lat = lat;
+ }
+
+ public String getCaseStateName() {
+ return caseStateName;
+ }
+
+ public void setCaseStateName(String caseStateName) {
+ this.caseStateName = caseStateName;
+ }
+
+ public String getLng() {
+ return lng;
+ }
+
+ public void setLng(String lng) {
+ this.lng = lng;
+ }
+
+ public String getIsOvertime() {
+ return isOvertime;
+ }
+
+ public void setIsOvertime(String isOvertime) {
+ this.isOvertime = isOvertime;
+ }
+
+ public String getCurrRoleName() {
+ return currRoleName;
+ }
+
+ public void setCurrRoleName(String currRoleName) {
+ this.currRoleName = currRoleName;
+ }
+
+ public String getFileIdVerify() {
+ return fileIdVerify;
+ }
+
+ public void setFileIdVerify(String fileIdVerify) {
+ this.fileIdVerify = fileIdVerify;
+ }
+
+ public String getCasetypeDetailCode() {
+ return casetypeDetailCode;
+ }
+
+ public void setCasetypeDetailCode(String casetypeDetailCode) {
+ this.casetypeDetailCode = casetypeDetailCode;
+ }
+
+ public String getOnedeptid() {
+ return onedeptid;
+ }
+
+ public void setOnedeptid(String onedeptid) {
+ this.onedeptid = onedeptid;
+ }
+
+ public String getEorc() {
+ return eorc;
+ }
+
+ public void setEorc(String eorc) {
+ this.eorc = eorc;
+ }
+
+ public String getCurrRoleId() {
+ return currRoleId;
+ }
+
+ public void setCurrRoleId(String currRoleId) {
+ this.currRoleId = currRoleId;
+ }
+
+ public String getCaseid() {
+ return caseid;
+ }
+
+ public void setCaseid(String caseid) {
+ this.caseid = caseid;
+ }
+
+ public String getCasetypeCode() {
+ return casetypeCode;
+ }
+
+ public void setCasetypeCode(String casetypeCode) {
+ this.casetypeCode = casetypeCode;
+ }
+
+ public String getNodeLimittime() {
+ return nodeLimittime;
+ }
+
+ public void setNodeLimittime(String nodeLimittime) {
+ this.nodeLimittime = nodeLimittime;
+ }
+
+ public String getTaskName() {
+ return taskName;
+ }
+
+ public void setTaskName(String taskName) {
+ this.taskName = taskName;
+ }
+
+ public String getSourceName() {
+ return sourceName;
+ }
+
+ public void setSourceName(String sourceName) {
+ this.sourceName = sourceName;
+ }
+
+ public String getFileIdProcess() {
+ return fileIdProcess;
+ }
+
+ public void setFileIdProcess(String fileIdProcess) {
+ this.fileIdProcess = fileIdProcess;
+ }
+
+ public String getReportTime() {
+ return reportTime;
+ }
+
+ public void setReportTime(String reportTime) {
+ this.reportTime = reportTime;
+ }
+
+ public String getOnedeptName() {
+ return onedeptName;
+ }
+
+ public void setOnedeptName(String onedeptName) {
+ this.onedeptName = onedeptName;
+ }
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/model/check/CaseCheckModel.java b/app/src/main/java/com/casic/dcms/model/check/CaseCheckModel.java
deleted file mode 100644
index 854e2fe..0000000
--- a/app/src/main/java/com/casic/dcms/model/check/CaseCheckModel.java
+++ /dev/null
@@ -1,358 +0,0 @@
-package com.casic.dcms.model.check;
-
-import java.util.List;
-
-/**
- * 核查-已办/待办共用一个Bean
- */
-public class CaseCheckModel {
-
- private int code;
- private DataDTO data;
- private String message;
- private boolean success;
-
- public int getCode() {
- return code;
- }
-
- public void setCode(int code) {
- this.code = code;
- }
-
- public DataDTO getData() {
- return data;
- }
-
- public void setData(DataDTO data) {
- this.data = data;
- }
-
- public String getMessage() {
- return message;
- }
-
- public void setMessage(String message) {
- this.message = message;
- }
-
- public boolean isSuccess() {
- return success;
- }
-
- public void setSuccess(boolean success) {
- this.success = success;
- }
-
- public static class DataDTO {
- private List rows;
- private int total;
-
- public List getRows() {
- return rows;
- }
-
- public void setRows(List rows) {
- this.rows = rows;
- }
-
- public int getTotal() {
- return total;
- }
-
- public void setTotal(int total) {
- this.total = total;
- }
-
- public static class RowsDTO {
- private int isPostpone;
- private String description;
- private int source;
- private String eorcName;
- private String casetypeDetailName;
- private String remainingTime;
- private String casetypeName;
- private String currUserId;
- private String currUserName;
- private String processId;
- private int caseState;
- private String id;
- private String shopId;
- private String fieldintro;
- private String lat;
- private String caseStateName;
- private String lng;
- private String isOvertime;
- private String currRoleName;
- private String fileIdVerify;
- private String casetypeDetailCode;
- private String onedeptid;
- private String eorc;
- private String currRoleId;
- private String caseid;
- private String casetypeCode;
- private String nodeLimittime;
- private String taskName;
- private String sourceName;
- private String fileIdProcess;
- private String reportTime;
- private String onedeptName;
-
- public int getIsPostpone() {
- return isPostpone;
- }
-
- public void setIsPostpone(int isPostpone) {
- this.isPostpone = isPostpone;
- }
-
- public String getDescription() {
- return description;
- }
-
- public void setDescription(String description) {
- this.description = description;
- }
-
- public int getSource() {
- return source;
- }
-
- public void setSource(int source) {
- this.source = source;
- }
-
- public String getEorcName() {
- return eorcName;
- }
-
- public void setEorcName(String eorcName) {
- this.eorcName = eorcName;
- }
-
- public String getCasetypeDetailName() {
- return casetypeDetailName;
- }
-
- public void setCasetypeDetailName(String casetypeDetailName) {
- this.casetypeDetailName = casetypeDetailName;
- }
-
- public String getRemainingTime() {
- return remainingTime;
- }
-
- public void setRemainingTime(String remainingTime) {
- this.remainingTime = remainingTime;
- }
-
- public String getCasetypeName() {
- return casetypeName;
- }
-
- public void setCasetypeName(String casetypeName) {
- this.casetypeName = casetypeName;
- }
-
- public String getCurrUserId() {
- return currUserId;
- }
-
- public void setCurrUserId(String currUserId) {
- this.currUserId = currUserId;
- }
-
- public String getCurrUserName() {
- return currUserName;
- }
-
- public void setCurrUserName(String currUserName) {
- this.currUserName = currUserName;
- }
-
- public String getProcessId() {
- return processId;
- }
-
- public void setProcessId(String processId) {
- this.processId = processId;
- }
-
- public int getCaseState() {
- return caseState;
- }
-
- public void setCaseState(int caseState) {
- this.caseState = caseState;
- }
-
- public String getId() {
- return id;
- }
-
- public void setId(String id) {
- this.id = id;
- }
-
- public String getShopId() {
- return shopId;
- }
-
- public void setShopId(String shopId) {
- this.shopId = shopId;
- }
-
- public String getFieldintro() {
- return fieldintro;
- }
-
- public void setFieldintro(String fieldintro) {
- this.fieldintro = fieldintro;
- }
-
- public String getLat() {
- return lat;
- }
-
- public void setLat(String lat) {
- this.lat = lat;
- }
-
- public String getCaseStateName() {
- return caseStateName;
- }
-
- public void setCaseStateName(String caseStateName) {
- this.caseStateName = caseStateName;
- }
-
- public String getLng() {
- return lng;
- }
-
- public void setLng(String lng) {
- this.lng = lng;
- }
-
- public String getIsOvertime() {
- return isOvertime;
- }
-
- public void setIsOvertime(String isOvertime) {
- this.isOvertime = isOvertime;
- }
-
- public String getCurrRoleName() {
- return currRoleName;
- }
-
- public void setCurrRoleName(String currRoleName) {
- this.currRoleName = currRoleName;
- }
-
- public String getFileIdVerify() {
- return fileIdVerify;
- }
-
- public void setFileIdVerify(String fileIdVerify) {
- this.fileIdVerify = fileIdVerify;
- }
-
- public String getCasetypeDetailCode() {
- return casetypeDetailCode;
- }
-
- public void setCasetypeDetailCode(String casetypeDetailCode) {
- this.casetypeDetailCode = casetypeDetailCode;
- }
-
- public String getOnedeptid() {
- return onedeptid;
- }
-
- public void setOnedeptid(String onedeptid) {
- this.onedeptid = onedeptid;
- }
-
- public String getEorc() {
- return eorc;
- }
-
- public void setEorc(String eorc) {
- this.eorc = eorc;
- }
-
- public String getCurrRoleId() {
- return currRoleId;
- }
-
- public void setCurrRoleId(String currRoleId) {
- this.currRoleId = currRoleId;
- }
-
- public String getCaseid() {
- return caseid;
- }
-
- public void setCaseid(String caseid) {
- this.caseid = caseid;
- }
-
- public String getCasetypeCode() {
- return casetypeCode;
- }
-
- public void setCasetypeCode(String casetypeCode) {
- this.casetypeCode = casetypeCode;
- }
-
- public String getNodeLimittime() {
- return nodeLimittime;
- }
-
- public void setNodeLimittime(String nodeLimittime) {
- this.nodeLimittime = nodeLimittime;
- }
-
- public String getTaskName() {
- return taskName;
- }
-
- public void setTaskName(String taskName) {
- this.taskName = taskName;
- }
-
- public String getSourceName() {
- return sourceName;
- }
-
- public void setSourceName(String sourceName) {
- this.sourceName = sourceName;
- }
-
- public String getFileIdProcess() {
- return fileIdProcess;
- }
-
- public void setFileIdProcess(String fileIdProcess) {
- this.fileIdProcess = fileIdProcess;
- }
-
- public String getReportTime() {
- return reportTime;
- }
-
- public void setReportTime(String reportTime) {
- this.reportTime = reportTime;
- }
-
- public String getOnedeptName() {
- return onedeptName;
- }
-
- public void setOnedeptName(String onedeptName) {
- this.onedeptName = onedeptName;
- }
- }
- }
-}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index b6a8d08..c78d07c 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -64,8 +64,8 @@
-
-
+
+
diff --git a/app/src/main/java/com/casic/dcms/adapter/CheckCaseListAdapter.java b/app/src/main/java/com/casic/dcms/adapter/CheckCaseListAdapter.java
deleted file mode 100644
index 254f0cd..0000000
--- a/app/src/main/java/com/casic/dcms/adapter/CheckCaseListAdapter.java
+++ /dev/null
@@ -1,99 +0,0 @@
-package com.casic.dcms.adapter;
-
-import android.annotation.SuppressLint;
-import android.content.Context;
-import android.text.TextUtils;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.TextView;
-
-import androidx.annotation.NonNull;
-import androidx.recyclerview.widget.RecyclerView;
-
-import com.bumptech.glide.Glide;
-import com.casic.dcms.R;
-import com.casic.dcms.model.check.CaseCheckModel;
-import com.casic.dcms.utils.StringHelper;
-import com.pengxh.androidx.lite.hub.StringHub;
-import com.qmuiteam.qmui.widget.QMUIRadiusImageView;
-
-import java.util.List;
-
-public class CheckCaseListAdapter extends RecyclerView.Adapter {
-
- private final Context context;
- private final List dataBeans;
- private final LayoutInflater layoutInflater;
-
- public CheckCaseListAdapter(Context context, List dataRows) {
- this.context = context;
- this.dataBeans = dataRows;
- this.layoutInflater = LayoutInflater.from(context);
- }
-
- @NonNull
- @Override
- public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
- return new ItemViewHolder(layoutInflater.inflate(R.layout.item_case_rv_l, parent, false));
- }
-
- @Override
- public void onBindViewHolder(@NonNull ItemViewHolder holder, @SuppressLint("RecyclerView") int position) {
- holder.bindView(dataBeans.get(position));
- if (clickListener != null) {
- holder.itemView.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- clickListener.onClick(position);
- }
- });
- }
- }
-
- @Override
- public int getItemCount() {
- return dataBeans.size();
- }
-
- class ItemViewHolder extends RecyclerView.ViewHolder {
-
- private final QMUIRadiusImageView caseImageView;
- private final TextView caseTitleView;
- private final TextView casePlaceView;
- private final TextView caseTimeView;
-
- ItemViewHolder(@NonNull View itemView) {
- super(itemView);
- caseImageView = itemView.findViewById(R.id.caseImageView);
- caseTitleView = itemView.findViewById(R.id.caseTitleView);
- casePlaceView = itemView.findViewById(R.id.casePlaceView);
- caseTimeView = itemView.findViewById(R.id.caseTimeView);
- }
-
- void bindView(CaseCheckModel.DataDTO.RowsDTO rowsBean) {
- //处理图片
- String fileIdProcess = rowsBean.getFileIdProcess();
- if (!TextUtils.isEmpty(fileIdProcess)) {
- String[] split = fileIdProcess.split(",");
- String firstImage = split[0];
- if (firstImage.endsWith(".jpg") || firstImage.contains(".jpeg") || firstImage.contains(".png")) {
- Glide.with(context).load(StringHelper.appendCompleteURL(firstImage)).into(caseImageView);
- }
- }
- caseTitleView.setText(StringHub.filterSpaceOrEnter(rowsBean.getDescription()));
- casePlaceView.setText("发生地点:" + StringHub.filterSpaceOrEnter(rowsBean.getFieldintro()));
- caseTimeView.setText("上报时间:" + rowsBean.getReportTime());
- }
- }
-
- private OnItemClickListener clickListener;
-
- public interface OnItemClickListener {
- void onClick(int position);
- }
-
- public void setOnItemClickListener(OnItemClickListener onItemClickListener) {
- this.clickListener = onItemClickListener;
- }
-}
diff --git a/app/src/main/java/com/casic/dcms/fragment/check/CaseCheckFragment.java b/app/src/main/java/com/casic/dcms/fragment/check/CaseCheckFragment.java
index 85cebc6..667981d 100644
--- a/app/src/main/java/com/casic/dcms/fragment/check/CaseCheckFragment.java
+++ b/app/src/main/java/com/casic/dcms/fragment/check/CaseCheckFragment.java
@@ -1,19 +1,27 @@
package com.casic.dcms.fragment.check;
+import static com.luck.picture.lib.thread.PictureThreadUtils.runOnUiThread;
+
+import android.graphics.drawable.Drawable;
import android.os.Handler;
import android.os.Message;
+import android.text.TextUtils;
import android.view.View;
import androidx.annotation.NonNull;
import androidx.lifecycle.Observer;
import androidx.lifecycle.ViewModelProvider;
-import com.casic.dcms.adapter.CheckCaseListAdapter;
+import com.bumptech.glide.Glide;
+import com.casic.dcms.R;
import com.casic.dcms.databinding.FragmentCheckCaseBinding;
-import com.casic.dcms.model.check.CaseCheckModel;
+import com.casic.dcms.model.CaseCheckModel;
import com.casic.dcms.utils.LocaleConstant;
-import com.casic.dcms.view.check.CaseCheckDetailActivity;
+import com.casic.dcms.utils.StringHelper;
+import com.casic.dcms.view.check.CheckDetailActivity;
import com.casic.dcms.vm.CaseViewModel;
+import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter;
+import com.pengxh.androidx.lite.adapter.ViewHolder;
import com.pengxh.androidx.lite.base.AndroidxBaseFragment;
import com.pengxh.androidx.lite.hub.ContextHub;
import com.pengxh.androidx.lite.hub.StringHub;
@@ -24,14 +32,15 @@
import java.util.ArrayList;
import java.util.List;
+import java.util.concurrent.ExecutionException;
public class CaseCheckFragment extends AndroidxBaseFragment {
private static final String TAG = "CaseCheckFragment";
private WeakReferenceHandler weakReferenceHandler;
private CaseViewModel caseViewModel;
- private CheckCaseListAdapter adapter;
- private List dataBeans = new ArrayList<>();
+ private NormalRecyclerAdapter adapter;
+ private List dataBeans = new ArrayList<>();
private int pageIndex = 1;
private boolean isRefresh, isLoadMore = false;
@@ -49,12 +58,37 @@
protected void initData() {
weakReferenceHandler = new WeakReferenceHandler(callback);
caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class);
+ caseViewModel.caseCheckModel.observe(this, new Observer() {
+ @Override
+ public void onChanged(CaseCheckModel resultBean) {
+ if (resultBean.isSuccess()) {
+ List dataRows = resultBean.getData().getRows();
+ if (isRefresh) {
+ dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题
+ dataBeans = dataRows;
+ viewBinding.refreshLayout.finishRefresh();
+ isRefresh = false;
+ } else if (isLoadMore) {
+ if (dataRows.size() == 0) {
+ StringHub.show(requireContext(), "到底了,别拉了");
+ }
+ dataBeans.addAll(dataRows);
+ viewBinding.refreshLayout.finishLoadMore();
+ isLoadMore = false;
+ } else {
+ dataBeans = dataRows;
+ }
+ weakReferenceHandler.sendEmptyMessage(202104251);
+ }
+ }
+ });
}
@Override
public void onResume() {
- obtainCheckCaseList();
super.onResume();
+ pageIndex = 1;
+ obtainCheckCaseList();
}
private void obtainCheckCaseList() {
@@ -80,31 +114,6 @@
obtainCheckCaseList();
}
});
-
- caseViewModel.caseCheckModel.observe(this, new Observer() {
- @Override
- public void onChanged(CaseCheckModel resultBean) {
- if (resultBean.isSuccess()) {
- List dataRows = resultBean.getData().getRows();
- if (isRefresh) {
- dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题
- dataBeans = dataRows;
- viewBinding.refreshLayout.finishRefresh();
- isRefresh = false;
- } else if (isLoadMore) {
- if (dataRows.size() == 0) {
- StringHub.show(requireContext(), "到底了,别拉了");
- }
- dataBeans.addAll(dataRows);
- viewBinding.refreshLayout.finishLoadMore();
- isLoadMore = false;
- } else {
- dataBeans = dataRows;
- }
- weakReferenceHandler.sendEmptyMessage(202104251);
- }
- }
- });
}
private final Handler.Callback callback = new Handler.Callback() {
@@ -125,16 +134,42 @@
});
} else {
viewBinding.emptyView.hide();
- adapter = new CheckCaseListAdapter(requireContext(), dataBeans);
- viewBinding.caseRecyclerView.setAdapter(adapter);
- adapter.setOnItemClickListener(new CheckCaseListAdapter.OnItemClickListener() {
+ adapter = new NormalRecyclerAdapter(R.layout.item_case_rv_l, dataBeans) {
@Override
- public void onClick(int position) {
- ContextHub.navigatePageTo(
- requireContext(),
- CaseCheckDetailActivity.class,
- dataBeans.get(position).getId()
- );
+ public void convertView(ViewHolder viewHolder, int position, CaseCheckModel.DataModel.RowsModel item) {
+ String fileIdProcess = item.getFileIdProcess();
+ if (!TextUtils.isEmpty(fileIdProcess)) {
+ String[] split = fileIdProcess.split(",");
+ String firstImage = split[0];
+ if (firstImage.endsWith(".jpg") || firstImage.contains(".jpeg") || firstImage.contains(".png")) {
+ new Thread(new Runnable() {
+ @Override
+ public void run() {
+ try {
+ Drawable drawable = Glide.with(requireContext()).load(StringHelper.appendCompleteURL(firstImage)).submit().get();
+ runOnUiThread(new Runnable() {
+ @Override
+ public void run() {
+ viewHolder.setImageResource(R.id.caseImageView, drawable);
+ }
+ });
+ } catch (ExecutionException | InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+ }).start();
+ }
+ }
+ viewHolder.setText(R.id.caseTitleView, StringHub.filterSpaceOrEnter(item.getDescription()))
+ .setText(R.id.casePlaceView, "发生地点:" + StringHub.filterSpaceOrEnter(item.getFieldintro()))
+ .setText(R.id.caseTimeView, "上报时间:" + item.getReportTime());
+ }
+ };
+ viewBinding.caseRecyclerView.setAdapter(adapter);
+ adapter.setOnItemClickedListener(new NormalRecyclerAdapter.OnItemClickedListener() {
+ @Override
+ public void onItemClicked(int position, CaseCheckModel.DataModel.RowsModel rowsModel) {
+ ContextHub.navigatePageTo(requireContext(), CheckDetailActivity.class, rowsModel.getId());
}
});
}
diff --git a/app/src/main/java/com/casic/dcms/fragment/check/CaseCheckedFragment.java b/app/src/main/java/com/casic/dcms/fragment/check/CaseCheckedFragment.java
index 3e2d904..6775b65 100644
--- a/app/src/main/java/com/casic/dcms/fragment/check/CaseCheckedFragment.java
+++ b/app/src/main/java/com/casic/dcms/fragment/check/CaseCheckedFragment.java
@@ -1,19 +1,27 @@
package com.casic.dcms.fragment.check;
+import static com.luck.picture.lib.thread.PictureThreadUtils.runOnUiThread;
+
+import android.graphics.drawable.Drawable;
import android.os.Handler;
import android.os.Message;
+import android.text.TextUtils;
import android.view.View;
import androidx.annotation.NonNull;
import androidx.lifecycle.Observer;
import androidx.lifecycle.ViewModelProvider;
-import com.casic.dcms.adapter.CheckCaseListAdapter;
+import com.bumptech.glide.Glide;
+import com.casic.dcms.R;
import com.casic.dcms.databinding.FragmentCheckCaseBinding;
-import com.casic.dcms.model.check.CaseCheckModel;
+import com.casic.dcms.model.CaseCheckModel;
import com.casic.dcms.utils.LocaleConstant;
-import com.casic.dcms.view.check.CaseCheckedDetailActivity;
+import com.casic.dcms.utils.StringHelper;
+import com.casic.dcms.view.check.CheckedDetailActivity;
import com.casic.dcms.vm.CaseViewModel;
+import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter;
+import com.pengxh.androidx.lite.adapter.ViewHolder;
import com.pengxh.androidx.lite.base.AndroidxBaseFragment;
import com.pengxh.androidx.lite.hub.ContextHub;
import com.pengxh.androidx.lite.hub.StringHub;
@@ -24,14 +32,15 @@
import java.util.ArrayList;
import java.util.List;
+import java.util.concurrent.ExecutionException;
public class CaseCheckedFragment extends AndroidxBaseFragment {
private static final String TAG = "CaseCheckedFragment";
private WeakReferenceHandler weakReferenceHandler;
private CaseViewModel caseViewModel;
- private CheckCaseListAdapter adapter;
- private List dataBeans = new ArrayList<>();
+ private NormalRecyclerAdapter adapter;
+ private List dataBeans = new ArrayList<>();
private int pageIndex = 1;
private boolean isRefresh, isLoadMore = false;
@@ -50,12 +59,37 @@
protected void initData() {
weakReferenceHandler = new WeakReferenceHandler(callback);
caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class);
+ caseViewModel.caseCheckModel.observe(this, new Observer() {
+ @Override
+ public void onChanged(CaseCheckModel resultBean) {
+ if (resultBean.isSuccess()) {
+ List dataRows = resultBean.getData().getRows();
+ if (isRefresh) {
+ dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题
+ dataBeans = dataRows;
+ viewBinding.refreshLayout.finishRefresh();
+ isRefresh = false;
+ } else if (isLoadMore) {
+ if (dataRows.size() == 0) {
+ StringHub.show(requireContext(), "到底了,别拉了");
+ }
+ dataBeans.addAll(dataRows);
+ viewBinding.refreshLayout.finishLoadMore();
+ isLoadMore = false;
+ } else {
+ dataBeans = dataRows;
+ }
+ weakReferenceHandler.sendEmptyMessage(202104252);
+ }
+ }
+ });
}
@Override
public void onResume() {
- obtainCheckCaseList();
super.onResume();
+ pageIndex = 1;
+ obtainCheckCaseList();
}
private void obtainCheckCaseList() {
@@ -81,32 +115,6 @@
obtainCheckCaseList();
}
});
-
- caseViewModel.caseCheckModel.observe(this, new Observer() {
-
- @Override
- public void onChanged(CaseCheckModel resultBean) {
- if (resultBean.isSuccess()) {
- List dataRows = resultBean.getData().getRows();
- if (isRefresh) {
- dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题
- dataBeans = dataRows;
- viewBinding.refreshLayout.finishRefresh();
- isRefresh = false;
- } else if (isLoadMore) {
- if (dataRows.size() == 0) {
- StringHub.show(requireContext(), "到底了,别拉了");
- }
- dataBeans.addAll(dataRows);
- viewBinding.refreshLayout.finishLoadMore();
- isLoadMore = false;
- } else {
- dataBeans = dataRows;
- }
- weakReferenceHandler.sendEmptyMessage(202104252);
- }
- }
- });
}
private final Handler.Callback callback = new Handler.Callback() {
@@ -127,16 +135,42 @@
});
} else {
viewBinding.emptyView.hide();
- adapter = new CheckCaseListAdapter(requireContext(), dataBeans);
- viewBinding.caseRecyclerView.setAdapter(adapter);
- adapter.setOnItemClickListener(new CheckCaseListAdapter.OnItemClickListener() {
+ adapter = new NormalRecyclerAdapter(R.layout.item_case_rv_l, dataBeans) {
@Override
- public void onClick(int position) {
- ContextHub.navigatePageTo(
- requireContext(),
- CaseCheckedDetailActivity.class,
- dataBeans.get(position).getId()
- );
+ public void convertView(ViewHolder viewHolder, int position, CaseCheckModel.DataModel.RowsModel item) {
+ String fileIdProcess = item.getFileIdProcess();
+ if (!TextUtils.isEmpty(fileIdProcess)) {
+ String[] split = fileIdProcess.split(",");
+ String firstImage = split[0];
+ if (firstImage.endsWith(".jpg") || firstImage.contains(".jpeg") || firstImage.contains(".png")) {
+ new Thread(new Runnable() {
+ @Override
+ public void run() {
+ try {
+ Drawable drawable = Glide.with(requireContext()).load(StringHelper.appendCompleteURL(firstImage)).submit().get();
+ runOnUiThread(new Runnable() {
+ @Override
+ public void run() {
+ viewHolder.setImageResource(R.id.caseImageView, drawable);
+ }
+ });
+ } catch (ExecutionException | InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+ }).start();
+ }
+ }
+ viewHolder.setText(R.id.caseTitleView, StringHub.filterSpaceOrEnter(item.getDescription()))
+ .setText(R.id.casePlaceView, "发生地点:" + StringHub.filterSpaceOrEnter(item.getFieldintro()))
+ .setText(R.id.caseTimeView, "上报时间:" + item.getReportTime());
+ }
+ };
+ viewBinding.caseRecyclerView.setAdapter(adapter);
+ adapter.setOnItemClickedListener(new NormalRecyclerAdapter.OnItemClickedListener() {
+ @Override
+ public void onItemClicked(int position, CaseCheckModel.DataModel.RowsModel rowsModel) {
+ ContextHub.navigatePageTo(requireContext(), CheckedDetailActivity.class, rowsModel.getId());
}
});
}
diff --git a/app/src/main/java/com/casic/dcms/model/CaseCheckModel.java b/app/src/main/java/com/casic/dcms/model/CaseCheckModel.java
new file mode 100644
index 0000000..550a1fe
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/model/CaseCheckModel.java
@@ -0,0 +1,358 @@
+package com.casic.dcms.model;
+
+import java.util.List;
+
+/**
+ * 核查-已办/待办共用一个Model
+ */
+public class CaseCheckModel {
+
+ private int code;
+ private DataModel data;
+ private String message;
+ private boolean success;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public DataModel getData() {
+ return data;
+ }
+
+ public void setData(DataModel data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
+ public static class DataModel {
+ private List rows;
+ private int total;
+
+ public List getRows() {
+ return rows;
+ }
+
+ public void setRows(List rows) {
+ this.rows = rows;
+ }
+
+ public int getTotal() {
+ return total;
+ }
+
+ public void setTotal(int total) {
+ this.total = total;
+ }
+
+ public static class RowsModel {
+ private String isPostpone;
+ private String description;
+ private String source;
+ private String eorcName;
+ private String casetypeDetailName;
+ private String remainingTime;
+ private String casetypeName;
+ private String currUserId;
+ private String currUserName;
+ private String processId;
+ private String caseState;
+ private String id;
+ private String shopId;
+ private String fieldintro;
+ private String lat;
+ private String caseStateName;
+ private String lng;
+ private String isOvertime;
+ private String currRoleName;
+ private String fileIdVerify;
+ private String casetypeDetailCode;
+ private String onedeptid;
+ private String eorc;
+ private String currRoleId;
+ private String caseid;
+ private String casetypeCode;
+ private String nodeLimittime;
+ private String taskName;
+ private String sourceName;
+ private String fileIdProcess;
+ private String reportTime;
+ private String onedeptName;
+
+ public String getIsPostpone() {
+ return isPostpone;
+ }
+
+ public void setIsPostpone(String isPostpone) {
+ this.isPostpone = isPostpone;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ public String getSource() {
+ return source;
+ }
+
+ public void setSource(String source) {
+ this.source = source;
+ }
+
+ public String getEorcName() {
+ return eorcName;
+ }
+
+ public void setEorcName(String eorcName) {
+ this.eorcName = eorcName;
+ }
+
+ public String getCasetypeDetailName() {
+ return casetypeDetailName;
+ }
+
+ public void setCasetypeDetailName(String casetypeDetailName) {
+ this.casetypeDetailName = casetypeDetailName;
+ }
+
+ public String getRemainingTime() {
+ return remainingTime;
+ }
+
+ public void setRemainingTime(String remainingTime) {
+ this.remainingTime = remainingTime;
+ }
+
+ public String getCasetypeName() {
+ return casetypeName;
+ }
+
+ public void setCasetypeName(String casetypeName) {
+ this.casetypeName = casetypeName;
+ }
+
+ public String getCurrUserId() {
+ return currUserId;
+ }
+
+ public void setCurrUserId(String currUserId) {
+ this.currUserId = currUserId;
+ }
+
+ public String getCurrUserName() {
+ return currUserName;
+ }
+
+ public void setCurrUserName(String currUserName) {
+ this.currUserName = currUserName;
+ }
+
+ public String getProcessId() {
+ return processId;
+ }
+
+ public void setProcessId(String processId) {
+ this.processId = processId;
+ }
+
+ public String getCaseState() {
+ return caseState;
+ }
+
+ public void setCaseState(String caseState) {
+ this.caseState = caseState;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getShopId() {
+ return shopId;
+ }
+
+ public void setShopId(String shopId) {
+ this.shopId = shopId;
+ }
+
+ public String getFieldintro() {
+ return fieldintro;
+ }
+
+ public void setFieldintro(String fieldintro) {
+ this.fieldintro = fieldintro;
+ }
+
+ public String getLat() {
+ return lat;
+ }
+
+ public void setLat(String lat) {
+ this.lat = lat;
+ }
+
+ public String getCaseStateName() {
+ return caseStateName;
+ }
+
+ public void setCaseStateName(String caseStateName) {
+ this.caseStateName = caseStateName;
+ }
+
+ public String getLng() {
+ return lng;
+ }
+
+ public void setLng(String lng) {
+ this.lng = lng;
+ }
+
+ public String getIsOvertime() {
+ return isOvertime;
+ }
+
+ public void setIsOvertime(String isOvertime) {
+ this.isOvertime = isOvertime;
+ }
+
+ public String getCurrRoleName() {
+ return currRoleName;
+ }
+
+ public void setCurrRoleName(String currRoleName) {
+ this.currRoleName = currRoleName;
+ }
+
+ public String getFileIdVerify() {
+ return fileIdVerify;
+ }
+
+ public void setFileIdVerify(String fileIdVerify) {
+ this.fileIdVerify = fileIdVerify;
+ }
+
+ public String getCasetypeDetailCode() {
+ return casetypeDetailCode;
+ }
+
+ public void setCasetypeDetailCode(String casetypeDetailCode) {
+ this.casetypeDetailCode = casetypeDetailCode;
+ }
+
+ public String getOnedeptid() {
+ return onedeptid;
+ }
+
+ public void setOnedeptid(String onedeptid) {
+ this.onedeptid = onedeptid;
+ }
+
+ public String getEorc() {
+ return eorc;
+ }
+
+ public void setEorc(String eorc) {
+ this.eorc = eorc;
+ }
+
+ public String getCurrRoleId() {
+ return currRoleId;
+ }
+
+ public void setCurrRoleId(String currRoleId) {
+ this.currRoleId = currRoleId;
+ }
+
+ public String getCaseid() {
+ return caseid;
+ }
+
+ public void setCaseid(String caseid) {
+ this.caseid = caseid;
+ }
+
+ public String getCasetypeCode() {
+ return casetypeCode;
+ }
+
+ public void setCasetypeCode(String casetypeCode) {
+ this.casetypeCode = casetypeCode;
+ }
+
+ public String getNodeLimittime() {
+ return nodeLimittime;
+ }
+
+ public void setNodeLimittime(String nodeLimittime) {
+ this.nodeLimittime = nodeLimittime;
+ }
+
+ public String getTaskName() {
+ return taskName;
+ }
+
+ public void setTaskName(String taskName) {
+ this.taskName = taskName;
+ }
+
+ public String getSourceName() {
+ return sourceName;
+ }
+
+ public void setSourceName(String sourceName) {
+ this.sourceName = sourceName;
+ }
+
+ public String getFileIdProcess() {
+ return fileIdProcess;
+ }
+
+ public void setFileIdProcess(String fileIdProcess) {
+ this.fileIdProcess = fileIdProcess;
+ }
+
+ public String getReportTime() {
+ return reportTime;
+ }
+
+ public void setReportTime(String reportTime) {
+ this.reportTime = reportTime;
+ }
+
+ public String getOnedeptName() {
+ return onedeptName;
+ }
+
+ public void setOnedeptName(String onedeptName) {
+ this.onedeptName = onedeptName;
+ }
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/model/check/CaseCheckModel.java b/app/src/main/java/com/casic/dcms/model/check/CaseCheckModel.java
deleted file mode 100644
index 854e2fe..0000000
--- a/app/src/main/java/com/casic/dcms/model/check/CaseCheckModel.java
+++ /dev/null
@@ -1,358 +0,0 @@
-package com.casic.dcms.model.check;
-
-import java.util.List;
-
-/**
- * 核查-已办/待办共用一个Bean
- */
-public class CaseCheckModel {
-
- private int code;
- private DataDTO data;
- private String message;
- private boolean success;
-
- public int getCode() {
- return code;
- }
-
- public void setCode(int code) {
- this.code = code;
- }
-
- public DataDTO getData() {
- return data;
- }
-
- public void setData(DataDTO data) {
- this.data = data;
- }
-
- public String getMessage() {
- return message;
- }
-
- public void setMessage(String message) {
- this.message = message;
- }
-
- public boolean isSuccess() {
- return success;
- }
-
- public void setSuccess(boolean success) {
- this.success = success;
- }
-
- public static class DataDTO {
- private List rows;
- private int total;
-
- public List getRows() {
- return rows;
- }
-
- public void setRows(List rows) {
- this.rows = rows;
- }
-
- public int getTotal() {
- return total;
- }
-
- public void setTotal(int total) {
- this.total = total;
- }
-
- public static class RowsDTO {
- private int isPostpone;
- private String description;
- private int source;
- private String eorcName;
- private String casetypeDetailName;
- private String remainingTime;
- private String casetypeName;
- private String currUserId;
- private String currUserName;
- private String processId;
- private int caseState;
- private String id;
- private String shopId;
- private String fieldintro;
- private String lat;
- private String caseStateName;
- private String lng;
- private String isOvertime;
- private String currRoleName;
- private String fileIdVerify;
- private String casetypeDetailCode;
- private String onedeptid;
- private String eorc;
- private String currRoleId;
- private String caseid;
- private String casetypeCode;
- private String nodeLimittime;
- private String taskName;
- private String sourceName;
- private String fileIdProcess;
- private String reportTime;
- private String onedeptName;
-
- public int getIsPostpone() {
- return isPostpone;
- }
-
- public void setIsPostpone(int isPostpone) {
- this.isPostpone = isPostpone;
- }
-
- public String getDescription() {
- return description;
- }
-
- public void setDescription(String description) {
- this.description = description;
- }
-
- public int getSource() {
- return source;
- }
-
- public void setSource(int source) {
- this.source = source;
- }
-
- public String getEorcName() {
- return eorcName;
- }
-
- public void setEorcName(String eorcName) {
- this.eorcName = eorcName;
- }
-
- public String getCasetypeDetailName() {
- return casetypeDetailName;
- }
-
- public void setCasetypeDetailName(String casetypeDetailName) {
- this.casetypeDetailName = casetypeDetailName;
- }
-
- public String getRemainingTime() {
- return remainingTime;
- }
-
- public void setRemainingTime(String remainingTime) {
- this.remainingTime = remainingTime;
- }
-
- public String getCasetypeName() {
- return casetypeName;
- }
-
- public void setCasetypeName(String casetypeName) {
- this.casetypeName = casetypeName;
- }
-
- public String getCurrUserId() {
- return currUserId;
- }
-
- public void setCurrUserId(String currUserId) {
- this.currUserId = currUserId;
- }
-
- public String getCurrUserName() {
- return currUserName;
- }
-
- public void setCurrUserName(String currUserName) {
- this.currUserName = currUserName;
- }
-
- public String getProcessId() {
- return processId;
- }
-
- public void setProcessId(String processId) {
- this.processId = processId;
- }
-
- public int getCaseState() {
- return caseState;
- }
-
- public void setCaseState(int caseState) {
- this.caseState = caseState;
- }
-
- public String getId() {
- return id;
- }
-
- public void setId(String id) {
- this.id = id;
- }
-
- public String getShopId() {
- return shopId;
- }
-
- public void setShopId(String shopId) {
- this.shopId = shopId;
- }
-
- public String getFieldintro() {
- return fieldintro;
- }
-
- public void setFieldintro(String fieldintro) {
- this.fieldintro = fieldintro;
- }
-
- public String getLat() {
- return lat;
- }
-
- public void setLat(String lat) {
- this.lat = lat;
- }
-
- public String getCaseStateName() {
- return caseStateName;
- }
-
- public void setCaseStateName(String caseStateName) {
- this.caseStateName = caseStateName;
- }
-
- public String getLng() {
- return lng;
- }
-
- public void setLng(String lng) {
- this.lng = lng;
- }
-
- public String getIsOvertime() {
- return isOvertime;
- }
-
- public void setIsOvertime(String isOvertime) {
- this.isOvertime = isOvertime;
- }
-
- public String getCurrRoleName() {
- return currRoleName;
- }
-
- public void setCurrRoleName(String currRoleName) {
- this.currRoleName = currRoleName;
- }
-
- public String getFileIdVerify() {
- return fileIdVerify;
- }
-
- public void setFileIdVerify(String fileIdVerify) {
- this.fileIdVerify = fileIdVerify;
- }
-
- public String getCasetypeDetailCode() {
- return casetypeDetailCode;
- }
-
- public void setCasetypeDetailCode(String casetypeDetailCode) {
- this.casetypeDetailCode = casetypeDetailCode;
- }
-
- public String getOnedeptid() {
- return onedeptid;
- }
-
- public void setOnedeptid(String onedeptid) {
- this.onedeptid = onedeptid;
- }
-
- public String getEorc() {
- return eorc;
- }
-
- public void setEorc(String eorc) {
- this.eorc = eorc;
- }
-
- public String getCurrRoleId() {
- return currRoleId;
- }
-
- public void setCurrRoleId(String currRoleId) {
- this.currRoleId = currRoleId;
- }
-
- public String getCaseid() {
- return caseid;
- }
-
- public void setCaseid(String caseid) {
- this.caseid = caseid;
- }
-
- public String getCasetypeCode() {
- return casetypeCode;
- }
-
- public void setCasetypeCode(String casetypeCode) {
- this.casetypeCode = casetypeCode;
- }
-
- public String getNodeLimittime() {
- return nodeLimittime;
- }
-
- public void setNodeLimittime(String nodeLimittime) {
- this.nodeLimittime = nodeLimittime;
- }
-
- public String getTaskName() {
- return taskName;
- }
-
- public void setTaskName(String taskName) {
- this.taskName = taskName;
- }
-
- public String getSourceName() {
- return sourceName;
- }
-
- public void setSourceName(String sourceName) {
- this.sourceName = sourceName;
- }
-
- public String getFileIdProcess() {
- return fileIdProcess;
- }
-
- public void setFileIdProcess(String fileIdProcess) {
- this.fileIdProcess = fileIdProcess;
- }
-
- public String getReportTime() {
- return reportTime;
- }
-
- public void setReportTime(String reportTime) {
- this.reportTime = reportTime;
- }
-
- public String getOnedeptName() {
- return onedeptName;
- }
-
- public void setOnedeptName(String onedeptName) {
- this.onedeptName = onedeptName;
- }
- }
- }
-}
diff --git a/app/src/main/java/com/casic/dcms/utils/NotificationHelper.java b/app/src/main/java/com/casic/dcms/utils/NotificationHelper.java
index cd3e026..d0888bc 100644
--- a/app/src/main/java/com/casic/dcms/utils/NotificationHelper.java
+++ b/app/src/main/java/com/casic/dcms/utils/NotificationHelper.java
@@ -14,10 +14,10 @@
import com.casic.dcms.R;
public class NotificationHelper {
- private Context mContext;
+ private final Context mContext;
@SuppressLint("StaticFieldLeak")
- private static NotificationHelper notificationHelper;
- private NotificationManager notificationManager;
+ private static volatile NotificationHelper notificationHelper;
+ private final NotificationManager notificationManager;
private NotificationHelper(Context context) {
this.mContext = context;
@@ -45,10 +45,8 @@
//创建渠道
String id = name + "_DefaultChannel";
NotificationChannel mChannel = new NotificationChannel(id, name, NotificationManager.IMPORTANCE_HIGH);
-// mChannel.setSound(Uri.parse(""), Notification.AUDIO_ATTRIBUTES_DEFAULT);
mChannel.setShowBadge(true);
- mChannel.enableVibration(true);
- mChannel.setVibrationPattern(new long[]{100, 200, 300});
+ mChannel.enableVibration(false);
mChannel.setLockscreenVisibility(Notification.VISIBILITY_PUBLIC);//设置锁屏可见
notificationManager.createNotificationChannel(mChannel);
builder = new Notification.Builder(mContext, id);
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index b6a8d08..c78d07c 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -64,8 +64,8 @@
-
-
+
+
diff --git a/app/src/main/java/com/casic/dcms/adapter/CheckCaseListAdapter.java b/app/src/main/java/com/casic/dcms/adapter/CheckCaseListAdapter.java
deleted file mode 100644
index 254f0cd..0000000
--- a/app/src/main/java/com/casic/dcms/adapter/CheckCaseListAdapter.java
+++ /dev/null
@@ -1,99 +0,0 @@
-package com.casic.dcms.adapter;
-
-import android.annotation.SuppressLint;
-import android.content.Context;
-import android.text.TextUtils;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.TextView;
-
-import androidx.annotation.NonNull;
-import androidx.recyclerview.widget.RecyclerView;
-
-import com.bumptech.glide.Glide;
-import com.casic.dcms.R;
-import com.casic.dcms.model.check.CaseCheckModel;
-import com.casic.dcms.utils.StringHelper;
-import com.pengxh.androidx.lite.hub.StringHub;
-import com.qmuiteam.qmui.widget.QMUIRadiusImageView;
-
-import java.util.List;
-
-public class CheckCaseListAdapter extends RecyclerView.Adapter {
-
- private final Context context;
- private final List dataBeans;
- private final LayoutInflater layoutInflater;
-
- public CheckCaseListAdapter(Context context, List dataRows) {
- this.context = context;
- this.dataBeans = dataRows;
- this.layoutInflater = LayoutInflater.from(context);
- }
-
- @NonNull
- @Override
- public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
- return new ItemViewHolder(layoutInflater.inflate(R.layout.item_case_rv_l, parent, false));
- }
-
- @Override
- public void onBindViewHolder(@NonNull ItemViewHolder holder, @SuppressLint("RecyclerView") int position) {
- holder.bindView(dataBeans.get(position));
- if (clickListener != null) {
- holder.itemView.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- clickListener.onClick(position);
- }
- });
- }
- }
-
- @Override
- public int getItemCount() {
- return dataBeans.size();
- }
-
- class ItemViewHolder extends RecyclerView.ViewHolder {
-
- private final QMUIRadiusImageView caseImageView;
- private final TextView caseTitleView;
- private final TextView casePlaceView;
- private final TextView caseTimeView;
-
- ItemViewHolder(@NonNull View itemView) {
- super(itemView);
- caseImageView = itemView.findViewById(R.id.caseImageView);
- caseTitleView = itemView.findViewById(R.id.caseTitleView);
- casePlaceView = itemView.findViewById(R.id.casePlaceView);
- caseTimeView = itemView.findViewById(R.id.caseTimeView);
- }
-
- void bindView(CaseCheckModel.DataDTO.RowsDTO rowsBean) {
- //处理图片
- String fileIdProcess = rowsBean.getFileIdProcess();
- if (!TextUtils.isEmpty(fileIdProcess)) {
- String[] split = fileIdProcess.split(",");
- String firstImage = split[0];
- if (firstImage.endsWith(".jpg") || firstImage.contains(".jpeg") || firstImage.contains(".png")) {
- Glide.with(context).load(StringHelper.appendCompleteURL(firstImage)).into(caseImageView);
- }
- }
- caseTitleView.setText(StringHub.filterSpaceOrEnter(rowsBean.getDescription()));
- casePlaceView.setText("发生地点:" + StringHub.filterSpaceOrEnter(rowsBean.getFieldintro()));
- caseTimeView.setText("上报时间:" + rowsBean.getReportTime());
- }
- }
-
- private OnItemClickListener clickListener;
-
- public interface OnItemClickListener {
- void onClick(int position);
- }
-
- public void setOnItemClickListener(OnItemClickListener onItemClickListener) {
- this.clickListener = onItemClickListener;
- }
-}
diff --git a/app/src/main/java/com/casic/dcms/fragment/check/CaseCheckFragment.java b/app/src/main/java/com/casic/dcms/fragment/check/CaseCheckFragment.java
index 85cebc6..667981d 100644
--- a/app/src/main/java/com/casic/dcms/fragment/check/CaseCheckFragment.java
+++ b/app/src/main/java/com/casic/dcms/fragment/check/CaseCheckFragment.java
@@ -1,19 +1,27 @@
package com.casic.dcms.fragment.check;
+import static com.luck.picture.lib.thread.PictureThreadUtils.runOnUiThread;
+
+import android.graphics.drawable.Drawable;
import android.os.Handler;
import android.os.Message;
+import android.text.TextUtils;
import android.view.View;
import androidx.annotation.NonNull;
import androidx.lifecycle.Observer;
import androidx.lifecycle.ViewModelProvider;
-import com.casic.dcms.adapter.CheckCaseListAdapter;
+import com.bumptech.glide.Glide;
+import com.casic.dcms.R;
import com.casic.dcms.databinding.FragmentCheckCaseBinding;
-import com.casic.dcms.model.check.CaseCheckModel;
+import com.casic.dcms.model.CaseCheckModel;
import com.casic.dcms.utils.LocaleConstant;
-import com.casic.dcms.view.check.CaseCheckDetailActivity;
+import com.casic.dcms.utils.StringHelper;
+import com.casic.dcms.view.check.CheckDetailActivity;
import com.casic.dcms.vm.CaseViewModel;
+import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter;
+import com.pengxh.androidx.lite.adapter.ViewHolder;
import com.pengxh.androidx.lite.base.AndroidxBaseFragment;
import com.pengxh.androidx.lite.hub.ContextHub;
import com.pengxh.androidx.lite.hub.StringHub;
@@ -24,14 +32,15 @@
import java.util.ArrayList;
import java.util.List;
+import java.util.concurrent.ExecutionException;
public class CaseCheckFragment extends AndroidxBaseFragment {
private static final String TAG = "CaseCheckFragment";
private WeakReferenceHandler weakReferenceHandler;
private CaseViewModel caseViewModel;
- private CheckCaseListAdapter adapter;
- private List dataBeans = new ArrayList<>();
+ private NormalRecyclerAdapter adapter;
+ private List dataBeans = new ArrayList<>();
private int pageIndex = 1;
private boolean isRefresh, isLoadMore = false;
@@ -49,12 +58,37 @@
protected void initData() {
weakReferenceHandler = new WeakReferenceHandler(callback);
caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class);
+ caseViewModel.caseCheckModel.observe(this, new Observer() {
+ @Override
+ public void onChanged(CaseCheckModel resultBean) {
+ if (resultBean.isSuccess()) {
+ List dataRows = resultBean.getData().getRows();
+ if (isRefresh) {
+ dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题
+ dataBeans = dataRows;
+ viewBinding.refreshLayout.finishRefresh();
+ isRefresh = false;
+ } else if (isLoadMore) {
+ if (dataRows.size() == 0) {
+ StringHub.show(requireContext(), "到底了,别拉了");
+ }
+ dataBeans.addAll(dataRows);
+ viewBinding.refreshLayout.finishLoadMore();
+ isLoadMore = false;
+ } else {
+ dataBeans = dataRows;
+ }
+ weakReferenceHandler.sendEmptyMessage(202104251);
+ }
+ }
+ });
}
@Override
public void onResume() {
- obtainCheckCaseList();
super.onResume();
+ pageIndex = 1;
+ obtainCheckCaseList();
}
private void obtainCheckCaseList() {
@@ -80,31 +114,6 @@
obtainCheckCaseList();
}
});
-
- caseViewModel.caseCheckModel.observe(this, new Observer() {
- @Override
- public void onChanged(CaseCheckModel resultBean) {
- if (resultBean.isSuccess()) {
- List dataRows = resultBean.getData().getRows();
- if (isRefresh) {
- dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题
- dataBeans = dataRows;
- viewBinding.refreshLayout.finishRefresh();
- isRefresh = false;
- } else if (isLoadMore) {
- if (dataRows.size() == 0) {
- StringHub.show(requireContext(), "到底了,别拉了");
- }
- dataBeans.addAll(dataRows);
- viewBinding.refreshLayout.finishLoadMore();
- isLoadMore = false;
- } else {
- dataBeans = dataRows;
- }
- weakReferenceHandler.sendEmptyMessage(202104251);
- }
- }
- });
}
private final Handler.Callback callback = new Handler.Callback() {
@@ -125,16 +134,42 @@
});
} else {
viewBinding.emptyView.hide();
- adapter = new CheckCaseListAdapter(requireContext(), dataBeans);
- viewBinding.caseRecyclerView.setAdapter(adapter);
- adapter.setOnItemClickListener(new CheckCaseListAdapter.OnItemClickListener() {
+ adapter = new NormalRecyclerAdapter(R.layout.item_case_rv_l, dataBeans) {
@Override
- public void onClick(int position) {
- ContextHub.navigatePageTo(
- requireContext(),
- CaseCheckDetailActivity.class,
- dataBeans.get(position).getId()
- );
+ public void convertView(ViewHolder viewHolder, int position, CaseCheckModel.DataModel.RowsModel item) {
+ String fileIdProcess = item.getFileIdProcess();
+ if (!TextUtils.isEmpty(fileIdProcess)) {
+ String[] split = fileIdProcess.split(",");
+ String firstImage = split[0];
+ if (firstImage.endsWith(".jpg") || firstImage.contains(".jpeg") || firstImage.contains(".png")) {
+ new Thread(new Runnable() {
+ @Override
+ public void run() {
+ try {
+ Drawable drawable = Glide.with(requireContext()).load(StringHelper.appendCompleteURL(firstImage)).submit().get();
+ runOnUiThread(new Runnable() {
+ @Override
+ public void run() {
+ viewHolder.setImageResource(R.id.caseImageView, drawable);
+ }
+ });
+ } catch (ExecutionException | InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+ }).start();
+ }
+ }
+ viewHolder.setText(R.id.caseTitleView, StringHub.filterSpaceOrEnter(item.getDescription()))
+ .setText(R.id.casePlaceView, "发生地点:" + StringHub.filterSpaceOrEnter(item.getFieldintro()))
+ .setText(R.id.caseTimeView, "上报时间:" + item.getReportTime());
+ }
+ };
+ viewBinding.caseRecyclerView.setAdapter(adapter);
+ adapter.setOnItemClickedListener(new NormalRecyclerAdapter.OnItemClickedListener() {
+ @Override
+ public void onItemClicked(int position, CaseCheckModel.DataModel.RowsModel rowsModel) {
+ ContextHub.navigatePageTo(requireContext(), CheckDetailActivity.class, rowsModel.getId());
}
});
}
diff --git a/app/src/main/java/com/casic/dcms/fragment/check/CaseCheckedFragment.java b/app/src/main/java/com/casic/dcms/fragment/check/CaseCheckedFragment.java
index 3e2d904..6775b65 100644
--- a/app/src/main/java/com/casic/dcms/fragment/check/CaseCheckedFragment.java
+++ b/app/src/main/java/com/casic/dcms/fragment/check/CaseCheckedFragment.java
@@ -1,19 +1,27 @@
package com.casic.dcms.fragment.check;
+import static com.luck.picture.lib.thread.PictureThreadUtils.runOnUiThread;
+
+import android.graphics.drawable.Drawable;
import android.os.Handler;
import android.os.Message;
+import android.text.TextUtils;
import android.view.View;
import androidx.annotation.NonNull;
import androidx.lifecycle.Observer;
import androidx.lifecycle.ViewModelProvider;
-import com.casic.dcms.adapter.CheckCaseListAdapter;
+import com.bumptech.glide.Glide;
+import com.casic.dcms.R;
import com.casic.dcms.databinding.FragmentCheckCaseBinding;
-import com.casic.dcms.model.check.CaseCheckModel;
+import com.casic.dcms.model.CaseCheckModel;
import com.casic.dcms.utils.LocaleConstant;
-import com.casic.dcms.view.check.CaseCheckedDetailActivity;
+import com.casic.dcms.utils.StringHelper;
+import com.casic.dcms.view.check.CheckedDetailActivity;
import com.casic.dcms.vm.CaseViewModel;
+import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter;
+import com.pengxh.androidx.lite.adapter.ViewHolder;
import com.pengxh.androidx.lite.base.AndroidxBaseFragment;
import com.pengxh.androidx.lite.hub.ContextHub;
import com.pengxh.androidx.lite.hub.StringHub;
@@ -24,14 +32,15 @@
import java.util.ArrayList;
import java.util.List;
+import java.util.concurrent.ExecutionException;
public class CaseCheckedFragment extends AndroidxBaseFragment {
private static final String TAG = "CaseCheckedFragment";
private WeakReferenceHandler weakReferenceHandler;
private CaseViewModel caseViewModel;
- private CheckCaseListAdapter adapter;
- private List dataBeans = new ArrayList<>();
+ private NormalRecyclerAdapter adapter;
+ private List dataBeans = new ArrayList<>();
private int pageIndex = 1;
private boolean isRefresh, isLoadMore = false;
@@ -50,12 +59,37 @@
protected void initData() {
weakReferenceHandler = new WeakReferenceHandler(callback);
caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class);
+ caseViewModel.caseCheckModel.observe(this, new Observer() {
+ @Override
+ public void onChanged(CaseCheckModel resultBean) {
+ if (resultBean.isSuccess()) {
+ List dataRows = resultBean.getData().getRows();
+ if (isRefresh) {
+ dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题
+ dataBeans = dataRows;
+ viewBinding.refreshLayout.finishRefresh();
+ isRefresh = false;
+ } else if (isLoadMore) {
+ if (dataRows.size() == 0) {
+ StringHub.show(requireContext(), "到底了,别拉了");
+ }
+ dataBeans.addAll(dataRows);
+ viewBinding.refreshLayout.finishLoadMore();
+ isLoadMore = false;
+ } else {
+ dataBeans = dataRows;
+ }
+ weakReferenceHandler.sendEmptyMessage(202104252);
+ }
+ }
+ });
}
@Override
public void onResume() {
- obtainCheckCaseList();
super.onResume();
+ pageIndex = 1;
+ obtainCheckCaseList();
}
private void obtainCheckCaseList() {
@@ -81,32 +115,6 @@
obtainCheckCaseList();
}
});
-
- caseViewModel.caseCheckModel.observe(this, new Observer() {
-
- @Override
- public void onChanged(CaseCheckModel resultBean) {
- if (resultBean.isSuccess()) {
- List dataRows = resultBean.getData().getRows();
- if (isRefresh) {
- dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题
- dataBeans = dataRows;
- viewBinding.refreshLayout.finishRefresh();
- isRefresh = false;
- } else if (isLoadMore) {
- if (dataRows.size() == 0) {
- StringHub.show(requireContext(), "到底了,别拉了");
- }
- dataBeans.addAll(dataRows);
- viewBinding.refreshLayout.finishLoadMore();
- isLoadMore = false;
- } else {
- dataBeans = dataRows;
- }
- weakReferenceHandler.sendEmptyMessage(202104252);
- }
- }
- });
}
private final Handler.Callback callback = new Handler.Callback() {
@@ -127,16 +135,42 @@
});
} else {
viewBinding.emptyView.hide();
- adapter = new CheckCaseListAdapter(requireContext(), dataBeans);
- viewBinding.caseRecyclerView.setAdapter(adapter);
- adapter.setOnItemClickListener(new CheckCaseListAdapter.OnItemClickListener() {
+ adapter = new NormalRecyclerAdapter(R.layout.item_case_rv_l, dataBeans) {
@Override
- public void onClick(int position) {
- ContextHub.navigatePageTo(
- requireContext(),
- CaseCheckedDetailActivity.class,
- dataBeans.get(position).getId()
- );
+ public void convertView(ViewHolder viewHolder, int position, CaseCheckModel.DataModel.RowsModel item) {
+ String fileIdProcess = item.getFileIdProcess();
+ if (!TextUtils.isEmpty(fileIdProcess)) {
+ String[] split = fileIdProcess.split(",");
+ String firstImage = split[0];
+ if (firstImage.endsWith(".jpg") || firstImage.contains(".jpeg") || firstImage.contains(".png")) {
+ new Thread(new Runnable() {
+ @Override
+ public void run() {
+ try {
+ Drawable drawable = Glide.with(requireContext()).load(StringHelper.appendCompleteURL(firstImage)).submit().get();
+ runOnUiThread(new Runnable() {
+ @Override
+ public void run() {
+ viewHolder.setImageResource(R.id.caseImageView, drawable);
+ }
+ });
+ } catch (ExecutionException | InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+ }).start();
+ }
+ }
+ viewHolder.setText(R.id.caseTitleView, StringHub.filterSpaceOrEnter(item.getDescription()))
+ .setText(R.id.casePlaceView, "发生地点:" + StringHub.filterSpaceOrEnter(item.getFieldintro()))
+ .setText(R.id.caseTimeView, "上报时间:" + item.getReportTime());
+ }
+ };
+ viewBinding.caseRecyclerView.setAdapter(adapter);
+ adapter.setOnItemClickedListener(new NormalRecyclerAdapter.OnItemClickedListener() {
+ @Override
+ public void onItemClicked(int position, CaseCheckModel.DataModel.RowsModel rowsModel) {
+ ContextHub.navigatePageTo(requireContext(), CheckedDetailActivity.class, rowsModel.getId());
}
});
}
diff --git a/app/src/main/java/com/casic/dcms/model/CaseCheckModel.java b/app/src/main/java/com/casic/dcms/model/CaseCheckModel.java
new file mode 100644
index 0000000..550a1fe
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/model/CaseCheckModel.java
@@ -0,0 +1,358 @@
+package com.casic.dcms.model;
+
+import java.util.List;
+
+/**
+ * 核查-已办/待办共用一个Model
+ */
+public class CaseCheckModel {
+
+ private int code;
+ private DataModel data;
+ private String message;
+ private boolean success;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public DataModel getData() {
+ return data;
+ }
+
+ public void setData(DataModel data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
+ public static class DataModel {
+ private List rows;
+ private int total;
+
+ public List getRows() {
+ return rows;
+ }
+
+ public void setRows(List rows) {
+ this.rows = rows;
+ }
+
+ public int getTotal() {
+ return total;
+ }
+
+ public void setTotal(int total) {
+ this.total = total;
+ }
+
+ public static class RowsModel {
+ private String isPostpone;
+ private String description;
+ private String source;
+ private String eorcName;
+ private String casetypeDetailName;
+ private String remainingTime;
+ private String casetypeName;
+ private String currUserId;
+ private String currUserName;
+ private String processId;
+ private String caseState;
+ private String id;
+ private String shopId;
+ private String fieldintro;
+ private String lat;
+ private String caseStateName;
+ private String lng;
+ private String isOvertime;
+ private String currRoleName;
+ private String fileIdVerify;
+ private String casetypeDetailCode;
+ private String onedeptid;
+ private String eorc;
+ private String currRoleId;
+ private String caseid;
+ private String casetypeCode;
+ private String nodeLimittime;
+ private String taskName;
+ private String sourceName;
+ private String fileIdProcess;
+ private String reportTime;
+ private String onedeptName;
+
+ public String getIsPostpone() {
+ return isPostpone;
+ }
+
+ public void setIsPostpone(String isPostpone) {
+ this.isPostpone = isPostpone;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ public String getSource() {
+ return source;
+ }
+
+ public void setSource(String source) {
+ this.source = source;
+ }
+
+ public String getEorcName() {
+ return eorcName;
+ }
+
+ public void setEorcName(String eorcName) {
+ this.eorcName = eorcName;
+ }
+
+ public String getCasetypeDetailName() {
+ return casetypeDetailName;
+ }
+
+ public void setCasetypeDetailName(String casetypeDetailName) {
+ this.casetypeDetailName = casetypeDetailName;
+ }
+
+ public String getRemainingTime() {
+ return remainingTime;
+ }
+
+ public void setRemainingTime(String remainingTime) {
+ this.remainingTime = remainingTime;
+ }
+
+ public String getCasetypeName() {
+ return casetypeName;
+ }
+
+ public void setCasetypeName(String casetypeName) {
+ this.casetypeName = casetypeName;
+ }
+
+ public String getCurrUserId() {
+ return currUserId;
+ }
+
+ public void setCurrUserId(String currUserId) {
+ this.currUserId = currUserId;
+ }
+
+ public String getCurrUserName() {
+ return currUserName;
+ }
+
+ public void setCurrUserName(String currUserName) {
+ this.currUserName = currUserName;
+ }
+
+ public String getProcessId() {
+ return processId;
+ }
+
+ public void setProcessId(String processId) {
+ this.processId = processId;
+ }
+
+ public String getCaseState() {
+ return caseState;
+ }
+
+ public void setCaseState(String caseState) {
+ this.caseState = caseState;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getShopId() {
+ return shopId;
+ }
+
+ public void setShopId(String shopId) {
+ this.shopId = shopId;
+ }
+
+ public String getFieldintro() {
+ return fieldintro;
+ }
+
+ public void setFieldintro(String fieldintro) {
+ this.fieldintro = fieldintro;
+ }
+
+ public String getLat() {
+ return lat;
+ }
+
+ public void setLat(String lat) {
+ this.lat = lat;
+ }
+
+ public String getCaseStateName() {
+ return caseStateName;
+ }
+
+ public void setCaseStateName(String caseStateName) {
+ this.caseStateName = caseStateName;
+ }
+
+ public String getLng() {
+ return lng;
+ }
+
+ public void setLng(String lng) {
+ this.lng = lng;
+ }
+
+ public String getIsOvertime() {
+ return isOvertime;
+ }
+
+ public void setIsOvertime(String isOvertime) {
+ this.isOvertime = isOvertime;
+ }
+
+ public String getCurrRoleName() {
+ return currRoleName;
+ }
+
+ public void setCurrRoleName(String currRoleName) {
+ this.currRoleName = currRoleName;
+ }
+
+ public String getFileIdVerify() {
+ return fileIdVerify;
+ }
+
+ public void setFileIdVerify(String fileIdVerify) {
+ this.fileIdVerify = fileIdVerify;
+ }
+
+ public String getCasetypeDetailCode() {
+ return casetypeDetailCode;
+ }
+
+ public void setCasetypeDetailCode(String casetypeDetailCode) {
+ this.casetypeDetailCode = casetypeDetailCode;
+ }
+
+ public String getOnedeptid() {
+ return onedeptid;
+ }
+
+ public void setOnedeptid(String onedeptid) {
+ this.onedeptid = onedeptid;
+ }
+
+ public String getEorc() {
+ return eorc;
+ }
+
+ public void setEorc(String eorc) {
+ this.eorc = eorc;
+ }
+
+ public String getCurrRoleId() {
+ return currRoleId;
+ }
+
+ public void setCurrRoleId(String currRoleId) {
+ this.currRoleId = currRoleId;
+ }
+
+ public String getCaseid() {
+ return caseid;
+ }
+
+ public void setCaseid(String caseid) {
+ this.caseid = caseid;
+ }
+
+ public String getCasetypeCode() {
+ return casetypeCode;
+ }
+
+ public void setCasetypeCode(String casetypeCode) {
+ this.casetypeCode = casetypeCode;
+ }
+
+ public String getNodeLimittime() {
+ return nodeLimittime;
+ }
+
+ public void setNodeLimittime(String nodeLimittime) {
+ this.nodeLimittime = nodeLimittime;
+ }
+
+ public String getTaskName() {
+ return taskName;
+ }
+
+ public void setTaskName(String taskName) {
+ this.taskName = taskName;
+ }
+
+ public String getSourceName() {
+ return sourceName;
+ }
+
+ public void setSourceName(String sourceName) {
+ this.sourceName = sourceName;
+ }
+
+ public String getFileIdProcess() {
+ return fileIdProcess;
+ }
+
+ public void setFileIdProcess(String fileIdProcess) {
+ this.fileIdProcess = fileIdProcess;
+ }
+
+ public String getReportTime() {
+ return reportTime;
+ }
+
+ public void setReportTime(String reportTime) {
+ this.reportTime = reportTime;
+ }
+
+ public String getOnedeptName() {
+ return onedeptName;
+ }
+
+ public void setOnedeptName(String onedeptName) {
+ this.onedeptName = onedeptName;
+ }
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/model/check/CaseCheckModel.java b/app/src/main/java/com/casic/dcms/model/check/CaseCheckModel.java
deleted file mode 100644
index 854e2fe..0000000
--- a/app/src/main/java/com/casic/dcms/model/check/CaseCheckModel.java
+++ /dev/null
@@ -1,358 +0,0 @@
-package com.casic.dcms.model.check;
-
-import java.util.List;
-
-/**
- * 核查-已办/待办共用一个Bean
- */
-public class CaseCheckModel {
-
- private int code;
- private DataDTO data;
- private String message;
- private boolean success;
-
- public int getCode() {
- return code;
- }
-
- public void setCode(int code) {
- this.code = code;
- }
-
- public DataDTO getData() {
- return data;
- }
-
- public void setData(DataDTO data) {
- this.data = data;
- }
-
- public String getMessage() {
- return message;
- }
-
- public void setMessage(String message) {
- this.message = message;
- }
-
- public boolean isSuccess() {
- return success;
- }
-
- public void setSuccess(boolean success) {
- this.success = success;
- }
-
- public static class DataDTO {
- private List rows;
- private int total;
-
- public List getRows() {
- return rows;
- }
-
- public void setRows(List rows) {
- this.rows = rows;
- }
-
- public int getTotal() {
- return total;
- }
-
- public void setTotal(int total) {
- this.total = total;
- }
-
- public static class RowsDTO {
- private int isPostpone;
- private String description;
- private int source;
- private String eorcName;
- private String casetypeDetailName;
- private String remainingTime;
- private String casetypeName;
- private String currUserId;
- private String currUserName;
- private String processId;
- private int caseState;
- private String id;
- private String shopId;
- private String fieldintro;
- private String lat;
- private String caseStateName;
- private String lng;
- private String isOvertime;
- private String currRoleName;
- private String fileIdVerify;
- private String casetypeDetailCode;
- private String onedeptid;
- private String eorc;
- private String currRoleId;
- private String caseid;
- private String casetypeCode;
- private String nodeLimittime;
- private String taskName;
- private String sourceName;
- private String fileIdProcess;
- private String reportTime;
- private String onedeptName;
-
- public int getIsPostpone() {
- return isPostpone;
- }
-
- public void setIsPostpone(int isPostpone) {
- this.isPostpone = isPostpone;
- }
-
- public String getDescription() {
- return description;
- }
-
- public void setDescription(String description) {
- this.description = description;
- }
-
- public int getSource() {
- return source;
- }
-
- public void setSource(int source) {
- this.source = source;
- }
-
- public String getEorcName() {
- return eorcName;
- }
-
- public void setEorcName(String eorcName) {
- this.eorcName = eorcName;
- }
-
- public String getCasetypeDetailName() {
- return casetypeDetailName;
- }
-
- public void setCasetypeDetailName(String casetypeDetailName) {
- this.casetypeDetailName = casetypeDetailName;
- }
-
- public String getRemainingTime() {
- return remainingTime;
- }
-
- public void setRemainingTime(String remainingTime) {
- this.remainingTime = remainingTime;
- }
-
- public String getCasetypeName() {
- return casetypeName;
- }
-
- public void setCasetypeName(String casetypeName) {
- this.casetypeName = casetypeName;
- }
-
- public String getCurrUserId() {
- return currUserId;
- }
-
- public void setCurrUserId(String currUserId) {
- this.currUserId = currUserId;
- }
-
- public String getCurrUserName() {
- return currUserName;
- }
-
- public void setCurrUserName(String currUserName) {
- this.currUserName = currUserName;
- }
-
- public String getProcessId() {
- return processId;
- }
-
- public void setProcessId(String processId) {
- this.processId = processId;
- }
-
- public int getCaseState() {
- return caseState;
- }
-
- public void setCaseState(int caseState) {
- this.caseState = caseState;
- }
-
- public String getId() {
- return id;
- }
-
- public void setId(String id) {
- this.id = id;
- }
-
- public String getShopId() {
- return shopId;
- }
-
- public void setShopId(String shopId) {
- this.shopId = shopId;
- }
-
- public String getFieldintro() {
- return fieldintro;
- }
-
- public void setFieldintro(String fieldintro) {
- this.fieldintro = fieldintro;
- }
-
- public String getLat() {
- return lat;
- }
-
- public void setLat(String lat) {
- this.lat = lat;
- }
-
- public String getCaseStateName() {
- return caseStateName;
- }
-
- public void setCaseStateName(String caseStateName) {
- this.caseStateName = caseStateName;
- }
-
- public String getLng() {
- return lng;
- }
-
- public void setLng(String lng) {
- this.lng = lng;
- }
-
- public String getIsOvertime() {
- return isOvertime;
- }
-
- public void setIsOvertime(String isOvertime) {
- this.isOvertime = isOvertime;
- }
-
- public String getCurrRoleName() {
- return currRoleName;
- }
-
- public void setCurrRoleName(String currRoleName) {
- this.currRoleName = currRoleName;
- }
-
- public String getFileIdVerify() {
- return fileIdVerify;
- }
-
- public void setFileIdVerify(String fileIdVerify) {
- this.fileIdVerify = fileIdVerify;
- }
-
- public String getCasetypeDetailCode() {
- return casetypeDetailCode;
- }
-
- public void setCasetypeDetailCode(String casetypeDetailCode) {
- this.casetypeDetailCode = casetypeDetailCode;
- }
-
- public String getOnedeptid() {
- return onedeptid;
- }
-
- public void setOnedeptid(String onedeptid) {
- this.onedeptid = onedeptid;
- }
-
- public String getEorc() {
- return eorc;
- }
-
- public void setEorc(String eorc) {
- this.eorc = eorc;
- }
-
- public String getCurrRoleId() {
- return currRoleId;
- }
-
- public void setCurrRoleId(String currRoleId) {
- this.currRoleId = currRoleId;
- }
-
- public String getCaseid() {
- return caseid;
- }
-
- public void setCaseid(String caseid) {
- this.caseid = caseid;
- }
-
- public String getCasetypeCode() {
- return casetypeCode;
- }
-
- public void setCasetypeCode(String casetypeCode) {
- this.casetypeCode = casetypeCode;
- }
-
- public String getNodeLimittime() {
- return nodeLimittime;
- }
-
- public void setNodeLimittime(String nodeLimittime) {
- this.nodeLimittime = nodeLimittime;
- }
-
- public String getTaskName() {
- return taskName;
- }
-
- public void setTaskName(String taskName) {
- this.taskName = taskName;
- }
-
- public String getSourceName() {
- return sourceName;
- }
-
- public void setSourceName(String sourceName) {
- this.sourceName = sourceName;
- }
-
- public String getFileIdProcess() {
- return fileIdProcess;
- }
-
- public void setFileIdProcess(String fileIdProcess) {
- this.fileIdProcess = fileIdProcess;
- }
-
- public String getReportTime() {
- return reportTime;
- }
-
- public void setReportTime(String reportTime) {
- this.reportTime = reportTime;
- }
-
- public String getOnedeptName() {
- return onedeptName;
- }
-
- public void setOnedeptName(String onedeptName) {
- this.onedeptName = onedeptName;
- }
- }
- }
-}
diff --git a/app/src/main/java/com/casic/dcms/utils/NotificationHelper.java b/app/src/main/java/com/casic/dcms/utils/NotificationHelper.java
index cd3e026..d0888bc 100644
--- a/app/src/main/java/com/casic/dcms/utils/NotificationHelper.java
+++ b/app/src/main/java/com/casic/dcms/utils/NotificationHelper.java
@@ -14,10 +14,10 @@
import com.casic.dcms.R;
public class NotificationHelper {
- private Context mContext;
+ private final Context mContext;
@SuppressLint("StaticFieldLeak")
- private static NotificationHelper notificationHelper;
- private NotificationManager notificationManager;
+ private static volatile NotificationHelper notificationHelper;
+ private final NotificationManager notificationManager;
private NotificationHelper(Context context) {
this.mContext = context;
@@ -45,10 +45,8 @@
//创建渠道
String id = name + "_DefaultChannel";
NotificationChannel mChannel = new NotificationChannel(id, name, NotificationManager.IMPORTANCE_HIGH);
-// mChannel.setSound(Uri.parse(""), Notification.AUDIO_ATTRIBUTES_DEFAULT);
mChannel.setShowBadge(true);
- mChannel.enableVibration(true);
- mChannel.setVibrationPattern(new long[]{100, 200, 300});
+ mChannel.enableVibration(false);
mChannel.setLockscreenVisibility(Notification.VISIBILITY_PUBLIC);//设置锁屏可见
notificationManager.createNotificationChannel(mChannel);
builder = new Notification.Builder(mContext, id);
diff --git a/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java b/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java
index d7bf511..691dfd5 100644
--- a/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java
+++ b/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java
@@ -4,20 +4,22 @@
import android.graphics.Color;
import android.view.View;
-import androidx.core.content.ContextCompat;
import androidx.lifecycle.Observer;
import androidx.lifecycle.ViewModelProvider;
import com.casic.dcms.R;
import com.casic.dcms.databinding.ActivityCaseProcessBinding;
import com.casic.dcms.model.CaseProcessBean;
+import com.casic.dcms.utils.DialogHelper;
import com.casic.dcms.vm.CommonDataViewModel;
import com.gyf.immersionbar.ImmersionBar;
import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter;
import com.pengxh.androidx.lite.adapter.ViewHolder;
import com.pengxh.androidx.lite.base.AndroidxBaseActivity;
+import com.pengxh.androidx.lite.hub.IntHub;
import com.pengxh.androidx.lite.utils.Constant;
import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager;
+import com.pengxh.androidx.lite.vm.LoadState;
import java.util.ArrayList;
import java.util.List;
@@ -30,8 +32,8 @@
@Override
protected void setupTopBarLayout() {
- ImmerseStatusBarManager.setColor(this, ContextCompat.getColor(this, R.color.mainThemeColor));
- ImmersionBar.with(this).statusBarDarkFont(false).init();
+ ImmerseStatusBarManager.setColor(this, IntHub.convertColor(this, R.color.white));
+ ImmersionBar.with(this).statusBarDarkFont(true).init();
viewBinding.titleBarLayout.titleView.setText("处理记录");
viewBinding.titleBarLayout.leftBackView.setOnClickListener(v -> finish());
@@ -39,7 +41,16 @@
@Override
protected void observeRequestState() {
-
+ commonDataViewModel.loadState.observe(this, new Observer() {
+ @Override
+ public void onChanged(LoadState loadState) {
+ if (loadState == LoadState.Loading) {
+ DialogHelper.showLoadingDialog(context, "获取数据中...");
+ } else {
+ DialogHelper.dismissLoadingDialog();
+ }
+ }
+ });
}
@Override
@@ -47,10 +58,6 @@
String processId = getIntent().getStringExtra(Constant.INTENT_PARAM);
commonDataViewModel = new ViewModelProvider(this).get(CommonDataViewModel.class);
commonDataViewModel.obtainCaseProcess(processId);
- }
-
- @Override
- protected void initEvent() {
commonDataViewModel.caseProcessModel.observe(this, new Observer() {
@Override
public void onChanged(CaseProcessBean resultBean) {
@@ -91,4 +98,9 @@
}
});
}
+
+ @Override
+ protected void initEvent() {
+
+ }
}
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index b6a8d08..c78d07c 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -64,8 +64,8 @@
-
-
+
+
diff --git a/app/src/main/java/com/casic/dcms/adapter/CheckCaseListAdapter.java b/app/src/main/java/com/casic/dcms/adapter/CheckCaseListAdapter.java
deleted file mode 100644
index 254f0cd..0000000
--- a/app/src/main/java/com/casic/dcms/adapter/CheckCaseListAdapter.java
+++ /dev/null
@@ -1,99 +0,0 @@
-package com.casic.dcms.adapter;
-
-import android.annotation.SuppressLint;
-import android.content.Context;
-import android.text.TextUtils;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.TextView;
-
-import androidx.annotation.NonNull;
-import androidx.recyclerview.widget.RecyclerView;
-
-import com.bumptech.glide.Glide;
-import com.casic.dcms.R;
-import com.casic.dcms.model.check.CaseCheckModel;
-import com.casic.dcms.utils.StringHelper;
-import com.pengxh.androidx.lite.hub.StringHub;
-import com.qmuiteam.qmui.widget.QMUIRadiusImageView;
-
-import java.util.List;
-
-public class CheckCaseListAdapter extends RecyclerView.Adapter {
-
- private final Context context;
- private final List dataBeans;
- private final LayoutInflater layoutInflater;
-
- public CheckCaseListAdapter(Context context, List dataRows) {
- this.context = context;
- this.dataBeans = dataRows;
- this.layoutInflater = LayoutInflater.from(context);
- }
-
- @NonNull
- @Override
- public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
- return new ItemViewHolder(layoutInflater.inflate(R.layout.item_case_rv_l, parent, false));
- }
-
- @Override
- public void onBindViewHolder(@NonNull ItemViewHolder holder, @SuppressLint("RecyclerView") int position) {
- holder.bindView(dataBeans.get(position));
- if (clickListener != null) {
- holder.itemView.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- clickListener.onClick(position);
- }
- });
- }
- }
-
- @Override
- public int getItemCount() {
- return dataBeans.size();
- }
-
- class ItemViewHolder extends RecyclerView.ViewHolder {
-
- private final QMUIRadiusImageView caseImageView;
- private final TextView caseTitleView;
- private final TextView casePlaceView;
- private final TextView caseTimeView;
-
- ItemViewHolder(@NonNull View itemView) {
- super(itemView);
- caseImageView = itemView.findViewById(R.id.caseImageView);
- caseTitleView = itemView.findViewById(R.id.caseTitleView);
- casePlaceView = itemView.findViewById(R.id.casePlaceView);
- caseTimeView = itemView.findViewById(R.id.caseTimeView);
- }
-
- void bindView(CaseCheckModel.DataDTO.RowsDTO rowsBean) {
- //处理图片
- String fileIdProcess = rowsBean.getFileIdProcess();
- if (!TextUtils.isEmpty(fileIdProcess)) {
- String[] split = fileIdProcess.split(",");
- String firstImage = split[0];
- if (firstImage.endsWith(".jpg") || firstImage.contains(".jpeg") || firstImage.contains(".png")) {
- Glide.with(context).load(StringHelper.appendCompleteURL(firstImage)).into(caseImageView);
- }
- }
- caseTitleView.setText(StringHub.filterSpaceOrEnter(rowsBean.getDescription()));
- casePlaceView.setText("发生地点:" + StringHub.filterSpaceOrEnter(rowsBean.getFieldintro()));
- caseTimeView.setText("上报时间:" + rowsBean.getReportTime());
- }
- }
-
- private OnItemClickListener clickListener;
-
- public interface OnItemClickListener {
- void onClick(int position);
- }
-
- public void setOnItemClickListener(OnItemClickListener onItemClickListener) {
- this.clickListener = onItemClickListener;
- }
-}
diff --git a/app/src/main/java/com/casic/dcms/fragment/check/CaseCheckFragment.java b/app/src/main/java/com/casic/dcms/fragment/check/CaseCheckFragment.java
index 85cebc6..667981d 100644
--- a/app/src/main/java/com/casic/dcms/fragment/check/CaseCheckFragment.java
+++ b/app/src/main/java/com/casic/dcms/fragment/check/CaseCheckFragment.java
@@ -1,19 +1,27 @@
package com.casic.dcms.fragment.check;
+import static com.luck.picture.lib.thread.PictureThreadUtils.runOnUiThread;
+
+import android.graphics.drawable.Drawable;
import android.os.Handler;
import android.os.Message;
+import android.text.TextUtils;
import android.view.View;
import androidx.annotation.NonNull;
import androidx.lifecycle.Observer;
import androidx.lifecycle.ViewModelProvider;
-import com.casic.dcms.adapter.CheckCaseListAdapter;
+import com.bumptech.glide.Glide;
+import com.casic.dcms.R;
import com.casic.dcms.databinding.FragmentCheckCaseBinding;
-import com.casic.dcms.model.check.CaseCheckModel;
+import com.casic.dcms.model.CaseCheckModel;
import com.casic.dcms.utils.LocaleConstant;
-import com.casic.dcms.view.check.CaseCheckDetailActivity;
+import com.casic.dcms.utils.StringHelper;
+import com.casic.dcms.view.check.CheckDetailActivity;
import com.casic.dcms.vm.CaseViewModel;
+import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter;
+import com.pengxh.androidx.lite.adapter.ViewHolder;
import com.pengxh.androidx.lite.base.AndroidxBaseFragment;
import com.pengxh.androidx.lite.hub.ContextHub;
import com.pengxh.androidx.lite.hub.StringHub;
@@ -24,14 +32,15 @@
import java.util.ArrayList;
import java.util.List;
+import java.util.concurrent.ExecutionException;
public class CaseCheckFragment extends AndroidxBaseFragment {
private static final String TAG = "CaseCheckFragment";
private WeakReferenceHandler weakReferenceHandler;
private CaseViewModel caseViewModel;
- private CheckCaseListAdapter adapter;
- private List dataBeans = new ArrayList<>();
+ private NormalRecyclerAdapter adapter;
+ private List dataBeans = new ArrayList<>();
private int pageIndex = 1;
private boolean isRefresh, isLoadMore = false;
@@ -49,12 +58,37 @@
protected void initData() {
weakReferenceHandler = new WeakReferenceHandler(callback);
caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class);
+ caseViewModel.caseCheckModel.observe(this, new Observer() {
+ @Override
+ public void onChanged(CaseCheckModel resultBean) {
+ if (resultBean.isSuccess()) {
+ List dataRows = resultBean.getData().getRows();
+ if (isRefresh) {
+ dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题
+ dataBeans = dataRows;
+ viewBinding.refreshLayout.finishRefresh();
+ isRefresh = false;
+ } else if (isLoadMore) {
+ if (dataRows.size() == 0) {
+ StringHub.show(requireContext(), "到底了,别拉了");
+ }
+ dataBeans.addAll(dataRows);
+ viewBinding.refreshLayout.finishLoadMore();
+ isLoadMore = false;
+ } else {
+ dataBeans = dataRows;
+ }
+ weakReferenceHandler.sendEmptyMessage(202104251);
+ }
+ }
+ });
}
@Override
public void onResume() {
- obtainCheckCaseList();
super.onResume();
+ pageIndex = 1;
+ obtainCheckCaseList();
}
private void obtainCheckCaseList() {
@@ -80,31 +114,6 @@
obtainCheckCaseList();
}
});
-
- caseViewModel.caseCheckModel.observe(this, new Observer() {
- @Override
- public void onChanged(CaseCheckModel resultBean) {
- if (resultBean.isSuccess()) {
- List dataRows = resultBean.getData().getRows();
- if (isRefresh) {
- dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题
- dataBeans = dataRows;
- viewBinding.refreshLayout.finishRefresh();
- isRefresh = false;
- } else if (isLoadMore) {
- if (dataRows.size() == 0) {
- StringHub.show(requireContext(), "到底了,别拉了");
- }
- dataBeans.addAll(dataRows);
- viewBinding.refreshLayout.finishLoadMore();
- isLoadMore = false;
- } else {
- dataBeans = dataRows;
- }
- weakReferenceHandler.sendEmptyMessage(202104251);
- }
- }
- });
}
private final Handler.Callback callback = new Handler.Callback() {
@@ -125,16 +134,42 @@
});
} else {
viewBinding.emptyView.hide();
- adapter = new CheckCaseListAdapter(requireContext(), dataBeans);
- viewBinding.caseRecyclerView.setAdapter(adapter);
- adapter.setOnItemClickListener(new CheckCaseListAdapter.OnItemClickListener() {
+ adapter = new NormalRecyclerAdapter(R.layout.item_case_rv_l, dataBeans) {
@Override
- public void onClick(int position) {
- ContextHub.navigatePageTo(
- requireContext(),
- CaseCheckDetailActivity.class,
- dataBeans.get(position).getId()
- );
+ public void convertView(ViewHolder viewHolder, int position, CaseCheckModel.DataModel.RowsModel item) {
+ String fileIdProcess = item.getFileIdProcess();
+ if (!TextUtils.isEmpty(fileIdProcess)) {
+ String[] split = fileIdProcess.split(",");
+ String firstImage = split[0];
+ if (firstImage.endsWith(".jpg") || firstImage.contains(".jpeg") || firstImage.contains(".png")) {
+ new Thread(new Runnable() {
+ @Override
+ public void run() {
+ try {
+ Drawable drawable = Glide.with(requireContext()).load(StringHelper.appendCompleteURL(firstImage)).submit().get();
+ runOnUiThread(new Runnable() {
+ @Override
+ public void run() {
+ viewHolder.setImageResource(R.id.caseImageView, drawable);
+ }
+ });
+ } catch (ExecutionException | InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+ }).start();
+ }
+ }
+ viewHolder.setText(R.id.caseTitleView, StringHub.filterSpaceOrEnter(item.getDescription()))
+ .setText(R.id.casePlaceView, "发生地点:" + StringHub.filterSpaceOrEnter(item.getFieldintro()))
+ .setText(R.id.caseTimeView, "上报时间:" + item.getReportTime());
+ }
+ };
+ viewBinding.caseRecyclerView.setAdapter(adapter);
+ adapter.setOnItemClickedListener(new NormalRecyclerAdapter.OnItemClickedListener() {
+ @Override
+ public void onItemClicked(int position, CaseCheckModel.DataModel.RowsModel rowsModel) {
+ ContextHub.navigatePageTo(requireContext(), CheckDetailActivity.class, rowsModel.getId());
}
});
}
diff --git a/app/src/main/java/com/casic/dcms/fragment/check/CaseCheckedFragment.java b/app/src/main/java/com/casic/dcms/fragment/check/CaseCheckedFragment.java
index 3e2d904..6775b65 100644
--- a/app/src/main/java/com/casic/dcms/fragment/check/CaseCheckedFragment.java
+++ b/app/src/main/java/com/casic/dcms/fragment/check/CaseCheckedFragment.java
@@ -1,19 +1,27 @@
package com.casic.dcms.fragment.check;
+import static com.luck.picture.lib.thread.PictureThreadUtils.runOnUiThread;
+
+import android.graphics.drawable.Drawable;
import android.os.Handler;
import android.os.Message;
+import android.text.TextUtils;
import android.view.View;
import androidx.annotation.NonNull;
import androidx.lifecycle.Observer;
import androidx.lifecycle.ViewModelProvider;
-import com.casic.dcms.adapter.CheckCaseListAdapter;
+import com.bumptech.glide.Glide;
+import com.casic.dcms.R;
import com.casic.dcms.databinding.FragmentCheckCaseBinding;
-import com.casic.dcms.model.check.CaseCheckModel;
+import com.casic.dcms.model.CaseCheckModel;
import com.casic.dcms.utils.LocaleConstant;
-import com.casic.dcms.view.check.CaseCheckedDetailActivity;
+import com.casic.dcms.utils.StringHelper;
+import com.casic.dcms.view.check.CheckedDetailActivity;
import com.casic.dcms.vm.CaseViewModel;
+import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter;
+import com.pengxh.androidx.lite.adapter.ViewHolder;
import com.pengxh.androidx.lite.base.AndroidxBaseFragment;
import com.pengxh.androidx.lite.hub.ContextHub;
import com.pengxh.androidx.lite.hub.StringHub;
@@ -24,14 +32,15 @@
import java.util.ArrayList;
import java.util.List;
+import java.util.concurrent.ExecutionException;
public class CaseCheckedFragment extends AndroidxBaseFragment {
private static final String TAG = "CaseCheckedFragment";
private WeakReferenceHandler weakReferenceHandler;
private CaseViewModel caseViewModel;
- private CheckCaseListAdapter adapter;
- private List dataBeans = new ArrayList<>();
+ private NormalRecyclerAdapter adapter;
+ private List dataBeans = new ArrayList<>();
private int pageIndex = 1;
private boolean isRefresh, isLoadMore = false;
@@ -50,12 +59,37 @@
protected void initData() {
weakReferenceHandler = new WeakReferenceHandler(callback);
caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class);
+ caseViewModel.caseCheckModel.observe(this, new Observer() {
+ @Override
+ public void onChanged(CaseCheckModel resultBean) {
+ if (resultBean.isSuccess()) {
+ List dataRows = resultBean.getData().getRows();
+ if (isRefresh) {
+ dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题
+ dataBeans = dataRows;
+ viewBinding.refreshLayout.finishRefresh();
+ isRefresh = false;
+ } else if (isLoadMore) {
+ if (dataRows.size() == 0) {
+ StringHub.show(requireContext(), "到底了,别拉了");
+ }
+ dataBeans.addAll(dataRows);
+ viewBinding.refreshLayout.finishLoadMore();
+ isLoadMore = false;
+ } else {
+ dataBeans = dataRows;
+ }
+ weakReferenceHandler.sendEmptyMessage(202104252);
+ }
+ }
+ });
}
@Override
public void onResume() {
- obtainCheckCaseList();
super.onResume();
+ pageIndex = 1;
+ obtainCheckCaseList();
}
private void obtainCheckCaseList() {
@@ -81,32 +115,6 @@
obtainCheckCaseList();
}
});
-
- caseViewModel.caseCheckModel.observe(this, new Observer() {
-
- @Override
- public void onChanged(CaseCheckModel resultBean) {
- if (resultBean.isSuccess()) {
- List dataRows = resultBean.getData().getRows();
- if (isRefresh) {
- dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题
- dataBeans = dataRows;
- viewBinding.refreshLayout.finishRefresh();
- isRefresh = false;
- } else if (isLoadMore) {
- if (dataRows.size() == 0) {
- StringHub.show(requireContext(), "到底了,别拉了");
- }
- dataBeans.addAll(dataRows);
- viewBinding.refreshLayout.finishLoadMore();
- isLoadMore = false;
- } else {
- dataBeans = dataRows;
- }
- weakReferenceHandler.sendEmptyMessage(202104252);
- }
- }
- });
}
private final Handler.Callback callback = new Handler.Callback() {
@@ -127,16 +135,42 @@
});
} else {
viewBinding.emptyView.hide();
- adapter = new CheckCaseListAdapter(requireContext(), dataBeans);
- viewBinding.caseRecyclerView.setAdapter(adapter);
- adapter.setOnItemClickListener(new CheckCaseListAdapter.OnItemClickListener() {
+ adapter = new NormalRecyclerAdapter(R.layout.item_case_rv_l, dataBeans) {
@Override
- public void onClick(int position) {
- ContextHub.navigatePageTo(
- requireContext(),
- CaseCheckedDetailActivity.class,
- dataBeans.get(position).getId()
- );
+ public void convertView(ViewHolder viewHolder, int position, CaseCheckModel.DataModel.RowsModel item) {
+ String fileIdProcess = item.getFileIdProcess();
+ if (!TextUtils.isEmpty(fileIdProcess)) {
+ String[] split = fileIdProcess.split(",");
+ String firstImage = split[0];
+ if (firstImage.endsWith(".jpg") || firstImage.contains(".jpeg") || firstImage.contains(".png")) {
+ new Thread(new Runnable() {
+ @Override
+ public void run() {
+ try {
+ Drawable drawable = Glide.with(requireContext()).load(StringHelper.appendCompleteURL(firstImage)).submit().get();
+ runOnUiThread(new Runnable() {
+ @Override
+ public void run() {
+ viewHolder.setImageResource(R.id.caseImageView, drawable);
+ }
+ });
+ } catch (ExecutionException | InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+ }).start();
+ }
+ }
+ viewHolder.setText(R.id.caseTitleView, StringHub.filterSpaceOrEnter(item.getDescription()))
+ .setText(R.id.casePlaceView, "发生地点:" + StringHub.filterSpaceOrEnter(item.getFieldintro()))
+ .setText(R.id.caseTimeView, "上报时间:" + item.getReportTime());
+ }
+ };
+ viewBinding.caseRecyclerView.setAdapter(adapter);
+ adapter.setOnItemClickedListener(new NormalRecyclerAdapter.OnItemClickedListener() {
+ @Override
+ public void onItemClicked(int position, CaseCheckModel.DataModel.RowsModel rowsModel) {
+ ContextHub.navigatePageTo(requireContext(), CheckedDetailActivity.class, rowsModel.getId());
}
});
}
diff --git a/app/src/main/java/com/casic/dcms/model/CaseCheckModel.java b/app/src/main/java/com/casic/dcms/model/CaseCheckModel.java
new file mode 100644
index 0000000..550a1fe
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/model/CaseCheckModel.java
@@ -0,0 +1,358 @@
+package com.casic.dcms.model;
+
+import java.util.List;
+
+/**
+ * 核查-已办/待办共用一个Model
+ */
+public class CaseCheckModel {
+
+ private int code;
+ private DataModel data;
+ private String message;
+ private boolean success;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public DataModel getData() {
+ return data;
+ }
+
+ public void setData(DataModel data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
+ public static class DataModel {
+ private List rows;
+ private int total;
+
+ public List getRows() {
+ return rows;
+ }
+
+ public void setRows(List rows) {
+ this.rows = rows;
+ }
+
+ public int getTotal() {
+ return total;
+ }
+
+ public void setTotal(int total) {
+ this.total = total;
+ }
+
+ public static class RowsModel {
+ private String isPostpone;
+ private String description;
+ private String source;
+ private String eorcName;
+ private String casetypeDetailName;
+ private String remainingTime;
+ private String casetypeName;
+ private String currUserId;
+ private String currUserName;
+ private String processId;
+ private String caseState;
+ private String id;
+ private String shopId;
+ private String fieldintro;
+ private String lat;
+ private String caseStateName;
+ private String lng;
+ private String isOvertime;
+ private String currRoleName;
+ private String fileIdVerify;
+ private String casetypeDetailCode;
+ private String onedeptid;
+ private String eorc;
+ private String currRoleId;
+ private String caseid;
+ private String casetypeCode;
+ private String nodeLimittime;
+ private String taskName;
+ private String sourceName;
+ private String fileIdProcess;
+ private String reportTime;
+ private String onedeptName;
+
+ public String getIsPostpone() {
+ return isPostpone;
+ }
+
+ public void setIsPostpone(String isPostpone) {
+ this.isPostpone = isPostpone;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ public String getSource() {
+ return source;
+ }
+
+ public void setSource(String source) {
+ this.source = source;
+ }
+
+ public String getEorcName() {
+ return eorcName;
+ }
+
+ public void setEorcName(String eorcName) {
+ this.eorcName = eorcName;
+ }
+
+ public String getCasetypeDetailName() {
+ return casetypeDetailName;
+ }
+
+ public void setCasetypeDetailName(String casetypeDetailName) {
+ this.casetypeDetailName = casetypeDetailName;
+ }
+
+ public String getRemainingTime() {
+ return remainingTime;
+ }
+
+ public void setRemainingTime(String remainingTime) {
+ this.remainingTime = remainingTime;
+ }
+
+ public String getCasetypeName() {
+ return casetypeName;
+ }
+
+ public void setCasetypeName(String casetypeName) {
+ this.casetypeName = casetypeName;
+ }
+
+ public String getCurrUserId() {
+ return currUserId;
+ }
+
+ public void setCurrUserId(String currUserId) {
+ this.currUserId = currUserId;
+ }
+
+ public String getCurrUserName() {
+ return currUserName;
+ }
+
+ public void setCurrUserName(String currUserName) {
+ this.currUserName = currUserName;
+ }
+
+ public String getProcessId() {
+ return processId;
+ }
+
+ public void setProcessId(String processId) {
+ this.processId = processId;
+ }
+
+ public String getCaseState() {
+ return caseState;
+ }
+
+ public void setCaseState(String caseState) {
+ this.caseState = caseState;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getShopId() {
+ return shopId;
+ }
+
+ public void setShopId(String shopId) {
+ this.shopId = shopId;
+ }
+
+ public String getFieldintro() {
+ return fieldintro;
+ }
+
+ public void setFieldintro(String fieldintro) {
+ this.fieldintro = fieldintro;
+ }
+
+ public String getLat() {
+ return lat;
+ }
+
+ public void setLat(String lat) {
+ this.lat = lat;
+ }
+
+ public String getCaseStateName() {
+ return caseStateName;
+ }
+
+ public void setCaseStateName(String caseStateName) {
+ this.caseStateName = caseStateName;
+ }
+
+ public String getLng() {
+ return lng;
+ }
+
+ public void setLng(String lng) {
+ this.lng = lng;
+ }
+
+ public String getIsOvertime() {
+ return isOvertime;
+ }
+
+ public void setIsOvertime(String isOvertime) {
+ this.isOvertime = isOvertime;
+ }
+
+ public String getCurrRoleName() {
+ return currRoleName;
+ }
+
+ public void setCurrRoleName(String currRoleName) {
+ this.currRoleName = currRoleName;
+ }
+
+ public String getFileIdVerify() {
+ return fileIdVerify;
+ }
+
+ public void setFileIdVerify(String fileIdVerify) {
+ this.fileIdVerify = fileIdVerify;
+ }
+
+ public String getCasetypeDetailCode() {
+ return casetypeDetailCode;
+ }
+
+ public void setCasetypeDetailCode(String casetypeDetailCode) {
+ this.casetypeDetailCode = casetypeDetailCode;
+ }
+
+ public String getOnedeptid() {
+ return onedeptid;
+ }
+
+ public void setOnedeptid(String onedeptid) {
+ this.onedeptid = onedeptid;
+ }
+
+ public String getEorc() {
+ return eorc;
+ }
+
+ public void setEorc(String eorc) {
+ this.eorc = eorc;
+ }
+
+ public String getCurrRoleId() {
+ return currRoleId;
+ }
+
+ public void setCurrRoleId(String currRoleId) {
+ this.currRoleId = currRoleId;
+ }
+
+ public String getCaseid() {
+ return caseid;
+ }
+
+ public void setCaseid(String caseid) {
+ this.caseid = caseid;
+ }
+
+ public String getCasetypeCode() {
+ return casetypeCode;
+ }
+
+ public void setCasetypeCode(String casetypeCode) {
+ this.casetypeCode = casetypeCode;
+ }
+
+ public String getNodeLimittime() {
+ return nodeLimittime;
+ }
+
+ public void setNodeLimittime(String nodeLimittime) {
+ this.nodeLimittime = nodeLimittime;
+ }
+
+ public String getTaskName() {
+ return taskName;
+ }
+
+ public void setTaskName(String taskName) {
+ this.taskName = taskName;
+ }
+
+ public String getSourceName() {
+ return sourceName;
+ }
+
+ public void setSourceName(String sourceName) {
+ this.sourceName = sourceName;
+ }
+
+ public String getFileIdProcess() {
+ return fileIdProcess;
+ }
+
+ public void setFileIdProcess(String fileIdProcess) {
+ this.fileIdProcess = fileIdProcess;
+ }
+
+ public String getReportTime() {
+ return reportTime;
+ }
+
+ public void setReportTime(String reportTime) {
+ this.reportTime = reportTime;
+ }
+
+ public String getOnedeptName() {
+ return onedeptName;
+ }
+
+ public void setOnedeptName(String onedeptName) {
+ this.onedeptName = onedeptName;
+ }
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/model/check/CaseCheckModel.java b/app/src/main/java/com/casic/dcms/model/check/CaseCheckModel.java
deleted file mode 100644
index 854e2fe..0000000
--- a/app/src/main/java/com/casic/dcms/model/check/CaseCheckModel.java
+++ /dev/null
@@ -1,358 +0,0 @@
-package com.casic.dcms.model.check;
-
-import java.util.List;
-
-/**
- * 核查-已办/待办共用一个Bean
- */
-public class CaseCheckModel {
-
- private int code;
- private DataDTO data;
- private String message;
- private boolean success;
-
- public int getCode() {
- return code;
- }
-
- public void setCode(int code) {
- this.code = code;
- }
-
- public DataDTO getData() {
- return data;
- }
-
- public void setData(DataDTO data) {
- this.data = data;
- }
-
- public String getMessage() {
- return message;
- }
-
- public void setMessage(String message) {
- this.message = message;
- }
-
- public boolean isSuccess() {
- return success;
- }
-
- public void setSuccess(boolean success) {
- this.success = success;
- }
-
- public static class DataDTO {
- private List rows;
- private int total;
-
- public List getRows() {
- return rows;
- }
-
- public void setRows(List rows) {
- this.rows = rows;
- }
-
- public int getTotal() {
- return total;
- }
-
- public void setTotal(int total) {
- this.total = total;
- }
-
- public static class RowsDTO {
- private int isPostpone;
- private String description;
- private int source;
- private String eorcName;
- private String casetypeDetailName;
- private String remainingTime;
- private String casetypeName;
- private String currUserId;
- private String currUserName;
- private String processId;
- private int caseState;
- private String id;
- private String shopId;
- private String fieldintro;
- private String lat;
- private String caseStateName;
- private String lng;
- private String isOvertime;
- private String currRoleName;
- private String fileIdVerify;
- private String casetypeDetailCode;
- private String onedeptid;
- private String eorc;
- private String currRoleId;
- private String caseid;
- private String casetypeCode;
- private String nodeLimittime;
- private String taskName;
- private String sourceName;
- private String fileIdProcess;
- private String reportTime;
- private String onedeptName;
-
- public int getIsPostpone() {
- return isPostpone;
- }
-
- public void setIsPostpone(int isPostpone) {
- this.isPostpone = isPostpone;
- }
-
- public String getDescription() {
- return description;
- }
-
- public void setDescription(String description) {
- this.description = description;
- }
-
- public int getSource() {
- return source;
- }
-
- public void setSource(int source) {
- this.source = source;
- }
-
- public String getEorcName() {
- return eorcName;
- }
-
- public void setEorcName(String eorcName) {
- this.eorcName = eorcName;
- }
-
- public String getCasetypeDetailName() {
- return casetypeDetailName;
- }
-
- public void setCasetypeDetailName(String casetypeDetailName) {
- this.casetypeDetailName = casetypeDetailName;
- }
-
- public String getRemainingTime() {
- return remainingTime;
- }
-
- public void setRemainingTime(String remainingTime) {
- this.remainingTime = remainingTime;
- }
-
- public String getCasetypeName() {
- return casetypeName;
- }
-
- public void setCasetypeName(String casetypeName) {
- this.casetypeName = casetypeName;
- }
-
- public String getCurrUserId() {
- return currUserId;
- }
-
- public void setCurrUserId(String currUserId) {
- this.currUserId = currUserId;
- }
-
- public String getCurrUserName() {
- return currUserName;
- }
-
- public void setCurrUserName(String currUserName) {
- this.currUserName = currUserName;
- }
-
- public String getProcessId() {
- return processId;
- }
-
- public void setProcessId(String processId) {
- this.processId = processId;
- }
-
- public int getCaseState() {
- return caseState;
- }
-
- public void setCaseState(int caseState) {
- this.caseState = caseState;
- }
-
- public String getId() {
- return id;
- }
-
- public void setId(String id) {
- this.id = id;
- }
-
- public String getShopId() {
- return shopId;
- }
-
- public void setShopId(String shopId) {
- this.shopId = shopId;
- }
-
- public String getFieldintro() {
- return fieldintro;
- }
-
- public void setFieldintro(String fieldintro) {
- this.fieldintro = fieldintro;
- }
-
- public String getLat() {
- return lat;
- }
-
- public void setLat(String lat) {
- this.lat = lat;
- }
-
- public String getCaseStateName() {
- return caseStateName;
- }
-
- public void setCaseStateName(String caseStateName) {
- this.caseStateName = caseStateName;
- }
-
- public String getLng() {
- return lng;
- }
-
- public void setLng(String lng) {
- this.lng = lng;
- }
-
- public String getIsOvertime() {
- return isOvertime;
- }
-
- public void setIsOvertime(String isOvertime) {
- this.isOvertime = isOvertime;
- }
-
- public String getCurrRoleName() {
- return currRoleName;
- }
-
- public void setCurrRoleName(String currRoleName) {
- this.currRoleName = currRoleName;
- }
-
- public String getFileIdVerify() {
- return fileIdVerify;
- }
-
- public void setFileIdVerify(String fileIdVerify) {
- this.fileIdVerify = fileIdVerify;
- }
-
- public String getCasetypeDetailCode() {
- return casetypeDetailCode;
- }
-
- public void setCasetypeDetailCode(String casetypeDetailCode) {
- this.casetypeDetailCode = casetypeDetailCode;
- }
-
- public String getOnedeptid() {
- return onedeptid;
- }
-
- public void setOnedeptid(String onedeptid) {
- this.onedeptid = onedeptid;
- }
-
- public String getEorc() {
- return eorc;
- }
-
- public void setEorc(String eorc) {
- this.eorc = eorc;
- }
-
- public String getCurrRoleId() {
- return currRoleId;
- }
-
- public void setCurrRoleId(String currRoleId) {
- this.currRoleId = currRoleId;
- }
-
- public String getCaseid() {
- return caseid;
- }
-
- public void setCaseid(String caseid) {
- this.caseid = caseid;
- }
-
- public String getCasetypeCode() {
- return casetypeCode;
- }
-
- public void setCasetypeCode(String casetypeCode) {
- this.casetypeCode = casetypeCode;
- }
-
- public String getNodeLimittime() {
- return nodeLimittime;
- }
-
- public void setNodeLimittime(String nodeLimittime) {
- this.nodeLimittime = nodeLimittime;
- }
-
- public String getTaskName() {
- return taskName;
- }
-
- public void setTaskName(String taskName) {
- this.taskName = taskName;
- }
-
- public String getSourceName() {
- return sourceName;
- }
-
- public void setSourceName(String sourceName) {
- this.sourceName = sourceName;
- }
-
- public String getFileIdProcess() {
- return fileIdProcess;
- }
-
- public void setFileIdProcess(String fileIdProcess) {
- this.fileIdProcess = fileIdProcess;
- }
-
- public String getReportTime() {
- return reportTime;
- }
-
- public void setReportTime(String reportTime) {
- this.reportTime = reportTime;
- }
-
- public String getOnedeptName() {
- return onedeptName;
- }
-
- public void setOnedeptName(String onedeptName) {
- this.onedeptName = onedeptName;
- }
- }
- }
-}
diff --git a/app/src/main/java/com/casic/dcms/utils/NotificationHelper.java b/app/src/main/java/com/casic/dcms/utils/NotificationHelper.java
index cd3e026..d0888bc 100644
--- a/app/src/main/java/com/casic/dcms/utils/NotificationHelper.java
+++ b/app/src/main/java/com/casic/dcms/utils/NotificationHelper.java
@@ -14,10 +14,10 @@
import com.casic.dcms.R;
public class NotificationHelper {
- private Context mContext;
+ private final Context mContext;
@SuppressLint("StaticFieldLeak")
- private static NotificationHelper notificationHelper;
- private NotificationManager notificationManager;
+ private static volatile NotificationHelper notificationHelper;
+ private final NotificationManager notificationManager;
private NotificationHelper(Context context) {
this.mContext = context;
@@ -45,10 +45,8 @@
//创建渠道
String id = name + "_DefaultChannel";
NotificationChannel mChannel = new NotificationChannel(id, name, NotificationManager.IMPORTANCE_HIGH);
-// mChannel.setSound(Uri.parse(""), Notification.AUDIO_ATTRIBUTES_DEFAULT);
mChannel.setShowBadge(true);
- mChannel.enableVibration(true);
- mChannel.setVibrationPattern(new long[]{100, 200, 300});
+ mChannel.enableVibration(false);
mChannel.setLockscreenVisibility(Notification.VISIBILITY_PUBLIC);//设置锁屏可见
notificationManager.createNotificationChannel(mChannel);
builder = new Notification.Builder(mContext, id);
diff --git a/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java b/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java
index d7bf511..691dfd5 100644
--- a/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java
+++ b/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java
@@ -4,20 +4,22 @@
import android.graphics.Color;
import android.view.View;
-import androidx.core.content.ContextCompat;
import androidx.lifecycle.Observer;
import androidx.lifecycle.ViewModelProvider;
import com.casic.dcms.R;
import com.casic.dcms.databinding.ActivityCaseProcessBinding;
import com.casic.dcms.model.CaseProcessBean;
+import com.casic.dcms.utils.DialogHelper;
import com.casic.dcms.vm.CommonDataViewModel;
import com.gyf.immersionbar.ImmersionBar;
import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter;
import com.pengxh.androidx.lite.adapter.ViewHolder;
import com.pengxh.androidx.lite.base.AndroidxBaseActivity;
+import com.pengxh.androidx.lite.hub.IntHub;
import com.pengxh.androidx.lite.utils.Constant;
import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager;
+import com.pengxh.androidx.lite.vm.LoadState;
import java.util.ArrayList;
import java.util.List;
@@ -30,8 +32,8 @@
@Override
protected void setupTopBarLayout() {
- ImmerseStatusBarManager.setColor(this, ContextCompat.getColor(this, R.color.mainThemeColor));
- ImmersionBar.with(this).statusBarDarkFont(false).init();
+ ImmerseStatusBarManager.setColor(this, IntHub.convertColor(this, R.color.white));
+ ImmersionBar.with(this).statusBarDarkFont(true).init();
viewBinding.titleBarLayout.titleView.setText("处理记录");
viewBinding.titleBarLayout.leftBackView.setOnClickListener(v -> finish());
@@ -39,7 +41,16 @@
@Override
protected void observeRequestState() {
-
+ commonDataViewModel.loadState.observe(this, new Observer() {
+ @Override
+ public void onChanged(LoadState loadState) {
+ if (loadState == LoadState.Loading) {
+ DialogHelper.showLoadingDialog(context, "获取数据中...");
+ } else {
+ DialogHelper.dismissLoadingDialog();
+ }
+ }
+ });
}
@Override
@@ -47,10 +58,6 @@
String processId = getIntent().getStringExtra(Constant.INTENT_PARAM);
commonDataViewModel = new ViewModelProvider(this).get(CommonDataViewModel.class);
commonDataViewModel.obtainCaseProcess(processId);
- }
-
- @Override
- protected void initEvent() {
commonDataViewModel.caseProcessModel.observe(this, new Observer() {
@Override
public void onChanged(CaseProcessBean resultBean) {
@@ -91,4 +98,9 @@
}
});
}
+
+ @Override
+ protected void initEvent() {
+
+ }
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/dcms/view/check/CaseCheckDetailActivity.java b/app/src/main/java/com/casic/dcms/view/check/CaseCheckDetailActivity.java
deleted file mode 100644
index 30585d5..0000000
--- a/app/src/main/java/com/casic/dcms/view/check/CaseCheckDetailActivity.java
+++ /dev/null
@@ -1,353 +0,0 @@
-package com.casic.dcms.view.check;
-
-import android.content.Context;
-import android.text.TextUtils;
-import android.view.View;
-import android.widget.AdapterView;
-
-import androidx.core.content.ContextCompat;
-import androidx.lifecycle.Observer;
-import androidx.lifecycle.ViewModelProvider;
-
-import com.bumptech.glide.Glide;
-import com.bumptech.glide.request.RequestOptions;
-import com.casic.dcms.R;
-import com.casic.dcms.databinding.ActivityCaseCheckDetailBinding;
-import com.casic.dcms.model.ActionResultBean;
-import com.casic.dcms.model.CaseDetailBean;
-import com.casic.dcms.model.CaseNextNodeBean;
-import com.casic.dcms.utils.DialogHelper;
-import com.casic.dcms.utils.MapHelper;
-import com.casic.dcms.utils.PictureSelectorHelper;
-import com.casic.dcms.utils.StringHelper;
-import com.casic.dcms.utils.callback.ISelectorListener;
-import com.casic.dcms.view.BigImageActivity;
-import com.casic.dcms.vm.CaseOperateViewModel;
-import com.casic.dcms.vm.CaseViewModel;
-import com.casic.dcms.vm.NodeViewModel;
-import com.casic.dcms.vm.UploadViewModel;
-import com.gyf.immersionbar.ImmersionBar;
-import com.luck.picture.lib.entity.LocalMedia;
-import com.pengxh.androidx.lite.adapter.EditableImageAdapter;
-import com.pengxh.androidx.lite.adapter.ReadOnlyImageAdapter;
-import com.pengxh.androidx.lite.base.AndroidxBaseActivity;
-import com.pengxh.androidx.lite.hub.ContextHub;
-import com.pengxh.androidx.lite.hub.StringHub;
-import com.pengxh.androidx.lite.utils.Constant;
-import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager;
-import com.pengxh.androidx.lite.vm.LoadState;
-import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.List;
-
-import cn.jzvd.Jzvd;
-
-public class CaseCheckDetailActivity extends AndroidxBaseActivity {
-
- private final Context context = CaseCheckDetailActivity.this;
- private final ArrayList realPaths = new ArrayList<>(); //真实图片路径
- private final ArrayList imageList = new ArrayList<>(); //上传到服务器的数据集
- private CaseViewModel caseViewModel;
- private UploadViewModel uploadViewModel;
- private NodeViewModel nodeViewModel;
- private CaseOperateViewModel operateViewModel;
- private String id;
- private String changeState;
- private EditableImageAdapter checkImageAdapter;
- private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean();
-
- @Override
- protected void setupTopBarLayout() {
- ImmerseStatusBarManager.setColor(this, ContextCompat.getColor(this, R.color.mainThemeColor));
- ImmersionBar.with(this).statusBarDarkFont(false).init();
-
- viewBinding.titleBarLayout.titleView.setText("案卷核查详情");
- viewBinding.titleBarLayout.leftBackView.setOnClickListener(v -> finish());
- }
-
- @Override
- protected void observeRequestState() {
-
- }
-
- @Override
- protected void initData() {
- id = getIntent().getStringExtra(Constant.INTENT_PARAM);
- caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class);
- caseViewModel.obtainCaseDetail(id);
-
- uploadViewModel = new ViewModelProvider(this).get(UploadViewModel.class);
- nodeViewModel = new ViewModelProvider(this).get(NodeViewModel.class);
- operateViewModel = new ViewModelProvider(this).get(CaseOperateViewModel.class);
-
- checkImageAdapter = new EditableImageAdapter(this, 3, 13);
- viewBinding.addImageRecyclerView.setAdapter(checkImageAdapter);
- }
-
- @Override
- protected void initEvent() {
- caseViewModel.caseDetailModel.observe(this, new Observer() {
- @Override
- public void onChanged(CaseDetailBean resultBean) {
- if (resultBean.getCode() == 200) {
- data = resultBean.getData().get(0);
- viewBinding.caseNumberView.setText(data.getCaseid());
- viewBinding.caseTypeView.setText(data.getEorcName());
- viewBinding.caseLargeTypeView.setText(data.getCasetypeName());
- viewBinding.caseSmallTypeView.setText(data.getCasetypeDetailName());
- viewBinding.caseCommunityView.setText(data.getCommunityName().equals("") ? "无更详细社区信息" : data.getCommunityName());
- viewBinding.casePlaceView.setText(StringHub.filterSpaceOrEnter(data.getFieldintro()));
- viewBinding.caseSituationView.setText(StringHub.filterSpaceOrEnter(data.getDescription()));
- viewBinding.caseHandleView.setText(data.getProcessRemarks().equals("") ? "无" : data.getProcessRemarks());
- viewBinding.caseStartTimeView.setText(data.getCreateTime());
- viewBinding.caseEndTimeView.setText(data.getNodeLimittime());
- /**
- * 图片
- */
- //核实照片
- String verifyImages = data.getFileIdVerify();
- if (!TextUtils.isEmpty(verifyImages)) {
- ArrayList urls = new ArrayList<>();
- String[] split = verifyImages.split(",");
- for (String s : split) {
- if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
- urls.add(StringHelper.appendCompleteURL(s));
- }
- }
- ReadOnlyImageAdapter imageAdapter = new ReadOnlyImageAdapter(context);
- imageAdapter.setImageList(urls);
- viewBinding.imageGridView.setAdapter(imageAdapter);
- //九宫格点击事件
- viewBinding.imageGridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
- @Override
- public void onItemClick(AdapterView> adapterView, View view, int position, long l) {
- if (urls.get(position).isEmpty()) {
- StringHub.show(context, "图片加载失败,无法查看大图");
- } else {
- ContextHub.navigatePageTo(context, BigImageActivity.class, position, urls);
- }
- }
- });
- }
-
- //音频
- String audioFile = data.getAudioIdVerify();
- if (!TextUtils.isEmpty(audioFile)) {
- viewBinding.audioPlayerView.setVisibility(View.VISIBLE);
- viewBinding.audioPlayerView.setAudioUrl(StringHelper.appendCompleteURL(audioFile));
- }
-
- //视频
- String videoFile = data.getVideoIdVerify();
- if (!TextUtils.isEmpty(videoFile)) {
- viewBinding.videoPlayerView.setVisibility(View.VISIBLE);
- String videoUrl = StringHelper.appendCompleteURL(videoFile);
- viewBinding.videoPlayerView.setUp(
- videoUrl,
- StringHub.filterSpaceOrEnter(data.getDescription()),
- Jzvd.SCREEN_NORMAL
- );
- //设置第一帧为封面
- Glide.with(context)
- .setDefaultRequestOptions(new RequestOptions().frame(4000000))
- .load(videoUrl)
- .into(viewBinding.videoPlayerView.posterImageView);
- }
-
- //处理照片
- String processImages = data.getFileIdProcess();
- if (!TextUtils.isEmpty(processImages)) {
- ArrayList urls = new ArrayList<>();
- String[] split = processImages.split(",");
- for (String s : split) {
- if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) {
- urls.add(StringHelper.appendCompleteURL(s));
- }
- }
- ReadOnlyImageAdapter imageAdapter = new ReadOnlyImageAdapter(context);
- imageAdapter.setImageList(urls);
- viewBinding.handleGridView.setAdapter(imageAdapter);
- //九宫格点击事件
- viewBinding.handleGridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
- @Override
- public void onItemClick(AdapterView> adapterView, View view, int position, long l) {
- if (urls.get(position).isEmpty()) {
- StringHub.show(context, "图片加载失败,无法查看大图");
- } else {
- ContextHub.navigatePageTo(context, BigImageActivity.class, position, urls);
- }
- }
- });
- }
- viewBinding.caseHandleResultView.setText(data.getProcessRemarks().equals("") ? "无处理意见" : data.getProcessRemarks());
- //TODO 服务器返回数据缺少此字段,暂时注掉
-// viewBinding.caseHandleTimeView.setText();
- }
- }
- });
- caseViewModel.loadState.observe(this, new Observer() {
- @Override
- public void onChanged(LoadState loadState) {
- if (loadState == LoadState.Loading) {
- DialogHelper.showLoadingDialog(context, "获取数据中...");
- } else {
- DialogHelper.dismissLoadingDialog();
- }
- }
- });
-
- viewBinding.locationMapView.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- MapHelper.displayOnMap(context, data.getEorcName(), data.getLng(), data.getLat());
- }
- });
-
- //图片九宫格事件处理
- checkImageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() {
- @Override
- public void onAddImageClick() {
- PictureSelectorHelper.selectPicture(context, new ISelectorListener() {
- @Override
- public void onSuccess(ArrayList result) {
- if (result.size() == 1) {
- uploadViewModel.uploadImage(new File(result.get(0).getRealPath()));
- } else {
- for (LocalMedia localMedia : result) {
- uploadViewModel.uploadImage(new File(localMedia.getRealPath()));
- }
- }
- }
- });
- }
-
- @Override
- public void onItemClick(int position) {
- if (realPaths.get(position).isEmpty()) {
- StringHub.show(context, "图片加载失败,无法查看大图");
- } else {
- ContextHub.navigatePageTo(context, BigImageActivity.class, position, realPaths);
- }
- }
-
- @Override
- public void onItemLongClick(View view, int position) {
- imageList.remove(position);
- checkImageAdapter.deleteImage(position);
- }
- });
- uploadViewModel.imageModel.observe(this, new Observer() {
- @Override
- public void onChanged(ActionResultBean resultBean) {
- if (resultBean.getCode() == 200) {
- if (checkImageAdapter.getItemCount() <= 3) {
- String url = resultBean.getData();
- imageList.add(url);
- realPaths.add(StringHelper.appendCompleteURL(url));
- checkImageAdapter.setupImage(realPaths);
- } else {
- StringHub.show(context, "最多只能上传3张图片");
- }
- }
- }
- });
- uploadViewModel.loadState.observe(this, new Observer() {
- @Override
- public void onChanged(LoadState loadState) {
- if (loadState == LoadState.Loading) {
- DialogHelper.showLoadingDialog(context, "上传中,请稍后...");
- } else {
- DialogHelper.dismissLoadingDialog();
- }
- }
- });
-
- viewBinding.caseCheckLayout.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- nodeViewModel.obtainNextNode(String.valueOf(data.getCaseState()));
- }
- });
- nodeViewModel.nodeModel.observe(this, new Observer() {
- @Override
- public void onChanged(CaseNextNodeBean resultBean) {
- if (resultBean.getCode() == 200) {
- List dataBeans = resultBean.getData();
- QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(context);
- sheetBuilder.setTitle("核实情况");
- for (CaseNextNodeBean.DataBean dataBean : dataBeans) {
- sheetBuilder.addItem(dataBean.getNextOperation());
- }
- sheetBuilder.setGravityCenter(true)
- .setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() {
- @Override
- public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) {
- dialog.dismiss();
- CaseNextNodeBean.DataBean dataBean = dataBeans.get(position);
- viewBinding.caseCheckOptView.setText(dataBean.getNextOperation());
- changeState = String.valueOf(dataBean.getNextState());
- }
- }).build().show();
- } else {
- StringHub.show(context, "该案卷无下级流转节点");
- }
- }
- });
-
- viewBinding.submitButton.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- //案卷提交
- String remarks = viewBinding.caseCheckOptView.getText().toString();
- if (TextUtils.isEmpty(remarks)) {
- StringHub.show(context, "核查意见不能为空");
- return;
- }
- if (TextUtils.isEmpty(changeState)) {
- StringHub.show(context, "核查情况还未选择");
- return;
- }
- operateViewModel.checkCase(data.getProcessId(), id,
- String.valueOf(data.getCaseState()), changeState, remarks,
- StringHelper.reformatURL(imageList)
- );
- }
- });
- operateViewModel.loadState.observe(this, new Observer() {
- @Override
- public void onChanged(LoadState loadState) {
- if (loadState == LoadState.Loading) {
- DialogHelper.showLoadingDialog(context, "案卷核查中,请稍后...");
- } else if (loadState == LoadState.Success) {
- DialogHelper.dismissLoadingDialog();
- finish();
- } else {
- StringHub.show(context, "核查失败,请重试");
- DialogHelper.dismissLoadingDialog();
- }
- }
- });
- }
-
- @Override
- public void onDestroy() {
- viewBinding.audioPlayerView.release();
- super.onDestroy();
- }
-
- @Override
- public void onBackPressed() {
- if (Jzvd.backPress()) {
- return;
- }
- super.onBackPressed();
- }
-
- @Override
- public void onPause() {
- super.onPause();
- Jzvd.releaseAllVideos();
- }
-}
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index b6a8d08..c78d07c 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -64,8 +64,8 @@
-
-
+
+
diff --git a/app/src/main/java/com/casic/dcms/adapter/CheckCaseListAdapter.java b/app/src/main/java/com/casic/dcms/adapter/CheckCaseListAdapter.java
deleted file mode 100644
index 254f0cd..0000000
--- a/app/src/main/java/com/casic/dcms/adapter/CheckCaseListAdapter.java
+++ /dev/null
@@ -1,99 +0,0 @@
-package com.casic.dcms.adapter;
-
-import android.annotation.SuppressLint;
-import android.content.Context;
-import android.text.TextUtils;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.TextView;
-
-import androidx.annotation.NonNull;
-import androidx.recyclerview.widget.RecyclerView;
-
-import com.bumptech.glide.Glide;
-import com.casic.dcms.R;
-import com.casic.dcms.model.check.CaseCheckModel;
-import com.casic.dcms.utils.StringHelper;
-import com.pengxh.androidx.lite.hub.StringHub;
-import com.qmuiteam.qmui.widget.QMUIRadiusImageView;
-
-import java.util.List;
-
-public class CheckCaseListAdapter extends RecyclerView.Adapter {
-
- private final Context context;
- private final List dataBeans;
- private final LayoutInflater layoutInflater;
-
- public CheckCaseListAdapter(Context context, List dataRows) {
- this.context = context;
- this.dataBeans = dataRows;
- this.layoutInflater = LayoutInflater.from(context);
- }
-
- @NonNull
- @Override
- public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
- return new ItemViewHolder(layoutInflater.inflate(R.layout.item_case_rv_l, parent, false));
- }
-
- @Override
- public void onBindViewHolder(@NonNull ItemViewHolder holder, @SuppressLint("RecyclerView") int position) {
- holder.bindView(dataBeans.get(position));
- if (clickListener != null) {
- holder.itemView.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- clickListener.onClick(position);
- }
- });
- }
- }
-
- @Override
- public int getItemCount() {
- return dataBeans.size();
- }
-
- class ItemViewHolder extends RecyclerView.ViewHolder {
-
- private final QMUIRadiusImageView caseImageView;
- private final TextView caseTitleView;
- private final TextView casePlaceView;
- private final TextView caseTimeView;
-
- ItemViewHolder(@NonNull View itemView) {
- super(itemView);
- caseImageView = itemView.findViewById(R.id.caseImageView);
- caseTitleView = itemView.findViewById(R.id.caseTitleView);
- casePlaceView = itemView.findViewById(R.id.casePlaceView);
- caseTimeView = itemView.findViewById(R.id.caseTimeView);
- }
-
- void bindView(CaseCheckModel.DataDTO.RowsDTO rowsBean) {
- //处理图片
- String fileIdProcess = rowsBean.getFileIdProcess();
- if (!TextUtils.isEmpty(fileIdProcess)) {
- String[] split = fileIdProcess.split(",");
- String firstImage = split[0];
- if (firstImage.endsWith(".jpg") || firstImage.contains(".jpeg") || firstImage.contains(".png")) {
- Glide.with(context).load(StringHelper.appendCompleteURL(firstImage)).into(caseImageView);
- }
- }
- caseTitleView.setText(StringHub.filterSpaceOrEnter(rowsBean.getDescription()));
- casePlaceView.setText("发生地点:" + StringHub.filterSpaceOrEnter(rowsBean.getFieldintro()));
- caseTimeView.setText("上报时间:" + rowsBean.getReportTime());
- }
- }
-
- private OnItemClickListener clickListener;
-
- public interface OnItemClickListener {
- void onClick(int position);
- }
-
- public void setOnItemClickListener(OnItemClickListener onItemClickListener) {
- this.clickListener = onItemClickListener;
- }
-}
diff --git a/app/src/main/java/com/casic/dcms/fragment/check/CaseCheckFragment.java b/app/src/main/java/com/casic/dcms/fragment/check/CaseCheckFragment.java
index 85cebc6..667981d 100644
--- a/app/src/main/java/com/casic/dcms/fragment/check/CaseCheckFragment.java
+++ b/app/src/main/java/com/casic/dcms/fragment/check/CaseCheckFragment.java
@@ -1,19 +1,27 @@
package com.casic.dcms.fragment.check;
+import static com.luck.picture.lib.thread.PictureThreadUtils.runOnUiThread;
+
+import android.graphics.drawable.Drawable;
import android.os.Handler;
import android.os.Message;
+import android.text.TextUtils;
import android.view.View;
import androidx.annotation.NonNull;
import androidx.lifecycle.Observer;
import androidx.lifecycle.ViewModelProvider;
-import com.casic.dcms.adapter.CheckCaseListAdapter;
+import com.bumptech.glide.Glide;
+import com.casic.dcms.R;
import com.casic.dcms.databinding.FragmentCheckCaseBinding;
-import com.casic.dcms.model.check.CaseCheckModel;
+import com.casic.dcms.model.CaseCheckModel;
import com.casic.dcms.utils.LocaleConstant;
-import com.casic.dcms.view.check.CaseCheckDetailActivity;
+import com.casic.dcms.utils.StringHelper;
+import com.casic.dcms.view.check.CheckDetailActivity;
import com.casic.dcms.vm.CaseViewModel;
+import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter;
+import com.pengxh.androidx.lite.adapter.ViewHolder;
import com.pengxh.androidx.lite.base.AndroidxBaseFragment;
import com.pengxh.androidx.lite.hub.ContextHub;
import com.pengxh.androidx.lite.hub.StringHub;
@@ -24,14 +32,15 @@
import java.util.ArrayList;
import java.util.List;
+import java.util.concurrent.ExecutionException;
public class CaseCheckFragment extends AndroidxBaseFragment {
private static final String TAG = "CaseCheckFragment";
private WeakReferenceHandler weakReferenceHandler;
private CaseViewModel caseViewModel;
- private CheckCaseListAdapter adapter;
- private List dataBeans = new ArrayList<>();
+ private NormalRecyclerAdapter adapter;
+ private List dataBeans = new ArrayList<>();
private int pageIndex = 1;
private boolean isRefresh, isLoadMore = false;
@@ -49,12 +58,37 @@
protected void initData() {
weakReferenceHandler = new WeakReferenceHandler(callback);
caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class);
+ caseViewModel.caseCheckModel.observe(this, new Observer() {
+ @Override
+ public void onChanged(CaseCheckModel resultBean) {
+ if (resultBean.isSuccess()) {
+ List dataRows = resultBean.getData().getRows();
+ if (isRefresh) {
+ dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题
+ dataBeans = dataRows;
+ viewBinding.refreshLayout.finishRefresh();
+ isRefresh = false;
+ } else if (isLoadMore) {
+ if (dataRows.size() == 0) {
+ StringHub.show(requireContext(), "到底了,别拉了");
+ }
+ dataBeans.addAll(dataRows);
+ viewBinding.refreshLayout.finishLoadMore();
+ isLoadMore = false;
+ } else {
+ dataBeans = dataRows;
+ }
+ weakReferenceHandler.sendEmptyMessage(202104251);
+ }
+ }
+ });
}
@Override
public void onResume() {
- obtainCheckCaseList();
super.onResume();
+ pageIndex = 1;
+ obtainCheckCaseList();
}
private void obtainCheckCaseList() {
@@ -80,31 +114,6 @@
obtainCheckCaseList();
}
});
-
- caseViewModel.caseCheckModel.observe(this, new Observer() {
- @Override
- public void onChanged(CaseCheckModel resultBean) {
- if (resultBean.isSuccess()) {
- List dataRows = resultBean.getData().getRows();
- if (isRefresh) {
- dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题
- dataBeans = dataRows;
- viewBinding.refreshLayout.finishRefresh();
- isRefresh = false;
- } else if (isLoadMore) {
- if (dataRows.size() == 0) {
- StringHub.show(requireContext(), "到底了,别拉了");
- }
- dataBeans.addAll(dataRows);
- viewBinding.refreshLayout.finishLoadMore();
- isLoadMore = false;
- } else {
- dataBeans = dataRows;
- }
- weakReferenceHandler.sendEmptyMessage(202104251);
- }
- }
- });
}
private final Handler.Callback callback = new Handler.Callback() {
@@ -125,16 +134,42 @@
});
} else {
viewBinding.emptyView.hide();
- adapter = new CheckCaseListAdapter(requireContext(), dataBeans);
- viewBinding.caseRecyclerView.setAdapter(adapter);
- adapter.setOnItemClickListener(new CheckCaseListAdapter.OnItemClickListener() {
+ adapter = new NormalRecyclerAdapter(R.layout.item_case_rv_l, dataBeans) {
@Override
- public void onClick(int position) {
- ContextHub.navigatePageTo(
- requireContext(),
- CaseCheckDetailActivity.class,
- dataBeans.get(position).getId()
- );
+ public void convertView(ViewHolder viewHolder, int position, CaseCheckModel.DataModel.RowsModel item) {
+ String fileIdProcess = item.getFileIdProcess();
+ if (!TextUtils.isEmpty(fileIdProcess)) {
+ String[] split = fileIdProcess.split(",");
+ String firstImage = split[0];
+ if (firstImage.endsWith(".jpg") || firstImage.contains(".jpeg") || firstImage.contains(".png")) {
+ new Thread(new Runnable() {
+ @Override
+ public void run() {
+ try {
+ Drawable drawable = Glide.with(requireContext()).load(StringHelper.appendCompleteURL(firstImage)).submit().get();
+ runOnUiThread(new Runnable() {
+ @Override
+ public void run() {
+ viewHolder.setImageResource(R.id.caseImageView, drawable);
+ }
+ });
+ } catch (ExecutionException | InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+ }).start();
+ }
+ }
+ viewHolder.setText(R.id.caseTitleView, StringHub.filterSpaceOrEnter(item.getDescription()))
+ .setText(R.id.casePlaceView, "发生地点:" + StringHub.filterSpaceOrEnter(item.getFieldintro()))
+ .setText(R.id.caseTimeView, "上报时间:" + item.getReportTime());
+ }
+ };
+ viewBinding.caseRecyclerView.setAdapter(adapter);
+ adapter.setOnItemClickedListener(new NormalRecyclerAdapter.OnItemClickedListener() {
+ @Override
+ public void onItemClicked(int position, CaseCheckModel.DataModel.RowsModel rowsModel) {
+ ContextHub.navigatePageTo(requireContext(), CheckDetailActivity.class, rowsModel.getId());
}
});
}
diff --git a/app/src/main/java/com/casic/dcms/fragment/check/CaseCheckedFragment.java b/app/src/main/java/com/casic/dcms/fragment/check/CaseCheckedFragment.java
index 3e2d904..6775b65 100644
--- a/app/src/main/java/com/casic/dcms/fragment/check/CaseCheckedFragment.java
+++ b/app/src/main/java/com/casic/dcms/fragment/check/CaseCheckedFragment.java
@@ -1,19 +1,27 @@
package com.casic.dcms.fragment.check;
+import static com.luck.picture.lib.thread.PictureThreadUtils.runOnUiThread;
+
+import android.graphics.drawable.Drawable;
import android.os.Handler;
import android.os.Message;
+import android.text.TextUtils;
import android.view.View;
import androidx.annotation.NonNull;
import androidx.lifecycle.Observer;
import androidx.lifecycle.ViewModelProvider;
-import com.casic.dcms.adapter.CheckCaseListAdapter;
+import com.bumptech.glide.Glide;
+import com.casic.dcms.R;
import com.casic.dcms.databinding.FragmentCheckCaseBinding;
-import com.casic.dcms.model.check.CaseCheckModel;
+import com.casic.dcms.model.CaseCheckModel;
import com.casic.dcms.utils.LocaleConstant;
-import com.casic.dcms.view.check.CaseCheckedDetailActivity;
+import com.casic.dcms.utils.StringHelper;
+import com.casic.dcms.view.check.CheckedDetailActivity;
import com.casic.dcms.vm.CaseViewModel;
+import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter;
+import com.pengxh.androidx.lite.adapter.ViewHolder;
import com.pengxh.androidx.lite.base.AndroidxBaseFragment;
import com.pengxh.androidx.lite.hub.ContextHub;
import com.pengxh.androidx.lite.hub.StringHub;
@@ -24,14 +32,15 @@
import java.util.ArrayList;
import java.util.List;
+import java.util.concurrent.ExecutionException;
public class CaseCheckedFragment extends AndroidxBaseFragment {
private static final String TAG = "CaseCheckedFragment";
private WeakReferenceHandler weakReferenceHandler;
private CaseViewModel caseViewModel;
- private CheckCaseListAdapter adapter;
- private List dataBeans = new ArrayList<>();
+ private NormalRecyclerAdapter adapter;
+ private List dataBeans = new ArrayList<>();
private int pageIndex = 1;
private boolean isRefresh, isLoadMore = false;
@@ -50,12 +59,37 @@
protected void initData() {
weakReferenceHandler = new WeakReferenceHandler(callback);
caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class);
+ caseViewModel.caseCheckModel.observe(this, new Observer() {
+ @Override
+ public void onChanged(CaseCheckModel resultBean) {
+ if (resultBean.isSuccess()) {
+ List dataRows = resultBean.getData().getRows();
+ if (isRefresh) {
+ dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题
+ dataBeans = dataRows;
+ viewBinding.refreshLayout.finishRefresh();
+ isRefresh = false;
+ } else if (isLoadMore) {
+ if (dataRows.size() == 0) {
+ StringHub.show(requireContext(), "到底了,别拉了");
+ }
+ dataBeans.addAll(dataRows);
+ viewBinding.refreshLayout.finishLoadMore();
+ isLoadMore = false;
+ } else {
+ dataBeans = dataRows;
+ }
+ weakReferenceHandler.sendEmptyMessage(202104252);
+ }
+ }
+ });
}
@Override
public void onResume() {
- obtainCheckCaseList();
super.onResume();
+ pageIndex = 1;
+ obtainCheckCaseList();
}
private void obtainCheckCaseList() {
@@ -81,32 +115,6 @@
obtainCheckCaseList();
}
});
-
- caseViewModel.caseCheckModel.observe(this, new Observer() {
-
- @Override
- public void onChanged(CaseCheckModel resultBean) {
- if (resultBean.isSuccess()) {
- List dataRows = resultBean.getData().getRows();
- if (isRefresh) {
- dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题
- dataBeans = dataRows;
- viewBinding.refreshLayout.finishRefresh();
- isRefresh = false;
- } else if (isLoadMore) {
- if (dataRows.size() == 0) {
- StringHub.show(requireContext(), "到底了,别拉了");
- }
- dataBeans.addAll(dataRows);
- viewBinding.refreshLayout.finishLoadMore();
- isLoadMore = false;
- } else {
- dataBeans = dataRows;
- }
- weakReferenceHandler.sendEmptyMessage(202104252);
- }
- }
- });
}
private final Handler.Callback callback = new Handler.Callback() {
@@ -127,16 +135,42 @@
});
} else {
viewBinding.emptyView.hide();
- adapter = new CheckCaseListAdapter(requireContext(), dataBeans);
- viewBinding.caseRecyclerView.setAdapter(adapter);
- adapter.setOnItemClickListener(new CheckCaseListAdapter.OnItemClickListener() {
+ adapter = new NormalRecyclerAdapter(R.layout.item_case_rv_l, dataBeans) {
@Override
- public void onClick(int position) {
- ContextHub.navigatePageTo(
- requireContext(),
- CaseCheckedDetailActivity.class,
- dataBeans.get(position).getId()
- );
+ public void convertView(ViewHolder viewHolder, int position, CaseCheckModel.DataModel.RowsModel item) {
+ String fileIdProcess = item.getFileIdProcess();
+ if (!TextUtils.isEmpty(fileIdProcess)) {
+ String[] split = fileIdProcess.split(",");
+ String firstImage = split[0];
+ if (firstImage.endsWith(".jpg") || firstImage.contains(".jpeg") || firstImage.contains(".png")) {
+ new Thread(new Runnable() {
+ @Override
+ public void run() {
+ try {
+ Drawable drawable = Glide.with(requireContext()).load(StringHelper.appendCompleteURL(firstImage)).submit().get();
+ runOnUiThread(new Runnable() {
+ @Override
+ public void run() {
+ viewHolder.setImageResource(R.id.caseImageView, drawable);
+ }
+ });
+ } catch (ExecutionException | InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+ }).start();
+ }
+ }
+ viewHolder.setText(R.id.caseTitleView, StringHub.filterSpaceOrEnter(item.getDescription()))
+ .setText(R.id.casePlaceView, "发生地点:" + StringHub.filterSpaceOrEnter(item.getFieldintro()))
+ .setText(R.id.caseTimeView, "上报时间:" + item.getReportTime());
+ }
+ };
+ viewBinding.caseRecyclerView.setAdapter(adapter);
+ adapter.setOnItemClickedListener(new NormalRecyclerAdapter.OnItemClickedListener() {
+ @Override
+ public void onItemClicked(int position, CaseCheckModel.DataModel.RowsModel rowsModel) {
+ ContextHub.navigatePageTo(requireContext(), CheckedDetailActivity.class, rowsModel.getId());
}
});
}
diff --git a/app/src/main/java/com/casic/dcms/model/CaseCheckModel.java b/app/src/main/java/com/casic/dcms/model/CaseCheckModel.java
new file mode 100644
index 0000000..550a1fe
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/model/CaseCheckModel.java
@@ -0,0 +1,358 @@
+package com.casic.dcms.model;
+
+import java.util.List;
+
+/**
+ * 核查-已办/待办共用一个Model
+ */
+public class CaseCheckModel {
+
+ private int code;
+ private DataModel data;
+ private String message;
+ private boolean success;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public DataModel getData() {
+ return data;
+ }
+
+ public void setData(DataModel data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
+ public static class DataModel {
+ private List rows;
+ private int total;
+
+ public List getRows() {
+ return rows;
+ }
+
+ public void setRows(List rows) {
+ this.rows = rows;
+ }
+
+ public int getTotal() {
+ return total;
+ }
+
+ public void setTotal(int total) {
+ this.total = total;
+ }
+
+ public static class RowsModel {
+ private String isPostpone;
+ private String description;
+ private String source;
+ private String eorcName;
+ private String casetypeDetailName;
+ private String remainingTime;
+ private String casetypeName;
+ private String currUserId;
+ private String currUserName;
+ private String processId;
+ private String caseState;
+ private String id;
+ private String shopId;
+ private String fieldintro;
+ private String lat;
+ private String caseStateName;
+ private String lng;
+ private String isOvertime;
+ private String currRoleName;
+ private String fileIdVerify;
+ private String casetypeDetailCode;
+ private String onedeptid;
+ private String eorc;
+ private String currRoleId;
+ private String caseid;
+ private String casetypeCode;
+ private String nodeLimittime;
+ private String taskName;
+ private String sourceName;
+ private String fileIdProcess;
+ private String reportTime;
+ private String onedeptName;
+
+ public String getIsPostpone() {
+ return isPostpone;
+ }
+
+ public void setIsPostpone(String isPostpone) {
+ this.isPostpone = isPostpone;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ public String getSource() {
+ return source;
+ }
+
+ public void setSource(String source) {
+ this.source = source;
+ }
+
+ public String getEorcName() {
+ return eorcName;
+ }
+
+ public void setEorcName(String eorcName) {
+ this.eorcName = eorcName;
+ }
+
+ public String getCasetypeDetailName() {
+ return casetypeDetailName;
+ }
+
+ public void setCasetypeDetailName(String casetypeDetailName) {
+ this.casetypeDetailName = casetypeDetailName;
+ }
+
+ public String getRemainingTime() {
+ return remainingTime;
+ }
+
+ public void setRemainingTime(String remainingTime) {
+ this.remainingTime = remainingTime;
+ }
+
+ public String getCasetypeName() {
+ return casetypeName;
+ }
+
+ public void setCasetypeName(String casetypeName) {
+ this.casetypeName = casetypeName;
+ }
+
+ public String getCurrUserId() {
+ return currUserId;
+ }
+
+ public void setCurrUserId(String currUserId) {
+ this.currUserId = currUserId;
+ }
+
+ public String getCurrUserName() {
+ return currUserName;
+ }
+
+ public void setCurrUserName(String currUserName) {
+ this.currUserName = currUserName;
+ }
+
+ public String getProcessId() {
+ return processId;
+ }
+
+ public void setProcessId(String processId) {
+ this.processId = processId;
+ }
+
+ public String getCaseState() {
+ return caseState;
+ }
+
+ public void setCaseState(String caseState) {
+ this.caseState = caseState;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getShopId() {
+ return shopId;
+ }
+
+ public void setShopId(String shopId) {
+ this.shopId = shopId;
+ }
+
+ public String getFieldintro() {
+ return fieldintro;
+ }
+
+ public void setFieldintro(String fieldintro) {
+ this.fieldintro = fieldintro;
+ }
+
+ public String getLat() {
+ return lat;
+ }
+
+ public void setLat(String lat) {
+ this.lat = lat;
+ }
+
+ public String getCaseStateName() {
+ return caseStateName;
+ }
+
+ public void setCaseStateName(String caseStateName) {
+ this.caseStateName = caseStateName;
+ }
+
+ public String getLng() {
+ return lng;
+ }
+
+ public void setLng(String lng) {
+ this.lng = lng;
+ }
+
+ public String getIsOvertime() {
+ return isOvertime;
+ }
+
+ public void setIsOvertime(String isOvertime) {
+ this.isOvertime = isOvertime;
+ }
+
+ public String getCurrRoleName() {
+ return currRoleName;
+ }
+
+ public void setCurrRoleName(String currRoleName) {
+ this.currRoleName = currRoleName;
+ }
+
+ public String getFileIdVerify() {
+ return fileIdVerify;
+ }
+
+ public void setFileIdVerify(String fileIdVerify) {
+ this.fileIdVerify = fileIdVerify;
+ }
+
+ public String getCasetypeDetailCode() {
+ return casetypeDetailCode;
+ }
+
+ public void setCasetypeDetailCode(String casetypeDetailCode) {
+ this.casetypeDetailCode = casetypeDetailCode;
+ }
+
+ public String getOnedeptid() {
+ return onedeptid;
+ }
+
+ public void setOnedeptid(String onedeptid) {
+ this.onedeptid = onedeptid;
+ }
+
+ public String getEorc() {
+ return eorc;
+ }
+
+ public void setEorc(String eorc) {
+ this.eorc = eorc;
+ }
+
+ public String getCurrRoleId() {
+ return currRoleId;
+ }
+
+ public void setCurrRoleId(String currRoleId) {
+ this.currRoleId = currRoleId;
+ }
+
+ public String getCaseid() {
+ return caseid;
+ }
+
+ public void setCaseid(String caseid) {
+ this.caseid = caseid;
+ }
+
+ public String getCasetypeCode() {
+ return casetypeCode;
+ }
+
+ public void setCasetypeCode(String casetypeCode) {
+ this.casetypeCode = casetypeCode;
+ }
+
+ public String getNodeLimittime() {
+ return nodeLimittime;
+ }
+
+ public void setNodeLimittime(String nodeLimittime) {
+ this.nodeLimittime = nodeLimittime;
+ }
+
+ public String getTaskName() {
+ return taskName;
+ }
+
+ public void setTaskName(String taskName) {
+ this.taskName = taskName;
+ }
+
+ public String getSourceName() {
+ return sourceName;
+ }
+
+ public void setSourceName(String sourceName) {
+ this.sourceName = sourceName;
+ }
+
+ public String getFileIdProcess() {
+ return fileIdProcess;
+ }
+
+ public void setFileIdProcess(String fileIdProcess) {
+ this.fileIdProcess = fileIdProcess;
+ }
+
+ public String getReportTime() {
+ return reportTime;
+ }
+
+ public void setReportTime(String reportTime) {
+ this.reportTime = reportTime;
+ }
+
+ public String getOnedeptName() {
+ return onedeptName;
+ }
+
+ public void setOnedeptName(String onedeptName) {
+ this.onedeptName = onedeptName;
+ }
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/model/check/CaseCheckModel.java b/app/src/main/java/com/casic/dcms/model/check/CaseCheckModel.java
deleted file mode 100644
index 854e2fe..0000000
--- a/app/src/main/java/com/casic/dcms/model/check/CaseCheckModel.java
+++ /dev/null
@@ -1,358 +0,0 @@
-package com.casic.dcms.model.check;
-
-import java.util.List;
-
-/**
- * 核查-已办/待办共用一个Bean
- */
-public class CaseCheckModel {
-
- private int code;
- private DataDTO data;
- private String message;
- private boolean success;
-
- public int getCode() {
- return code;
- }
-
- public void setCode(int code) {
- this.code = code;
- }
-
- public DataDTO getData() {
- return data;
- }
-
- public void setData(DataDTO data) {
- this.data = data;
- }
-
- public String getMessage() {
- return message;
- }
-
- public void setMessage(String message) {
- this.message = message;
- }
-
- public boolean isSuccess() {
- return success;
- }
-
- public void setSuccess(boolean success) {
- this.success = success;
- }
-
- public static class DataDTO {
- private List rows;
- private int total;
-
- public List getRows() {
- return rows;
- }
-
- public void setRows(List rows) {
- this.rows = rows;
- }
-
- public int getTotal() {
- return total;
- }
-
- public void setTotal(int total) {
- this.total = total;
- }
-
- public static class RowsDTO {
- private int isPostpone;
- private String description;
- private int source;
- private String eorcName;
- private String casetypeDetailName;
- private String remainingTime;
- private String casetypeName;
- private String currUserId;
- private String currUserName;
- private String processId;
- private int caseState;
- private String id;
- private String shopId;
- private String fieldintro;
- private String lat;
- private String caseStateName;
- private String lng;
- private String isOvertime;
- private String currRoleName;
- private String fileIdVerify;
- private String casetypeDetailCode;
- private String onedeptid;
- private String eorc;
- private String currRoleId;
- private String caseid;
- private String casetypeCode;
- private String nodeLimittime;
- private String taskName;
- private String sourceName;
- private String fileIdProcess;
- private String reportTime;
- private String onedeptName;
-
- public int getIsPostpone() {
- return isPostpone;
- }
-
- public void setIsPostpone(int isPostpone) {
- this.isPostpone = isPostpone;
- }
-
- public String getDescription() {
- return description;
- }
-
- public void setDescription(String description) {
- this.description = description;
- }
-
- public int getSource() {
- return source;
- }
-
- public void setSource(int source) {
- this.source = source;
- }
-
- public String getEorcName() {
- return eorcName;
- }
-
- public void setEorcName(String eorcName) {
- this.eorcName = eorcName;
- }
-
- public String getCasetypeDetailName() {
- return casetypeDetailName;
- }
-
- public void setCasetypeDetailName(String casetypeDetailName) {
- this.casetypeDetailName = casetypeDetailName;
- }
-
- public String getRemainingTime() {
- return remainingTime;
- }
-
- public void setRemainingTime(String remainingTime) {
- this.remainingTime = remainingTime;
- }
-
- public String getCasetypeName() {
- return casetypeName;
- }
-
- public void setCasetypeName(String casetypeName) {
- this.casetypeName = casetypeName;
- }
-
- public String getCurrUserId() {
- return currUserId;
- }
-
- public void setCurrUserId(String currUserId) {
- this.currUserId = currUserId;
- }
-
- public String getCurrUserName() {
- return currUserName;
- }
-
- public void setCurrUserName(String currUserName) {
- this.currUserName = currUserName;
- }
-
- public String getProcessId() {
- return processId;
- }
-
- public void setProcessId(String processId) {
- this.processId = processId;
- }
-
- public int getCaseState() {
- return caseState;
- }
-
- public void setCaseState(int caseState) {
- this.caseState = caseState;
- }
-
- public String getId() {
- return id;
- }
-
- public void setId(String id) {
- this.id = id;
- }
-
- public String getShopId() {
- return shopId;
- }
-
- public void setShopId(String shopId) {
- this.shopId = shopId;
- }
-
- public String getFieldintro() {
- return fieldintro;
- }
-
- public void setFieldintro(String fieldintro) {
- this.fieldintro = fieldintro;
- }
-
- public String getLat() {
- return lat;
- }
-
- public void setLat(String lat) {
- this.lat = lat;
- }
-
- public String getCaseStateName() {
- return caseStateName;
- }
-
- public void setCaseStateName(String caseStateName) {
- this.caseStateName = caseStateName;
- }
-
- public String getLng() {
- return lng;
- }
-
- public void setLng(String lng) {
- this.lng = lng;
- }
-
- public String getIsOvertime() {
- return isOvertime;
- }
-
- public void setIsOvertime(String isOvertime) {
- this.isOvertime = isOvertime;
- }
-
- public String getCurrRoleName() {
- return currRoleName;
- }
-
- public void setCurrRoleName(String currRoleName) {
- this.currRoleName = currRoleName;
- }
-
- public String getFileIdVerify() {
- return fileIdVerify;
- }
-
- public void setFileIdVerify(String fileIdVerify) {
- this.fileIdVerify = fileIdVerify;
- }
-
- public String getCasetypeDetailCode() {
- return casetypeDetailCode;
- }
-
- public void setCasetypeDetailCode(String casetypeDetailCode) {
- this.casetypeDetailCode = casetypeDetailCode;
- }
-
- public String getOnedeptid() {
- return onedeptid;
- }
-
- public void setOnedeptid(String onedeptid) {
- this.onedeptid = onedeptid;
- }
-
- public String getEorc() {
- return eorc;
- }
-
- public void setEorc(String eorc) {
- this.eorc = eorc;
- }
-
- public String getCurrRoleId() {
- return currRoleId;
- }
-
- public void setCurrRoleId(String currRoleId) {
- this.currRoleId = currRoleId;
- }
-
- public String getCaseid() {
- return caseid;
- }
-
- public void setCaseid(String caseid) {
- this.caseid = caseid;
- }
-
- public String getCasetypeCode() {
- return casetypeCode;
- }
-
- public void setCasetypeCode(String casetypeCode) {
- this.casetypeCode = casetypeCode;
- }
-
- public String getNodeLimittime() {
- return nodeLimittime;
- }
-
- public void setNodeLimittime(String nodeLimittime) {
- this.nodeLimittime = nodeLimittime;
- }
-
- public String getTaskName() {
- return taskName;
- }
-
- public void setTaskName(String taskName) {
- this.taskName = taskName;
- }
-
- public String getSourceName() {
- return sourceName;
- }
-
- public void setSourceName(String sourceName) {
- this.sourceName = sourceName;
- }
-
- public String getFileIdProcess() {
- return fileIdProcess;
- }
-
- public void setFileIdProcess(String fileIdProcess) {
- this.fileIdProcess = fileIdProcess;
- }
-
- public String getReportTime() {
- return reportTime;
- }
-
- public void setReportTime(String reportTime) {
- this.reportTime = reportTime;
- }
-
- public String getOnedeptName() {
- return onedeptName;
- }
-
- public void setOnedeptName(String onedeptName) {
- this.onedeptName = onedeptName;
- }
- }
- }
-}
diff --git a/app/src/main/java/com/casic/dcms/utils/NotificationHelper.java b/app/src/main/java/com/casic/dcms/utils/NotificationHelper.java
index cd3e026..d0888bc 100644
--- a/app/src/main/java/com/casic/dcms/utils/NotificationHelper.java
+++ b/app/src/main/java/com/casic/dcms/utils/NotificationHelper.java
@@ -14,10 +14,10 @@
import com.casic.dcms.R;
public class NotificationHelper {
- private Context mContext;
+ private final Context mContext;
@SuppressLint("StaticFieldLeak")
- private static NotificationHelper notificationHelper;
- private NotificationManager notificationManager;
+ private static volatile NotificationHelper notificationHelper;
+ private final NotificationManager notificationManager;
private NotificationHelper(Context context) {
this.mContext = context;
@@ -45,10 +45,8 @@
//创建渠道
String id = name + "_DefaultChannel";
NotificationChannel mChannel = new NotificationChannel(id, name, NotificationManager.IMPORTANCE_HIGH);
-// mChannel.setSound(Uri.parse(""), Notification.AUDIO_ATTRIBUTES_DEFAULT);
mChannel.setShowBadge(true);
- mChannel.enableVibration(true);
- mChannel.setVibrationPattern(new long[]{100, 200, 300});
+ mChannel.enableVibration(false);
mChannel.setLockscreenVisibility(Notification.VISIBILITY_PUBLIC);//设置锁屏可见
notificationManager.createNotificationChannel(mChannel);
builder = new Notification.Builder(mContext, id);
diff --git a/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java b/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java
index d7bf511..691dfd5 100644
--- a/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java
+++ b/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java
@@ -4,20 +4,22 @@
import android.graphics.Color;
import android.view.View;
-import androidx.core.content.ContextCompat;
import androidx.lifecycle.Observer;
import androidx.lifecycle.ViewModelProvider;
import com.casic.dcms.R;
import com.casic.dcms.databinding.ActivityCaseProcessBinding;
import com.casic.dcms.model.CaseProcessBean;
+import com.casic.dcms.utils.DialogHelper;
import com.casic.dcms.vm.CommonDataViewModel;
import com.gyf.immersionbar.ImmersionBar;
import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter;
import com.pengxh.androidx.lite.adapter.ViewHolder;
import com.pengxh.androidx.lite.base.AndroidxBaseActivity;
+import com.pengxh.androidx.lite.hub.IntHub;
import com.pengxh.androidx.lite.utils.Constant;
import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager;
+import com.pengxh.androidx.lite.vm.LoadState;
import java.util.ArrayList;
import java.util.List;
@@ -30,8 +32,8 @@
@Override
protected void setupTopBarLayout() {
- ImmerseStatusBarManager.setColor(this, ContextCompat.getColor(this, R.color.mainThemeColor));
- ImmersionBar.with(this).statusBarDarkFont(false).init();
+ ImmerseStatusBarManager.setColor(this, IntHub.convertColor(this, R.color.white));
+ ImmersionBar.with(this).statusBarDarkFont(true).init();
viewBinding.titleBarLayout.titleView.setText("处理记录");
viewBinding.titleBarLayout.leftBackView.setOnClickListener(v -> finish());
@@ -39,7 +41,16 @@
@Override
protected void observeRequestState() {
-
+ commonDataViewModel.loadState.observe(this, new Observer() {
+ @Override
+ public void onChanged(LoadState loadState) {
+ if (loadState == LoadState.Loading) {
+ DialogHelper.showLoadingDialog(context, "获取数据中...");
+ } else {
+ DialogHelper.dismissLoadingDialog();
+ }
+ }
+ });
}
@Override
@@ -47,10 +58,6 @@
String processId = getIntent().getStringExtra(Constant.INTENT_PARAM);
commonDataViewModel = new ViewModelProvider(this).get(CommonDataViewModel.class);
commonDataViewModel.obtainCaseProcess(processId);
- }
-
- @Override
- protected void initEvent() {
commonDataViewModel.caseProcessModel.observe(this, new Observer() {
@Override
public void onChanged(CaseProcessBean resultBean) {
@@ -91,4 +98,9 @@
}
});
}
+
+ @Override
+ protected void initEvent() {
+
+ }
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/dcms/view/check/CaseCheckDetailActivity.java b/app/src/main/java/com/casic/dcms/view/check/CaseCheckDetailActivity.java
deleted file mode 100644
index 30585d5..0000000
--- a/app/src/main/java/com/casic/dcms/view/check/CaseCheckDetailActivity.java
+++ /dev/null
@@ -1,353 +0,0 @@
-package com.casic.dcms.view.check;
-
-import android.content.Context;
-import android.text.TextUtils;
-import android.view.View;
-import android.widget.AdapterView;
-
-import androidx.core.content.ContextCompat;
-import androidx.lifecycle.Observer;
-import androidx.lifecycle.ViewModelProvider;
-
-import com.bumptech.glide.Glide;
-import com.bumptech.glide.request.RequestOptions;
-import com.casic.dcms.R;
-import com.casic.dcms.databinding.ActivityCaseCheckDetailBinding;
-import com.casic.dcms.model.ActionResultBean;
-import com.casic.dcms.model.CaseDetailBean;
-import com.casic.dcms.model.CaseNextNodeBean;
-import com.casic.dcms.utils.DialogHelper;
-import com.casic.dcms.utils.MapHelper;
-import com.casic.dcms.utils.PictureSelectorHelper;
-import com.casic.dcms.utils.StringHelper;
-import com.casic.dcms.utils.callback.ISelectorListener;
-import com.casic.dcms.view.BigImageActivity;
-import com.casic.dcms.vm.CaseOperateViewModel;
-import com.casic.dcms.vm.CaseViewModel;
-import com.casic.dcms.vm.NodeViewModel;
-import com.casic.dcms.vm.UploadViewModel;
-import com.gyf.immersionbar.ImmersionBar;
-import com.luck.picture.lib.entity.LocalMedia;
-import com.pengxh.androidx.lite.adapter.EditableImageAdapter;
-import com.pengxh.androidx.lite.adapter.ReadOnlyImageAdapter;
-import com.pengxh.androidx.lite.base.AndroidxBaseActivity;
-import com.pengxh.androidx.lite.hub.ContextHub;
-import com.pengxh.androidx.lite.hub.StringHub;
-import com.pengxh.androidx.lite.utils.Constant;
-import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager;
-import com.pengxh.androidx.lite.vm.LoadState;
-import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.List;
-
-import cn.jzvd.Jzvd;
-
-public class CaseCheckDetailActivity extends AndroidxBaseActivity {
-
- private final Context context = CaseCheckDetailActivity.this;
- private final ArrayList realPaths = new ArrayList<>(); //真实图片路径
- private final ArrayList imageList = new ArrayList<>(); //上传到服务器的数据集
- private CaseViewModel caseViewModel;
- private UploadViewModel uploadViewModel;
- private NodeViewModel nodeViewModel;
- private CaseOperateViewModel operateViewModel;
- private String id;
- private String changeState;
- private EditableImageAdapter checkImageAdapter;
- private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean();
-
- @Override
- protected void setupTopBarLayout() {
- ImmerseStatusBarManager.setColor(this, ContextCompat.getColor(this, R.color.mainThemeColor));
- ImmersionBar.with(this).statusBarDarkFont(false).init();
-
- viewBinding.titleBarLayout.titleView.setText("案卷核查详情");
- viewBinding.titleBarLayout.leftBackView.setOnClickListener(v -> finish());
- }
-
- @Override
- protected void observeRequestState() {
-
- }
-
- @Override
- protected void initData() {
- id = getIntent().getStringExtra(Constant.INTENT_PARAM);
- caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class);
- caseViewModel.obtainCaseDetail(id);
-
- uploadViewModel = new ViewModelProvider(this).get(UploadViewModel.class);
- nodeViewModel = new ViewModelProvider(this).get(NodeViewModel.class);
- operateViewModel = new ViewModelProvider(this).get(CaseOperateViewModel.class);
-
- checkImageAdapter = new EditableImageAdapter(this, 3, 13);
- viewBinding.addImageRecyclerView.setAdapter(checkImageAdapter);
- }
-
- @Override
- protected void initEvent() {
- caseViewModel.caseDetailModel.observe(this, new Observer() {
- @Override
- public void onChanged(CaseDetailBean resultBean) {
- if (resultBean.getCode() == 200) {
- data = resultBean.getData().get(0);
- viewBinding.caseNumberView.setText(data.getCaseid());
- viewBinding.caseTypeView.setText(data.getEorcName());
- viewBinding.caseLargeTypeView.setText(data.getCasetypeName());
- viewBinding.caseSmallTypeView.setText(data.getCasetypeDetailName());
- viewBinding.caseCommunityView.setText(data.getCommunityName().equals("") ? "无更详细社区信息" : data.getCommunityName());
- viewBinding.casePlaceView.setText(StringHub.filterSpaceOrEnter(data.getFieldintro()));
- viewBinding.caseSituationView.setText(StringHub.filterSpaceOrEnter(data.getDescription()));
- viewBinding.caseHandleView.setText(data.getProcessRemarks().equals("") ? "无" : data.getProcessRemarks());
- viewBinding.caseStartTimeView.setText(data.getCreateTime());
- viewBinding.caseEndTimeView.setText(data.getNodeLimittime());
- /**
- * 图片
- */
- //核实照片
- String verifyImages = data.getFileIdVerify();
- if (!TextUtils.isEmpty(verifyImages)) {
- ArrayList urls = new ArrayList<>();
- String[] split = verifyImages.split(",");
- for (String s : split) {
- if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
- urls.add(StringHelper.appendCompleteURL(s));
- }
- }
- ReadOnlyImageAdapter imageAdapter = new ReadOnlyImageAdapter(context);
- imageAdapter.setImageList(urls);
- viewBinding.imageGridView.setAdapter(imageAdapter);
- //九宫格点击事件
- viewBinding.imageGridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
- @Override
- public void onItemClick(AdapterView> adapterView, View view, int position, long l) {
- if (urls.get(position).isEmpty()) {
- StringHub.show(context, "图片加载失败,无法查看大图");
- } else {
- ContextHub.navigatePageTo(context, BigImageActivity.class, position, urls);
- }
- }
- });
- }
-
- //音频
- String audioFile = data.getAudioIdVerify();
- if (!TextUtils.isEmpty(audioFile)) {
- viewBinding.audioPlayerView.setVisibility(View.VISIBLE);
- viewBinding.audioPlayerView.setAudioUrl(StringHelper.appendCompleteURL(audioFile));
- }
-
- //视频
- String videoFile = data.getVideoIdVerify();
- if (!TextUtils.isEmpty(videoFile)) {
- viewBinding.videoPlayerView.setVisibility(View.VISIBLE);
- String videoUrl = StringHelper.appendCompleteURL(videoFile);
- viewBinding.videoPlayerView.setUp(
- videoUrl,
- StringHub.filterSpaceOrEnter(data.getDescription()),
- Jzvd.SCREEN_NORMAL
- );
- //设置第一帧为封面
- Glide.with(context)
- .setDefaultRequestOptions(new RequestOptions().frame(4000000))
- .load(videoUrl)
- .into(viewBinding.videoPlayerView.posterImageView);
- }
-
- //处理照片
- String processImages = data.getFileIdProcess();
- if (!TextUtils.isEmpty(processImages)) {
- ArrayList urls = new ArrayList<>();
- String[] split = processImages.split(",");
- for (String s : split) {
- if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) {
- urls.add(StringHelper.appendCompleteURL(s));
- }
- }
- ReadOnlyImageAdapter imageAdapter = new ReadOnlyImageAdapter(context);
- imageAdapter.setImageList(urls);
- viewBinding.handleGridView.setAdapter(imageAdapter);
- //九宫格点击事件
- viewBinding.handleGridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
- @Override
- public void onItemClick(AdapterView> adapterView, View view, int position, long l) {
- if (urls.get(position).isEmpty()) {
- StringHub.show(context, "图片加载失败,无法查看大图");
- } else {
- ContextHub.navigatePageTo(context, BigImageActivity.class, position, urls);
- }
- }
- });
- }
- viewBinding.caseHandleResultView.setText(data.getProcessRemarks().equals("") ? "无处理意见" : data.getProcessRemarks());
- //TODO 服务器返回数据缺少此字段,暂时注掉
-// viewBinding.caseHandleTimeView.setText();
- }
- }
- });
- caseViewModel.loadState.observe(this, new Observer() {
- @Override
- public void onChanged(LoadState loadState) {
- if (loadState == LoadState.Loading) {
- DialogHelper.showLoadingDialog(context, "获取数据中...");
- } else {
- DialogHelper.dismissLoadingDialog();
- }
- }
- });
-
- viewBinding.locationMapView.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- MapHelper.displayOnMap(context, data.getEorcName(), data.getLng(), data.getLat());
- }
- });
-
- //图片九宫格事件处理
- checkImageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() {
- @Override
- public void onAddImageClick() {
- PictureSelectorHelper.selectPicture(context, new ISelectorListener() {
- @Override
- public void onSuccess(ArrayList result) {
- if (result.size() == 1) {
- uploadViewModel.uploadImage(new File(result.get(0).getRealPath()));
- } else {
- for (LocalMedia localMedia : result) {
- uploadViewModel.uploadImage(new File(localMedia.getRealPath()));
- }
- }
- }
- });
- }
-
- @Override
- public void onItemClick(int position) {
- if (realPaths.get(position).isEmpty()) {
- StringHub.show(context, "图片加载失败,无法查看大图");
- } else {
- ContextHub.navigatePageTo(context, BigImageActivity.class, position, realPaths);
- }
- }
-
- @Override
- public void onItemLongClick(View view, int position) {
- imageList.remove(position);
- checkImageAdapter.deleteImage(position);
- }
- });
- uploadViewModel.imageModel.observe(this, new Observer() {
- @Override
- public void onChanged(ActionResultBean resultBean) {
- if (resultBean.getCode() == 200) {
- if (checkImageAdapter.getItemCount() <= 3) {
- String url = resultBean.getData();
- imageList.add(url);
- realPaths.add(StringHelper.appendCompleteURL(url));
- checkImageAdapter.setupImage(realPaths);
- } else {
- StringHub.show(context, "最多只能上传3张图片");
- }
- }
- }
- });
- uploadViewModel.loadState.observe(this, new Observer() {
- @Override
- public void onChanged(LoadState loadState) {
- if (loadState == LoadState.Loading) {
- DialogHelper.showLoadingDialog(context, "上传中,请稍后...");
- } else {
- DialogHelper.dismissLoadingDialog();
- }
- }
- });
-
- viewBinding.caseCheckLayout.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- nodeViewModel.obtainNextNode(String.valueOf(data.getCaseState()));
- }
- });
- nodeViewModel.nodeModel.observe(this, new Observer() {
- @Override
- public void onChanged(CaseNextNodeBean resultBean) {
- if (resultBean.getCode() == 200) {
- List dataBeans = resultBean.getData();
- QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(context);
- sheetBuilder.setTitle("核实情况");
- for (CaseNextNodeBean.DataBean dataBean : dataBeans) {
- sheetBuilder.addItem(dataBean.getNextOperation());
- }
- sheetBuilder.setGravityCenter(true)
- .setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() {
- @Override
- public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) {
- dialog.dismiss();
- CaseNextNodeBean.DataBean dataBean = dataBeans.get(position);
- viewBinding.caseCheckOptView.setText(dataBean.getNextOperation());
- changeState = String.valueOf(dataBean.getNextState());
- }
- }).build().show();
- } else {
- StringHub.show(context, "该案卷无下级流转节点");
- }
- }
- });
-
- viewBinding.submitButton.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- //案卷提交
- String remarks = viewBinding.caseCheckOptView.getText().toString();
- if (TextUtils.isEmpty(remarks)) {
- StringHub.show(context, "核查意见不能为空");
- return;
- }
- if (TextUtils.isEmpty(changeState)) {
- StringHub.show(context, "核查情况还未选择");
- return;
- }
- operateViewModel.checkCase(data.getProcessId(), id,
- String.valueOf(data.getCaseState()), changeState, remarks,
- StringHelper.reformatURL(imageList)
- );
- }
- });
- operateViewModel.loadState.observe(this, new Observer() {
- @Override
- public void onChanged(LoadState loadState) {
- if (loadState == LoadState.Loading) {
- DialogHelper.showLoadingDialog(context, "案卷核查中,请稍后...");
- } else if (loadState == LoadState.Success) {
- DialogHelper.dismissLoadingDialog();
- finish();
- } else {
- StringHub.show(context, "核查失败,请重试");
- DialogHelper.dismissLoadingDialog();
- }
- }
- });
- }
-
- @Override
- public void onDestroy() {
- viewBinding.audioPlayerView.release();
- super.onDestroy();
- }
-
- @Override
- public void onBackPressed() {
- if (Jzvd.backPress()) {
- return;
- }
- super.onBackPressed();
- }
-
- @Override
- public void onPause() {
- super.onPause();
- Jzvd.releaseAllVideos();
- }
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/dcms/view/check/CaseCheckedDetailActivity.java b/app/src/main/java/com/casic/dcms/view/check/CaseCheckedDetailActivity.java
deleted file mode 100644
index 0ffce7d..0000000
--- a/app/src/main/java/com/casic/dcms/view/check/CaseCheckedDetailActivity.java
+++ /dev/null
@@ -1,228 +0,0 @@
-package com.casic.dcms.view.check;
-
-import android.content.Context;
-import android.text.TextUtils;
-import android.view.View;
-import android.widget.AdapterView;
-
-import androidx.core.content.ContextCompat;
-import androidx.lifecycle.Observer;
-import androidx.lifecycle.ViewModelProvider;
-
-import com.bumptech.glide.Glide;
-import com.bumptech.glide.request.RequestOptions;
-import com.casic.dcms.R;
-import com.casic.dcms.databinding.ActivityCaseCheckedDetailBinding;
-import com.casic.dcms.model.CaseDetailBean;
-import com.casic.dcms.utils.DialogHelper;
-import com.casic.dcms.utils.MapHelper;
-import com.casic.dcms.utils.StringHelper;
-import com.casic.dcms.view.BigImageActivity;
-import com.casic.dcms.view.CaseProcessActivity;
-import com.casic.dcms.vm.CaseViewModel;
-import com.gyf.immersionbar.ImmersionBar;
-import com.pengxh.androidx.lite.adapter.ReadOnlyImageAdapter;
-import com.pengxh.androidx.lite.base.AndroidxBaseActivity;
-import com.pengxh.androidx.lite.hub.ContextHub;
-import com.pengxh.androidx.lite.hub.StringHub;
-import com.pengxh.androidx.lite.utils.Constant;
-import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager;
-import com.pengxh.androidx.lite.vm.LoadState;
-
-import java.util.ArrayList;
-
-import cn.jzvd.Jzvd;
-
-public class CaseCheckedDetailActivity extends AndroidxBaseActivity {
-
- private final Context context = CaseCheckedDetailActivity.this;
- private CaseViewModel caseViewModel;
- private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean();
-
- @Override
- protected void setupTopBarLayout() {
- ImmerseStatusBarManager.setColor(this, ContextCompat.getColor(this, R.color.mainThemeColor));
- ImmersionBar.with(this).statusBarDarkFont(false).init();
-
- viewBinding.titleBarLayout.titleView.setText("案卷核查详情");
- viewBinding.titleBarLayout.leftBackView.setOnClickListener(v -> finish());
- }
-
- @Override
- protected void observeRequestState() {
-
- }
-
- @Override
- protected void initData() {
- String id = getIntent().getStringExtra(Constant.INTENT_PARAM);
- caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class);
- caseViewModel.obtainCaseDetail(id);
- }
-
- @Override
- protected void initEvent() {
- caseViewModel.caseDetailModel.observe(this, new Observer() {
- @Override
- public void onChanged(CaseDetailBean resultBean) {
- if (resultBean.getCode() == 200) {
- data = resultBean.getData().get(0);
- viewBinding.caseNumberView.setText(data.getCaseid());
- viewBinding.caseTypeView.setText(data.getEorcName());
- viewBinding.caseLargeTypeView.setText(data.getCasetypeName());
- viewBinding.caseSmallTypeView.setText(data.getCasetypeDetailName());
- viewBinding.caseCommunityView.setText(data.getCommunityName());
- viewBinding.casePlaceView.setText(StringHub.filterSpaceOrEnter(data.getFieldintro()));
- viewBinding.caseHandleView.setText(data.getProcessRemarks().equals("") ? "无" : data.getProcessRemarks());
- viewBinding.caseSituationView.setText(StringHub.filterSpaceOrEnter(data.getDescription()));
-
- //核实图片
- String verifyImages = data.getFileIdVerify();
- if (!TextUtils.isEmpty(verifyImages)) {
- ArrayList urls = new ArrayList<>();
- String[] split = verifyImages.split(",");
- for (String s : split) {
- if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
- urls.add(StringHelper.appendCompleteURL(s));
- }
- }
- ReadOnlyImageAdapter imageAdapter = new ReadOnlyImageAdapter(context);
- imageAdapter.setImageList(urls);
- viewBinding.imageGridView.setAdapter(imageAdapter);
- //九宫格点击事件
- viewBinding.imageGridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
- @Override
- public void onItemClick(AdapterView> adapterView, View view, int position, long l) {
- if (urls.get(position).isEmpty()) {
- StringHub.show(context, "图片加载失败,无法查看大图");
- } else {
- ContextHub.navigatePageTo(context, BigImageActivity.class, position, urls);
- }
- }
- });
- }
-
- //处理图片
- String handleImages = data.getFileIdProcess();
- if (!TextUtils.isEmpty(handleImages)) {
- ArrayList urls = new ArrayList<>();
- String[] split = handleImages.split(",");
- for (String s : split) {
- if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) {
- urls.add(StringHelper.appendCompleteURL(s));
- }
- }
- ReadOnlyImageAdapter imageAdapter = new ReadOnlyImageAdapter(context);
- imageAdapter.setImageList(urls);
- viewBinding.handleGridView.setAdapter(imageAdapter);
- //九宫格点击事件
- viewBinding.handleGridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
- @Override
- public void onItemClick(AdapterView> adapterView, View view, int position, long l) {
- if (urls.get(position).isEmpty()) {
- StringHub.show(context, "图片加载失败,无法查看大图");
- } else {
- ContextHub.navigatePageTo(context, BigImageActivity.class, position, urls);
- }
- }
- });
- }
-
- //核查图片
- String checkImages = data.getFileIdCheck();
- if (!TextUtils.isEmpty(checkImages)) {
- ArrayList urls = new ArrayList<>();
- String[] split = checkImages.split(",");
- for (String s : split) {
- if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) {
- urls.add(StringHelper.appendCompleteURL(s));
- }
- }
- ReadOnlyImageAdapter imageAdapter = new ReadOnlyImageAdapter(context);
- imageAdapter.setImageList(urls);
- viewBinding.checkGridView.setAdapter(imageAdapter);
- //九宫格点击事件
- viewBinding.checkGridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
- @Override
- public void onItemClick(AdapterView> adapterView, View view, int position, long l) {
- if (urls.get(position).isEmpty()) {
- StringHub.show(context, "图片加载失败,无法查看大图");
- } else {
- ContextHub.navigatePageTo(context, BigImageActivity.class, position, urls);
- }
- }
- });
- }
-
- //音频
- String audioFile = data.getAudioIdVerify();
- if (!TextUtils.isEmpty(audioFile)) {
- viewBinding.audioPlayerView.setVisibility(View.VISIBLE);
- viewBinding.audioPlayerView.setAudioUrl(StringHelper.appendCompleteURL(audioFile));
- }
-
- //视频
- String videoFile = data.getVideoIdVerify();
- if (!TextUtils.isEmpty(videoFile)) {
- viewBinding.videoPlayerView.setVisibility(View.VISIBLE);
- String videoUrl = StringHelper.appendCompleteURL(videoFile);
- viewBinding.videoPlayerView.setUp(
- videoUrl,
- StringHub.filterSpaceOrEnter(data.getDescription()),
- Jzvd.SCREEN_NORMAL
- );
- //设置第一帧为封面
- Glide.with(context)
- .setDefaultRequestOptions(new RequestOptions().frame(4000000))
- .load(videoUrl)
- .into(viewBinding.videoPlayerView.posterImageView);
- }
- }
- }
- });
- caseViewModel.loadState.observe(this, new Observer() {
- @Override
- public void onChanged(LoadState loadState) {
- if (loadState == LoadState.Loading) {
- DialogHelper.showLoadingDialog(context, "获取数据中...");
- } else {
- DialogHelper.dismissLoadingDialog();
- }
- }
- });
-
- viewBinding.locationMapView.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- MapHelper.displayOnMap(context, data.getEorcName(), data.getLng(), data.getLat());
- }
- });
-
- viewBinding.handleLayout.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- ContextHub.navigatePageTo(context, CaseProcessActivity.class, data.getProcessId());
- }
- });
- }
-
- @Override
- protected void onDestroy() {
- viewBinding.audioPlayerView.release();
- super.onDestroy();
- }
-
- @Override
- public void onBackPressed() {
- if (Jzvd.backPress()) {
- return;
- }
- super.onBackPressed();
- }
-
- @Override
- protected void onPause() {
- super.onPause();
- Jzvd.releaseAllVideos();
- }
-}
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index b6a8d08..c78d07c 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -64,8 +64,8 @@
-
-
+
+
diff --git a/app/src/main/java/com/casic/dcms/adapter/CheckCaseListAdapter.java b/app/src/main/java/com/casic/dcms/adapter/CheckCaseListAdapter.java
deleted file mode 100644
index 254f0cd..0000000
--- a/app/src/main/java/com/casic/dcms/adapter/CheckCaseListAdapter.java
+++ /dev/null
@@ -1,99 +0,0 @@
-package com.casic.dcms.adapter;
-
-import android.annotation.SuppressLint;
-import android.content.Context;
-import android.text.TextUtils;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.TextView;
-
-import androidx.annotation.NonNull;
-import androidx.recyclerview.widget.RecyclerView;
-
-import com.bumptech.glide.Glide;
-import com.casic.dcms.R;
-import com.casic.dcms.model.check.CaseCheckModel;
-import com.casic.dcms.utils.StringHelper;
-import com.pengxh.androidx.lite.hub.StringHub;
-import com.qmuiteam.qmui.widget.QMUIRadiusImageView;
-
-import java.util.List;
-
-public class CheckCaseListAdapter extends RecyclerView.Adapter {
-
- private final Context context;
- private final List dataBeans;
- private final LayoutInflater layoutInflater;
-
- public CheckCaseListAdapter(Context context, List dataRows) {
- this.context = context;
- this.dataBeans = dataRows;
- this.layoutInflater = LayoutInflater.from(context);
- }
-
- @NonNull
- @Override
- public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
- return new ItemViewHolder(layoutInflater.inflate(R.layout.item_case_rv_l, parent, false));
- }
-
- @Override
- public void onBindViewHolder(@NonNull ItemViewHolder holder, @SuppressLint("RecyclerView") int position) {
- holder.bindView(dataBeans.get(position));
- if (clickListener != null) {
- holder.itemView.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- clickListener.onClick(position);
- }
- });
- }
- }
-
- @Override
- public int getItemCount() {
- return dataBeans.size();
- }
-
- class ItemViewHolder extends RecyclerView.ViewHolder {
-
- private final QMUIRadiusImageView caseImageView;
- private final TextView caseTitleView;
- private final TextView casePlaceView;
- private final TextView caseTimeView;
-
- ItemViewHolder(@NonNull View itemView) {
- super(itemView);
- caseImageView = itemView.findViewById(R.id.caseImageView);
- caseTitleView = itemView.findViewById(R.id.caseTitleView);
- casePlaceView = itemView.findViewById(R.id.casePlaceView);
- caseTimeView = itemView.findViewById(R.id.caseTimeView);
- }
-
- void bindView(CaseCheckModel.DataDTO.RowsDTO rowsBean) {
- //处理图片
- String fileIdProcess = rowsBean.getFileIdProcess();
- if (!TextUtils.isEmpty(fileIdProcess)) {
- String[] split = fileIdProcess.split(",");
- String firstImage = split[0];
- if (firstImage.endsWith(".jpg") || firstImage.contains(".jpeg") || firstImage.contains(".png")) {
- Glide.with(context).load(StringHelper.appendCompleteURL(firstImage)).into(caseImageView);
- }
- }
- caseTitleView.setText(StringHub.filterSpaceOrEnter(rowsBean.getDescription()));
- casePlaceView.setText("发生地点:" + StringHub.filterSpaceOrEnter(rowsBean.getFieldintro()));
- caseTimeView.setText("上报时间:" + rowsBean.getReportTime());
- }
- }
-
- private OnItemClickListener clickListener;
-
- public interface OnItemClickListener {
- void onClick(int position);
- }
-
- public void setOnItemClickListener(OnItemClickListener onItemClickListener) {
- this.clickListener = onItemClickListener;
- }
-}
diff --git a/app/src/main/java/com/casic/dcms/fragment/check/CaseCheckFragment.java b/app/src/main/java/com/casic/dcms/fragment/check/CaseCheckFragment.java
index 85cebc6..667981d 100644
--- a/app/src/main/java/com/casic/dcms/fragment/check/CaseCheckFragment.java
+++ b/app/src/main/java/com/casic/dcms/fragment/check/CaseCheckFragment.java
@@ -1,19 +1,27 @@
package com.casic.dcms.fragment.check;
+import static com.luck.picture.lib.thread.PictureThreadUtils.runOnUiThread;
+
+import android.graphics.drawable.Drawable;
import android.os.Handler;
import android.os.Message;
+import android.text.TextUtils;
import android.view.View;
import androidx.annotation.NonNull;
import androidx.lifecycle.Observer;
import androidx.lifecycle.ViewModelProvider;
-import com.casic.dcms.adapter.CheckCaseListAdapter;
+import com.bumptech.glide.Glide;
+import com.casic.dcms.R;
import com.casic.dcms.databinding.FragmentCheckCaseBinding;
-import com.casic.dcms.model.check.CaseCheckModel;
+import com.casic.dcms.model.CaseCheckModel;
import com.casic.dcms.utils.LocaleConstant;
-import com.casic.dcms.view.check.CaseCheckDetailActivity;
+import com.casic.dcms.utils.StringHelper;
+import com.casic.dcms.view.check.CheckDetailActivity;
import com.casic.dcms.vm.CaseViewModel;
+import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter;
+import com.pengxh.androidx.lite.adapter.ViewHolder;
import com.pengxh.androidx.lite.base.AndroidxBaseFragment;
import com.pengxh.androidx.lite.hub.ContextHub;
import com.pengxh.androidx.lite.hub.StringHub;
@@ -24,14 +32,15 @@
import java.util.ArrayList;
import java.util.List;
+import java.util.concurrent.ExecutionException;
public class CaseCheckFragment extends AndroidxBaseFragment {
private static final String TAG = "CaseCheckFragment";
private WeakReferenceHandler weakReferenceHandler;
private CaseViewModel caseViewModel;
- private CheckCaseListAdapter adapter;
- private List dataBeans = new ArrayList<>();
+ private NormalRecyclerAdapter adapter;
+ private List