diff --git a/app/src/main/java/com/casic/dcms/adapter/LightResultAdapter.java b/app/src/main/java/com/casic/dcms/adapter/LightResultAdapter.java deleted file mode 100644 index 405af6e..0000000 --- a/app/src/main/java/com/casic/dcms/adapter/LightResultAdapter.java +++ /dev/null @@ -1,107 +0,0 @@ -package com.casic.dcms.adapter; - -import android.annotation.SuppressLint; -import android.content.Context; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.ImageView; -import android.widget.TextView; - -import androidx.annotation.NonNull; -import androidx.recyclerview.widget.RecyclerView; - -import com.casic.dcms.R; -import com.casic.dcms.model.LightListBean; - -import java.util.List; - -public class LightResultAdapter extends RecyclerView.Adapter { - - private final List dataBeans; - private final LayoutInflater layoutInflater; - - public LightResultAdapter(Context context, List beans) { - this.dataBeans = beans; - this.layoutInflater = LayoutInflater.from(context); - } - - @NonNull - @Override - public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - return new ItemViewHolder(layoutInflater.inflate(R.layout.item_light_recycleview, parent, false)); - } - - @Override - public void onBindViewHolder(@NonNull LightResultAdapter.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); - } - }); - } - if (switchClickListener != null) { - holder.lightSwitch.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - switchClickListener.onClick(position); - } - }); - } - } - - @Override - public int getItemCount() { - return dataBeans.size(); - } - - private OnGridItemClickListener clickListener; - - public interface OnGridItemClickListener { - void onClick(int position); - } - - public void setOnGridItemClickListener(OnGridItemClickListener onGridItemClickListener) { - this.clickListener = onGridItemClickListener; - } - - private OnSwitchClickListener switchClickListener; - - public interface OnSwitchClickListener { - void onClick(int position); - } - - public void setOnSwitchClickListener(OnSwitchClickListener switchClickListener) { - this.switchClickListener = switchClickListener; - } - - static class ItemViewHolder extends RecyclerView.ViewHolder { - - private final TextView lightNameView; - private final TextView lightStatusView; - private final ImageView lightSwitch; - - ItemViewHolder(@NonNull View itemView) { - super(itemView); - lightNameView = itemView.findViewById(R.id.lightNameView); - lightStatusView = itemView.findViewById(R.id.lightStatusView); - lightSwitch = itemView.findViewById(R.id.lightSwitch); - } - - void bindView(LightListBean.DataBean.RowsBean dataBean) { - lightNameView.setText(dataBean.getLampName()); - String statusName = dataBean.getStatusName(); - lightStatusView.setText(statusName); - if (statusName.equals("灭灯")) { - lightSwitch.setBackgroundResource(R.drawable.ic_switch_off); - } else if (statusName.equals("报警")) { - lightSwitch.setBackgroundResource(R.drawable.ic_switch_warning); - } else { - lightSwitch.setBackgroundResource(R.drawable.ic_switch_on); - } - } - } -} diff --git a/app/src/main/java/com/casic/dcms/adapter/LightResultAdapter.java b/app/src/main/java/com/casic/dcms/adapter/LightResultAdapter.java deleted file mode 100644 index 405af6e..0000000 --- a/app/src/main/java/com/casic/dcms/adapter/LightResultAdapter.java +++ /dev/null @@ -1,107 +0,0 @@ -package com.casic.dcms.adapter; - -import android.annotation.SuppressLint; -import android.content.Context; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.ImageView; -import android.widget.TextView; - -import androidx.annotation.NonNull; -import androidx.recyclerview.widget.RecyclerView; - -import com.casic.dcms.R; -import com.casic.dcms.model.LightListBean; - -import java.util.List; - -public class LightResultAdapter extends RecyclerView.Adapter { - - private final List dataBeans; - private final LayoutInflater layoutInflater; - - public LightResultAdapter(Context context, List beans) { - this.dataBeans = beans; - this.layoutInflater = LayoutInflater.from(context); - } - - @NonNull - @Override - public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - return new ItemViewHolder(layoutInflater.inflate(R.layout.item_light_recycleview, parent, false)); - } - - @Override - public void onBindViewHolder(@NonNull LightResultAdapter.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); - } - }); - } - if (switchClickListener != null) { - holder.lightSwitch.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - switchClickListener.onClick(position); - } - }); - } - } - - @Override - public int getItemCount() { - return dataBeans.size(); - } - - private OnGridItemClickListener clickListener; - - public interface OnGridItemClickListener { - void onClick(int position); - } - - public void setOnGridItemClickListener(OnGridItemClickListener onGridItemClickListener) { - this.clickListener = onGridItemClickListener; - } - - private OnSwitchClickListener switchClickListener; - - public interface OnSwitchClickListener { - void onClick(int position); - } - - public void setOnSwitchClickListener(OnSwitchClickListener switchClickListener) { - this.switchClickListener = switchClickListener; - } - - static class ItemViewHolder extends RecyclerView.ViewHolder { - - private final TextView lightNameView; - private final TextView lightStatusView; - private final ImageView lightSwitch; - - ItemViewHolder(@NonNull View itemView) { - super(itemView); - lightNameView = itemView.findViewById(R.id.lightNameView); - lightStatusView = itemView.findViewById(R.id.lightStatusView); - lightSwitch = itemView.findViewById(R.id.lightSwitch); - } - - void bindView(LightListBean.DataBean.RowsBean dataBean) { - lightNameView.setText(dataBean.getLampName()); - String statusName = dataBean.getStatusName(); - lightStatusView.setText(statusName); - if (statusName.equals("灭灯")) { - lightSwitch.setBackgroundResource(R.drawable.ic_switch_off); - } else if (statusName.equals("报警")) { - lightSwitch.setBackgroundResource(R.drawable.ic_switch_warning); - } else { - lightSwitch.setBackgroundResource(R.drawable.ic_switch_on); - } - } - } -} diff --git a/app/src/main/java/com/casic/dcms/adapter/NormalRecyclerAdapter.java b/app/src/main/java/com/casic/dcms/adapter/NormalRecyclerAdapter.java new file mode 100644 index 0000000..c80e2d5 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/adapter/NormalRecyclerAdapter.java @@ -0,0 +1,134 @@ +package com.casic.dcms.adapter; + +import android.annotation.SuppressLint; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import androidx.annotation.LayoutRes; +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.DiffUtil; +import androidx.recyclerview.widget.RecyclerView; + +import com.pengxh.androidx.lite.adapter.ViewHolder; + +import java.util.List; + +/** + * RecyclerView普通列表适配器 + */ +public abstract class NormalRecyclerAdapter extends RecyclerView.Adapter { + + private static final String TAG = "NormalRecyclerAdapter"; + private final int xmlResource; + private final List dataRows; + + public NormalRecyclerAdapter(@LayoutRes int xmlResource, List dataRows) { + this.xmlResource = xmlResource; + this.dataRows = dataRows; + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + @NonNull + @Override + public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + return new ViewHolder(LayoutInflater.from(parent.getContext()).inflate(xmlResource, parent, false)); + } + + @Override + public void onBindViewHolder(@NonNull ViewHolder holder, @SuppressLint("RecyclerView") int position) { + convertView(holder, position, dataRows.get(position)); + + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (itemClickedListener == null) { + return; + } + itemClickedListener.onItemClicked(position, dataRows.get(position)); + } + }); + } + + public void refresh(List newRows) { + DiffUtil.Callback diffCallback = new DiffUtil.Callback() { + + @Override + public int getOldListSize() { + return dataRows.size(); + } + + @Override + public int getNewListSize() { + return newRows.size(); + } + + @Override + public boolean areItemsTheSame(int oldItemPosition, int newItemPosition) { + if (dataRows == null || newRows == null) { + return false; + } + + // 检查索引是否在有效范围内 + if (oldItemPosition < 0 || oldItemPosition >= dataRows.size() || + newItemPosition < 0 || newItemPosition >= newRows.size()) { + return false; + } + + // 获取元素并进行比较 + Object oldItem = dataRows.get(oldItemPosition); + Object newItem = newRows.get(newItemPosition); + + // 处理空指针情况 + if (oldItem == null && newItem == null) { + return true; + } + if (oldItem == null || newItem == null) { + return false; + } + + return oldItem.equals(newItem); + } + + @Override + public boolean areContentsTheSame(int oldItemPosition, int newItemPosition) { + return dataRows.get(oldItemPosition) == newRows.get(newItemPosition); + } + }; + + DiffUtil.DiffResult diffResult = DiffUtil.calculateDiff(diffCallback); + + dataRows.clear(); + dataRows.addAll(newRows); + + diffResult.dispatchUpdatesTo(this); + } + + /** + * 加载更多 + */ + public void loadMore(List newRows) { + if (newRows.isEmpty()) { + return; + } + int startPosition = this.dataRows.size(); + this.dataRows.addAll(newRows); + notifyItemRangeInserted(startPosition, newRows.size()); + } + + public abstract void convertView(ViewHolder viewHolder, int position, T item); + + private OnItemClickedListener itemClickedListener; + + public interface OnItemClickedListener { + void onItemClicked(int position, T t); + } + + public void setOnItemClickedListener(OnItemClickedListener listener) { + itemClickedListener = listener; + } +} diff --git a/app/src/main/java/com/casic/dcms/adapter/LightResultAdapter.java b/app/src/main/java/com/casic/dcms/adapter/LightResultAdapter.java deleted file mode 100644 index 405af6e..0000000 --- a/app/src/main/java/com/casic/dcms/adapter/LightResultAdapter.java +++ /dev/null @@ -1,107 +0,0 @@ -package com.casic.dcms.adapter; - -import android.annotation.SuppressLint; -import android.content.Context; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.ImageView; -import android.widget.TextView; - -import androidx.annotation.NonNull; -import androidx.recyclerview.widget.RecyclerView; - -import com.casic.dcms.R; -import com.casic.dcms.model.LightListBean; - -import java.util.List; - -public class LightResultAdapter extends RecyclerView.Adapter { - - private final List dataBeans; - private final LayoutInflater layoutInflater; - - public LightResultAdapter(Context context, List beans) { - this.dataBeans = beans; - this.layoutInflater = LayoutInflater.from(context); - } - - @NonNull - @Override - public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - return new ItemViewHolder(layoutInflater.inflate(R.layout.item_light_recycleview, parent, false)); - } - - @Override - public void onBindViewHolder(@NonNull LightResultAdapter.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); - } - }); - } - if (switchClickListener != null) { - holder.lightSwitch.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - switchClickListener.onClick(position); - } - }); - } - } - - @Override - public int getItemCount() { - return dataBeans.size(); - } - - private OnGridItemClickListener clickListener; - - public interface OnGridItemClickListener { - void onClick(int position); - } - - public void setOnGridItemClickListener(OnGridItemClickListener onGridItemClickListener) { - this.clickListener = onGridItemClickListener; - } - - private OnSwitchClickListener switchClickListener; - - public interface OnSwitchClickListener { - void onClick(int position); - } - - public void setOnSwitchClickListener(OnSwitchClickListener switchClickListener) { - this.switchClickListener = switchClickListener; - } - - static class ItemViewHolder extends RecyclerView.ViewHolder { - - private final TextView lightNameView; - private final TextView lightStatusView; - private final ImageView lightSwitch; - - ItemViewHolder(@NonNull View itemView) { - super(itemView); - lightNameView = itemView.findViewById(R.id.lightNameView); - lightStatusView = itemView.findViewById(R.id.lightStatusView); - lightSwitch = itemView.findViewById(R.id.lightSwitch); - } - - void bindView(LightListBean.DataBean.RowsBean dataBean) { - lightNameView.setText(dataBean.getLampName()); - String statusName = dataBean.getStatusName(); - lightStatusView.setText(statusName); - if (statusName.equals("灭灯")) { - lightSwitch.setBackgroundResource(R.drawable.ic_switch_off); - } else if (statusName.equals("报警")) { - lightSwitch.setBackgroundResource(R.drawable.ic_switch_warning); - } else { - lightSwitch.setBackgroundResource(R.drawable.ic_switch_on); - } - } - } -} diff --git a/app/src/main/java/com/casic/dcms/adapter/NormalRecyclerAdapter.java b/app/src/main/java/com/casic/dcms/adapter/NormalRecyclerAdapter.java new file mode 100644 index 0000000..c80e2d5 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/adapter/NormalRecyclerAdapter.java @@ -0,0 +1,134 @@ +package com.casic.dcms.adapter; + +import android.annotation.SuppressLint; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import androidx.annotation.LayoutRes; +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.DiffUtil; +import androidx.recyclerview.widget.RecyclerView; + +import com.pengxh.androidx.lite.adapter.ViewHolder; + +import java.util.List; + +/** + * RecyclerView普通列表适配器 + */ +public abstract class NormalRecyclerAdapter extends RecyclerView.Adapter { + + private static final String TAG = "NormalRecyclerAdapter"; + private final int xmlResource; + private final List dataRows; + + public NormalRecyclerAdapter(@LayoutRes int xmlResource, List dataRows) { + this.xmlResource = xmlResource; + this.dataRows = dataRows; + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + @NonNull + @Override + public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + return new ViewHolder(LayoutInflater.from(parent.getContext()).inflate(xmlResource, parent, false)); + } + + @Override + public void onBindViewHolder(@NonNull ViewHolder holder, @SuppressLint("RecyclerView") int position) { + convertView(holder, position, dataRows.get(position)); + + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (itemClickedListener == null) { + return; + } + itemClickedListener.onItemClicked(position, dataRows.get(position)); + } + }); + } + + public void refresh(List newRows) { + DiffUtil.Callback diffCallback = new DiffUtil.Callback() { + + @Override + public int getOldListSize() { + return dataRows.size(); + } + + @Override + public int getNewListSize() { + return newRows.size(); + } + + @Override + public boolean areItemsTheSame(int oldItemPosition, int newItemPosition) { + if (dataRows == null || newRows == null) { + return false; + } + + // 检查索引是否在有效范围内 + if (oldItemPosition < 0 || oldItemPosition >= dataRows.size() || + newItemPosition < 0 || newItemPosition >= newRows.size()) { + return false; + } + + // 获取元素并进行比较 + Object oldItem = dataRows.get(oldItemPosition); + Object newItem = newRows.get(newItemPosition); + + // 处理空指针情况 + if (oldItem == null && newItem == null) { + return true; + } + if (oldItem == null || newItem == null) { + return false; + } + + return oldItem.equals(newItem); + } + + @Override + public boolean areContentsTheSame(int oldItemPosition, int newItemPosition) { + return dataRows.get(oldItemPosition) == newRows.get(newItemPosition); + } + }; + + DiffUtil.DiffResult diffResult = DiffUtil.calculateDiff(diffCallback); + + dataRows.clear(); + dataRows.addAll(newRows); + + diffResult.dispatchUpdatesTo(this); + } + + /** + * 加载更多 + */ + public void loadMore(List newRows) { + if (newRows.isEmpty()) { + return; + } + int startPosition = this.dataRows.size(); + this.dataRows.addAll(newRows); + notifyItemRangeInserted(startPosition, newRows.size()); + } + + public abstract void convertView(ViewHolder viewHolder, int position, T item); + + private OnItemClickedListener itemClickedListener; + + public interface OnItemClickedListener { + void onItemClicked(int position, T t); + } + + public void setOnItemClickedListener(OnItemClickedListener listener) { + itemClickedListener = listener; + } +} diff --git a/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java b/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java index 1deb066..80f7b98 100644 --- a/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java @@ -58,13 +58,13 @@ } @SuppressLint("NotifyDataSetChanged") - public void setRefreshData(List dataRows) { + public void refresh(List dataRows) { this.dataRows.clear(); this.dataRows.addAll(dataRows); notifyDataSetChanged(); } - public void setLoadMoreData(List dataRows) { + public void loadMore(List dataRows) { this.dataRows.addAll(dataRows); notifyItemRangeInserted(this.dataRows.size(), dataRows.size()); } diff --git a/app/src/main/java/com/casic/dcms/adapter/LightResultAdapter.java b/app/src/main/java/com/casic/dcms/adapter/LightResultAdapter.java deleted file mode 100644 index 405af6e..0000000 --- a/app/src/main/java/com/casic/dcms/adapter/LightResultAdapter.java +++ /dev/null @@ -1,107 +0,0 @@ -package com.casic.dcms.adapter; - -import android.annotation.SuppressLint; -import android.content.Context; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.ImageView; -import android.widget.TextView; - -import androidx.annotation.NonNull; -import androidx.recyclerview.widget.RecyclerView; - -import com.casic.dcms.R; -import com.casic.dcms.model.LightListBean; - -import java.util.List; - -public class LightResultAdapter extends RecyclerView.Adapter { - - private final List dataBeans; - private final LayoutInflater layoutInflater; - - public LightResultAdapter(Context context, List beans) { - this.dataBeans = beans; - this.layoutInflater = LayoutInflater.from(context); - } - - @NonNull - @Override - public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - return new ItemViewHolder(layoutInflater.inflate(R.layout.item_light_recycleview, parent, false)); - } - - @Override - public void onBindViewHolder(@NonNull LightResultAdapter.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); - } - }); - } - if (switchClickListener != null) { - holder.lightSwitch.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - switchClickListener.onClick(position); - } - }); - } - } - - @Override - public int getItemCount() { - return dataBeans.size(); - } - - private OnGridItemClickListener clickListener; - - public interface OnGridItemClickListener { - void onClick(int position); - } - - public void setOnGridItemClickListener(OnGridItemClickListener onGridItemClickListener) { - this.clickListener = onGridItemClickListener; - } - - private OnSwitchClickListener switchClickListener; - - public interface OnSwitchClickListener { - void onClick(int position); - } - - public void setOnSwitchClickListener(OnSwitchClickListener switchClickListener) { - this.switchClickListener = switchClickListener; - } - - static class ItemViewHolder extends RecyclerView.ViewHolder { - - private final TextView lightNameView; - private final TextView lightStatusView; - private final ImageView lightSwitch; - - ItemViewHolder(@NonNull View itemView) { - super(itemView); - lightNameView = itemView.findViewById(R.id.lightNameView); - lightStatusView = itemView.findViewById(R.id.lightStatusView); - lightSwitch = itemView.findViewById(R.id.lightSwitch); - } - - void bindView(LightListBean.DataBean.RowsBean dataBean) { - lightNameView.setText(dataBean.getLampName()); - String statusName = dataBean.getStatusName(); - lightStatusView.setText(statusName); - if (statusName.equals("灭灯")) { - lightSwitch.setBackgroundResource(R.drawable.ic_switch_off); - } else if (statusName.equals("报警")) { - lightSwitch.setBackgroundResource(R.drawable.ic_switch_warning); - } else { - lightSwitch.setBackgroundResource(R.drawable.ic_switch_on); - } - } - } -} diff --git a/app/src/main/java/com/casic/dcms/adapter/NormalRecyclerAdapter.java b/app/src/main/java/com/casic/dcms/adapter/NormalRecyclerAdapter.java new file mode 100644 index 0000000..c80e2d5 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/adapter/NormalRecyclerAdapter.java @@ -0,0 +1,134 @@ +package com.casic.dcms.adapter; + +import android.annotation.SuppressLint; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import androidx.annotation.LayoutRes; +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.DiffUtil; +import androidx.recyclerview.widget.RecyclerView; + +import com.pengxh.androidx.lite.adapter.ViewHolder; + +import java.util.List; + +/** + * RecyclerView普通列表适配器 + */ +public abstract class NormalRecyclerAdapter extends RecyclerView.Adapter { + + private static final String TAG = "NormalRecyclerAdapter"; + private final int xmlResource; + private final List dataRows; + + public NormalRecyclerAdapter(@LayoutRes int xmlResource, List dataRows) { + this.xmlResource = xmlResource; + this.dataRows = dataRows; + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + @NonNull + @Override + public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + return new ViewHolder(LayoutInflater.from(parent.getContext()).inflate(xmlResource, parent, false)); + } + + @Override + public void onBindViewHolder(@NonNull ViewHolder holder, @SuppressLint("RecyclerView") int position) { + convertView(holder, position, dataRows.get(position)); + + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (itemClickedListener == null) { + return; + } + itemClickedListener.onItemClicked(position, dataRows.get(position)); + } + }); + } + + public void refresh(List newRows) { + DiffUtil.Callback diffCallback = new DiffUtil.Callback() { + + @Override + public int getOldListSize() { + return dataRows.size(); + } + + @Override + public int getNewListSize() { + return newRows.size(); + } + + @Override + public boolean areItemsTheSame(int oldItemPosition, int newItemPosition) { + if (dataRows == null || newRows == null) { + return false; + } + + // 检查索引是否在有效范围内 + if (oldItemPosition < 0 || oldItemPosition >= dataRows.size() || + newItemPosition < 0 || newItemPosition >= newRows.size()) { + return false; + } + + // 获取元素并进行比较 + Object oldItem = dataRows.get(oldItemPosition); + Object newItem = newRows.get(newItemPosition); + + // 处理空指针情况 + if (oldItem == null && newItem == null) { + return true; + } + if (oldItem == null || newItem == null) { + return false; + } + + return oldItem.equals(newItem); + } + + @Override + public boolean areContentsTheSame(int oldItemPosition, int newItemPosition) { + return dataRows.get(oldItemPosition) == newRows.get(newItemPosition); + } + }; + + DiffUtil.DiffResult diffResult = DiffUtil.calculateDiff(diffCallback); + + dataRows.clear(); + dataRows.addAll(newRows); + + diffResult.dispatchUpdatesTo(this); + } + + /** + * 加载更多 + */ + public void loadMore(List newRows) { + if (newRows.isEmpty()) { + return; + } + int startPosition = this.dataRows.size(); + this.dataRows.addAll(newRows); + notifyItemRangeInserted(startPosition, newRows.size()); + } + + public abstract void convertView(ViewHolder viewHolder, int position, T item); + + private OnItemClickedListener itemClickedListener; + + public interface OnItemClickedListener { + void onItemClicked(int position, T t); + } + + public void setOnItemClickedListener(OnItemClickedListener listener) { + itemClickedListener = listener; + } +} diff --git a/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java b/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java index 1deb066..80f7b98 100644 --- a/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java @@ -58,13 +58,13 @@ } @SuppressLint("NotifyDataSetChanged") - public void setRefreshData(List dataRows) { + public void refresh(List dataRows) { this.dataRows.clear(); this.dataRows.addAll(dataRows); notifyDataSetChanged(); } - public void setLoadMoreData(List dataRows) { + public void loadMore(List dataRows) { this.dataRows.addAll(dataRows); notifyItemRangeInserted(this.dataRows.size(), dataRows.size()); } diff --git a/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java index 3535c40..bd5e484 100644 --- a/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java @@ -10,6 +10,7 @@ import com.bumptech.glide.Glide; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentHomeBinding; import com.casic.dcms.model.HomePageBean; import com.casic.dcms.model.UserBean; @@ -36,7 +37,6 @@ import com.casic.dcms.view.verify.VerifyCaseActivity; import com.casic.dcms.vm.HomePageViewModel; import com.casic.dcms.vm.UserViewModel; -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.kit.LongKit; diff --git a/app/src/main/java/com/casic/dcms/adapter/LightResultAdapter.java b/app/src/main/java/com/casic/dcms/adapter/LightResultAdapter.java deleted file mode 100644 index 405af6e..0000000 --- a/app/src/main/java/com/casic/dcms/adapter/LightResultAdapter.java +++ /dev/null @@ -1,107 +0,0 @@ -package com.casic.dcms.adapter; - -import android.annotation.SuppressLint; -import android.content.Context; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.ImageView; -import android.widget.TextView; - -import androidx.annotation.NonNull; -import androidx.recyclerview.widget.RecyclerView; - -import com.casic.dcms.R; -import com.casic.dcms.model.LightListBean; - -import java.util.List; - -public class LightResultAdapter extends RecyclerView.Adapter { - - private final List dataBeans; - private final LayoutInflater layoutInflater; - - public LightResultAdapter(Context context, List beans) { - this.dataBeans = beans; - this.layoutInflater = LayoutInflater.from(context); - } - - @NonNull - @Override - public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - return new ItemViewHolder(layoutInflater.inflate(R.layout.item_light_recycleview, parent, false)); - } - - @Override - public void onBindViewHolder(@NonNull LightResultAdapter.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); - } - }); - } - if (switchClickListener != null) { - holder.lightSwitch.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - switchClickListener.onClick(position); - } - }); - } - } - - @Override - public int getItemCount() { - return dataBeans.size(); - } - - private OnGridItemClickListener clickListener; - - public interface OnGridItemClickListener { - void onClick(int position); - } - - public void setOnGridItemClickListener(OnGridItemClickListener onGridItemClickListener) { - this.clickListener = onGridItemClickListener; - } - - private OnSwitchClickListener switchClickListener; - - public interface OnSwitchClickListener { - void onClick(int position); - } - - public void setOnSwitchClickListener(OnSwitchClickListener switchClickListener) { - this.switchClickListener = switchClickListener; - } - - static class ItemViewHolder extends RecyclerView.ViewHolder { - - private final TextView lightNameView; - private final TextView lightStatusView; - private final ImageView lightSwitch; - - ItemViewHolder(@NonNull View itemView) { - super(itemView); - lightNameView = itemView.findViewById(R.id.lightNameView); - lightStatusView = itemView.findViewById(R.id.lightStatusView); - lightSwitch = itemView.findViewById(R.id.lightSwitch); - } - - void bindView(LightListBean.DataBean.RowsBean dataBean) { - lightNameView.setText(dataBean.getLampName()); - String statusName = dataBean.getStatusName(); - lightStatusView.setText(statusName); - if (statusName.equals("灭灯")) { - lightSwitch.setBackgroundResource(R.drawable.ic_switch_off); - } else if (statusName.equals("报警")) { - lightSwitch.setBackgroundResource(R.drawable.ic_switch_warning); - } else { - lightSwitch.setBackgroundResource(R.drawable.ic_switch_on); - } - } - } -} diff --git a/app/src/main/java/com/casic/dcms/adapter/NormalRecyclerAdapter.java b/app/src/main/java/com/casic/dcms/adapter/NormalRecyclerAdapter.java new file mode 100644 index 0000000..c80e2d5 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/adapter/NormalRecyclerAdapter.java @@ -0,0 +1,134 @@ +package com.casic.dcms.adapter; + +import android.annotation.SuppressLint; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import androidx.annotation.LayoutRes; +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.DiffUtil; +import androidx.recyclerview.widget.RecyclerView; + +import com.pengxh.androidx.lite.adapter.ViewHolder; + +import java.util.List; + +/** + * RecyclerView普通列表适配器 + */ +public abstract class NormalRecyclerAdapter extends RecyclerView.Adapter { + + private static final String TAG = "NormalRecyclerAdapter"; + private final int xmlResource; + private final List dataRows; + + public NormalRecyclerAdapter(@LayoutRes int xmlResource, List dataRows) { + this.xmlResource = xmlResource; + this.dataRows = dataRows; + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + @NonNull + @Override + public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + return new ViewHolder(LayoutInflater.from(parent.getContext()).inflate(xmlResource, parent, false)); + } + + @Override + public void onBindViewHolder(@NonNull ViewHolder holder, @SuppressLint("RecyclerView") int position) { + convertView(holder, position, dataRows.get(position)); + + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (itemClickedListener == null) { + return; + } + itemClickedListener.onItemClicked(position, dataRows.get(position)); + } + }); + } + + public void refresh(List newRows) { + DiffUtil.Callback diffCallback = new DiffUtil.Callback() { + + @Override + public int getOldListSize() { + return dataRows.size(); + } + + @Override + public int getNewListSize() { + return newRows.size(); + } + + @Override + public boolean areItemsTheSame(int oldItemPosition, int newItemPosition) { + if (dataRows == null || newRows == null) { + return false; + } + + // 检查索引是否在有效范围内 + if (oldItemPosition < 0 || oldItemPosition >= dataRows.size() || + newItemPosition < 0 || newItemPosition >= newRows.size()) { + return false; + } + + // 获取元素并进行比较 + Object oldItem = dataRows.get(oldItemPosition); + Object newItem = newRows.get(newItemPosition); + + // 处理空指针情况 + if (oldItem == null && newItem == null) { + return true; + } + if (oldItem == null || newItem == null) { + return false; + } + + return oldItem.equals(newItem); + } + + @Override + public boolean areContentsTheSame(int oldItemPosition, int newItemPosition) { + return dataRows.get(oldItemPosition) == newRows.get(newItemPosition); + } + }; + + DiffUtil.DiffResult diffResult = DiffUtil.calculateDiff(diffCallback); + + dataRows.clear(); + dataRows.addAll(newRows); + + diffResult.dispatchUpdatesTo(this); + } + + /** + * 加载更多 + */ + public void loadMore(List newRows) { + if (newRows.isEmpty()) { + return; + } + int startPosition = this.dataRows.size(); + this.dataRows.addAll(newRows); + notifyItemRangeInserted(startPosition, newRows.size()); + } + + public abstract void convertView(ViewHolder viewHolder, int position, T item); + + private OnItemClickedListener itemClickedListener; + + public interface OnItemClickedListener { + void onItemClicked(int position, T t); + } + + public void setOnItemClickedListener(OnItemClickedListener listener) { + itemClickedListener = listener; + } +} diff --git a/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java b/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java index 1deb066..80f7b98 100644 --- a/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java @@ -58,13 +58,13 @@ } @SuppressLint("NotifyDataSetChanged") - public void setRefreshData(List dataRows) { + public void refresh(List dataRows) { this.dataRows.clear(); this.dataRows.addAll(dataRows); notifyDataSetChanged(); } - public void setLoadMoreData(List dataRows) { + public void loadMore(List dataRows) { this.dataRows.addAll(dataRows); notifyItemRangeInserted(this.dataRows.size(), dataRows.size()); } diff --git a/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java index 3535c40..bd5e484 100644 --- a/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java @@ -10,6 +10,7 @@ import com.bumptech.glide.Glide; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentHomeBinding; import com.casic.dcms.model.HomePageBean; import com.casic.dcms.model.UserBean; @@ -36,7 +37,6 @@ import com.casic.dcms.view.verify.VerifyCaseActivity; import com.casic.dcms.vm.HomePageViewModel; import com.casic.dcms.vm.UserViewModel; -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.kit.LongKit; diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java index 0d2926f..a9cc331 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java @@ -5,22 +5,26 @@ import android.os.Handler; import android.os.Message; import android.text.TextUtils; +import android.view.View; import androidx.annotation.NonNull; import androidx.annotation.Nullable; +import androidx.cardview.widget.CardView; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; -import com.casic.dcms.adapter.LightResultAdapter; +import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentLightListBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightDetailBean; import com.casic.dcms.model.LightListBean; -import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.vm.LightViewModel; import com.casic.dcms.widgets.LightDetailDialog; +import com.pengxh.androidx.lite.adapter.ViewHolder; import com.pengxh.androidx.lite.base.AndroidxBaseFragment; import com.pengxh.androidx.lite.divider.RecyclerViewItemDivider; +import com.pengxh.androidx.lite.kit.IntKit; import com.pengxh.androidx.lite.kit.StringKit; import com.pengxh.androidx.lite.utils.LoadState; import com.pengxh.androidx.lite.utils.LoadingDialog; @@ -37,7 +41,7 @@ private static final String TAG = "LightOnListFragment"; private final WeakReferenceHandler weakReferenceHandler = new WeakReferenceHandler(this); private LightViewModel lightViewModel; - private LightResultAdapter adapter; + private NormalRecyclerAdapter adapter; private List dataBeans = new ArrayList<>(); private int pageIndex = 1; private boolean isRefresh, isLoadMore = false; @@ -50,7 +54,7 @@ @Override protected void initOnCreate(@Nullable Bundle savedInstanceState) { lightViewModel = new ViewModelProvider(this).get(LightViewModel.class); - getLightList(); + lightViewModel.getLightList(pageIndex); } @Override @@ -67,10 +71,6 @@ }); } - private void getLightList() { - lightViewModel.getLightList(LocaleConstant.PAGE_LIMIT, pageIndex); - } - @Override protected void initEvent() { getBinding().refreshLayout.setOnRefreshListener(new OnRefreshListener() { @@ -79,7 +79,7 @@ isRefresh = true; //刷新之后页码重置 pageIndex = 1; - getLightList(); + lightViewModel.getLightList(pageIndex); } }); getBinding().refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() { @@ -87,7 +87,7 @@ public void onLoadMore(@NonNull final RefreshLayout refreshLayout) { isLoadMore = true; pageIndex++; - getLightList(); + lightViewModel.getLightList(pageIndex); } }); @@ -97,21 +97,20 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题 - dataBeans = dataRows; + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - dataBeans.addAll(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { dataBeans = dataRows; + weakReferenceHandler.sendEmptyMessage(20210623); } - weakReferenceHandler.sendEmptyMessage(20210623); } } }); @@ -138,54 +137,67 @@ @Override public boolean handleMessage(@NonNull Message msg) { if (msg.what == 20210623) { - if (isRefresh || isLoadMore) { - adapter.notifyItemRangeInserted(adapter.getItemCount(), LocaleConstant.PAGE_LIMIT); + //首次加载数据 + if (dataBeans.size() == 0) { + getBinding().emptyView.show("没有路灯数据", null); } else { - //首次加载数据 - if (dataBeans.size() == 0) { - getBinding().emptyView.show("没有路灯数据", null); - } else { - getBinding().emptyView.hide(); - adapter = new LightResultAdapter(requireContext(), dataBeans); - getBinding().recyclerView.addItemDecoration(new RecyclerViewItemDivider(1, Color.LTGRAY)); - getBinding().recyclerView.setAdapter(adapter); - adapter.setOnGridItemClickListener(new LightResultAdapter.OnGridItemClickListener() { - @Override - public void onClick(int position) { - String lampId = dataBeans.get(position).getLampId(); - if (TextUtils.isEmpty(lampId)) { - StringKit.show(requireContext(), "错误,路灯编号为空"); - return; - } + getBinding().emptyView.hide(); + adapter = new NormalRecyclerAdapter(R.layout.item_light_recycleview, dataBeans) { + @Override + public void convertView(ViewHolder viewHolder, int position, LightListBean.DataBean.RowsBean item) { + String statusName = item.getStatusName(); + viewHolder.setText(R.id.lightNameView, item.getLampName()) + .setText(R.id.lightStatusView, "已" + statusName); - lightViewModel.getLightDetail(requireContext(), lampId); + CardView statueTagView = viewHolder.getView(R.id.statueTagView); + if (statusName.equals("灭灯")) { + viewHolder.setImageResource(R.id.lightSwitch, R.drawable.ic_switch_off); + statueTagView.setCardBackgroundColor(IntKit.convertColor(requireContext(), R.color.darkGray)); + } else if (statusName.equals("报警")) { + viewHolder.setImageResource(R.id.lightSwitch, R.drawable.ic_switch_warning); + statueTagView.setCardBackgroundColor(IntKit.convertColor(requireContext(), R.color.warnColor)); + } else { + viewHolder.setImageResource(R.id.lightSwitch, R.drawable.ic_switch_on); + statueTagView.setCardBackgroundColor(IntKit.convertColor(requireContext(), R.color.onLineColor)); } - }); - adapter.setOnSwitchClickListener(new LightResultAdapter.OnSwitchClickListener() { - @Override - public void onClick(int position) { - LightListBean.DataBean.RowsBean rowsBean = dataBeans.get(position); + viewHolder.setOnClickListener(R.id.lightSwitch, new View.OnClickListener() { + @Override + public void onClick(View v) { + List lampIds = new ArrayList<>(); + lampIds.add(Long.parseLong(item.getLampId())); - List lampIds = new ArrayList<>(); - lampIds.add(Long.parseLong(rowsBean.getLampId())); - - String statusName = rowsBean.getStatusName(); - String controlType; - if (statusName.equals("离线")) { - controlType = "1"; - } else { - controlType = "0"; + String statusName = item.getStatusName(); + String controlType; + if (statusName.equals("灭灯")) { + controlType = "1"; + } else { + controlType = "0"; + } + lightViewModel.controlLight(requireContext(), lampIds, controlType); } - lightViewModel.controlLight(requireContext(), lampIds, controlType); + }); + } + }; + getBinding().recyclerView.addItemDecoration(new RecyclerViewItemDivider(1, Color.LTGRAY)); + getBinding().recyclerView.setAdapter(adapter); + adapter.setOnItemClickedListener(new NormalRecyclerAdapter.OnItemClickedListener() { + @Override + public void onItemClicked(int position, LightListBean.DataBean.RowsBean rowsBean) { + String lampId = rowsBean.getLampId(); + if (TextUtils.isEmpty(lampId)) { + StringKit.show(requireContext(), "错误,路灯编号为空"); + return; } - }); - } + + lightViewModel.getLightDetail(requireContext(), lampId); + } + }); } } else if (msg.what == 20210624) { isRefresh = true; pageIndex = 1; - lightViewModel.getLightList(LocaleConstant.PAGE_LIMIT, pageIndex); + lightViewModel.getLightList(pageIndex); } return true; } diff --git a/app/src/main/java/com/casic/dcms/adapter/LightResultAdapter.java b/app/src/main/java/com/casic/dcms/adapter/LightResultAdapter.java deleted file mode 100644 index 405af6e..0000000 --- a/app/src/main/java/com/casic/dcms/adapter/LightResultAdapter.java +++ /dev/null @@ -1,107 +0,0 @@ -package com.casic.dcms.adapter; - -import android.annotation.SuppressLint; -import android.content.Context; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.ImageView; -import android.widget.TextView; - -import androidx.annotation.NonNull; -import androidx.recyclerview.widget.RecyclerView; - -import com.casic.dcms.R; -import com.casic.dcms.model.LightListBean; - -import java.util.List; - -public class LightResultAdapter extends RecyclerView.Adapter { - - private final List dataBeans; - private final LayoutInflater layoutInflater; - - public LightResultAdapter(Context context, List beans) { - this.dataBeans = beans; - this.layoutInflater = LayoutInflater.from(context); - } - - @NonNull - @Override - public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - return new ItemViewHolder(layoutInflater.inflate(R.layout.item_light_recycleview, parent, false)); - } - - @Override - public void onBindViewHolder(@NonNull LightResultAdapter.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); - } - }); - } - if (switchClickListener != null) { - holder.lightSwitch.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - switchClickListener.onClick(position); - } - }); - } - } - - @Override - public int getItemCount() { - return dataBeans.size(); - } - - private OnGridItemClickListener clickListener; - - public interface OnGridItemClickListener { - void onClick(int position); - } - - public void setOnGridItemClickListener(OnGridItemClickListener onGridItemClickListener) { - this.clickListener = onGridItemClickListener; - } - - private OnSwitchClickListener switchClickListener; - - public interface OnSwitchClickListener { - void onClick(int position); - } - - public void setOnSwitchClickListener(OnSwitchClickListener switchClickListener) { - this.switchClickListener = switchClickListener; - } - - static class ItemViewHolder extends RecyclerView.ViewHolder { - - private final TextView lightNameView; - private final TextView lightStatusView; - private final ImageView lightSwitch; - - ItemViewHolder(@NonNull View itemView) { - super(itemView); - lightNameView = itemView.findViewById(R.id.lightNameView); - lightStatusView = itemView.findViewById(R.id.lightStatusView); - lightSwitch = itemView.findViewById(R.id.lightSwitch); - } - - void bindView(LightListBean.DataBean.RowsBean dataBean) { - lightNameView.setText(dataBean.getLampName()); - String statusName = dataBean.getStatusName(); - lightStatusView.setText(statusName); - if (statusName.equals("灭灯")) { - lightSwitch.setBackgroundResource(R.drawable.ic_switch_off); - } else if (statusName.equals("报警")) { - lightSwitch.setBackgroundResource(R.drawable.ic_switch_warning); - } else { - lightSwitch.setBackgroundResource(R.drawable.ic_switch_on); - } - } - } -} diff --git a/app/src/main/java/com/casic/dcms/adapter/NormalRecyclerAdapter.java b/app/src/main/java/com/casic/dcms/adapter/NormalRecyclerAdapter.java new file mode 100644 index 0000000..c80e2d5 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/adapter/NormalRecyclerAdapter.java @@ -0,0 +1,134 @@ +package com.casic.dcms.adapter; + +import android.annotation.SuppressLint; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import androidx.annotation.LayoutRes; +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.DiffUtil; +import androidx.recyclerview.widget.RecyclerView; + +import com.pengxh.androidx.lite.adapter.ViewHolder; + +import java.util.List; + +/** + * RecyclerView普通列表适配器 + */ +public abstract class NormalRecyclerAdapter extends RecyclerView.Adapter { + + private static final String TAG = "NormalRecyclerAdapter"; + private final int xmlResource; + private final List dataRows; + + public NormalRecyclerAdapter(@LayoutRes int xmlResource, List dataRows) { + this.xmlResource = xmlResource; + this.dataRows = dataRows; + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + @NonNull + @Override + public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + return new ViewHolder(LayoutInflater.from(parent.getContext()).inflate(xmlResource, parent, false)); + } + + @Override + public void onBindViewHolder(@NonNull ViewHolder holder, @SuppressLint("RecyclerView") int position) { + convertView(holder, position, dataRows.get(position)); + + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (itemClickedListener == null) { + return; + } + itemClickedListener.onItemClicked(position, dataRows.get(position)); + } + }); + } + + public void refresh(List newRows) { + DiffUtil.Callback diffCallback = new DiffUtil.Callback() { + + @Override + public int getOldListSize() { + return dataRows.size(); + } + + @Override + public int getNewListSize() { + return newRows.size(); + } + + @Override + public boolean areItemsTheSame(int oldItemPosition, int newItemPosition) { + if (dataRows == null || newRows == null) { + return false; + } + + // 检查索引是否在有效范围内 + if (oldItemPosition < 0 || oldItemPosition >= dataRows.size() || + newItemPosition < 0 || newItemPosition >= newRows.size()) { + return false; + } + + // 获取元素并进行比较 + Object oldItem = dataRows.get(oldItemPosition); + Object newItem = newRows.get(newItemPosition); + + // 处理空指针情况 + if (oldItem == null && newItem == null) { + return true; + } + if (oldItem == null || newItem == null) { + return false; + } + + return oldItem.equals(newItem); + } + + @Override + public boolean areContentsTheSame(int oldItemPosition, int newItemPosition) { + return dataRows.get(oldItemPosition) == newRows.get(newItemPosition); + } + }; + + DiffUtil.DiffResult diffResult = DiffUtil.calculateDiff(diffCallback); + + dataRows.clear(); + dataRows.addAll(newRows); + + diffResult.dispatchUpdatesTo(this); + } + + /** + * 加载更多 + */ + public void loadMore(List newRows) { + if (newRows.isEmpty()) { + return; + } + int startPosition = this.dataRows.size(); + this.dataRows.addAll(newRows); + notifyItemRangeInserted(startPosition, newRows.size()); + } + + public abstract void convertView(ViewHolder viewHolder, int position, T item); + + private OnItemClickedListener itemClickedListener; + + public interface OnItemClickedListener { + void onItemClicked(int position, T t); + } + + public void setOnItemClickedListener(OnItemClickedListener listener) { + itemClickedListener = listener; + } +} diff --git a/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java b/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java index 1deb066..80f7b98 100644 --- a/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java @@ -58,13 +58,13 @@ } @SuppressLint("NotifyDataSetChanged") - public void setRefreshData(List dataRows) { + public void refresh(List dataRows) { this.dataRows.clear(); this.dataRows.addAll(dataRows); notifyDataSetChanged(); } - public void setLoadMoreData(List dataRows) { + public void loadMore(List dataRows) { this.dataRows.addAll(dataRows); notifyItemRangeInserted(this.dataRows.size(), dataRows.size()); } diff --git a/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java index 3535c40..bd5e484 100644 --- a/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java @@ -10,6 +10,7 @@ import com.bumptech.glide.Glide; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentHomeBinding; import com.casic.dcms.model.HomePageBean; import com.casic.dcms.model.UserBean; @@ -36,7 +37,6 @@ import com.casic.dcms.view.verify.VerifyCaseActivity; import com.casic.dcms.vm.HomePageViewModel; import com.casic.dcms.vm.UserViewModel; -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.kit.LongKit; diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java index 0d2926f..a9cc331 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java @@ -5,22 +5,26 @@ import android.os.Handler; import android.os.Message; import android.text.TextUtils; +import android.view.View; import androidx.annotation.NonNull; import androidx.annotation.Nullable; +import androidx.cardview.widget.CardView; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; -import com.casic.dcms.adapter.LightResultAdapter; +import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentLightListBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightDetailBean; import com.casic.dcms.model.LightListBean; -import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.vm.LightViewModel; import com.casic.dcms.widgets.LightDetailDialog; +import com.pengxh.androidx.lite.adapter.ViewHolder; import com.pengxh.androidx.lite.base.AndroidxBaseFragment; import com.pengxh.androidx.lite.divider.RecyclerViewItemDivider; +import com.pengxh.androidx.lite.kit.IntKit; import com.pengxh.androidx.lite.kit.StringKit; import com.pengxh.androidx.lite.utils.LoadState; import com.pengxh.androidx.lite.utils.LoadingDialog; @@ -37,7 +41,7 @@ private static final String TAG = "LightOnListFragment"; private final WeakReferenceHandler weakReferenceHandler = new WeakReferenceHandler(this); private LightViewModel lightViewModel; - private LightResultAdapter adapter; + private NormalRecyclerAdapter adapter; private List dataBeans = new ArrayList<>(); private int pageIndex = 1; private boolean isRefresh, isLoadMore = false; @@ -50,7 +54,7 @@ @Override protected void initOnCreate(@Nullable Bundle savedInstanceState) { lightViewModel = new ViewModelProvider(this).get(LightViewModel.class); - getLightList(); + lightViewModel.getLightList(pageIndex); } @Override @@ -67,10 +71,6 @@ }); } - private void getLightList() { - lightViewModel.getLightList(LocaleConstant.PAGE_LIMIT, pageIndex); - } - @Override protected void initEvent() { getBinding().refreshLayout.setOnRefreshListener(new OnRefreshListener() { @@ -79,7 +79,7 @@ isRefresh = true; //刷新之后页码重置 pageIndex = 1; - getLightList(); + lightViewModel.getLightList(pageIndex); } }); getBinding().refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() { @@ -87,7 +87,7 @@ public void onLoadMore(@NonNull final RefreshLayout refreshLayout) { isLoadMore = true; pageIndex++; - getLightList(); + lightViewModel.getLightList(pageIndex); } }); @@ -97,21 +97,20 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题 - dataBeans = dataRows; + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - dataBeans.addAll(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { dataBeans = dataRows; + weakReferenceHandler.sendEmptyMessage(20210623); } - weakReferenceHandler.sendEmptyMessage(20210623); } } }); @@ -138,54 +137,67 @@ @Override public boolean handleMessage(@NonNull Message msg) { if (msg.what == 20210623) { - if (isRefresh || isLoadMore) { - adapter.notifyItemRangeInserted(adapter.getItemCount(), LocaleConstant.PAGE_LIMIT); + //首次加载数据 + if (dataBeans.size() == 0) { + getBinding().emptyView.show("没有路灯数据", null); } else { - //首次加载数据 - if (dataBeans.size() == 0) { - getBinding().emptyView.show("没有路灯数据", null); - } else { - getBinding().emptyView.hide(); - adapter = new LightResultAdapter(requireContext(), dataBeans); - getBinding().recyclerView.addItemDecoration(new RecyclerViewItemDivider(1, Color.LTGRAY)); - getBinding().recyclerView.setAdapter(adapter); - adapter.setOnGridItemClickListener(new LightResultAdapter.OnGridItemClickListener() { - @Override - public void onClick(int position) { - String lampId = dataBeans.get(position).getLampId(); - if (TextUtils.isEmpty(lampId)) { - StringKit.show(requireContext(), "错误,路灯编号为空"); - return; - } + getBinding().emptyView.hide(); + adapter = new NormalRecyclerAdapter(R.layout.item_light_recycleview, dataBeans) { + @Override + public void convertView(ViewHolder viewHolder, int position, LightListBean.DataBean.RowsBean item) { + String statusName = item.getStatusName(); + viewHolder.setText(R.id.lightNameView, item.getLampName()) + .setText(R.id.lightStatusView, "已" + statusName); - lightViewModel.getLightDetail(requireContext(), lampId); + CardView statueTagView = viewHolder.getView(R.id.statueTagView); + if (statusName.equals("灭灯")) { + viewHolder.setImageResource(R.id.lightSwitch, R.drawable.ic_switch_off); + statueTagView.setCardBackgroundColor(IntKit.convertColor(requireContext(), R.color.darkGray)); + } else if (statusName.equals("报警")) { + viewHolder.setImageResource(R.id.lightSwitch, R.drawable.ic_switch_warning); + statueTagView.setCardBackgroundColor(IntKit.convertColor(requireContext(), R.color.warnColor)); + } else { + viewHolder.setImageResource(R.id.lightSwitch, R.drawable.ic_switch_on); + statueTagView.setCardBackgroundColor(IntKit.convertColor(requireContext(), R.color.onLineColor)); } - }); - adapter.setOnSwitchClickListener(new LightResultAdapter.OnSwitchClickListener() { - @Override - public void onClick(int position) { - LightListBean.DataBean.RowsBean rowsBean = dataBeans.get(position); + viewHolder.setOnClickListener(R.id.lightSwitch, new View.OnClickListener() { + @Override + public void onClick(View v) { + List lampIds = new ArrayList<>(); + lampIds.add(Long.parseLong(item.getLampId())); - List lampIds = new ArrayList<>(); - lampIds.add(Long.parseLong(rowsBean.getLampId())); - - String statusName = rowsBean.getStatusName(); - String controlType; - if (statusName.equals("离线")) { - controlType = "1"; - } else { - controlType = "0"; + String statusName = item.getStatusName(); + String controlType; + if (statusName.equals("灭灯")) { + controlType = "1"; + } else { + controlType = "0"; + } + lightViewModel.controlLight(requireContext(), lampIds, controlType); } - lightViewModel.controlLight(requireContext(), lampIds, controlType); + }); + } + }; + getBinding().recyclerView.addItemDecoration(new RecyclerViewItemDivider(1, Color.LTGRAY)); + getBinding().recyclerView.setAdapter(adapter); + adapter.setOnItemClickedListener(new NormalRecyclerAdapter.OnItemClickedListener() { + @Override + public void onItemClicked(int position, LightListBean.DataBean.RowsBean rowsBean) { + String lampId = rowsBean.getLampId(); + if (TextUtils.isEmpty(lampId)) { + StringKit.show(requireContext(), "错误,路灯编号为空"); + return; } - }); - } + + lightViewModel.getLightDetail(requireContext(), lampId); + } + }); } } else if (msg.what == 20210624) { isRefresh = true; pageIndex = 1; - lightViewModel.getLightList(LocaleConstant.PAGE_LIMIT, pageIndex); + lightViewModel.getLightList(pageIndex); } return true; } diff --git a/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java index 64791dd..8f872db 100644 --- a/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java @@ -6,12 +6,12 @@ import androidx.annotation.Nullable; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.bean.NoticeLocaleBean; import com.casic.dcms.databinding.FragmentNoticeBinding; import com.casic.dcms.utils.DataBaseManager; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.CaseDetailActivity; -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.kit.ContextKit; diff --git a/app/src/main/java/com/casic/dcms/adapter/LightResultAdapter.java b/app/src/main/java/com/casic/dcms/adapter/LightResultAdapter.java deleted file mode 100644 index 405af6e..0000000 --- a/app/src/main/java/com/casic/dcms/adapter/LightResultAdapter.java +++ /dev/null @@ -1,107 +0,0 @@ -package com.casic.dcms.adapter; - -import android.annotation.SuppressLint; -import android.content.Context; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.ImageView; -import android.widget.TextView; - -import androidx.annotation.NonNull; -import androidx.recyclerview.widget.RecyclerView; - -import com.casic.dcms.R; -import com.casic.dcms.model.LightListBean; - -import java.util.List; - -public class LightResultAdapter extends RecyclerView.Adapter { - - private final List dataBeans; - private final LayoutInflater layoutInflater; - - public LightResultAdapter(Context context, List beans) { - this.dataBeans = beans; - this.layoutInflater = LayoutInflater.from(context); - } - - @NonNull - @Override - public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - return new ItemViewHolder(layoutInflater.inflate(R.layout.item_light_recycleview, parent, false)); - } - - @Override - public void onBindViewHolder(@NonNull LightResultAdapter.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); - } - }); - } - if (switchClickListener != null) { - holder.lightSwitch.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - switchClickListener.onClick(position); - } - }); - } - } - - @Override - public int getItemCount() { - return dataBeans.size(); - } - - private OnGridItemClickListener clickListener; - - public interface OnGridItemClickListener { - void onClick(int position); - } - - public void setOnGridItemClickListener(OnGridItemClickListener onGridItemClickListener) { - this.clickListener = onGridItemClickListener; - } - - private OnSwitchClickListener switchClickListener; - - public interface OnSwitchClickListener { - void onClick(int position); - } - - public void setOnSwitchClickListener(OnSwitchClickListener switchClickListener) { - this.switchClickListener = switchClickListener; - } - - static class ItemViewHolder extends RecyclerView.ViewHolder { - - private final TextView lightNameView; - private final TextView lightStatusView; - private final ImageView lightSwitch; - - ItemViewHolder(@NonNull View itemView) { - super(itemView); - lightNameView = itemView.findViewById(R.id.lightNameView); - lightStatusView = itemView.findViewById(R.id.lightStatusView); - lightSwitch = itemView.findViewById(R.id.lightSwitch); - } - - void bindView(LightListBean.DataBean.RowsBean dataBean) { - lightNameView.setText(dataBean.getLampName()); - String statusName = dataBean.getStatusName(); - lightStatusView.setText(statusName); - if (statusName.equals("灭灯")) { - lightSwitch.setBackgroundResource(R.drawable.ic_switch_off); - } else if (statusName.equals("报警")) { - lightSwitch.setBackgroundResource(R.drawable.ic_switch_warning); - } else { - lightSwitch.setBackgroundResource(R.drawable.ic_switch_on); - } - } - } -} diff --git a/app/src/main/java/com/casic/dcms/adapter/NormalRecyclerAdapter.java b/app/src/main/java/com/casic/dcms/adapter/NormalRecyclerAdapter.java new file mode 100644 index 0000000..c80e2d5 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/adapter/NormalRecyclerAdapter.java @@ -0,0 +1,134 @@ +package com.casic.dcms.adapter; + +import android.annotation.SuppressLint; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import androidx.annotation.LayoutRes; +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.DiffUtil; +import androidx.recyclerview.widget.RecyclerView; + +import com.pengxh.androidx.lite.adapter.ViewHolder; + +import java.util.List; + +/** + * RecyclerView普通列表适配器 + */ +public abstract class NormalRecyclerAdapter extends RecyclerView.Adapter { + + private static final String TAG = "NormalRecyclerAdapter"; + private final int xmlResource; + private final List dataRows; + + public NormalRecyclerAdapter(@LayoutRes int xmlResource, List dataRows) { + this.xmlResource = xmlResource; + this.dataRows = dataRows; + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + @NonNull + @Override + public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + return new ViewHolder(LayoutInflater.from(parent.getContext()).inflate(xmlResource, parent, false)); + } + + @Override + public void onBindViewHolder(@NonNull ViewHolder holder, @SuppressLint("RecyclerView") int position) { + convertView(holder, position, dataRows.get(position)); + + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (itemClickedListener == null) { + return; + } + itemClickedListener.onItemClicked(position, dataRows.get(position)); + } + }); + } + + public void refresh(List newRows) { + DiffUtil.Callback diffCallback = new DiffUtil.Callback() { + + @Override + public int getOldListSize() { + return dataRows.size(); + } + + @Override + public int getNewListSize() { + return newRows.size(); + } + + @Override + public boolean areItemsTheSame(int oldItemPosition, int newItemPosition) { + if (dataRows == null || newRows == null) { + return false; + } + + // 检查索引是否在有效范围内 + if (oldItemPosition < 0 || oldItemPosition >= dataRows.size() || + newItemPosition < 0 || newItemPosition >= newRows.size()) { + return false; + } + + // 获取元素并进行比较 + Object oldItem = dataRows.get(oldItemPosition); + Object newItem = newRows.get(newItemPosition); + + // 处理空指针情况 + if (oldItem == null && newItem == null) { + return true; + } + if (oldItem == null || newItem == null) { + return false; + } + + return oldItem.equals(newItem); + } + + @Override + public boolean areContentsTheSame(int oldItemPosition, int newItemPosition) { + return dataRows.get(oldItemPosition) == newRows.get(newItemPosition); + } + }; + + DiffUtil.DiffResult diffResult = DiffUtil.calculateDiff(diffCallback); + + dataRows.clear(); + dataRows.addAll(newRows); + + diffResult.dispatchUpdatesTo(this); + } + + /** + * 加载更多 + */ + public void loadMore(List newRows) { + if (newRows.isEmpty()) { + return; + } + int startPosition = this.dataRows.size(); + this.dataRows.addAll(newRows); + notifyItemRangeInserted(startPosition, newRows.size()); + } + + public abstract void convertView(ViewHolder viewHolder, int position, T item); + + private OnItemClickedListener itemClickedListener; + + public interface OnItemClickedListener { + void onItemClicked(int position, T t); + } + + public void setOnItemClickedListener(OnItemClickedListener listener) { + itemClickedListener = listener; + } +} diff --git a/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java b/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java index 1deb066..80f7b98 100644 --- a/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java @@ -58,13 +58,13 @@ } @SuppressLint("NotifyDataSetChanged") - public void setRefreshData(List dataRows) { + public void refresh(List dataRows) { this.dataRows.clear(); this.dataRows.addAll(dataRows); notifyDataSetChanged(); } - public void setLoadMoreData(List dataRows) { + public void loadMore(List dataRows) { this.dataRows.addAll(dataRows); notifyItemRangeInserted(this.dataRows.size(), dataRows.size()); } diff --git a/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java index 3535c40..bd5e484 100644 --- a/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java @@ -10,6 +10,7 @@ import com.bumptech.glide.Glide; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentHomeBinding; import com.casic.dcms.model.HomePageBean; import com.casic.dcms.model.UserBean; @@ -36,7 +37,6 @@ import com.casic.dcms.view.verify.VerifyCaseActivity; import com.casic.dcms.vm.HomePageViewModel; import com.casic.dcms.vm.UserViewModel; -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.kit.LongKit; diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java index 0d2926f..a9cc331 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java @@ -5,22 +5,26 @@ import android.os.Handler; import android.os.Message; import android.text.TextUtils; +import android.view.View; import androidx.annotation.NonNull; import androidx.annotation.Nullable; +import androidx.cardview.widget.CardView; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; -import com.casic.dcms.adapter.LightResultAdapter; +import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentLightListBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightDetailBean; import com.casic.dcms.model.LightListBean; -import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.vm.LightViewModel; import com.casic.dcms.widgets.LightDetailDialog; +import com.pengxh.androidx.lite.adapter.ViewHolder; import com.pengxh.androidx.lite.base.AndroidxBaseFragment; import com.pengxh.androidx.lite.divider.RecyclerViewItemDivider; +import com.pengxh.androidx.lite.kit.IntKit; import com.pengxh.androidx.lite.kit.StringKit; import com.pengxh.androidx.lite.utils.LoadState; import com.pengxh.androidx.lite.utils.LoadingDialog; @@ -37,7 +41,7 @@ private static final String TAG = "LightOnListFragment"; private final WeakReferenceHandler weakReferenceHandler = new WeakReferenceHandler(this); private LightViewModel lightViewModel; - private LightResultAdapter adapter; + private NormalRecyclerAdapter adapter; private List dataBeans = new ArrayList<>(); private int pageIndex = 1; private boolean isRefresh, isLoadMore = false; @@ -50,7 +54,7 @@ @Override protected void initOnCreate(@Nullable Bundle savedInstanceState) { lightViewModel = new ViewModelProvider(this).get(LightViewModel.class); - getLightList(); + lightViewModel.getLightList(pageIndex); } @Override @@ -67,10 +71,6 @@ }); } - private void getLightList() { - lightViewModel.getLightList(LocaleConstant.PAGE_LIMIT, pageIndex); - } - @Override protected void initEvent() { getBinding().refreshLayout.setOnRefreshListener(new OnRefreshListener() { @@ -79,7 +79,7 @@ isRefresh = true; //刷新之后页码重置 pageIndex = 1; - getLightList(); + lightViewModel.getLightList(pageIndex); } }); getBinding().refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() { @@ -87,7 +87,7 @@ public void onLoadMore(@NonNull final RefreshLayout refreshLayout) { isLoadMore = true; pageIndex++; - getLightList(); + lightViewModel.getLightList(pageIndex); } }); @@ -97,21 +97,20 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题 - dataBeans = dataRows; + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - dataBeans.addAll(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { dataBeans = dataRows; + weakReferenceHandler.sendEmptyMessage(20210623); } - weakReferenceHandler.sendEmptyMessage(20210623); } } }); @@ -138,54 +137,67 @@ @Override public boolean handleMessage(@NonNull Message msg) { if (msg.what == 20210623) { - if (isRefresh || isLoadMore) { - adapter.notifyItemRangeInserted(adapter.getItemCount(), LocaleConstant.PAGE_LIMIT); + //首次加载数据 + if (dataBeans.size() == 0) { + getBinding().emptyView.show("没有路灯数据", null); } else { - //首次加载数据 - if (dataBeans.size() == 0) { - getBinding().emptyView.show("没有路灯数据", null); - } else { - getBinding().emptyView.hide(); - adapter = new LightResultAdapter(requireContext(), dataBeans); - getBinding().recyclerView.addItemDecoration(new RecyclerViewItemDivider(1, Color.LTGRAY)); - getBinding().recyclerView.setAdapter(adapter); - adapter.setOnGridItemClickListener(new LightResultAdapter.OnGridItemClickListener() { - @Override - public void onClick(int position) { - String lampId = dataBeans.get(position).getLampId(); - if (TextUtils.isEmpty(lampId)) { - StringKit.show(requireContext(), "错误,路灯编号为空"); - return; - } + getBinding().emptyView.hide(); + adapter = new NormalRecyclerAdapter(R.layout.item_light_recycleview, dataBeans) { + @Override + public void convertView(ViewHolder viewHolder, int position, LightListBean.DataBean.RowsBean item) { + String statusName = item.getStatusName(); + viewHolder.setText(R.id.lightNameView, item.getLampName()) + .setText(R.id.lightStatusView, "已" + statusName); - lightViewModel.getLightDetail(requireContext(), lampId); + CardView statueTagView = viewHolder.getView(R.id.statueTagView); + if (statusName.equals("灭灯")) { + viewHolder.setImageResource(R.id.lightSwitch, R.drawable.ic_switch_off); + statueTagView.setCardBackgroundColor(IntKit.convertColor(requireContext(), R.color.darkGray)); + } else if (statusName.equals("报警")) { + viewHolder.setImageResource(R.id.lightSwitch, R.drawable.ic_switch_warning); + statueTagView.setCardBackgroundColor(IntKit.convertColor(requireContext(), R.color.warnColor)); + } else { + viewHolder.setImageResource(R.id.lightSwitch, R.drawable.ic_switch_on); + statueTagView.setCardBackgroundColor(IntKit.convertColor(requireContext(), R.color.onLineColor)); } - }); - adapter.setOnSwitchClickListener(new LightResultAdapter.OnSwitchClickListener() { - @Override - public void onClick(int position) { - LightListBean.DataBean.RowsBean rowsBean = dataBeans.get(position); + viewHolder.setOnClickListener(R.id.lightSwitch, new View.OnClickListener() { + @Override + public void onClick(View v) { + List lampIds = new ArrayList<>(); + lampIds.add(Long.parseLong(item.getLampId())); - List lampIds = new ArrayList<>(); - lampIds.add(Long.parseLong(rowsBean.getLampId())); - - String statusName = rowsBean.getStatusName(); - String controlType; - if (statusName.equals("离线")) { - controlType = "1"; - } else { - controlType = "0"; + String statusName = item.getStatusName(); + String controlType; + if (statusName.equals("灭灯")) { + controlType = "1"; + } else { + controlType = "0"; + } + lightViewModel.controlLight(requireContext(), lampIds, controlType); } - lightViewModel.controlLight(requireContext(), lampIds, controlType); + }); + } + }; + getBinding().recyclerView.addItemDecoration(new RecyclerViewItemDivider(1, Color.LTGRAY)); + getBinding().recyclerView.setAdapter(adapter); + adapter.setOnItemClickedListener(new NormalRecyclerAdapter.OnItemClickedListener() { + @Override + public void onItemClicked(int position, LightListBean.DataBean.RowsBean rowsBean) { + String lampId = rowsBean.getLampId(); + if (TextUtils.isEmpty(lampId)) { + StringKit.show(requireContext(), "错误,路灯编号为空"); + return; } - }); - } + + lightViewModel.getLightDetail(requireContext(), lampId); + } + }); } } else if (msg.what == 20210624) { isRefresh = true; pageIndex = 1; - lightViewModel.getLightList(LocaleConstant.PAGE_LIMIT, pageIndex); + lightViewModel.getLightList(pageIndex); } return true; } diff --git a/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java index 64791dd..8f872db 100644 --- a/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java @@ -6,12 +6,12 @@ import androidx.annotation.Nullable; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.bean.NoticeLocaleBean; import com.casic.dcms.databinding.FragmentNoticeBinding; import com.casic.dcms.utils.DataBaseManager; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.CaseDetailActivity; -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.kit.ContextKit; diff --git a/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java b/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java index 5980aaf..93ab96c 100644 --- a/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java @@ -87,14 +87,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/adapter/LightResultAdapter.java b/app/src/main/java/com/casic/dcms/adapter/LightResultAdapter.java deleted file mode 100644 index 405af6e..0000000 --- a/app/src/main/java/com/casic/dcms/adapter/LightResultAdapter.java +++ /dev/null @@ -1,107 +0,0 @@ -package com.casic.dcms.adapter; - -import android.annotation.SuppressLint; -import android.content.Context; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.ImageView; -import android.widget.TextView; - -import androidx.annotation.NonNull; -import androidx.recyclerview.widget.RecyclerView; - -import com.casic.dcms.R; -import com.casic.dcms.model.LightListBean; - -import java.util.List; - -public class LightResultAdapter extends RecyclerView.Adapter { - - private final List dataBeans; - private final LayoutInflater layoutInflater; - - public LightResultAdapter(Context context, List beans) { - this.dataBeans = beans; - this.layoutInflater = LayoutInflater.from(context); - } - - @NonNull - @Override - public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - return new ItemViewHolder(layoutInflater.inflate(R.layout.item_light_recycleview, parent, false)); - } - - @Override - public void onBindViewHolder(@NonNull LightResultAdapter.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); - } - }); - } - if (switchClickListener != null) { - holder.lightSwitch.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - switchClickListener.onClick(position); - } - }); - } - } - - @Override - public int getItemCount() { - return dataBeans.size(); - } - - private OnGridItemClickListener clickListener; - - public interface OnGridItemClickListener { - void onClick(int position); - } - - public void setOnGridItemClickListener(OnGridItemClickListener onGridItemClickListener) { - this.clickListener = onGridItemClickListener; - } - - private OnSwitchClickListener switchClickListener; - - public interface OnSwitchClickListener { - void onClick(int position); - } - - public void setOnSwitchClickListener(OnSwitchClickListener switchClickListener) { - this.switchClickListener = switchClickListener; - } - - static class ItemViewHolder extends RecyclerView.ViewHolder { - - private final TextView lightNameView; - private final TextView lightStatusView; - private final ImageView lightSwitch; - - ItemViewHolder(@NonNull View itemView) { - super(itemView); - lightNameView = itemView.findViewById(R.id.lightNameView); - lightStatusView = itemView.findViewById(R.id.lightStatusView); - lightSwitch = itemView.findViewById(R.id.lightSwitch); - } - - void bindView(LightListBean.DataBean.RowsBean dataBean) { - lightNameView.setText(dataBean.getLampName()); - String statusName = dataBean.getStatusName(); - lightStatusView.setText(statusName); - if (statusName.equals("灭灯")) { - lightSwitch.setBackgroundResource(R.drawable.ic_switch_off); - } else if (statusName.equals("报警")) { - lightSwitch.setBackgroundResource(R.drawable.ic_switch_warning); - } else { - lightSwitch.setBackgroundResource(R.drawable.ic_switch_on); - } - } - } -} diff --git a/app/src/main/java/com/casic/dcms/adapter/NormalRecyclerAdapter.java b/app/src/main/java/com/casic/dcms/adapter/NormalRecyclerAdapter.java new file mode 100644 index 0000000..c80e2d5 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/adapter/NormalRecyclerAdapter.java @@ -0,0 +1,134 @@ +package com.casic.dcms.adapter; + +import android.annotation.SuppressLint; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import androidx.annotation.LayoutRes; +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.DiffUtil; +import androidx.recyclerview.widget.RecyclerView; + +import com.pengxh.androidx.lite.adapter.ViewHolder; + +import java.util.List; + +/** + * RecyclerView普通列表适配器 + */ +public abstract class NormalRecyclerAdapter extends RecyclerView.Adapter { + + private static final String TAG = "NormalRecyclerAdapter"; + private final int xmlResource; + private final List dataRows; + + public NormalRecyclerAdapter(@LayoutRes int xmlResource, List dataRows) { + this.xmlResource = xmlResource; + this.dataRows = dataRows; + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + @NonNull + @Override + public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + return new ViewHolder(LayoutInflater.from(parent.getContext()).inflate(xmlResource, parent, false)); + } + + @Override + public void onBindViewHolder(@NonNull ViewHolder holder, @SuppressLint("RecyclerView") int position) { + convertView(holder, position, dataRows.get(position)); + + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (itemClickedListener == null) { + return; + } + itemClickedListener.onItemClicked(position, dataRows.get(position)); + } + }); + } + + public void refresh(List newRows) { + DiffUtil.Callback diffCallback = new DiffUtil.Callback() { + + @Override + public int getOldListSize() { + return dataRows.size(); + } + + @Override + public int getNewListSize() { + return newRows.size(); + } + + @Override + public boolean areItemsTheSame(int oldItemPosition, int newItemPosition) { + if (dataRows == null || newRows == null) { + return false; + } + + // 检查索引是否在有效范围内 + if (oldItemPosition < 0 || oldItemPosition >= dataRows.size() || + newItemPosition < 0 || newItemPosition >= newRows.size()) { + return false; + } + + // 获取元素并进行比较 + Object oldItem = dataRows.get(oldItemPosition); + Object newItem = newRows.get(newItemPosition); + + // 处理空指针情况 + if (oldItem == null && newItem == null) { + return true; + } + if (oldItem == null || newItem == null) { + return false; + } + + return oldItem.equals(newItem); + } + + @Override + public boolean areContentsTheSame(int oldItemPosition, int newItemPosition) { + return dataRows.get(oldItemPosition) == newRows.get(newItemPosition); + } + }; + + DiffUtil.DiffResult diffResult = DiffUtil.calculateDiff(diffCallback); + + dataRows.clear(); + dataRows.addAll(newRows); + + diffResult.dispatchUpdatesTo(this); + } + + /** + * 加载更多 + */ + public void loadMore(List newRows) { + if (newRows.isEmpty()) { + return; + } + int startPosition = this.dataRows.size(); + this.dataRows.addAll(newRows); + notifyItemRangeInserted(startPosition, newRows.size()); + } + + public abstract void convertView(ViewHolder viewHolder, int position, T item); + + private OnItemClickedListener itemClickedListener; + + public interface OnItemClickedListener { + void onItemClicked(int position, T t); + } + + public void setOnItemClickedListener(OnItemClickedListener listener) { + itemClickedListener = listener; + } +} diff --git a/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java b/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java index 1deb066..80f7b98 100644 --- a/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java @@ -58,13 +58,13 @@ } @SuppressLint("NotifyDataSetChanged") - public void setRefreshData(List dataRows) { + public void refresh(List dataRows) { this.dataRows.clear(); this.dataRows.addAll(dataRows); notifyDataSetChanged(); } - public void setLoadMoreData(List dataRows) { + public void loadMore(List dataRows) { this.dataRows.addAll(dataRows); notifyItemRangeInserted(this.dataRows.size(), dataRows.size()); } diff --git a/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java index 3535c40..bd5e484 100644 --- a/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java @@ -10,6 +10,7 @@ import com.bumptech.glide.Glide; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentHomeBinding; import com.casic.dcms.model.HomePageBean; import com.casic.dcms.model.UserBean; @@ -36,7 +37,6 @@ import com.casic.dcms.view.verify.VerifyCaseActivity; import com.casic.dcms.vm.HomePageViewModel; import com.casic.dcms.vm.UserViewModel; -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.kit.LongKit; diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java index 0d2926f..a9cc331 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java @@ -5,22 +5,26 @@ import android.os.Handler; import android.os.Message; import android.text.TextUtils; +import android.view.View; import androidx.annotation.NonNull; import androidx.annotation.Nullable; +import androidx.cardview.widget.CardView; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; -import com.casic.dcms.adapter.LightResultAdapter; +import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentLightListBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightDetailBean; import com.casic.dcms.model.LightListBean; -import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.vm.LightViewModel; import com.casic.dcms.widgets.LightDetailDialog; +import com.pengxh.androidx.lite.adapter.ViewHolder; import com.pengxh.androidx.lite.base.AndroidxBaseFragment; import com.pengxh.androidx.lite.divider.RecyclerViewItemDivider; +import com.pengxh.androidx.lite.kit.IntKit; import com.pengxh.androidx.lite.kit.StringKit; import com.pengxh.androidx.lite.utils.LoadState; import com.pengxh.androidx.lite.utils.LoadingDialog; @@ -37,7 +41,7 @@ private static final String TAG = "LightOnListFragment"; private final WeakReferenceHandler weakReferenceHandler = new WeakReferenceHandler(this); private LightViewModel lightViewModel; - private LightResultAdapter adapter; + private NormalRecyclerAdapter adapter; private List dataBeans = new ArrayList<>(); private int pageIndex = 1; private boolean isRefresh, isLoadMore = false; @@ -50,7 +54,7 @@ @Override protected void initOnCreate(@Nullable Bundle savedInstanceState) { lightViewModel = new ViewModelProvider(this).get(LightViewModel.class); - getLightList(); + lightViewModel.getLightList(pageIndex); } @Override @@ -67,10 +71,6 @@ }); } - private void getLightList() { - lightViewModel.getLightList(LocaleConstant.PAGE_LIMIT, pageIndex); - } - @Override protected void initEvent() { getBinding().refreshLayout.setOnRefreshListener(new OnRefreshListener() { @@ -79,7 +79,7 @@ isRefresh = true; //刷新之后页码重置 pageIndex = 1; - getLightList(); + lightViewModel.getLightList(pageIndex); } }); getBinding().refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() { @@ -87,7 +87,7 @@ public void onLoadMore(@NonNull final RefreshLayout refreshLayout) { isLoadMore = true; pageIndex++; - getLightList(); + lightViewModel.getLightList(pageIndex); } }); @@ -97,21 +97,20 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题 - dataBeans = dataRows; + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - dataBeans.addAll(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { dataBeans = dataRows; + weakReferenceHandler.sendEmptyMessage(20210623); } - weakReferenceHandler.sendEmptyMessage(20210623); } } }); @@ -138,54 +137,67 @@ @Override public boolean handleMessage(@NonNull Message msg) { if (msg.what == 20210623) { - if (isRefresh || isLoadMore) { - adapter.notifyItemRangeInserted(adapter.getItemCount(), LocaleConstant.PAGE_LIMIT); + //首次加载数据 + if (dataBeans.size() == 0) { + getBinding().emptyView.show("没有路灯数据", null); } else { - //首次加载数据 - if (dataBeans.size() == 0) { - getBinding().emptyView.show("没有路灯数据", null); - } else { - getBinding().emptyView.hide(); - adapter = new LightResultAdapter(requireContext(), dataBeans); - getBinding().recyclerView.addItemDecoration(new RecyclerViewItemDivider(1, Color.LTGRAY)); - getBinding().recyclerView.setAdapter(adapter); - adapter.setOnGridItemClickListener(new LightResultAdapter.OnGridItemClickListener() { - @Override - public void onClick(int position) { - String lampId = dataBeans.get(position).getLampId(); - if (TextUtils.isEmpty(lampId)) { - StringKit.show(requireContext(), "错误,路灯编号为空"); - return; - } + getBinding().emptyView.hide(); + adapter = new NormalRecyclerAdapter(R.layout.item_light_recycleview, dataBeans) { + @Override + public void convertView(ViewHolder viewHolder, int position, LightListBean.DataBean.RowsBean item) { + String statusName = item.getStatusName(); + viewHolder.setText(R.id.lightNameView, item.getLampName()) + .setText(R.id.lightStatusView, "已" + statusName); - lightViewModel.getLightDetail(requireContext(), lampId); + CardView statueTagView = viewHolder.getView(R.id.statueTagView); + if (statusName.equals("灭灯")) { + viewHolder.setImageResource(R.id.lightSwitch, R.drawable.ic_switch_off); + statueTagView.setCardBackgroundColor(IntKit.convertColor(requireContext(), R.color.darkGray)); + } else if (statusName.equals("报警")) { + viewHolder.setImageResource(R.id.lightSwitch, R.drawable.ic_switch_warning); + statueTagView.setCardBackgroundColor(IntKit.convertColor(requireContext(), R.color.warnColor)); + } else { + viewHolder.setImageResource(R.id.lightSwitch, R.drawable.ic_switch_on); + statueTagView.setCardBackgroundColor(IntKit.convertColor(requireContext(), R.color.onLineColor)); } - }); - adapter.setOnSwitchClickListener(new LightResultAdapter.OnSwitchClickListener() { - @Override - public void onClick(int position) { - LightListBean.DataBean.RowsBean rowsBean = dataBeans.get(position); + viewHolder.setOnClickListener(R.id.lightSwitch, new View.OnClickListener() { + @Override + public void onClick(View v) { + List lampIds = new ArrayList<>(); + lampIds.add(Long.parseLong(item.getLampId())); - List lampIds = new ArrayList<>(); - lampIds.add(Long.parseLong(rowsBean.getLampId())); - - String statusName = rowsBean.getStatusName(); - String controlType; - if (statusName.equals("离线")) { - controlType = "1"; - } else { - controlType = "0"; + String statusName = item.getStatusName(); + String controlType; + if (statusName.equals("灭灯")) { + controlType = "1"; + } else { + controlType = "0"; + } + lightViewModel.controlLight(requireContext(), lampIds, controlType); } - lightViewModel.controlLight(requireContext(), lampIds, controlType); + }); + } + }; + getBinding().recyclerView.addItemDecoration(new RecyclerViewItemDivider(1, Color.LTGRAY)); + getBinding().recyclerView.setAdapter(adapter); + adapter.setOnItemClickedListener(new NormalRecyclerAdapter.OnItemClickedListener() { + @Override + public void onItemClicked(int position, LightListBean.DataBean.RowsBean rowsBean) { + String lampId = rowsBean.getLampId(); + if (TextUtils.isEmpty(lampId)) { + StringKit.show(requireContext(), "错误,路灯编号为空"); + return; } - }); - } + + lightViewModel.getLightDetail(requireContext(), lampId); + } + }); } } else if (msg.what == 20210624) { isRefresh = true; pageIndex = 1; - lightViewModel.getLightList(LocaleConstant.PAGE_LIMIT, pageIndex); + lightViewModel.getLightList(pageIndex); } return true; } diff --git a/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java index 64791dd..8f872db 100644 --- a/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java @@ -6,12 +6,12 @@ import androidx.annotation.Nullable; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.bean.NoticeLocaleBean; import com.casic.dcms.databinding.FragmentNoticeBinding; import com.casic.dcms.utils.DataBaseManager; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.CaseDetailActivity; -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.kit.ContextKit; diff --git a/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java b/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java index 5980aaf..93ab96c 100644 --- a/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java @@ -87,14 +87,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/business/PackageTodoFragment.java b/app/src/main/java/com/casic/dcms/fragment/business/PackageTodoFragment.java index 9f28bbe..1fefd3f 100644 --- a/app/src/main/java/com/casic/dcms/fragment/business/PackageTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/business/PackageTodoFragment.java @@ -88,14 +88,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/adapter/LightResultAdapter.java b/app/src/main/java/com/casic/dcms/adapter/LightResultAdapter.java deleted file mode 100644 index 405af6e..0000000 --- a/app/src/main/java/com/casic/dcms/adapter/LightResultAdapter.java +++ /dev/null @@ -1,107 +0,0 @@ -package com.casic.dcms.adapter; - -import android.annotation.SuppressLint; -import android.content.Context; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.ImageView; -import android.widget.TextView; - -import androidx.annotation.NonNull; -import androidx.recyclerview.widget.RecyclerView; - -import com.casic.dcms.R; -import com.casic.dcms.model.LightListBean; - -import java.util.List; - -public class LightResultAdapter extends RecyclerView.Adapter { - - private final List dataBeans; - private final LayoutInflater layoutInflater; - - public LightResultAdapter(Context context, List beans) { - this.dataBeans = beans; - this.layoutInflater = LayoutInflater.from(context); - } - - @NonNull - @Override - public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - return new ItemViewHolder(layoutInflater.inflate(R.layout.item_light_recycleview, parent, false)); - } - - @Override - public void onBindViewHolder(@NonNull LightResultAdapter.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); - } - }); - } - if (switchClickListener != null) { - holder.lightSwitch.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - switchClickListener.onClick(position); - } - }); - } - } - - @Override - public int getItemCount() { - return dataBeans.size(); - } - - private OnGridItemClickListener clickListener; - - public interface OnGridItemClickListener { - void onClick(int position); - } - - public void setOnGridItemClickListener(OnGridItemClickListener onGridItemClickListener) { - this.clickListener = onGridItemClickListener; - } - - private OnSwitchClickListener switchClickListener; - - public interface OnSwitchClickListener { - void onClick(int position); - } - - public void setOnSwitchClickListener(OnSwitchClickListener switchClickListener) { - this.switchClickListener = switchClickListener; - } - - static class ItemViewHolder extends RecyclerView.ViewHolder { - - private final TextView lightNameView; - private final TextView lightStatusView; - private final ImageView lightSwitch; - - ItemViewHolder(@NonNull View itemView) { - super(itemView); - lightNameView = itemView.findViewById(R.id.lightNameView); - lightStatusView = itemView.findViewById(R.id.lightStatusView); - lightSwitch = itemView.findViewById(R.id.lightSwitch); - } - - void bindView(LightListBean.DataBean.RowsBean dataBean) { - lightNameView.setText(dataBean.getLampName()); - String statusName = dataBean.getStatusName(); - lightStatusView.setText(statusName); - if (statusName.equals("灭灯")) { - lightSwitch.setBackgroundResource(R.drawable.ic_switch_off); - } else if (statusName.equals("报警")) { - lightSwitch.setBackgroundResource(R.drawable.ic_switch_warning); - } else { - lightSwitch.setBackgroundResource(R.drawable.ic_switch_on); - } - } - } -} diff --git a/app/src/main/java/com/casic/dcms/adapter/NormalRecyclerAdapter.java b/app/src/main/java/com/casic/dcms/adapter/NormalRecyclerAdapter.java new file mode 100644 index 0000000..c80e2d5 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/adapter/NormalRecyclerAdapter.java @@ -0,0 +1,134 @@ +package com.casic.dcms.adapter; + +import android.annotation.SuppressLint; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import androidx.annotation.LayoutRes; +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.DiffUtil; +import androidx.recyclerview.widget.RecyclerView; + +import com.pengxh.androidx.lite.adapter.ViewHolder; + +import java.util.List; + +/** + * RecyclerView普通列表适配器 + */ +public abstract class NormalRecyclerAdapter extends RecyclerView.Adapter { + + private static final String TAG = "NormalRecyclerAdapter"; + private final int xmlResource; + private final List dataRows; + + public NormalRecyclerAdapter(@LayoutRes int xmlResource, List dataRows) { + this.xmlResource = xmlResource; + this.dataRows = dataRows; + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + @NonNull + @Override + public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + return new ViewHolder(LayoutInflater.from(parent.getContext()).inflate(xmlResource, parent, false)); + } + + @Override + public void onBindViewHolder(@NonNull ViewHolder holder, @SuppressLint("RecyclerView") int position) { + convertView(holder, position, dataRows.get(position)); + + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (itemClickedListener == null) { + return; + } + itemClickedListener.onItemClicked(position, dataRows.get(position)); + } + }); + } + + public void refresh(List newRows) { + DiffUtil.Callback diffCallback = new DiffUtil.Callback() { + + @Override + public int getOldListSize() { + return dataRows.size(); + } + + @Override + public int getNewListSize() { + return newRows.size(); + } + + @Override + public boolean areItemsTheSame(int oldItemPosition, int newItemPosition) { + if (dataRows == null || newRows == null) { + return false; + } + + // 检查索引是否在有效范围内 + if (oldItemPosition < 0 || oldItemPosition >= dataRows.size() || + newItemPosition < 0 || newItemPosition >= newRows.size()) { + return false; + } + + // 获取元素并进行比较 + Object oldItem = dataRows.get(oldItemPosition); + Object newItem = newRows.get(newItemPosition); + + // 处理空指针情况 + if (oldItem == null && newItem == null) { + return true; + } + if (oldItem == null || newItem == null) { + return false; + } + + return oldItem.equals(newItem); + } + + @Override + public boolean areContentsTheSame(int oldItemPosition, int newItemPosition) { + return dataRows.get(oldItemPosition) == newRows.get(newItemPosition); + } + }; + + DiffUtil.DiffResult diffResult = DiffUtil.calculateDiff(diffCallback); + + dataRows.clear(); + dataRows.addAll(newRows); + + diffResult.dispatchUpdatesTo(this); + } + + /** + * 加载更多 + */ + public void loadMore(List newRows) { + if (newRows.isEmpty()) { + return; + } + int startPosition = this.dataRows.size(); + this.dataRows.addAll(newRows); + notifyItemRangeInserted(startPosition, newRows.size()); + } + + public abstract void convertView(ViewHolder viewHolder, int position, T item); + + private OnItemClickedListener itemClickedListener; + + public interface OnItemClickedListener { + void onItemClicked(int position, T t); + } + + public void setOnItemClickedListener(OnItemClickedListener listener) { + itemClickedListener = listener; + } +} diff --git a/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java b/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java index 1deb066..80f7b98 100644 --- a/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java @@ -58,13 +58,13 @@ } @SuppressLint("NotifyDataSetChanged") - public void setRefreshData(List dataRows) { + public void refresh(List dataRows) { this.dataRows.clear(); this.dataRows.addAll(dataRows); notifyDataSetChanged(); } - public void setLoadMoreData(List dataRows) { + public void loadMore(List dataRows) { this.dataRows.addAll(dataRows); notifyItemRangeInserted(this.dataRows.size(), dataRows.size()); } diff --git a/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java index 3535c40..bd5e484 100644 --- a/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java @@ -10,6 +10,7 @@ import com.bumptech.glide.Glide; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentHomeBinding; import com.casic.dcms.model.HomePageBean; import com.casic.dcms.model.UserBean; @@ -36,7 +37,6 @@ import com.casic.dcms.view.verify.VerifyCaseActivity; import com.casic.dcms.vm.HomePageViewModel; import com.casic.dcms.vm.UserViewModel; -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.kit.LongKit; diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java index 0d2926f..a9cc331 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java @@ -5,22 +5,26 @@ import android.os.Handler; import android.os.Message; import android.text.TextUtils; +import android.view.View; import androidx.annotation.NonNull; import androidx.annotation.Nullable; +import androidx.cardview.widget.CardView; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; -import com.casic.dcms.adapter.LightResultAdapter; +import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentLightListBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightDetailBean; import com.casic.dcms.model.LightListBean; -import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.vm.LightViewModel; import com.casic.dcms.widgets.LightDetailDialog; +import com.pengxh.androidx.lite.adapter.ViewHolder; import com.pengxh.androidx.lite.base.AndroidxBaseFragment; import com.pengxh.androidx.lite.divider.RecyclerViewItemDivider; +import com.pengxh.androidx.lite.kit.IntKit; import com.pengxh.androidx.lite.kit.StringKit; import com.pengxh.androidx.lite.utils.LoadState; import com.pengxh.androidx.lite.utils.LoadingDialog; @@ -37,7 +41,7 @@ private static final String TAG = "LightOnListFragment"; private final WeakReferenceHandler weakReferenceHandler = new WeakReferenceHandler(this); private LightViewModel lightViewModel; - private LightResultAdapter adapter; + private NormalRecyclerAdapter adapter; private List dataBeans = new ArrayList<>(); private int pageIndex = 1; private boolean isRefresh, isLoadMore = false; @@ -50,7 +54,7 @@ @Override protected void initOnCreate(@Nullable Bundle savedInstanceState) { lightViewModel = new ViewModelProvider(this).get(LightViewModel.class); - getLightList(); + lightViewModel.getLightList(pageIndex); } @Override @@ -67,10 +71,6 @@ }); } - private void getLightList() { - lightViewModel.getLightList(LocaleConstant.PAGE_LIMIT, pageIndex); - } - @Override protected void initEvent() { getBinding().refreshLayout.setOnRefreshListener(new OnRefreshListener() { @@ -79,7 +79,7 @@ isRefresh = true; //刷新之后页码重置 pageIndex = 1; - getLightList(); + lightViewModel.getLightList(pageIndex); } }); getBinding().refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() { @@ -87,7 +87,7 @@ public void onLoadMore(@NonNull final RefreshLayout refreshLayout) { isLoadMore = true; pageIndex++; - getLightList(); + lightViewModel.getLightList(pageIndex); } }); @@ -97,21 +97,20 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题 - dataBeans = dataRows; + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - dataBeans.addAll(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { dataBeans = dataRows; + weakReferenceHandler.sendEmptyMessage(20210623); } - weakReferenceHandler.sendEmptyMessage(20210623); } } }); @@ -138,54 +137,67 @@ @Override public boolean handleMessage(@NonNull Message msg) { if (msg.what == 20210623) { - if (isRefresh || isLoadMore) { - adapter.notifyItemRangeInserted(adapter.getItemCount(), LocaleConstant.PAGE_LIMIT); + //首次加载数据 + if (dataBeans.size() == 0) { + getBinding().emptyView.show("没有路灯数据", null); } else { - //首次加载数据 - if (dataBeans.size() == 0) { - getBinding().emptyView.show("没有路灯数据", null); - } else { - getBinding().emptyView.hide(); - adapter = new LightResultAdapter(requireContext(), dataBeans); - getBinding().recyclerView.addItemDecoration(new RecyclerViewItemDivider(1, Color.LTGRAY)); - getBinding().recyclerView.setAdapter(adapter); - adapter.setOnGridItemClickListener(new LightResultAdapter.OnGridItemClickListener() { - @Override - public void onClick(int position) { - String lampId = dataBeans.get(position).getLampId(); - if (TextUtils.isEmpty(lampId)) { - StringKit.show(requireContext(), "错误,路灯编号为空"); - return; - } + getBinding().emptyView.hide(); + adapter = new NormalRecyclerAdapter(R.layout.item_light_recycleview, dataBeans) { + @Override + public void convertView(ViewHolder viewHolder, int position, LightListBean.DataBean.RowsBean item) { + String statusName = item.getStatusName(); + viewHolder.setText(R.id.lightNameView, item.getLampName()) + .setText(R.id.lightStatusView, "已" + statusName); - lightViewModel.getLightDetail(requireContext(), lampId); + CardView statueTagView = viewHolder.getView(R.id.statueTagView); + if (statusName.equals("灭灯")) { + viewHolder.setImageResource(R.id.lightSwitch, R.drawable.ic_switch_off); + statueTagView.setCardBackgroundColor(IntKit.convertColor(requireContext(), R.color.darkGray)); + } else if (statusName.equals("报警")) { + viewHolder.setImageResource(R.id.lightSwitch, R.drawable.ic_switch_warning); + statueTagView.setCardBackgroundColor(IntKit.convertColor(requireContext(), R.color.warnColor)); + } else { + viewHolder.setImageResource(R.id.lightSwitch, R.drawable.ic_switch_on); + statueTagView.setCardBackgroundColor(IntKit.convertColor(requireContext(), R.color.onLineColor)); } - }); - adapter.setOnSwitchClickListener(new LightResultAdapter.OnSwitchClickListener() { - @Override - public void onClick(int position) { - LightListBean.DataBean.RowsBean rowsBean = dataBeans.get(position); + viewHolder.setOnClickListener(R.id.lightSwitch, new View.OnClickListener() { + @Override + public void onClick(View v) { + List lampIds = new ArrayList<>(); + lampIds.add(Long.parseLong(item.getLampId())); - List lampIds = new ArrayList<>(); - lampIds.add(Long.parseLong(rowsBean.getLampId())); - - String statusName = rowsBean.getStatusName(); - String controlType; - if (statusName.equals("离线")) { - controlType = "1"; - } else { - controlType = "0"; + String statusName = item.getStatusName(); + String controlType; + if (statusName.equals("灭灯")) { + controlType = "1"; + } else { + controlType = "0"; + } + lightViewModel.controlLight(requireContext(), lampIds, controlType); } - lightViewModel.controlLight(requireContext(), lampIds, controlType); + }); + } + }; + getBinding().recyclerView.addItemDecoration(new RecyclerViewItemDivider(1, Color.LTGRAY)); + getBinding().recyclerView.setAdapter(adapter); + adapter.setOnItemClickedListener(new NormalRecyclerAdapter.OnItemClickedListener() { + @Override + public void onItemClicked(int position, LightListBean.DataBean.RowsBean rowsBean) { + String lampId = rowsBean.getLampId(); + if (TextUtils.isEmpty(lampId)) { + StringKit.show(requireContext(), "错误,路灯编号为空"); + return; } - }); - } + + lightViewModel.getLightDetail(requireContext(), lampId); + } + }); } } else if (msg.what == 20210624) { isRefresh = true; pageIndex = 1; - lightViewModel.getLightList(LocaleConstant.PAGE_LIMIT, pageIndex); + lightViewModel.getLightList(pageIndex); } return true; } diff --git a/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java index 64791dd..8f872db 100644 --- a/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java @@ -6,12 +6,12 @@ import androidx.annotation.Nullable; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.bean.NoticeLocaleBean; import com.casic.dcms.databinding.FragmentNoticeBinding; import com.casic.dcms.utils.DataBaseManager; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.CaseDetailActivity; -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.kit.ContextKit; diff --git a/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java b/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java index 5980aaf..93ab96c 100644 --- a/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java @@ -87,14 +87,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/business/PackageTodoFragment.java b/app/src/main/java/com/casic/dcms/fragment/business/PackageTodoFragment.java index 9f28bbe..1fefd3f 100644 --- a/app/src/main/java/com/casic/dcms/fragment/business/PackageTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/business/PackageTodoFragment.java @@ -88,14 +88,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { 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 816fb8f..62db8ed 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 @@ -12,13 +12,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentCheckCaseBinding; import com.casic.dcms.model.CaseCheckModel; import com.casic.dcms.utils.LocaleConstant; 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.kit.ContextKit; @@ -61,14 +61,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/adapter/LightResultAdapter.java b/app/src/main/java/com/casic/dcms/adapter/LightResultAdapter.java deleted file mode 100644 index 405af6e..0000000 --- a/app/src/main/java/com/casic/dcms/adapter/LightResultAdapter.java +++ /dev/null @@ -1,107 +0,0 @@ -package com.casic.dcms.adapter; - -import android.annotation.SuppressLint; -import android.content.Context; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.ImageView; -import android.widget.TextView; - -import androidx.annotation.NonNull; -import androidx.recyclerview.widget.RecyclerView; - -import com.casic.dcms.R; -import com.casic.dcms.model.LightListBean; - -import java.util.List; - -public class LightResultAdapter extends RecyclerView.Adapter { - - private final List dataBeans; - private final LayoutInflater layoutInflater; - - public LightResultAdapter(Context context, List beans) { - this.dataBeans = beans; - this.layoutInflater = LayoutInflater.from(context); - } - - @NonNull - @Override - public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - return new ItemViewHolder(layoutInflater.inflate(R.layout.item_light_recycleview, parent, false)); - } - - @Override - public void onBindViewHolder(@NonNull LightResultAdapter.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); - } - }); - } - if (switchClickListener != null) { - holder.lightSwitch.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - switchClickListener.onClick(position); - } - }); - } - } - - @Override - public int getItemCount() { - return dataBeans.size(); - } - - private OnGridItemClickListener clickListener; - - public interface OnGridItemClickListener { - void onClick(int position); - } - - public void setOnGridItemClickListener(OnGridItemClickListener onGridItemClickListener) { - this.clickListener = onGridItemClickListener; - } - - private OnSwitchClickListener switchClickListener; - - public interface OnSwitchClickListener { - void onClick(int position); - } - - public void setOnSwitchClickListener(OnSwitchClickListener switchClickListener) { - this.switchClickListener = switchClickListener; - } - - static class ItemViewHolder extends RecyclerView.ViewHolder { - - private final TextView lightNameView; - private final TextView lightStatusView; - private final ImageView lightSwitch; - - ItemViewHolder(@NonNull View itemView) { - super(itemView); - lightNameView = itemView.findViewById(R.id.lightNameView); - lightStatusView = itemView.findViewById(R.id.lightStatusView); - lightSwitch = itemView.findViewById(R.id.lightSwitch); - } - - void bindView(LightListBean.DataBean.RowsBean dataBean) { - lightNameView.setText(dataBean.getLampName()); - String statusName = dataBean.getStatusName(); - lightStatusView.setText(statusName); - if (statusName.equals("灭灯")) { - lightSwitch.setBackgroundResource(R.drawable.ic_switch_off); - } else if (statusName.equals("报警")) { - lightSwitch.setBackgroundResource(R.drawable.ic_switch_warning); - } else { - lightSwitch.setBackgroundResource(R.drawable.ic_switch_on); - } - } - } -} diff --git a/app/src/main/java/com/casic/dcms/adapter/NormalRecyclerAdapter.java b/app/src/main/java/com/casic/dcms/adapter/NormalRecyclerAdapter.java new file mode 100644 index 0000000..c80e2d5 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/adapter/NormalRecyclerAdapter.java @@ -0,0 +1,134 @@ +package com.casic.dcms.adapter; + +import android.annotation.SuppressLint; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import androidx.annotation.LayoutRes; +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.DiffUtil; +import androidx.recyclerview.widget.RecyclerView; + +import com.pengxh.androidx.lite.adapter.ViewHolder; + +import java.util.List; + +/** + * RecyclerView普通列表适配器 + */ +public abstract class NormalRecyclerAdapter extends RecyclerView.Adapter { + + private static final String TAG = "NormalRecyclerAdapter"; + private final int xmlResource; + private final List dataRows; + + public NormalRecyclerAdapter(@LayoutRes int xmlResource, List dataRows) { + this.xmlResource = xmlResource; + this.dataRows = dataRows; + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + @NonNull + @Override + public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + return new ViewHolder(LayoutInflater.from(parent.getContext()).inflate(xmlResource, parent, false)); + } + + @Override + public void onBindViewHolder(@NonNull ViewHolder holder, @SuppressLint("RecyclerView") int position) { + convertView(holder, position, dataRows.get(position)); + + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (itemClickedListener == null) { + return; + } + itemClickedListener.onItemClicked(position, dataRows.get(position)); + } + }); + } + + public void refresh(List newRows) { + DiffUtil.Callback diffCallback = new DiffUtil.Callback() { + + @Override + public int getOldListSize() { + return dataRows.size(); + } + + @Override + public int getNewListSize() { + return newRows.size(); + } + + @Override + public boolean areItemsTheSame(int oldItemPosition, int newItemPosition) { + if (dataRows == null || newRows == null) { + return false; + } + + // 检查索引是否在有效范围内 + if (oldItemPosition < 0 || oldItemPosition >= dataRows.size() || + newItemPosition < 0 || newItemPosition >= newRows.size()) { + return false; + } + + // 获取元素并进行比较 + Object oldItem = dataRows.get(oldItemPosition); + Object newItem = newRows.get(newItemPosition); + + // 处理空指针情况 + if (oldItem == null && newItem == null) { + return true; + } + if (oldItem == null || newItem == null) { + return false; + } + + return oldItem.equals(newItem); + } + + @Override + public boolean areContentsTheSame(int oldItemPosition, int newItemPosition) { + return dataRows.get(oldItemPosition) == newRows.get(newItemPosition); + } + }; + + DiffUtil.DiffResult diffResult = DiffUtil.calculateDiff(diffCallback); + + dataRows.clear(); + dataRows.addAll(newRows); + + diffResult.dispatchUpdatesTo(this); + } + + /** + * 加载更多 + */ + public void loadMore(List newRows) { + if (newRows.isEmpty()) { + return; + } + int startPosition = this.dataRows.size(); + this.dataRows.addAll(newRows); + notifyItemRangeInserted(startPosition, newRows.size()); + } + + public abstract void convertView(ViewHolder viewHolder, int position, T item); + + private OnItemClickedListener itemClickedListener; + + public interface OnItemClickedListener { + void onItemClicked(int position, T t); + } + + public void setOnItemClickedListener(OnItemClickedListener listener) { + itemClickedListener = listener; + } +} diff --git a/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java b/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java index 1deb066..80f7b98 100644 --- a/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java @@ -58,13 +58,13 @@ } @SuppressLint("NotifyDataSetChanged") - public void setRefreshData(List dataRows) { + public void refresh(List dataRows) { this.dataRows.clear(); this.dataRows.addAll(dataRows); notifyDataSetChanged(); } - public void setLoadMoreData(List dataRows) { + public void loadMore(List dataRows) { this.dataRows.addAll(dataRows); notifyItemRangeInserted(this.dataRows.size(), dataRows.size()); } diff --git a/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java index 3535c40..bd5e484 100644 --- a/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java @@ -10,6 +10,7 @@ import com.bumptech.glide.Glide; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentHomeBinding; import com.casic.dcms.model.HomePageBean; import com.casic.dcms.model.UserBean; @@ -36,7 +37,6 @@ import com.casic.dcms.view.verify.VerifyCaseActivity; import com.casic.dcms.vm.HomePageViewModel; import com.casic.dcms.vm.UserViewModel; -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.kit.LongKit; diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java index 0d2926f..a9cc331 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java @@ -5,22 +5,26 @@ import android.os.Handler; import android.os.Message; import android.text.TextUtils; +import android.view.View; import androidx.annotation.NonNull; import androidx.annotation.Nullable; +import androidx.cardview.widget.CardView; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; -import com.casic.dcms.adapter.LightResultAdapter; +import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentLightListBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightDetailBean; import com.casic.dcms.model.LightListBean; -import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.vm.LightViewModel; import com.casic.dcms.widgets.LightDetailDialog; +import com.pengxh.androidx.lite.adapter.ViewHolder; import com.pengxh.androidx.lite.base.AndroidxBaseFragment; import com.pengxh.androidx.lite.divider.RecyclerViewItemDivider; +import com.pengxh.androidx.lite.kit.IntKit; import com.pengxh.androidx.lite.kit.StringKit; import com.pengxh.androidx.lite.utils.LoadState; import com.pengxh.androidx.lite.utils.LoadingDialog; @@ -37,7 +41,7 @@ private static final String TAG = "LightOnListFragment"; private final WeakReferenceHandler weakReferenceHandler = new WeakReferenceHandler(this); private LightViewModel lightViewModel; - private LightResultAdapter adapter; + private NormalRecyclerAdapter adapter; private List dataBeans = new ArrayList<>(); private int pageIndex = 1; private boolean isRefresh, isLoadMore = false; @@ -50,7 +54,7 @@ @Override protected void initOnCreate(@Nullable Bundle savedInstanceState) { lightViewModel = new ViewModelProvider(this).get(LightViewModel.class); - getLightList(); + lightViewModel.getLightList(pageIndex); } @Override @@ -67,10 +71,6 @@ }); } - private void getLightList() { - lightViewModel.getLightList(LocaleConstant.PAGE_LIMIT, pageIndex); - } - @Override protected void initEvent() { getBinding().refreshLayout.setOnRefreshListener(new OnRefreshListener() { @@ -79,7 +79,7 @@ isRefresh = true; //刷新之后页码重置 pageIndex = 1; - getLightList(); + lightViewModel.getLightList(pageIndex); } }); getBinding().refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() { @@ -87,7 +87,7 @@ public void onLoadMore(@NonNull final RefreshLayout refreshLayout) { isLoadMore = true; pageIndex++; - getLightList(); + lightViewModel.getLightList(pageIndex); } }); @@ -97,21 +97,20 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题 - dataBeans = dataRows; + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - dataBeans.addAll(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { dataBeans = dataRows; + weakReferenceHandler.sendEmptyMessage(20210623); } - weakReferenceHandler.sendEmptyMessage(20210623); } } }); @@ -138,54 +137,67 @@ @Override public boolean handleMessage(@NonNull Message msg) { if (msg.what == 20210623) { - if (isRefresh || isLoadMore) { - adapter.notifyItemRangeInserted(adapter.getItemCount(), LocaleConstant.PAGE_LIMIT); + //首次加载数据 + if (dataBeans.size() == 0) { + getBinding().emptyView.show("没有路灯数据", null); } else { - //首次加载数据 - if (dataBeans.size() == 0) { - getBinding().emptyView.show("没有路灯数据", null); - } else { - getBinding().emptyView.hide(); - adapter = new LightResultAdapter(requireContext(), dataBeans); - getBinding().recyclerView.addItemDecoration(new RecyclerViewItemDivider(1, Color.LTGRAY)); - getBinding().recyclerView.setAdapter(adapter); - adapter.setOnGridItemClickListener(new LightResultAdapter.OnGridItemClickListener() { - @Override - public void onClick(int position) { - String lampId = dataBeans.get(position).getLampId(); - if (TextUtils.isEmpty(lampId)) { - StringKit.show(requireContext(), "错误,路灯编号为空"); - return; - } + getBinding().emptyView.hide(); + adapter = new NormalRecyclerAdapter(R.layout.item_light_recycleview, dataBeans) { + @Override + public void convertView(ViewHolder viewHolder, int position, LightListBean.DataBean.RowsBean item) { + String statusName = item.getStatusName(); + viewHolder.setText(R.id.lightNameView, item.getLampName()) + .setText(R.id.lightStatusView, "已" + statusName); - lightViewModel.getLightDetail(requireContext(), lampId); + CardView statueTagView = viewHolder.getView(R.id.statueTagView); + if (statusName.equals("灭灯")) { + viewHolder.setImageResource(R.id.lightSwitch, R.drawable.ic_switch_off); + statueTagView.setCardBackgroundColor(IntKit.convertColor(requireContext(), R.color.darkGray)); + } else if (statusName.equals("报警")) { + viewHolder.setImageResource(R.id.lightSwitch, R.drawable.ic_switch_warning); + statueTagView.setCardBackgroundColor(IntKit.convertColor(requireContext(), R.color.warnColor)); + } else { + viewHolder.setImageResource(R.id.lightSwitch, R.drawable.ic_switch_on); + statueTagView.setCardBackgroundColor(IntKit.convertColor(requireContext(), R.color.onLineColor)); } - }); - adapter.setOnSwitchClickListener(new LightResultAdapter.OnSwitchClickListener() { - @Override - public void onClick(int position) { - LightListBean.DataBean.RowsBean rowsBean = dataBeans.get(position); + viewHolder.setOnClickListener(R.id.lightSwitch, new View.OnClickListener() { + @Override + public void onClick(View v) { + List lampIds = new ArrayList<>(); + lampIds.add(Long.parseLong(item.getLampId())); - List lampIds = new ArrayList<>(); - lampIds.add(Long.parseLong(rowsBean.getLampId())); - - String statusName = rowsBean.getStatusName(); - String controlType; - if (statusName.equals("离线")) { - controlType = "1"; - } else { - controlType = "0"; + String statusName = item.getStatusName(); + String controlType; + if (statusName.equals("灭灯")) { + controlType = "1"; + } else { + controlType = "0"; + } + lightViewModel.controlLight(requireContext(), lampIds, controlType); } - lightViewModel.controlLight(requireContext(), lampIds, controlType); + }); + } + }; + getBinding().recyclerView.addItemDecoration(new RecyclerViewItemDivider(1, Color.LTGRAY)); + getBinding().recyclerView.setAdapter(adapter); + adapter.setOnItemClickedListener(new NormalRecyclerAdapter.OnItemClickedListener() { + @Override + public void onItemClicked(int position, LightListBean.DataBean.RowsBean rowsBean) { + String lampId = rowsBean.getLampId(); + if (TextUtils.isEmpty(lampId)) { + StringKit.show(requireContext(), "错误,路灯编号为空"); + return; } - }); - } + + lightViewModel.getLightDetail(requireContext(), lampId); + } + }); } } else if (msg.what == 20210624) { isRefresh = true; pageIndex = 1; - lightViewModel.getLightList(LocaleConstant.PAGE_LIMIT, pageIndex); + lightViewModel.getLightList(pageIndex); } return true; } diff --git a/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java index 64791dd..8f872db 100644 --- a/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java @@ -6,12 +6,12 @@ import androidx.annotation.Nullable; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.bean.NoticeLocaleBean; import com.casic.dcms.databinding.FragmentNoticeBinding; import com.casic.dcms.utils.DataBaseManager; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.CaseDetailActivity; -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.kit.ContextKit; diff --git a/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java b/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java index 5980aaf..93ab96c 100644 --- a/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java @@ -87,14 +87,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/business/PackageTodoFragment.java b/app/src/main/java/com/casic/dcms/fragment/business/PackageTodoFragment.java index 9f28bbe..1fefd3f 100644 --- a/app/src/main/java/com/casic/dcms/fragment/business/PackageTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/business/PackageTodoFragment.java @@ -88,14 +88,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { 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 816fb8f..62db8ed 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 @@ -12,13 +12,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentCheckCaseBinding; import com.casic.dcms.model.CaseCheckModel; import com.casic.dcms.utils.LocaleConstant; 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.kit.ContextKit; @@ -61,14 +61,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { 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 e472cd6..27f60a2 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 @@ -12,13 +12,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentCheckCaseBinding; import com.casic.dcms.model.CaseCheckModel; import com.casic.dcms.utils.LocaleConstant; 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.kit.ContextKit; @@ -62,14 +62,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/adapter/LightResultAdapter.java b/app/src/main/java/com/casic/dcms/adapter/LightResultAdapter.java deleted file mode 100644 index 405af6e..0000000 --- a/app/src/main/java/com/casic/dcms/adapter/LightResultAdapter.java +++ /dev/null @@ -1,107 +0,0 @@ -package com.casic.dcms.adapter; - -import android.annotation.SuppressLint; -import android.content.Context; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.ImageView; -import android.widget.TextView; - -import androidx.annotation.NonNull; -import androidx.recyclerview.widget.RecyclerView; - -import com.casic.dcms.R; -import com.casic.dcms.model.LightListBean; - -import java.util.List; - -public class LightResultAdapter extends RecyclerView.Adapter { - - private final List dataBeans; - private final LayoutInflater layoutInflater; - - public LightResultAdapter(Context context, List beans) { - this.dataBeans = beans; - this.layoutInflater = LayoutInflater.from(context); - } - - @NonNull - @Override - public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - return new ItemViewHolder(layoutInflater.inflate(R.layout.item_light_recycleview, parent, false)); - } - - @Override - public void onBindViewHolder(@NonNull LightResultAdapter.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); - } - }); - } - if (switchClickListener != null) { - holder.lightSwitch.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - switchClickListener.onClick(position); - } - }); - } - } - - @Override - public int getItemCount() { - return dataBeans.size(); - } - - private OnGridItemClickListener clickListener; - - public interface OnGridItemClickListener { - void onClick(int position); - } - - public void setOnGridItemClickListener(OnGridItemClickListener onGridItemClickListener) { - this.clickListener = onGridItemClickListener; - } - - private OnSwitchClickListener switchClickListener; - - public interface OnSwitchClickListener { - void onClick(int position); - } - - public void setOnSwitchClickListener(OnSwitchClickListener switchClickListener) { - this.switchClickListener = switchClickListener; - } - - static class ItemViewHolder extends RecyclerView.ViewHolder { - - private final TextView lightNameView; - private final TextView lightStatusView; - private final ImageView lightSwitch; - - ItemViewHolder(@NonNull View itemView) { - super(itemView); - lightNameView = itemView.findViewById(R.id.lightNameView); - lightStatusView = itemView.findViewById(R.id.lightStatusView); - lightSwitch = itemView.findViewById(R.id.lightSwitch); - } - - void bindView(LightListBean.DataBean.RowsBean dataBean) { - lightNameView.setText(dataBean.getLampName()); - String statusName = dataBean.getStatusName(); - lightStatusView.setText(statusName); - if (statusName.equals("灭灯")) { - lightSwitch.setBackgroundResource(R.drawable.ic_switch_off); - } else if (statusName.equals("报警")) { - lightSwitch.setBackgroundResource(R.drawable.ic_switch_warning); - } else { - lightSwitch.setBackgroundResource(R.drawable.ic_switch_on); - } - } - } -} diff --git a/app/src/main/java/com/casic/dcms/adapter/NormalRecyclerAdapter.java b/app/src/main/java/com/casic/dcms/adapter/NormalRecyclerAdapter.java new file mode 100644 index 0000000..c80e2d5 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/adapter/NormalRecyclerAdapter.java @@ -0,0 +1,134 @@ +package com.casic.dcms.adapter; + +import android.annotation.SuppressLint; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import androidx.annotation.LayoutRes; +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.DiffUtil; +import androidx.recyclerview.widget.RecyclerView; + +import com.pengxh.androidx.lite.adapter.ViewHolder; + +import java.util.List; + +/** + * RecyclerView普通列表适配器 + */ +public abstract class NormalRecyclerAdapter extends RecyclerView.Adapter { + + private static final String TAG = "NormalRecyclerAdapter"; + private final int xmlResource; + private final List dataRows; + + public NormalRecyclerAdapter(@LayoutRes int xmlResource, List dataRows) { + this.xmlResource = xmlResource; + this.dataRows = dataRows; + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + @NonNull + @Override + public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + return new ViewHolder(LayoutInflater.from(parent.getContext()).inflate(xmlResource, parent, false)); + } + + @Override + public void onBindViewHolder(@NonNull ViewHolder holder, @SuppressLint("RecyclerView") int position) { + convertView(holder, position, dataRows.get(position)); + + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (itemClickedListener == null) { + return; + } + itemClickedListener.onItemClicked(position, dataRows.get(position)); + } + }); + } + + public void refresh(List newRows) { + DiffUtil.Callback diffCallback = new DiffUtil.Callback() { + + @Override + public int getOldListSize() { + return dataRows.size(); + } + + @Override + public int getNewListSize() { + return newRows.size(); + } + + @Override + public boolean areItemsTheSame(int oldItemPosition, int newItemPosition) { + if (dataRows == null || newRows == null) { + return false; + } + + // 检查索引是否在有效范围内 + if (oldItemPosition < 0 || oldItemPosition >= dataRows.size() || + newItemPosition < 0 || newItemPosition >= newRows.size()) { + return false; + } + + // 获取元素并进行比较 + Object oldItem = dataRows.get(oldItemPosition); + Object newItem = newRows.get(newItemPosition); + + // 处理空指针情况 + if (oldItem == null && newItem == null) { + return true; + } + if (oldItem == null || newItem == null) { + return false; + } + + return oldItem.equals(newItem); + } + + @Override + public boolean areContentsTheSame(int oldItemPosition, int newItemPosition) { + return dataRows.get(oldItemPosition) == newRows.get(newItemPosition); + } + }; + + DiffUtil.DiffResult diffResult = DiffUtil.calculateDiff(diffCallback); + + dataRows.clear(); + dataRows.addAll(newRows); + + diffResult.dispatchUpdatesTo(this); + } + + /** + * 加载更多 + */ + public void loadMore(List newRows) { + if (newRows.isEmpty()) { + return; + } + int startPosition = this.dataRows.size(); + this.dataRows.addAll(newRows); + notifyItemRangeInserted(startPosition, newRows.size()); + } + + public abstract void convertView(ViewHolder viewHolder, int position, T item); + + private OnItemClickedListener itemClickedListener; + + public interface OnItemClickedListener { + void onItemClicked(int position, T t); + } + + public void setOnItemClickedListener(OnItemClickedListener listener) { + itemClickedListener = listener; + } +} diff --git a/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java b/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java index 1deb066..80f7b98 100644 --- a/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java @@ -58,13 +58,13 @@ } @SuppressLint("NotifyDataSetChanged") - public void setRefreshData(List dataRows) { + public void refresh(List dataRows) { this.dataRows.clear(); this.dataRows.addAll(dataRows); notifyDataSetChanged(); } - public void setLoadMoreData(List dataRows) { + public void loadMore(List dataRows) { this.dataRows.addAll(dataRows); notifyItemRangeInserted(this.dataRows.size(), dataRows.size()); } diff --git a/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java index 3535c40..bd5e484 100644 --- a/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java @@ -10,6 +10,7 @@ import com.bumptech.glide.Glide; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentHomeBinding; import com.casic.dcms.model.HomePageBean; import com.casic.dcms.model.UserBean; @@ -36,7 +37,6 @@ import com.casic.dcms.view.verify.VerifyCaseActivity; import com.casic.dcms.vm.HomePageViewModel; import com.casic.dcms.vm.UserViewModel; -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.kit.LongKit; diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java index 0d2926f..a9cc331 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java @@ -5,22 +5,26 @@ import android.os.Handler; import android.os.Message; import android.text.TextUtils; +import android.view.View; import androidx.annotation.NonNull; import androidx.annotation.Nullable; +import androidx.cardview.widget.CardView; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; -import com.casic.dcms.adapter.LightResultAdapter; +import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentLightListBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightDetailBean; import com.casic.dcms.model.LightListBean; -import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.vm.LightViewModel; import com.casic.dcms.widgets.LightDetailDialog; +import com.pengxh.androidx.lite.adapter.ViewHolder; import com.pengxh.androidx.lite.base.AndroidxBaseFragment; import com.pengxh.androidx.lite.divider.RecyclerViewItemDivider; +import com.pengxh.androidx.lite.kit.IntKit; import com.pengxh.androidx.lite.kit.StringKit; import com.pengxh.androidx.lite.utils.LoadState; import com.pengxh.androidx.lite.utils.LoadingDialog; @@ -37,7 +41,7 @@ private static final String TAG = "LightOnListFragment"; private final WeakReferenceHandler weakReferenceHandler = new WeakReferenceHandler(this); private LightViewModel lightViewModel; - private LightResultAdapter adapter; + private NormalRecyclerAdapter adapter; private List dataBeans = new ArrayList<>(); private int pageIndex = 1; private boolean isRefresh, isLoadMore = false; @@ -50,7 +54,7 @@ @Override protected void initOnCreate(@Nullable Bundle savedInstanceState) { lightViewModel = new ViewModelProvider(this).get(LightViewModel.class); - getLightList(); + lightViewModel.getLightList(pageIndex); } @Override @@ -67,10 +71,6 @@ }); } - private void getLightList() { - lightViewModel.getLightList(LocaleConstant.PAGE_LIMIT, pageIndex); - } - @Override protected void initEvent() { getBinding().refreshLayout.setOnRefreshListener(new OnRefreshListener() { @@ -79,7 +79,7 @@ isRefresh = true; //刷新之后页码重置 pageIndex = 1; - getLightList(); + lightViewModel.getLightList(pageIndex); } }); getBinding().refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() { @@ -87,7 +87,7 @@ public void onLoadMore(@NonNull final RefreshLayout refreshLayout) { isLoadMore = true; pageIndex++; - getLightList(); + lightViewModel.getLightList(pageIndex); } }); @@ -97,21 +97,20 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题 - dataBeans = dataRows; + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - dataBeans.addAll(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { dataBeans = dataRows; + weakReferenceHandler.sendEmptyMessage(20210623); } - weakReferenceHandler.sendEmptyMessage(20210623); } } }); @@ -138,54 +137,67 @@ @Override public boolean handleMessage(@NonNull Message msg) { if (msg.what == 20210623) { - if (isRefresh || isLoadMore) { - adapter.notifyItemRangeInserted(adapter.getItemCount(), LocaleConstant.PAGE_LIMIT); + //首次加载数据 + if (dataBeans.size() == 0) { + getBinding().emptyView.show("没有路灯数据", null); } else { - //首次加载数据 - if (dataBeans.size() == 0) { - getBinding().emptyView.show("没有路灯数据", null); - } else { - getBinding().emptyView.hide(); - adapter = new LightResultAdapter(requireContext(), dataBeans); - getBinding().recyclerView.addItemDecoration(new RecyclerViewItemDivider(1, Color.LTGRAY)); - getBinding().recyclerView.setAdapter(adapter); - adapter.setOnGridItemClickListener(new LightResultAdapter.OnGridItemClickListener() { - @Override - public void onClick(int position) { - String lampId = dataBeans.get(position).getLampId(); - if (TextUtils.isEmpty(lampId)) { - StringKit.show(requireContext(), "错误,路灯编号为空"); - return; - } + getBinding().emptyView.hide(); + adapter = new NormalRecyclerAdapter(R.layout.item_light_recycleview, dataBeans) { + @Override + public void convertView(ViewHolder viewHolder, int position, LightListBean.DataBean.RowsBean item) { + String statusName = item.getStatusName(); + viewHolder.setText(R.id.lightNameView, item.getLampName()) + .setText(R.id.lightStatusView, "已" + statusName); - lightViewModel.getLightDetail(requireContext(), lampId); + CardView statueTagView = viewHolder.getView(R.id.statueTagView); + if (statusName.equals("灭灯")) { + viewHolder.setImageResource(R.id.lightSwitch, R.drawable.ic_switch_off); + statueTagView.setCardBackgroundColor(IntKit.convertColor(requireContext(), R.color.darkGray)); + } else if (statusName.equals("报警")) { + viewHolder.setImageResource(R.id.lightSwitch, R.drawable.ic_switch_warning); + statueTagView.setCardBackgroundColor(IntKit.convertColor(requireContext(), R.color.warnColor)); + } else { + viewHolder.setImageResource(R.id.lightSwitch, R.drawable.ic_switch_on); + statueTagView.setCardBackgroundColor(IntKit.convertColor(requireContext(), R.color.onLineColor)); } - }); - adapter.setOnSwitchClickListener(new LightResultAdapter.OnSwitchClickListener() { - @Override - public void onClick(int position) { - LightListBean.DataBean.RowsBean rowsBean = dataBeans.get(position); + viewHolder.setOnClickListener(R.id.lightSwitch, new View.OnClickListener() { + @Override + public void onClick(View v) { + List lampIds = new ArrayList<>(); + lampIds.add(Long.parseLong(item.getLampId())); - List lampIds = new ArrayList<>(); - lampIds.add(Long.parseLong(rowsBean.getLampId())); - - String statusName = rowsBean.getStatusName(); - String controlType; - if (statusName.equals("离线")) { - controlType = "1"; - } else { - controlType = "0"; + String statusName = item.getStatusName(); + String controlType; + if (statusName.equals("灭灯")) { + controlType = "1"; + } else { + controlType = "0"; + } + lightViewModel.controlLight(requireContext(), lampIds, controlType); } - lightViewModel.controlLight(requireContext(), lampIds, controlType); + }); + } + }; + getBinding().recyclerView.addItemDecoration(new RecyclerViewItemDivider(1, Color.LTGRAY)); + getBinding().recyclerView.setAdapter(adapter); + adapter.setOnItemClickedListener(new NormalRecyclerAdapter.OnItemClickedListener() { + @Override + public void onItemClicked(int position, LightListBean.DataBean.RowsBean rowsBean) { + String lampId = rowsBean.getLampId(); + if (TextUtils.isEmpty(lampId)) { + StringKit.show(requireContext(), "错误,路灯编号为空"); + return; } - }); - } + + lightViewModel.getLightDetail(requireContext(), lampId); + } + }); } } else if (msg.what == 20210624) { isRefresh = true; pageIndex = 1; - lightViewModel.getLightList(LocaleConstant.PAGE_LIMIT, pageIndex); + lightViewModel.getLightList(pageIndex); } return true; } diff --git a/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java index 64791dd..8f872db 100644 --- a/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java @@ -6,12 +6,12 @@ import androidx.annotation.Nullable; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.bean.NoticeLocaleBean; import com.casic.dcms.databinding.FragmentNoticeBinding; import com.casic.dcms.utils.DataBaseManager; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.CaseDetailActivity; -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.kit.ContextKit; diff --git a/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java b/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java index 5980aaf..93ab96c 100644 --- a/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java @@ -87,14 +87,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/business/PackageTodoFragment.java b/app/src/main/java/com/casic/dcms/fragment/business/PackageTodoFragment.java index 9f28bbe..1fefd3f 100644 --- a/app/src/main/java/com/casic/dcms/fragment/business/PackageTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/business/PackageTodoFragment.java @@ -88,14 +88,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { 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 816fb8f..62db8ed 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 @@ -12,13 +12,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentCheckCaseBinding; import com.casic.dcms.model.CaseCheckModel; import com.casic.dcms.utils.LocaleConstant; 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.kit.ContextKit; @@ -61,14 +61,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { 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 e472cd6..27f60a2 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 @@ -12,13 +12,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentCheckCaseBinding; import com.casic.dcms.model.CaseCheckModel; import com.casic.dcms.utils.LocaleConstant; 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.kit.ContextKit; @@ -62,14 +62,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAdjustFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAdjustFragment.java index 23a4f8e..fdee789 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAdjustFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAdjustFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.AdjustCaseModel; import com.casic.dcms.view.department.DeptAdjustDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -57,14 +57,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/adapter/LightResultAdapter.java b/app/src/main/java/com/casic/dcms/adapter/LightResultAdapter.java deleted file mode 100644 index 405af6e..0000000 --- a/app/src/main/java/com/casic/dcms/adapter/LightResultAdapter.java +++ /dev/null @@ -1,107 +0,0 @@ -package com.casic.dcms.adapter; - -import android.annotation.SuppressLint; -import android.content.Context; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.ImageView; -import android.widget.TextView; - -import androidx.annotation.NonNull; -import androidx.recyclerview.widget.RecyclerView; - -import com.casic.dcms.R; -import com.casic.dcms.model.LightListBean; - -import java.util.List; - -public class LightResultAdapter extends RecyclerView.Adapter { - - private final List dataBeans; - private final LayoutInflater layoutInflater; - - public LightResultAdapter(Context context, List beans) { - this.dataBeans = beans; - this.layoutInflater = LayoutInflater.from(context); - } - - @NonNull - @Override - public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - return new ItemViewHolder(layoutInflater.inflate(R.layout.item_light_recycleview, parent, false)); - } - - @Override - public void onBindViewHolder(@NonNull LightResultAdapter.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); - } - }); - } - if (switchClickListener != null) { - holder.lightSwitch.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - switchClickListener.onClick(position); - } - }); - } - } - - @Override - public int getItemCount() { - return dataBeans.size(); - } - - private OnGridItemClickListener clickListener; - - public interface OnGridItemClickListener { - void onClick(int position); - } - - public void setOnGridItemClickListener(OnGridItemClickListener onGridItemClickListener) { - this.clickListener = onGridItemClickListener; - } - - private OnSwitchClickListener switchClickListener; - - public interface OnSwitchClickListener { - void onClick(int position); - } - - public void setOnSwitchClickListener(OnSwitchClickListener switchClickListener) { - this.switchClickListener = switchClickListener; - } - - static class ItemViewHolder extends RecyclerView.ViewHolder { - - private final TextView lightNameView; - private final TextView lightStatusView; - private final ImageView lightSwitch; - - ItemViewHolder(@NonNull View itemView) { - super(itemView); - lightNameView = itemView.findViewById(R.id.lightNameView); - lightStatusView = itemView.findViewById(R.id.lightStatusView); - lightSwitch = itemView.findViewById(R.id.lightSwitch); - } - - void bindView(LightListBean.DataBean.RowsBean dataBean) { - lightNameView.setText(dataBean.getLampName()); - String statusName = dataBean.getStatusName(); - lightStatusView.setText(statusName); - if (statusName.equals("灭灯")) { - lightSwitch.setBackgroundResource(R.drawable.ic_switch_off); - } else if (statusName.equals("报警")) { - lightSwitch.setBackgroundResource(R.drawable.ic_switch_warning); - } else { - lightSwitch.setBackgroundResource(R.drawable.ic_switch_on); - } - } - } -} diff --git a/app/src/main/java/com/casic/dcms/adapter/NormalRecyclerAdapter.java b/app/src/main/java/com/casic/dcms/adapter/NormalRecyclerAdapter.java new file mode 100644 index 0000000..c80e2d5 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/adapter/NormalRecyclerAdapter.java @@ -0,0 +1,134 @@ +package com.casic.dcms.adapter; + +import android.annotation.SuppressLint; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import androidx.annotation.LayoutRes; +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.DiffUtil; +import androidx.recyclerview.widget.RecyclerView; + +import com.pengxh.androidx.lite.adapter.ViewHolder; + +import java.util.List; + +/** + * RecyclerView普通列表适配器 + */ +public abstract class NormalRecyclerAdapter extends RecyclerView.Adapter { + + private static final String TAG = "NormalRecyclerAdapter"; + private final int xmlResource; + private final List dataRows; + + public NormalRecyclerAdapter(@LayoutRes int xmlResource, List dataRows) { + this.xmlResource = xmlResource; + this.dataRows = dataRows; + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + @NonNull + @Override + public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + return new ViewHolder(LayoutInflater.from(parent.getContext()).inflate(xmlResource, parent, false)); + } + + @Override + public void onBindViewHolder(@NonNull ViewHolder holder, @SuppressLint("RecyclerView") int position) { + convertView(holder, position, dataRows.get(position)); + + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (itemClickedListener == null) { + return; + } + itemClickedListener.onItemClicked(position, dataRows.get(position)); + } + }); + } + + public void refresh(List newRows) { + DiffUtil.Callback diffCallback = new DiffUtil.Callback() { + + @Override + public int getOldListSize() { + return dataRows.size(); + } + + @Override + public int getNewListSize() { + return newRows.size(); + } + + @Override + public boolean areItemsTheSame(int oldItemPosition, int newItemPosition) { + if (dataRows == null || newRows == null) { + return false; + } + + // 检查索引是否在有效范围内 + if (oldItemPosition < 0 || oldItemPosition >= dataRows.size() || + newItemPosition < 0 || newItemPosition >= newRows.size()) { + return false; + } + + // 获取元素并进行比较 + Object oldItem = dataRows.get(oldItemPosition); + Object newItem = newRows.get(newItemPosition); + + // 处理空指针情况 + if (oldItem == null && newItem == null) { + return true; + } + if (oldItem == null || newItem == null) { + return false; + } + + return oldItem.equals(newItem); + } + + @Override + public boolean areContentsTheSame(int oldItemPosition, int newItemPosition) { + return dataRows.get(oldItemPosition) == newRows.get(newItemPosition); + } + }; + + DiffUtil.DiffResult diffResult = DiffUtil.calculateDiff(diffCallback); + + dataRows.clear(); + dataRows.addAll(newRows); + + diffResult.dispatchUpdatesTo(this); + } + + /** + * 加载更多 + */ + public void loadMore(List newRows) { + if (newRows.isEmpty()) { + return; + } + int startPosition = this.dataRows.size(); + this.dataRows.addAll(newRows); + notifyItemRangeInserted(startPosition, newRows.size()); + } + + public abstract void convertView(ViewHolder viewHolder, int position, T item); + + private OnItemClickedListener itemClickedListener; + + public interface OnItemClickedListener { + void onItemClicked(int position, T t); + } + + public void setOnItemClickedListener(OnItemClickedListener listener) { + itemClickedListener = listener; + } +} diff --git a/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java b/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java index 1deb066..80f7b98 100644 --- a/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java @@ -58,13 +58,13 @@ } @SuppressLint("NotifyDataSetChanged") - public void setRefreshData(List dataRows) { + public void refresh(List dataRows) { this.dataRows.clear(); this.dataRows.addAll(dataRows); notifyDataSetChanged(); } - public void setLoadMoreData(List dataRows) { + public void loadMore(List dataRows) { this.dataRows.addAll(dataRows); notifyItemRangeInserted(this.dataRows.size(), dataRows.size()); } diff --git a/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java index 3535c40..bd5e484 100644 --- a/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java @@ -10,6 +10,7 @@ import com.bumptech.glide.Glide; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentHomeBinding; import com.casic.dcms.model.HomePageBean; import com.casic.dcms.model.UserBean; @@ -36,7 +37,6 @@ import com.casic.dcms.view.verify.VerifyCaseActivity; import com.casic.dcms.vm.HomePageViewModel; import com.casic.dcms.vm.UserViewModel; -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.kit.LongKit; diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java index 0d2926f..a9cc331 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java @@ -5,22 +5,26 @@ import android.os.Handler; import android.os.Message; import android.text.TextUtils; +import android.view.View; import androidx.annotation.NonNull; import androidx.annotation.Nullable; +import androidx.cardview.widget.CardView; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; -import com.casic.dcms.adapter.LightResultAdapter; +import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentLightListBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightDetailBean; import com.casic.dcms.model.LightListBean; -import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.vm.LightViewModel; import com.casic.dcms.widgets.LightDetailDialog; +import com.pengxh.androidx.lite.adapter.ViewHolder; import com.pengxh.androidx.lite.base.AndroidxBaseFragment; import com.pengxh.androidx.lite.divider.RecyclerViewItemDivider; +import com.pengxh.androidx.lite.kit.IntKit; import com.pengxh.androidx.lite.kit.StringKit; import com.pengxh.androidx.lite.utils.LoadState; import com.pengxh.androidx.lite.utils.LoadingDialog; @@ -37,7 +41,7 @@ private static final String TAG = "LightOnListFragment"; private final WeakReferenceHandler weakReferenceHandler = new WeakReferenceHandler(this); private LightViewModel lightViewModel; - private LightResultAdapter adapter; + private NormalRecyclerAdapter adapter; private List dataBeans = new ArrayList<>(); private int pageIndex = 1; private boolean isRefresh, isLoadMore = false; @@ -50,7 +54,7 @@ @Override protected void initOnCreate(@Nullable Bundle savedInstanceState) { lightViewModel = new ViewModelProvider(this).get(LightViewModel.class); - getLightList(); + lightViewModel.getLightList(pageIndex); } @Override @@ -67,10 +71,6 @@ }); } - private void getLightList() { - lightViewModel.getLightList(LocaleConstant.PAGE_LIMIT, pageIndex); - } - @Override protected void initEvent() { getBinding().refreshLayout.setOnRefreshListener(new OnRefreshListener() { @@ -79,7 +79,7 @@ isRefresh = true; //刷新之后页码重置 pageIndex = 1; - getLightList(); + lightViewModel.getLightList(pageIndex); } }); getBinding().refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() { @@ -87,7 +87,7 @@ public void onLoadMore(@NonNull final RefreshLayout refreshLayout) { isLoadMore = true; pageIndex++; - getLightList(); + lightViewModel.getLightList(pageIndex); } }); @@ -97,21 +97,20 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题 - dataBeans = dataRows; + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - dataBeans.addAll(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { dataBeans = dataRows; + weakReferenceHandler.sendEmptyMessage(20210623); } - weakReferenceHandler.sendEmptyMessage(20210623); } } }); @@ -138,54 +137,67 @@ @Override public boolean handleMessage(@NonNull Message msg) { if (msg.what == 20210623) { - if (isRefresh || isLoadMore) { - adapter.notifyItemRangeInserted(adapter.getItemCount(), LocaleConstant.PAGE_LIMIT); + //首次加载数据 + if (dataBeans.size() == 0) { + getBinding().emptyView.show("没有路灯数据", null); } else { - //首次加载数据 - if (dataBeans.size() == 0) { - getBinding().emptyView.show("没有路灯数据", null); - } else { - getBinding().emptyView.hide(); - adapter = new LightResultAdapter(requireContext(), dataBeans); - getBinding().recyclerView.addItemDecoration(new RecyclerViewItemDivider(1, Color.LTGRAY)); - getBinding().recyclerView.setAdapter(adapter); - adapter.setOnGridItemClickListener(new LightResultAdapter.OnGridItemClickListener() { - @Override - public void onClick(int position) { - String lampId = dataBeans.get(position).getLampId(); - if (TextUtils.isEmpty(lampId)) { - StringKit.show(requireContext(), "错误,路灯编号为空"); - return; - } + getBinding().emptyView.hide(); + adapter = new NormalRecyclerAdapter(R.layout.item_light_recycleview, dataBeans) { + @Override + public void convertView(ViewHolder viewHolder, int position, LightListBean.DataBean.RowsBean item) { + String statusName = item.getStatusName(); + viewHolder.setText(R.id.lightNameView, item.getLampName()) + .setText(R.id.lightStatusView, "已" + statusName); - lightViewModel.getLightDetail(requireContext(), lampId); + CardView statueTagView = viewHolder.getView(R.id.statueTagView); + if (statusName.equals("灭灯")) { + viewHolder.setImageResource(R.id.lightSwitch, R.drawable.ic_switch_off); + statueTagView.setCardBackgroundColor(IntKit.convertColor(requireContext(), R.color.darkGray)); + } else if (statusName.equals("报警")) { + viewHolder.setImageResource(R.id.lightSwitch, R.drawable.ic_switch_warning); + statueTagView.setCardBackgroundColor(IntKit.convertColor(requireContext(), R.color.warnColor)); + } else { + viewHolder.setImageResource(R.id.lightSwitch, R.drawable.ic_switch_on); + statueTagView.setCardBackgroundColor(IntKit.convertColor(requireContext(), R.color.onLineColor)); } - }); - adapter.setOnSwitchClickListener(new LightResultAdapter.OnSwitchClickListener() { - @Override - public void onClick(int position) { - LightListBean.DataBean.RowsBean rowsBean = dataBeans.get(position); + viewHolder.setOnClickListener(R.id.lightSwitch, new View.OnClickListener() { + @Override + public void onClick(View v) { + List lampIds = new ArrayList<>(); + lampIds.add(Long.parseLong(item.getLampId())); - List lampIds = new ArrayList<>(); - lampIds.add(Long.parseLong(rowsBean.getLampId())); - - String statusName = rowsBean.getStatusName(); - String controlType; - if (statusName.equals("离线")) { - controlType = "1"; - } else { - controlType = "0"; + String statusName = item.getStatusName(); + String controlType; + if (statusName.equals("灭灯")) { + controlType = "1"; + } else { + controlType = "0"; + } + lightViewModel.controlLight(requireContext(), lampIds, controlType); } - lightViewModel.controlLight(requireContext(), lampIds, controlType); + }); + } + }; + getBinding().recyclerView.addItemDecoration(new RecyclerViewItemDivider(1, Color.LTGRAY)); + getBinding().recyclerView.setAdapter(adapter); + adapter.setOnItemClickedListener(new NormalRecyclerAdapter.OnItemClickedListener() { + @Override + public void onItemClicked(int position, LightListBean.DataBean.RowsBean rowsBean) { + String lampId = rowsBean.getLampId(); + if (TextUtils.isEmpty(lampId)) { + StringKit.show(requireContext(), "错误,路灯编号为空"); + return; } - }); - } + + lightViewModel.getLightDetail(requireContext(), lampId); + } + }); } } else if (msg.what == 20210624) { isRefresh = true; pageIndex = 1; - lightViewModel.getLightList(LocaleConstant.PAGE_LIMIT, pageIndex); + lightViewModel.getLightList(pageIndex); } return true; } diff --git a/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java index 64791dd..8f872db 100644 --- a/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java @@ -6,12 +6,12 @@ import androidx.annotation.Nullable; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.bean.NoticeLocaleBean; import com.casic.dcms.databinding.FragmentNoticeBinding; import com.casic.dcms.utils.DataBaseManager; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.CaseDetailActivity; -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.kit.ContextKit; diff --git a/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java b/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java index 5980aaf..93ab96c 100644 --- a/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java @@ -87,14 +87,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/business/PackageTodoFragment.java b/app/src/main/java/com/casic/dcms/fragment/business/PackageTodoFragment.java index 9f28bbe..1fefd3f 100644 --- a/app/src/main/java/com/casic/dcms/fragment/business/PackageTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/business/PackageTodoFragment.java @@ -88,14 +88,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { 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 816fb8f..62db8ed 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 @@ -12,13 +12,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentCheckCaseBinding; import com.casic.dcms.model.CaseCheckModel; import com.casic.dcms.utils.LocaleConstant; 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.kit.ContextKit; @@ -61,14 +61,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { 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 e472cd6..27f60a2 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 @@ -12,13 +12,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentCheckCaseBinding; import com.casic.dcms.model.CaseCheckModel; import com.casic.dcms.utils.LocaleConstant; 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.kit.ContextKit; @@ -62,14 +62,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAdjustFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAdjustFragment.java index 23a4f8e..fdee789 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAdjustFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAdjustFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.AdjustCaseModel; import com.casic.dcms.view.department.DeptAdjustDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -57,14 +57,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAuthorizeFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAuthorizeFragment.java index f5ba0b0..b5d807e 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAuthorizeFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAuthorizeFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.AuthorizeCaseModel; import com.casic.dcms.view.department.DeptAuthorizeDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -57,14 +57,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/adapter/LightResultAdapter.java b/app/src/main/java/com/casic/dcms/adapter/LightResultAdapter.java deleted file mode 100644 index 405af6e..0000000 --- a/app/src/main/java/com/casic/dcms/adapter/LightResultAdapter.java +++ /dev/null @@ -1,107 +0,0 @@ -package com.casic.dcms.adapter; - -import android.annotation.SuppressLint; -import android.content.Context; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.ImageView; -import android.widget.TextView; - -import androidx.annotation.NonNull; -import androidx.recyclerview.widget.RecyclerView; - -import com.casic.dcms.R; -import com.casic.dcms.model.LightListBean; - -import java.util.List; - -public class LightResultAdapter extends RecyclerView.Adapter { - - private final List dataBeans; - private final LayoutInflater layoutInflater; - - public LightResultAdapter(Context context, List beans) { - this.dataBeans = beans; - this.layoutInflater = LayoutInflater.from(context); - } - - @NonNull - @Override - public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - return new ItemViewHolder(layoutInflater.inflate(R.layout.item_light_recycleview, parent, false)); - } - - @Override - public void onBindViewHolder(@NonNull LightResultAdapter.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); - } - }); - } - if (switchClickListener != null) { - holder.lightSwitch.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - switchClickListener.onClick(position); - } - }); - } - } - - @Override - public int getItemCount() { - return dataBeans.size(); - } - - private OnGridItemClickListener clickListener; - - public interface OnGridItemClickListener { - void onClick(int position); - } - - public void setOnGridItemClickListener(OnGridItemClickListener onGridItemClickListener) { - this.clickListener = onGridItemClickListener; - } - - private OnSwitchClickListener switchClickListener; - - public interface OnSwitchClickListener { - void onClick(int position); - } - - public void setOnSwitchClickListener(OnSwitchClickListener switchClickListener) { - this.switchClickListener = switchClickListener; - } - - static class ItemViewHolder extends RecyclerView.ViewHolder { - - private final TextView lightNameView; - private final TextView lightStatusView; - private final ImageView lightSwitch; - - ItemViewHolder(@NonNull View itemView) { - super(itemView); - lightNameView = itemView.findViewById(R.id.lightNameView); - lightStatusView = itemView.findViewById(R.id.lightStatusView); - lightSwitch = itemView.findViewById(R.id.lightSwitch); - } - - void bindView(LightListBean.DataBean.RowsBean dataBean) { - lightNameView.setText(dataBean.getLampName()); - String statusName = dataBean.getStatusName(); - lightStatusView.setText(statusName); - if (statusName.equals("灭灯")) { - lightSwitch.setBackgroundResource(R.drawable.ic_switch_off); - } else if (statusName.equals("报警")) { - lightSwitch.setBackgroundResource(R.drawable.ic_switch_warning); - } else { - lightSwitch.setBackgroundResource(R.drawable.ic_switch_on); - } - } - } -} diff --git a/app/src/main/java/com/casic/dcms/adapter/NormalRecyclerAdapter.java b/app/src/main/java/com/casic/dcms/adapter/NormalRecyclerAdapter.java new file mode 100644 index 0000000..c80e2d5 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/adapter/NormalRecyclerAdapter.java @@ -0,0 +1,134 @@ +package com.casic.dcms.adapter; + +import android.annotation.SuppressLint; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import androidx.annotation.LayoutRes; +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.DiffUtil; +import androidx.recyclerview.widget.RecyclerView; + +import com.pengxh.androidx.lite.adapter.ViewHolder; + +import java.util.List; + +/** + * RecyclerView普通列表适配器 + */ +public abstract class NormalRecyclerAdapter extends RecyclerView.Adapter { + + private static final String TAG = "NormalRecyclerAdapter"; + private final int xmlResource; + private final List dataRows; + + public NormalRecyclerAdapter(@LayoutRes int xmlResource, List dataRows) { + this.xmlResource = xmlResource; + this.dataRows = dataRows; + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + @NonNull + @Override + public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + return new ViewHolder(LayoutInflater.from(parent.getContext()).inflate(xmlResource, parent, false)); + } + + @Override + public void onBindViewHolder(@NonNull ViewHolder holder, @SuppressLint("RecyclerView") int position) { + convertView(holder, position, dataRows.get(position)); + + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (itemClickedListener == null) { + return; + } + itemClickedListener.onItemClicked(position, dataRows.get(position)); + } + }); + } + + public void refresh(List newRows) { + DiffUtil.Callback diffCallback = new DiffUtil.Callback() { + + @Override + public int getOldListSize() { + return dataRows.size(); + } + + @Override + public int getNewListSize() { + return newRows.size(); + } + + @Override + public boolean areItemsTheSame(int oldItemPosition, int newItemPosition) { + if (dataRows == null || newRows == null) { + return false; + } + + // 检查索引是否在有效范围内 + if (oldItemPosition < 0 || oldItemPosition >= dataRows.size() || + newItemPosition < 0 || newItemPosition >= newRows.size()) { + return false; + } + + // 获取元素并进行比较 + Object oldItem = dataRows.get(oldItemPosition); + Object newItem = newRows.get(newItemPosition); + + // 处理空指针情况 + if (oldItem == null && newItem == null) { + return true; + } + if (oldItem == null || newItem == null) { + return false; + } + + return oldItem.equals(newItem); + } + + @Override + public boolean areContentsTheSame(int oldItemPosition, int newItemPosition) { + return dataRows.get(oldItemPosition) == newRows.get(newItemPosition); + } + }; + + DiffUtil.DiffResult diffResult = DiffUtil.calculateDiff(diffCallback); + + dataRows.clear(); + dataRows.addAll(newRows); + + diffResult.dispatchUpdatesTo(this); + } + + /** + * 加载更多 + */ + public void loadMore(List newRows) { + if (newRows.isEmpty()) { + return; + } + int startPosition = this.dataRows.size(); + this.dataRows.addAll(newRows); + notifyItemRangeInserted(startPosition, newRows.size()); + } + + public abstract void convertView(ViewHolder viewHolder, int position, T item); + + private OnItemClickedListener itemClickedListener; + + public interface OnItemClickedListener { + void onItemClicked(int position, T t); + } + + public void setOnItemClickedListener(OnItemClickedListener listener) { + itemClickedListener = listener; + } +} diff --git a/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java b/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java index 1deb066..80f7b98 100644 --- a/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java @@ -58,13 +58,13 @@ } @SuppressLint("NotifyDataSetChanged") - public void setRefreshData(List dataRows) { + public void refresh(List dataRows) { this.dataRows.clear(); this.dataRows.addAll(dataRows); notifyDataSetChanged(); } - public void setLoadMoreData(List dataRows) { + public void loadMore(List dataRows) { this.dataRows.addAll(dataRows); notifyItemRangeInserted(this.dataRows.size(), dataRows.size()); } diff --git a/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java index 3535c40..bd5e484 100644 --- a/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java @@ -10,6 +10,7 @@ import com.bumptech.glide.Glide; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentHomeBinding; import com.casic.dcms.model.HomePageBean; import com.casic.dcms.model.UserBean; @@ -36,7 +37,6 @@ import com.casic.dcms.view.verify.VerifyCaseActivity; import com.casic.dcms.vm.HomePageViewModel; import com.casic.dcms.vm.UserViewModel; -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.kit.LongKit; diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java index 0d2926f..a9cc331 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java @@ -5,22 +5,26 @@ import android.os.Handler; import android.os.Message; import android.text.TextUtils; +import android.view.View; import androidx.annotation.NonNull; import androidx.annotation.Nullable; +import androidx.cardview.widget.CardView; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; -import com.casic.dcms.adapter.LightResultAdapter; +import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentLightListBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightDetailBean; import com.casic.dcms.model.LightListBean; -import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.vm.LightViewModel; import com.casic.dcms.widgets.LightDetailDialog; +import com.pengxh.androidx.lite.adapter.ViewHolder; import com.pengxh.androidx.lite.base.AndroidxBaseFragment; import com.pengxh.androidx.lite.divider.RecyclerViewItemDivider; +import com.pengxh.androidx.lite.kit.IntKit; import com.pengxh.androidx.lite.kit.StringKit; import com.pengxh.androidx.lite.utils.LoadState; import com.pengxh.androidx.lite.utils.LoadingDialog; @@ -37,7 +41,7 @@ private static final String TAG = "LightOnListFragment"; private final WeakReferenceHandler weakReferenceHandler = new WeakReferenceHandler(this); private LightViewModel lightViewModel; - private LightResultAdapter adapter; + private NormalRecyclerAdapter adapter; private List dataBeans = new ArrayList<>(); private int pageIndex = 1; private boolean isRefresh, isLoadMore = false; @@ -50,7 +54,7 @@ @Override protected void initOnCreate(@Nullable Bundle savedInstanceState) { lightViewModel = new ViewModelProvider(this).get(LightViewModel.class); - getLightList(); + lightViewModel.getLightList(pageIndex); } @Override @@ -67,10 +71,6 @@ }); } - private void getLightList() { - lightViewModel.getLightList(LocaleConstant.PAGE_LIMIT, pageIndex); - } - @Override protected void initEvent() { getBinding().refreshLayout.setOnRefreshListener(new OnRefreshListener() { @@ -79,7 +79,7 @@ isRefresh = true; //刷新之后页码重置 pageIndex = 1; - getLightList(); + lightViewModel.getLightList(pageIndex); } }); getBinding().refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() { @@ -87,7 +87,7 @@ public void onLoadMore(@NonNull final RefreshLayout refreshLayout) { isLoadMore = true; pageIndex++; - getLightList(); + lightViewModel.getLightList(pageIndex); } }); @@ -97,21 +97,20 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题 - dataBeans = dataRows; + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - dataBeans.addAll(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { dataBeans = dataRows; + weakReferenceHandler.sendEmptyMessage(20210623); } - weakReferenceHandler.sendEmptyMessage(20210623); } } }); @@ -138,54 +137,67 @@ @Override public boolean handleMessage(@NonNull Message msg) { if (msg.what == 20210623) { - if (isRefresh || isLoadMore) { - adapter.notifyItemRangeInserted(adapter.getItemCount(), LocaleConstant.PAGE_LIMIT); + //首次加载数据 + if (dataBeans.size() == 0) { + getBinding().emptyView.show("没有路灯数据", null); } else { - //首次加载数据 - if (dataBeans.size() == 0) { - getBinding().emptyView.show("没有路灯数据", null); - } else { - getBinding().emptyView.hide(); - adapter = new LightResultAdapter(requireContext(), dataBeans); - getBinding().recyclerView.addItemDecoration(new RecyclerViewItemDivider(1, Color.LTGRAY)); - getBinding().recyclerView.setAdapter(adapter); - adapter.setOnGridItemClickListener(new LightResultAdapter.OnGridItemClickListener() { - @Override - public void onClick(int position) { - String lampId = dataBeans.get(position).getLampId(); - if (TextUtils.isEmpty(lampId)) { - StringKit.show(requireContext(), "错误,路灯编号为空"); - return; - } + getBinding().emptyView.hide(); + adapter = new NormalRecyclerAdapter(R.layout.item_light_recycleview, dataBeans) { + @Override + public void convertView(ViewHolder viewHolder, int position, LightListBean.DataBean.RowsBean item) { + String statusName = item.getStatusName(); + viewHolder.setText(R.id.lightNameView, item.getLampName()) + .setText(R.id.lightStatusView, "已" + statusName); - lightViewModel.getLightDetail(requireContext(), lampId); + CardView statueTagView = viewHolder.getView(R.id.statueTagView); + if (statusName.equals("灭灯")) { + viewHolder.setImageResource(R.id.lightSwitch, R.drawable.ic_switch_off); + statueTagView.setCardBackgroundColor(IntKit.convertColor(requireContext(), R.color.darkGray)); + } else if (statusName.equals("报警")) { + viewHolder.setImageResource(R.id.lightSwitch, R.drawable.ic_switch_warning); + statueTagView.setCardBackgroundColor(IntKit.convertColor(requireContext(), R.color.warnColor)); + } else { + viewHolder.setImageResource(R.id.lightSwitch, R.drawable.ic_switch_on); + statueTagView.setCardBackgroundColor(IntKit.convertColor(requireContext(), R.color.onLineColor)); } - }); - adapter.setOnSwitchClickListener(new LightResultAdapter.OnSwitchClickListener() { - @Override - public void onClick(int position) { - LightListBean.DataBean.RowsBean rowsBean = dataBeans.get(position); + viewHolder.setOnClickListener(R.id.lightSwitch, new View.OnClickListener() { + @Override + public void onClick(View v) { + List lampIds = new ArrayList<>(); + lampIds.add(Long.parseLong(item.getLampId())); - List lampIds = new ArrayList<>(); - lampIds.add(Long.parseLong(rowsBean.getLampId())); - - String statusName = rowsBean.getStatusName(); - String controlType; - if (statusName.equals("离线")) { - controlType = "1"; - } else { - controlType = "0"; + String statusName = item.getStatusName(); + String controlType; + if (statusName.equals("灭灯")) { + controlType = "1"; + } else { + controlType = "0"; + } + lightViewModel.controlLight(requireContext(), lampIds, controlType); } - lightViewModel.controlLight(requireContext(), lampIds, controlType); + }); + } + }; + getBinding().recyclerView.addItemDecoration(new RecyclerViewItemDivider(1, Color.LTGRAY)); + getBinding().recyclerView.setAdapter(adapter); + adapter.setOnItemClickedListener(new NormalRecyclerAdapter.OnItemClickedListener() { + @Override + public void onItemClicked(int position, LightListBean.DataBean.RowsBean rowsBean) { + String lampId = rowsBean.getLampId(); + if (TextUtils.isEmpty(lampId)) { + StringKit.show(requireContext(), "错误,路灯编号为空"); + return; } - }); - } + + lightViewModel.getLightDetail(requireContext(), lampId); + } + }); } } else if (msg.what == 20210624) { isRefresh = true; pageIndex = 1; - lightViewModel.getLightList(LocaleConstant.PAGE_LIMIT, pageIndex); + lightViewModel.getLightList(pageIndex); } return true; } diff --git a/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java index 64791dd..8f872db 100644 --- a/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java @@ -6,12 +6,12 @@ import androidx.annotation.Nullable; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.bean.NoticeLocaleBean; import com.casic.dcms.databinding.FragmentNoticeBinding; import com.casic.dcms.utils.DataBaseManager; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.CaseDetailActivity; -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.kit.ContextKit; diff --git a/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java b/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java index 5980aaf..93ab96c 100644 --- a/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java @@ -87,14 +87,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/business/PackageTodoFragment.java b/app/src/main/java/com/casic/dcms/fragment/business/PackageTodoFragment.java index 9f28bbe..1fefd3f 100644 --- a/app/src/main/java/com/casic/dcms/fragment/business/PackageTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/business/PackageTodoFragment.java @@ -88,14 +88,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { 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 816fb8f..62db8ed 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 @@ -12,13 +12,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentCheckCaseBinding; import com.casic.dcms.model.CaseCheckModel; import com.casic.dcms.utils.LocaleConstant; 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.kit.ContextKit; @@ -61,14 +61,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { 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 e472cd6..27f60a2 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 @@ -12,13 +12,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentCheckCaseBinding; import com.casic.dcms.model.CaseCheckModel; import com.casic.dcms.utils.LocaleConstant; 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.kit.ContextKit; @@ -62,14 +62,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAdjustFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAdjustFragment.java index 23a4f8e..fdee789 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAdjustFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAdjustFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.AdjustCaseModel; import com.casic.dcms.view.department.DeptAdjustDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -57,14 +57,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAuthorizeFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAuthorizeFragment.java index f5ba0b0..b5d807e 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAuthorizeFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAuthorizeFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.AuthorizeCaseModel; import com.casic.dcms.view.department.DeptAuthorizeDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -57,14 +57,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseDelayedFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseDelayedFragment.java index e16d47d..52c88fd 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseDelayedFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseDelayedFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.DelayedCaseModel; import com.casic.dcms.view.CaseDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -57,14 +57,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/adapter/LightResultAdapter.java b/app/src/main/java/com/casic/dcms/adapter/LightResultAdapter.java deleted file mode 100644 index 405af6e..0000000 --- a/app/src/main/java/com/casic/dcms/adapter/LightResultAdapter.java +++ /dev/null @@ -1,107 +0,0 @@ -package com.casic.dcms.adapter; - -import android.annotation.SuppressLint; -import android.content.Context; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.ImageView; -import android.widget.TextView; - -import androidx.annotation.NonNull; -import androidx.recyclerview.widget.RecyclerView; - -import com.casic.dcms.R; -import com.casic.dcms.model.LightListBean; - -import java.util.List; - -public class LightResultAdapter extends RecyclerView.Adapter { - - private final List dataBeans; - private final LayoutInflater layoutInflater; - - public LightResultAdapter(Context context, List beans) { - this.dataBeans = beans; - this.layoutInflater = LayoutInflater.from(context); - } - - @NonNull - @Override - public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - return new ItemViewHolder(layoutInflater.inflate(R.layout.item_light_recycleview, parent, false)); - } - - @Override - public void onBindViewHolder(@NonNull LightResultAdapter.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); - } - }); - } - if (switchClickListener != null) { - holder.lightSwitch.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - switchClickListener.onClick(position); - } - }); - } - } - - @Override - public int getItemCount() { - return dataBeans.size(); - } - - private OnGridItemClickListener clickListener; - - public interface OnGridItemClickListener { - void onClick(int position); - } - - public void setOnGridItemClickListener(OnGridItemClickListener onGridItemClickListener) { - this.clickListener = onGridItemClickListener; - } - - private OnSwitchClickListener switchClickListener; - - public interface OnSwitchClickListener { - void onClick(int position); - } - - public void setOnSwitchClickListener(OnSwitchClickListener switchClickListener) { - this.switchClickListener = switchClickListener; - } - - static class ItemViewHolder extends RecyclerView.ViewHolder { - - private final TextView lightNameView; - private final TextView lightStatusView; - private final ImageView lightSwitch; - - ItemViewHolder(@NonNull View itemView) { - super(itemView); - lightNameView = itemView.findViewById(R.id.lightNameView); - lightStatusView = itemView.findViewById(R.id.lightStatusView); - lightSwitch = itemView.findViewById(R.id.lightSwitch); - } - - void bindView(LightListBean.DataBean.RowsBean dataBean) { - lightNameView.setText(dataBean.getLampName()); - String statusName = dataBean.getStatusName(); - lightStatusView.setText(statusName); - if (statusName.equals("灭灯")) { - lightSwitch.setBackgroundResource(R.drawable.ic_switch_off); - } else if (statusName.equals("报警")) { - lightSwitch.setBackgroundResource(R.drawable.ic_switch_warning); - } else { - lightSwitch.setBackgroundResource(R.drawable.ic_switch_on); - } - } - } -} diff --git a/app/src/main/java/com/casic/dcms/adapter/NormalRecyclerAdapter.java b/app/src/main/java/com/casic/dcms/adapter/NormalRecyclerAdapter.java new file mode 100644 index 0000000..c80e2d5 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/adapter/NormalRecyclerAdapter.java @@ -0,0 +1,134 @@ +package com.casic.dcms.adapter; + +import android.annotation.SuppressLint; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import androidx.annotation.LayoutRes; +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.DiffUtil; +import androidx.recyclerview.widget.RecyclerView; + +import com.pengxh.androidx.lite.adapter.ViewHolder; + +import java.util.List; + +/** + * RecyclerView普通列表适配器 + */ +public abstract class NormalRecyclerAdapter extends RecyclerView.Adapter { + + private static final String TAG = "NormalRecyclerAdapter"; + private final int xmlResource; + private final List dataRows; + + public NormalRecyclerAdapter(@LayoutRes int xmlResource, List dataRows) { + this.xmlResource = xmlResource; + this.dataRows = dataRows; + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + @NonNull + @Override + public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + return new ViewHolder(LayoutInflater.from(parent.getContext()).inflate(xmlResource, parent, false)); + } + + @Override + public void onBindViewHolder(@NonNull ViewHolder holder, @SuppressLint("RecyclerView") int position) { + convertView(holder, position, dataRows.get(position)); + + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (itemClickedListener == null) { + return; + } + itemClickedListener.onItemClicked(position, dataRows.get(position)); + } + }); + } + + public void refresh(List newRows) { + DiffUtil.Callback diffCallback = new DiffUtil.Callback() { + + @Override + public int getOldListSize() { + return dataRows.size(); + } + + @Override + public int getNewListSize() { + return newRows.size(); + } + + @Override + public boolean areItemsTheSame(int oldItemPosition, int newItemPosition) { + if (dataRows == null || newRows == null) { + return false; + } + + // 检查索引是否在有效范围内 + if (oldItemPosition < 0 || oldItemPosition >= dataRows.size() || + newItemPosition < 0 || newItemPosition >= newRows.size()) { + return false; + } + + // 获取元素并进行比较 + Object oldItem = dataRows.get(oldItemPosition); + Object newItem = newRows.get(newItemPosition); + + // 处理空指针情况 + if (oldItem == null && newItem == null) { + return true; + } + if (oldItem == null || newItem == null) { + return false; + } + + return oldItem.equals(newItem); + } + + @Override + public boolean areContentsTheSame(int oldItemPosition, int newItemPosition) { + return dataRows.get(oldItemPosition) == newRows.get(newItemPosition); + } + }; + + DiffUtil.DiffResult diffResult = DiffUtil.calculateDiff(diffCallback); + + dataRows.clear(); + dataRows.addAll(newRows); + + diffResult.dispatchUpdatesTo(this); + } + + /** + * 加载更多 + */ + public void loadMore(List newRows) { + if (newRows.isEmpty()) { + return; + } + int startPosition = this.dataRows.size(); + this.dataRows.addAll(newRows); + notifyItemRangeInserted(startPosition, newRows.size()); + } + + public abstract void convertView(ViewHolder viewHolder, int position, T item); + + private OnItemClickedListener itemClickedListener; + + public interface OnItemClickedListener { + void onItemClicked(int position, T t); + } + + public void setOnItemClickedListener(OnItemClickedListener listener) { + itemClickedListener = listener; + } +} diff --git a/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java b/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java index 1deb066..80f7b98 100644 --- a/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java @@ -58,13 +58,13 @@ } @SuppressLint("NotifyDataSetChanged") - public void setRefreshData(List dataRows) { + public void refresh(List dataRows) { this.dataRows.clear(); this.dataRows.addAll(dataRows); notifyDataSetChanged(); } - public void setLoadMoreData(List dataRows) { + public void loadMore(List dataRows) { this.dataRows.addAll(dataRows); notifyItemRangeInserted(this.dataRows.size(), dataRows.size()); } diff --git a/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java index 3535c40..bd5e484 100644 --- a/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java @@ -10,6 +10,7 @@ import com.bumptech.glide.Glide; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentHomeBinding; import com.casic.dcms.model.HomePageBean; import com.casic.dcms.model.UserBean; @@ -36,7 +37,6 @@ import com.casic.dcms.view.verify.VerifyCaseActivity; import com.casic.dcms.vm.HomePageViewModel; import com.casic.dcms.vm.UserViewModel; -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.kit.LongKit; diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java index 0d2926f..a9cc331 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java @@ -5,22 +5,26 @@ import android.os.Handler; import android.os.Message; import android.text.TextUtils; +import android.view.View; import androidx.annotation.NonNull; import androidx.annotation.Nullable; +import androidx.cardview.widget.CardView; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; -import com.casic.dcms.adapter.LightResultAdapter; +import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentLightListBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightDetailBean; import com.casic.dcms.model.LightListBean; -import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.vm.LightViewModel; import com.casic.dcms.widgets.LightDetailDialog; +import com.pengxh.androidx.lite.adapter.ViewHolder; import com.pengxh.androidx.lite.base.AndroidxBaseFragment; import com.pengxh.androidx.lite.divider.RecyclerViewItemDivider; +import com.pengxh.androidx.lite.kit.IntKit; import com.pengxh.androidx.lite.kit.StringKit; import com.pengxh.androidx.lite.utils.LoadState; import com.pengxh.androidx.lite.utils.LoadingDialog; @@ -37,7 +41,7 @@ private static final String TAG = "LightOnListFragment"; private final WeakReferenceHandler weakReferenceHandler = new WeakReferenceHandler(this); private LightViewModel lightViewModel; - private LightResultAdapter adapter; + private NormalRecyclerAdapter adapter; private List dataBeans = new ArrayList<>(); private int pageIndex = 1; private boolean isRefresh, isLoadMore = false; @@ -50,7 +54,7 @@ @Override protected void initOnCreate(@Nullable Bundle savedInstanceState) { lightViewModel = new ViewModelProvider(this).get(LightViewModel.class); - getLightList(); + lightViewModel.getLightList(pageIndex); } @Override @@ -67,10 +71,6 @@ }); } - private void getLightList() { - lightViewModel.getLightList(LocaleConstant.PAGE_LIMIT, pageIndex); - } - @Override protected void initEvent() { getBinding().refreshLayout.setOnRefreshListener(new OnRefreshListener() { @@ -79,7 +79,7 @@ isRefresh = true; //刷新之后页码重置 pageIndex = 1; - getLightList(); + lightViewModel.getLightList(pageIndex); } }); getBinding().refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() { @@ -87,7 +87,7 @@ public void onLoadMore(@NonNull final RefreshLayout refreshLayout) { isLoadMore = true; pageIndex++; - getLightList(); + lightViewModel.getLightList(pageIndex); } }); @@ -97,21 +97,20 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题 - dataBeans = dataRows; + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - dataBeans.addAll(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { dataBeans = dataRows; + weakReferenceHandler.sendEmptyMessage(20210623); } - weakReferenceHandler.sendEmptyMessage(20210623); } } }); @@ -138,54 +137,67 @@ @Override public boolean handleMessage(@NonNull Message msg) { if (msg.what == 20210623) { - if (isRefresh || isLoadMore) { - adapter.notifyItemRangeInserted(adapter.getItemCount(), LocaleConstant.PAGE_LIMIT); + //首次加载数据 + if (dataBeans.size() == 0) { + getBinding().emptyView.show("没有路灯数据", null); } else { - //首次加载数据 - if (dataBeans.size() == 0) { - getBinding().emptyView.show("没有路灯数据", null); - } else { - getBinding().emptyView.hide(); - adapter = new LightResultAdapter(requireContext(), dataBeans); - getBinding().recyclerView.addItemDecoration(new RecyclerViewItemDivider(1, Color.LTGRAY)); - getBinding().recyclerView.setAdapter(adapter); - adapter.setOnGridItemClickListener(new LightResultAdapter.OnGridItemClickListener() { - @Override - public void onClick(int position) { - String lampId = dataBeans.get(position).getLampId(); - if (TextUtils.isEmpty(lampId)) { - StringKit.show(requireContext(), "错误,路灯编号为空"); - return; - } + getBinding().emptyView.hide(); + adapter = new NormalRecyclerAdapter(R.layout.item_light_recycleview, dataBeans) { + @Override + public void convertView(ViewHolder viewHolder, int position, LightListBean.DataBean.RowsBean item) { + String statusName = item.getStatusName(); + viewHolder.setText(R.id.lightNameView, item.getLampName()) + .setText(R.id.lightStatusView, "已" + statusName); - lightViewModel.getLightDetail(requireContext(), lampId); + CardView statueTagView = viewHolder.getView(R.id.statueTagView); + if (statusName.equals("灭灯")) { + viewHolder.setImageResource(R.id.lightSwitch, R.drawable.ic_switch_off); + statueTagView.setCardBackgroundColor(IntKit.convertColor(requireContext(), R.color.darkGray)); + } else if (statusName.equals("报警")) { + viewHolder.setImageResource(R.id.lightSwitch, R.drawable.ic_switch_warning); + statueTagView.setCardBackgroundColor(IntKit.convertColor(requireContext(), R.color.warnColor)); + } else { + viewHolder.setImageResource(R.id.lightSwitch, R.drawable.ic_switch_on); + statueTagView.setCardBackgroundColor(IntKit.convertColor(requireContext(), R.color.onLineColor)); } - }); - adapter.setOnSwitchClickListener(new LightResultAdapter.OnSwitchClickListener() { - @Override - public void onClick(int position) { - LightListBean.DataBean.RowsBean rowsBean = dataBeans.get(position); + viewHolder.setOnClickListener(R.id.lightSwitch, new View.OnClickListener() { + @Override + public void onClick(View v) { + List lampIds = new ArrayList<>(); + lampIds.add(Long.parseLong(item.getLampId())); - List lampIds = new ArrayList<>(); - lampIds.add(Long.parseLong(rowsBean.getLampId())); - - String statusName = rowsBean.getStatusName(); - String controlType; - if (statusName.equals("离线")) { - controlType = "1"; - } else { - controlType = "0"; + String statusName = item.getStatusName(); + String controlType; + if (statusName.equals("灭灯")) { + controlType = "1"; + } else { + controlType = "0"; + } + lightViewModel.controlLight(requireContext(), lampIds, controlType); } - lightViewModel.controlLight(requireContext(), lampIds, controlType); + }); + } + }; + getBinding().recyclerView.addItemDecoration(new RecyclerViewItemDivider(1, Color.LTGRAY)); + getBinding().recyclerView.setAdapter(adapter); + adapter.setOnItemClickedListener(new NormalRecyclerAdapter.OnItemClickedListener() { + @Override + public void onItemClicked(int position, LightListBean.DataBean.RowsBean rowsBean) { + String lampId = rowsBean.getLampId(); + if (TextUtils.isEmpty(lampId)) { + StringKit.show(requireContext(), "错误,路灯编号为空"); + return; } - }); - } + + lightViewModel.getLightDetail(requireContext(), lampId); + } + }); } } else if (msg.what == 20210624) { isRefresh = true; pageIndex = 1; - lightViewModel.getLightList(LocaleConstant.PAGE_LIMIT, pageIndex); + lightViewModel.getLightList(pageIndex); } return true; } diff --git a/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java index 64791dd..8f872db 100644 --- a/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java @@ -6,12 +6,12 @@ import androidx.annotation.Nullable; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.bean.NoticeLocaleBean; import com.casic.dcms.databinding.FragmentNoticeBinding; import com.casic.dcms.utils.DataBaseManager; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.CaseDetailActivity; -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.kit.ContextKit; diff --git a/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java b/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java index 5980aaf..93ab96c 100644 --- a/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java @@ -87,14 +87,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/business/PackageTodoFragment.java b/app/src/main/java/com/casic/dcms/fragment/business/PackageTodoFragment.java index 9f28bbe..1fefd3f 100644 --- a/app/src/main/java/com/casic/dcms/fragment/business/PackageTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/business/PackageTodoFragment.java @@ -88,14 +88,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { 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 816fb8f..62db8ed 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 @@ -12,13 +12,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentCheckCaseBinding; import com.casic.dcms.model.CaseCheckModel; import com.casic.dcms.utils.LocaleConstant; 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.kit.ContextKit; @@ -61,14 +61,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { 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 e472cd6..27f60a2 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 @@ -12,13 +12,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentCheckCaseBinding; import com.casic.dcms.model.CaseCheckModel; import com.casic.dcms.utils.LocaleConstant; 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.kit.ContextKit; @@ -62,14 +62,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAdjustFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAdjustFragment.java index 23a4f8e..fdee789 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAdjustFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAdjustFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.AdjustCaseModel; import com.casic.dcms.view.department.DeptAdjustDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -57,14 +57,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAuthorizeFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAuthorizeFragment.java index f5ba0b0..b5d807e 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAuthorizeFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAuthorizeFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.AuthorizeCaseModel; import com.casic.dcms.view.department.DeptAuthorizeDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -57,14 +57,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseDelayedFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseDelayedFragment.java index e16d47d..52c88fd 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseDelayedFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseDelayedFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.DelayedCaseModel; import com.casic.dcms.view.CaseDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -57,14 +57,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseHandledFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseHandledFragment.java index 0acf747..2ce5297 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseHandledFragment.java @@ -12,12 +12,12 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.HandledCaseModel; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.CaseDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -59,14 +59,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/adapter/LightResultAdapter.java b/app/src/main/java/com/casic/dcms/adapter/LightResultAdapter.java deleted file mode 100644 index 405af6e..0000000 --- a/app/src/main/java/com/casic/dcms/adapter/LightResultAdapter.java +++ /dev/null @@ -1,107 +0,0 @@ -package com.casic.dcms.adapter; - -import android.annotation.SuppressLint; -import android.content.Context; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.ImageView; -import android.widget.TextView; - -import androidx.annotation.NonNull; -import androidx.recyclerview.widget.RecyclerView; - -import com.casic.dcms.R; -import com.casic.dcms.model.LightListBean; - -import java.util.List; - -public class LightResultAdapter extends RecyclerView.Adapter { - - private final List dataBeans; - private final LayoutInflater layoutInflater; - - public LightResultAdapter(Context context, List beans) { - this.dataBeans = beans; - this.layoutInflater = LayoutInflater.from(context); - } - - @NonNull - @Override - public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - return new ItemViewHolder(layoutInflater.inflate(R.layout.item_light_recycleview, parent, false)); - } - - @Override - public void onBindViewHolder(@NonNull LightResultAdapter.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); - } - }); - } - if (switchClickListener != null) { - holder.lightSwitch.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - switchClickListener.onClick(position); - } - }); - } - } - - @Override - public int getItemCount() { - return dataBeans.size(); - } - - private OnGridItemClickListener clickListener; - - public interface OnGridItemClickListener { - void onClick(int position); - } - - public void setOnGridItemClickListener(OnGridItemClickListener onGridItemClickListener) { - this.clickListener = onGridItemClickListener; - } - - private OnSwitchClickListener switchClickListener; - - public interface OnSwitchClickListener { - void onClick(int position); - } - - public void setOnSwitchClickListener(OnSwitchClickListener switchClickListener) { - this.switchClickListener = switchClickListener; - } - - static class ItemViewHolder extends RecyclerView.ViewHolder { - - private final TextView lightNameView; - private final TextView lightStatusView; - private final ImageView lightSwitch; - - ItemViewHolder(@NonNull View itemView) { - super(itemView); - lightNameView = itemView.findViewById(R.id.lightNameView); - lightStatusView = itemView.findViewById(R.id.lightStatusView); - lightSwitch = itemView.findViewById(R.id.lightSwitch); - } - - void bindView(LightListBean.DataBean.RowsBean dataBean) { - lightNameView.setText(dataBean.getLampName()); - String statusName = dataBean.getStatusName(); - lightStatusView.setText(statusName); - if (statusName.equals("灭灯")) { - lightSwitch.setBackgroundResource(R.drawable.ic_switch_off); - } else if (statusName.equals("报警")) { - lightSwitch.setBackgroundResource(R.drawable.ic_switch_warning); - } else { - lightSwitch.setBackgroundResource(R.drawable.ic_switch_on); - } - } - } -} diff --git a/app/src/main/java/com/casic/dcms/adapter/NormalRecyclerAdapter.java b/app/src/main/java/com/casic/dcms/adapter/NormalRecyclerAdapter.java new file mode 100644 index 0000000..c80e2d5 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/adapter/NormalRecyclerAdapter.java @@ -0,0 +1,134 @@ +package com.casic.dcms.adapter; + +import android.annotation.SuppressLint; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import androidx.annotation.LayoutRes; +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.DiffUtil; +import androidx.recyclerview.widget.RecyclerView; + +import com.pengxh.androidx.lite.adapter.ViewHolder; + +import java.util.List; + +/** + * RecyclerView普通列表适配器 + */ +public abstract class NormalRecyclerAdapter extends RecyclerView.Adapter { + + private static final String TAG = "NormalRecyclerAdapter"; + private final int xmlResource; + private final List dataRows; + + public NormalRecyclerAdapter(@LayoutRes int xmlResource, List dataRows) { + this.xmlResource = xmlResource; + this.dataRows = dataRows; + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + @NonNull + @Override + public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + return new ViewHolder(LayoutInflater.from(parent.getContext()).inflate(xmlResource, parent, false)); + } + + @Override + public void onBindViewHolder(@NonNull ViewHolder holder, @SuppressLint("RecyclerView") int position) { + convertView(holder, position, dataRows.get(position)); + + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (itemClickedListener == null) { + return; + } + itemClickedListener.onItemClicked(position, dataRows.get(position)); + } + }); + } + + public void refresh(List newRows) { + DiffUtil.Callback diffCallback = new DiffUtil.Callback() { + + @Override + public int getOldListSize() { + return dataRows.size(); + } + + @Override + public int getNewListSize() { + return newRows.size(); + } + + @Override + public boolean areItemsTheSame(int oldItemPosition, int newItemPosition) { + if (dataRows == null || newRows == null) { + return false; + } + + // 检查索引是否在有效范围内 + if (oldItemPosition < 0 || oldItemPosition >= dataRows.size() || + newItemPosition < 0 || newItemPosition >= newRows.size()) { + return false; + } + + // 获取元素并进行比较 + Object oldItem = dataRows.get(oldItemPosition); + Object newItem = newRows.get(newItemPosition); + + // 处理空指针情况 + if (oldItem == null && newItem == null) { + return true; + } + if (oldItem == null || newItem == null) { + return false; + } + + return oldItem.equals(newItem); + } + + @Override + public boolean areContentsTheSame(int oldItemPosition, int newItemPosition) { + return dataRows.get(oldItemPosition) == newRows.get(newItemPosition); + } + }; + + DiffUtil.DiffResult diffResult = DiffUtil.calculateDiff(diffCallback); + + dataRows.clear(); + dataRows.addAll(newRows); + + diffResult.dispatchUpdatesTo(this); + } + + /** + * 加载更多 + */ + public void loadMore(List newRows) { + if (newRows.isEmpty()) { + return; + } + int startPosition = this.dataRows.size(); + this.dataRows.addAll(newRows); + notifyItemRangeInserted(startPosition, newRows.size()); + } + + public abstract void convertView(ViewHolder viewHolder, int position, T item); + + private OnItemClickedListener itemClickedListener; + + public interface OnItemClickedListener { + void onItemClicked(int position, T t); + } + + public void setOnItemClickedListener(OnItemClickedListener listener) { + itemClickedListener = listener; + } +} diff --git a/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java b/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java index 1deb066..80f7b98 100644 --- a/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java @@ -58,13 +58,13 @@ } @SuppressLint("NotifyDataSetChanged") - public void setRefreshData(List dataRows) { + public void refresh(List dataRows) { this.dataRows.clear(); this.dataRows.addAll(dataRows); notifyDataSetChanged(); } - public void setLoadMoreData(List dataRows) { + public void loadMore(List dataRows) { this.dataRows.addAll(dataRows); notifyItemRangeInserted(this.dataRows.size(), dataRows.size()); } diff --git a/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java index 3535c40..bd5e484 100644 --- a/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java @@ -10,6 +10,7 @@ import com.bumptech.glide.Glide; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentHomeBinding; import com.casic.dcms.model.HomePageBean; import com.casic.dcms.model.UserBean; @@ -36,7 +37,6 @@ import com.casic.dcms.view.verify.VerifyCaseActivity; import com.casic.dcms.vm.HomePageViewModel; import com.casic.dcms.vm.UserViewModel; -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.kit.LongKit; diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java index 0d2926f..a9cc331 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java @@ -5,22 +5,26 @@ import android.os.Handler; import android.os.Message; import android.text.TextUtils; +import android.view.View; import androidx.annotation.NonNull; import androidx.annotation.Nullable; +import androidx.cardview.widget.CardView; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; -import com.casic.dcms.adapter.LightResultAdapter; +import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentLightListBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightDetailBean; import com.casic.dcms.model.LightListBean; -import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.vm.LightViewModel; import com.casic.dcms.widgets.LightDetailDialog; +import com.pengxh.androidx.lite.adapter.ViewHolder; import com.pengxh.androidx.lite.base.AndroidxBaseFragment; import com.pengxh.androidx.lite.divider.RecyclerViewItemDivider; +import com.pengxh.androidx.lite.kit.IntKit; import com.pengxh.androidx.lite.kit.StringKit; import com.pengxh.androidx.lite.utils.LoadState; import com.pengxh.androidx.lite.utils.LoadingDialog; @@ -37,7 +41,7 @@ private static final String TAG = "LightOnListFragment"; private final WeakReferenceHandler weakReferenceHandler = new WeakReferenceHandler(this); private LightViewModel lightViewModel; - private LightResultAdapter adapter; + private NormalRecyclerAdapter adapter; private List dataBeans = new ArrayList<>(); private int pageIndex = 1; private boolean isRefresh, isLoadMore = false; @@ -50,7 +54,7 @@ @Override protected void initOnCreate(@Nullable Bundle savedInstanceState) { lightViewModel = new ViewModelProvider(this).get(LightViewModel.class); - getLightList(); + lightViewModel.getLightList(pageIndex); } @Override @@ -67,10 +71,6 @@ }); } - private void getLightList() { - lightViewModel.getLightList(LocaleConstant.PAGE_LIMIT, pageIndex); - } - @Override protected void initEvent() { getBinding().refreshLayout.setOnRefreshListener(new OnRefreshListener() { @@ -79,7 +79,7 @@ isRefresh = true; //刷新之后页码重置 pageIndex = 1; - getLightList(); + lightViewModel.getLightList(pageIndex); } }); getBinding().refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() { @@ -87,7 +87,7 @@ public void onLoadMore(@NonNull final RefreshLayout refreshLayout) { isLoadMore = true; pageIndex++; - getLightList(); + lightViewModel.getLightList(pageIndex); } }); @@ -97,21 +97,20 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题 - dataBeans = dataRows; + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - dataBeans.addAll(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { dataBeans = dataRows; + weakReferenceHandler.sendEmptyMessage(20210623); } - weakReferenceHandler.sendEmptyMessage(20210623); } } }); @@ -138,54 +137,67 @@ @Override public boolean handleMessage(@NonNull Message msg) { if (msg.what == 20210623) { - if (isRefresh || isLoadMore) { - adapter.notifyItemRangeInserted(adapter.getItemCount(), LocaleConstant.PAGE_LIMIT); + //首次加载数据 + if (dataBeans.size() == 0) { + getBinding().emptyView.show("没有路灯数据", null); } else { - //首次加载数据 - if (dataBeans.size() == 0) { - getBinding().emptyView.show("没有路灯数据", null); - } else { - getBinding().emptyView.hide(); - adapter = new LightResultAdapter(requireContext(), dataBeans); - getBinding().recyclerView.addItemDecoration(new RecyclerViewItemDivider(1, Color.LTGRAY)); - getBinding().recyclerView.setAdapter(adapter); - adapter.setOnGridItemClickListener(new LightResultAdapter.OnGridItemClickListener() { - @Override - public void onClick(int position) { - String lampId = dataBeans.get(position).getLampId(); - if (TextUtils.isEmpty(lampId)) { - StringKit.show(requireContext(), "错误,路灯编号为空"); - return; - } + getBinding().emptyView.hide(); + adapter = new NormalRecyclerAdapter(R.layout.item_light_recycleview, dataBeans) { + @Override + public void convertView(ViewHolder viewHolder, int position, LightListBean.DataBean.RowsBean item) { + String statusName = item.getStatusName(); + viewHolder.setText(R.id.lightNameView, item.getLampName()) + .setText(R.id.lightStatusView, "已" + statusName); - lightViewModel.getLightDetail(requireContext(), lampId); + CardView statueTagView = viewHolder.getView(R.id.statueTagView); + if (statusName.equals("灭灯")) { + viewHolder.setImageResource(R.id.lightSwitch, R.drawable.ic_switch_off); + statueTagView.setCardBackgroundColor(IntKit.convertColor(requireContext(), R.color.darkGray)); + } else if (statusName.equals("报警")) { + viewHolder.setImageResource(R.id.lightSwitch, R.drawable.ic_switch_warning); + statueTagView.setCardBackgroundColor(IntKit.convertColor(requireContext(), R.color.warnColor)); + } else { + viewHolder.setImageResource(R.id.lightSwitch, R.drawable.ic_switch_on); + statueTagView.setCardBackgroundColor(IntKit.convertColor(requireContext(), R.color.onLineColor)); } - }); - adapter.setOnSwitchClickListener(new LightResultAdapter.OnSwitchClickListener() { - @Override - public void onClick(int position) { - LightListBean.DataBean.RowsBean rowsBean = dataBeans.get(position); + viewHolder.setOnClickListener(R.id.lightSwitch, new View.OnClickListener() { + @Override + public void onClick(View v) { + List lampIds = new ArrayList<>(); + lampIds.add(Long.parseLong(item.getLampId())); - List lampIds = new ArrayList<>(); - lampIds.add(Long.parseLong(rowsBean.getLampId())); - - String statusName = rowsBean.getStatusName(); - String controlType; - if (statusName.equals("离线")) { - controlType = "1"; - } else { - controlType = "0"; + String statusName = item.getStatusName(); + String controlType; + if (statusName.equals("灭灯")) { + controlType = "1"; + } else { + controlType = "0"; + } + lightViewModel.controlLight(requireContext(), lampIds, controlType); } - lightViewModel.controlLight(requireContext(), lampIds, controlType); + }); + } + }; + getBinding().recyclerView.addItemDecoration(new RecyclerViewItemDivider(1, Color.LTGRAY)); + getBinding().recyclerView.setAdapter(adapter); + adapter.setOnItemClickedListener(new NormalRecyclerAdapter.OnItemClickedListener() { + @Override + public void onItemClicked(int position, LightListBean.DataBean.RowsBean rowsBean) { + String lampId = rowsBean.getLampId(); + if (TextUtils.isEmpty(lampId)) { + StringKit.show(requireContext(), "错误,路灯编号为空"); + return; } - }); - } + + lightViewModel.getLightDetail(requireContext(), lampId); + } + }); } } else if (msg.what == 20210624) { isRefresh = true; pageIndex = 1; - lightViewModel.getLightList(LocaleConstant.PAGE_LIMIT, pageIndex); + lightViewModel.getLightList(pageIndex); } return true; } diff --git a/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java index 64791dd..8f872db 100644 --- a/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java @@ -6,12 +6,12 @@ import androidx.annotation.Nullable; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.bean.NoticeLocaleBean; import com.casic.dcms.databinding.FragmentNoticeBinding; import com.casic.dcms.utils.DataBaseManager; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.CaseDetailActivity; -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.kit.ContextKit; diff --git a/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java b/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java index 5980aaf..93ab96c 100644 --- a/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java @@ -87,14 +87,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/business/PackageTodoFragment.java b/app/src/main/java/com/casic/dcms/fragment/business/PackageTodoFragment.java index 9f28bbe..1fefd3f 100644 --- a/app/src/main/java/com/casic/dcms/fragment/business/PackageTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/business/PackageTodoFragment.java @@ -88,14 +88,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { 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 816fb8f..62db8ed 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 @@ -12,13 +12,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentCheckCaseBinding; import com.casic.dcms.model.CaseCheckModel; import com.casic.dcms.utils.LocaleConstant; 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.kit.ContextKit; @@ -61,14 +61,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { 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 e472cd6..27f60a2 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 @@ -12,13 +12,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentCheckCaseBinding; import com.casic.dcms.model.CaseCheckModel; import com.casic.dcms.utils.LocaleConstant; 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.kit.ContextKit; @@ -62,14 +62,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAdjustFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAdjustFragment.java index 23a4f8e..fdee789 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAdjustFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAdjustFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.AdjustCaseModel; import com.casic.dcms.view.department.DeptAdjustDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -57,14 +57,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAuthorizeFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAuthorizeFragment.java index f5ba0b0..b5d807e 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAuthorizeFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAuthorizeFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.AuthorizeCaseModel; import com.casic.dcms.view.department.DeptAuthorizeDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -57,14 +57,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseDelayedFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseDelayedFragment.java index e16d47d..52c88fd 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseDelayedFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseDelayedFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.DelayedCaseModel; import com.casic.dcms.view.CaseDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -57,14 +57,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseHandledFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseHandledFragment.java index 0acf747..2ce5297 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseHandledFragment.java @@ -12,12 +12,12 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.HandledCaseModel; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.CaseDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -59,14 +59,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCasePostponeFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCasePostponeFragment.java index b2a3047..d8b3396 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCasePostponeFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCasePostponeFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.PostCaseModel; import com.casic.dcms.view.CaseDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -57,14 +57,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/adapter/LightResultAdapter.java b/app/src/main/java/com/casic/dcms/adapter/LightResultAdapter.java deleted file mode 100644 index 405af6e..0000000 --- a/app/src/main/java/com/casic/dcms/adapter/LightResultAdapter.java +++ /dev/null @@ -1,107 +0,0 @@ -package com.casic.dcms.adapter; - -import android.annotation.SuppressLint; -import android.content.Context; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.ImageView; -import android.widget.TextView; - -import androidx.annotation.NonNull; -import androidx.recyclerview.widget.RecyclerView; - -import com.casic.dcms.R; -import com.casic.dcms.model.LightListBean; - -import java.util.List; - -public class LightResultAdapter extends RecyclerView.Adapter { - - private final List dataBeans; - private final LayoutInflater layoutInflater; - - public LightResultAdapter(Context context, List beans) { - this.dataBeans = beans; - this.layoutInflater = LayoutInflater.from(context); - } - - @NonNull - @Override - public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - return new ItemViewHolder(layoutInflater.inflate(R.layout.item_light_recycleview, parent, false)); - } - - @Override - public void onBindViewHolder(@NonNull LightResultAdapter.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); - } - }); - } - if (switchClickListener != null) { - holder.lightSwitch.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - switchClickListener.onClick(position); - } - }); - } - } - - @Override - public int getItemCount() { - return dataBeans.size(); - } - - private OnGridItemClickListener clickListener; - - public interface OnGridItemClickListener { - void onClick(int position); - } - - public void setOnGridItemClickListener(OnGridItemClickListener onGridItemClickListener) { - this.clickListener = onGridItemClickListener; - } - - private OnSwitchClickListener switchClickListener; - - public interface OnSwitchClickListener { - void onClick(int position); - } - - public void setOnSwitchClickListener(OnSwitchClickListener switchClickListener) { - this.switchClickListener = switchClickListener; - } - - static class ItemViewHolder extends RecyclerView.ViewHolder { - - private final TextView lightNameView; - private final TextView lightStatusView; - private final ImageView lightSwitch; - - ItemViewHolder(@NonNull View itemView) { - super(itemView); - lightNameView = itemView.findViewById(R.id.lightNameView); - lightStatusView = itemView.findViewById(R.id.lightStatusView); - lightSwitch = itemView.findViewById(R.id.lightSwitch); - } - - void bindView(LightListBean.DataBean.RowsBean dataBean) { - lightNameView.setText(dataBean.getLampName()); - String statusName = dataBean.getStatusName(); - lightStatusView.setText(statusName); - if (statusName.equals("灭灯")) { - lightSwitch.setBackgroundResource(R.drawable.ic_switch_off); - } else if (statusName.equals("报警")) { - lightSwitch.setBackgroundResource(R.drawable.ic_switch_warning); - } else { - lightSwitch.setBackgroundResource(R.drawable.ic_switch_on); - } - } - } -} diff --git a/app/src/main/java/com/casic/dcms/adapter/NormalRecyclerAdapter.java b/app/src/main/java/com/casic/dcms/adapter/NormalRecyclerAdapter.java new file mode 100644 index 0000000..c80e2d5 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/adapter/NormalRecyclerAdapter.java @@ -0,0 +1,134 @@ +package com.casic.dcms.adapter; + +import android.annotation.SuppressLint; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import androidx.annotation.LayoutRes; +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.DiffUtil; +import androidx.recyclerview.widget.RecyclerView; + +import com.pengxh.androidx.lite.adapter.ViewHolder; + +import java.util.List; + +/** + * RecyclerView普通列表适配器 + */ +public abstract class NormalRecyclerAdapter extends RecyclerView.Adapter { + + private static final String TAG = "NormalRecyclerAdapter"; + private final int xmlResource; + private final List dataRows; + + public NormalRecyclerAdapter(@LayoutRes int xmlResource, List dataRows) { + this.xmlResource = xmlResource; + this.dataRows = dataRows; + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + @NonNull + @Override + public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + return new ViewHolder(LayoutInflater.from(parent.getContext()).inflate(xmlResource, parent, false)); + } + + @Override + public void onBindViewHolder(@NonNull ViewHolder holder, @SuppressLint("RecyclerView") int position) { + convertView(holder, position, dataRows.get(position)); + + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (itemClickedListener == null) { + return; + } + itemClickedListener.onItemClicked(position, dataRows.get(position)); + } + }); + } + + public void refresh(List newRows) { + DiffUtil.Callback diffCallback = new DiffUtil.Callback() { + + @Override + public int getOldListSize() { + return dataRows.size(); + } + + @Override + public int getNewListSize() { + return newRows.size(); + } + + @Override + public boolean areItemsTheSame(int oldItemPosition, int newItemPosition) { + if (dataRows == null || newRows == null) { + return false; + } + + // 检查索引是否在有效范围内 + if (oldItemPosition < 0 || oldItemPosition >= dataRows.size() || + newItemPosition < 0 || newItemPosition >= newRows.size()) { + return false; + } + + // 获取元素并进行比较 + Object oldItem = dataRows.get(oldItemPosition); + Object newItem = newRows.get(newItemPosition); + + // 处理空指针情况 + if (oldItem == null && newItem == null) { + return true; + } + if (oldItem == null || newItem == null) { + return false; + } + + return oldItem.equals(newItem); + } + + @Override + public boolean areContentsTheSame(int oldItemPosition, int newItemPosition) { + return dataRows.get(oldItemPosition) == newRows.get(newItemPosition); + } + }; + + DiffUtil.DiffResult diffResult = DiffUtil.calculateDiff(diffCallback); + + dataRows.clear(); + dataRows.addAll(newRows); + + diffResult.dispatchUpdatesTo(this); + } + + /** + * 加载更多 + */ + public void loadMore(List newRows) { + if (newRows.isEmpty()) { + return; + } + int startPosition = this.dataRows.size(); + this.dataRows.addAll(newRows); + notifyItemRangeInserted(startPosition, newRows.size()); + } + + public abstract void convertView(ViewHolder viewHolder, int position, T item); + + private OnItemClickedListener itemClickedListener; + + public interface OnItemClickedListener { + void onItemClicked(int position, T t); + } + + public void setOnItemClickedListener(OnItemClickedListener listener) { + itemClickedListener = listener; + } +} diff --git a/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java b/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java index 1deb066..80f7b98 100644 --- a/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java @@ -58,13 +58,13 @@ } @SuppressLint("NotifyDataSetChanged") - public void setRefreshData(List dataRows) { + public void refresh(List dataRows) { this.dataRows.clear(); this.dataRows.addAll(dataRows); notifyDataSetChanged(); } - public void setLoadMoreData(List dataRows) { + public void loadMore(List dataRows) { this.dataRows.addAll(dataRows); notifyItemRangeInserted(this.dataRows.size(), dataRows.size()); } diff --git a/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java index 3535c40..bd5e484 100644 --- a/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java @@ -10,6 +10,7 @@ import com.bumptech.glide.Glide; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentHomeBinding; import com.casic.dcms.model.HomePageBean; import com.casic.dcms.model.UserBean; @@ -36,7 +37,6 @@ import com.casic.dcms.view.verify.VerifyCaseActivity; import com.casic.dcms.vm.HomePageViewModel; import com.casic.dcms.vm.UserViewModel; -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.kit.LongKit; diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java index 0d2926f..a9cc331 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java @@ -5,22 +5,26 @@ import android.os.Handler; import android.os.Message; import android.text.TextUtils; +import android.view.View; import androidx.annotation.NonNull; import androidx.annotation.Nullable; +import androidx.cardview.widget.CardView; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; -import com.casic.dcms.adapter.LightResultAdapter; +import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentLightListBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightDetailBean; import com.casic.dcms.model.LightListBean; -import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.vm.LightViewModel; import com.casic.dcms.widgets.LightDetailDialog; +import com.pengxh.androidx.lite.adapter.ViewHolder; import com.pengxh.androidx.lite.base.AndroidxBaseFragment; import com.pengxh.androidx.lite.divider.RecyclerViewItemDivider; +import com.pengxh.androidx.lite.kit.IntKit; import com.pengxh.androidx.lite.kit.StringKit; import com.pengxh.androidx.lite.utils.LoadState; import com.pengxh.androidx.lite.utils.LoadingDialog; @@ -37,7 +41,7 @@ private static final String TAG = "LightOnListFragment"; private final WeakReferenceHandler weakReferenceHandler = new WeakReferenceHandler(this); private LightViewModel lightViewModel; - private LightResultAdapter adapter; + private NormalRecyclerAdapter adapter; private List dataBeans = new ArrayList<>(); private int pageIndex = 1; private boolean isRefresh, isLoadMore = false; @@ -50,7 +54,7 @@ @Override protected void initOnCreate(@Nullable Bundle savedInstanceState) { lightViewModel = new ViewModelProvider(this).get(LightViewModel.class); - getLightList(); + lightViewModel.getLightList(pageIndex); } @Override @@ -67,10 +71,6 @@ }); } - private void getLightList() { - lightViewModel.getLightList(LocaleConstant.PAGE_LIMIT, pageIndex); - } - @Override protected void initEvent() { getBinding().refreshLayout.setOnRefreshListener(new OnRefreshListener() { @@ -79,7 +79,7 @@ isRefresh = true; //刷新之后页码重置 pageIndex = 1; - getLightList(); + lightViewModel.getLightList(pageIndex); } }); getBinding().refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() { @@ -87,7 +87,7 @@ public void onLoadMore(@NonNull final RefreshLayout refreshLayout) { isLoadMore = true; pageIndex++; - getLightList(); + lightViewModel.getLightList(pageIndex); } }); @@ -97,21 +97,20 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题 - dataBeans = dataRows; + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - dataBeans.addAll(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { dataBeans = dataRows; + weakReferenceHandler.sendEmptyMessage(20210623); } - weakReferenceHandler.sendEmptyMessage(20210623); } } }); @@ -138,54 +137,67 @@ @Override public boolean handleMessage(@NonNull Message msg) { if (msg.what == 20210623) { - if (isRefresh || isLoadMore) { - adapter.notifyItemRangeInserted(adapter.getItemCount(), LocaleConstant.PAGE_LIMIT); + //首次加载数据 + if (dataBeans.size() == 0) { + getBinding().emptyView.show("没有路灯数据", null); } else { - //首次加载数据 - if (dataBeans.size() == 0) { - getBinding().emptyView.show("没有路灯数据", null); - } else { - getBinding().emptyView.hide(); - adapter = new LightResultAdapter(requireContext(), dataBeans); - getBinding().recyclerView.addItemDecoration(new RecyclerViewItemDivider(1, Color.LTGRAY)); - getBinding().recyclerView.setAdapter(adapter); - adapter.setOnGridItemClickListener(new LightResultAdapter.OnGridItemClickListener() { - @Override - public void onClick(int position) { - String lampId = dataBeans.get(position).getLampId(); - if (TextUtils.isEmpty(lampId)) { - StringKit.show(requireContext(), "错误,路灯编号为空"); - return; - } + getBinding().emptyView.hide(); + adapter = new NormalRecyclerAdapter(R.layout.item_light_recycleview, dataBeans) { + @Override + public void convertView(ViewHolder viewHolder, int position, LightListBean.DataBean.RowsBean item) { + String statusName = item.getStatusName(); + viewHolder.setText(R.id.lightNameView, item.getLampName()) + .setText(R.id.lightStatusView, "已" + statusName); - lightViewModel.getLightDetail(requireContext(), lampId); + CardView statueTagView = viewHolder.getView(R.id.statueTagView); + if (statusName.equals("灭灯")) { + viewHolder.setImageResource(R.id.lightSwitch, R.drawable.ic_switch_off); + statueTagView.setCardBackgroundColor(IntKit.convertColor(requireContext(), R.color.darkGray)); + } else if (statusName.equals("报警")) { + viewHolder.setImageResource(R.id.lightSwitch, R.drawable.ic_switch_warning); + statueTagView.setCardBackgroundColor(IntKit.convertColor(requireContext(), R.color.warnColor)); + } else { + viewHolder.setImageResource(R.id.lightSwitch, R.drawable.ic_switch_on); + statueTagView.setCardBackgroundColor(IntKit.convertColor(requireContext(), R.color.onLineColor)); } - }); - adapter.setOnSwitchClickListener(new LightResultAdapter.OnSwitchClickListener() { - @Override - public void onClick(int position) { - LightListBean.DataBean.RowsBean rowsBean = dataBeans.get(position); + viewHolder.setOnClickListener(R.id.lightSwitch, new View.OnClickListener() { + @Override + public void onClick(View v) { + List lampIds = new ArrayList<>(); + lampIds.add(Long.parseLong(item.getLampId())); - List lampIds = new ArrayList<>(); - lampIds.add(Long.parseLong(rowsBean.getLampId())); - - String statusName = rowsBean.getStatusName(); - String controlType; - if (statusName.equals("离线")) { - controlType = "1"; - } else { - controlType = "0"; + String statusName = item.getStatusName(); + String controlType; + if (statusName.equals("灭灯")) { + controlType = "1"; + } else { + controlType = "0"; + } + lightViewModel.controlLight(requireContext(), lampIds, controlType); } - lightViewModel.controlLight(requireContext(), lampIds, controlType); + }); + } + }; + getBinding().recyclerView.addItemDecoration(new RecyclerViewItemDivider(1, Color.LTGRAY)); + getBinding().recyclerView.setAdapter(adapter); + adapter.setOnItemClickedListener(new NormalRecyclerAdapter.OnItemClickedListener() { + @Override + public void onItemClicked(int position, LightListBean.DataBean.RowsBean rowsBean) { + String lampId = rowsBean.getLampId(); + if (TextUtils.isEmpty(lampId)) { + StringKit.show(requireContext(), "错误,路灯编号为空"); + return; } - }); - } + + lightViewModel.getLightDetail(requireContext(), lampId); + } + }); } } else if (msg.what == 20210624) { isRefresh = true; pageIndex = 1; - lightViewModel.getLightList(LocaleConstant.PAGE_LIMIT, pageIndex); + lightViewModel.getLightList(pageIndex); } return true; } diff --git a/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java index 64791dd..8f872db 100644 --- a/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java @@ -6,12 +6,12 @@ import androidx.annotation.Nullable; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.bean.NoticeLocaleBean; import com.casic.dcms.databinding.FragmentNoticeBinding; import com.casic.dcms.utils.DataBaseManager; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.CaseDetailActivity; -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.kit.ContextKit; diff --git a/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java b/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java index 5980aaf..93ab96c 100644 --- a/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java @@ -87,14 +87,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/business/PackageTodoFragment.java b/app/src/main/java/com/casic/dcms/fragment/business/PackageTodoFragment.java index 9f28bbe..1fefd3f 100644 --- a/app/src/main/java/com/casic/dcms/fragment/business/PackageTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/business/PackageTodoFragment.java @@ -88,14 +88,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { 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 816fb8f..62db8ed 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 @@ -12,13 +12,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentCheckCaseBinding; import com.casic.dcms.model.CaseCheckModel; import com.casic.dcms.utils.LocaleConstant; 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.kit.ContextKit; @@ -61,14 +61,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { 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 e472cd6..27f60a2 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 @@ -12,13 +12,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentCheckCaseBinding; import com.casic.dcms.model.CaseCheckModel; import com.casic.dcms.utils.LocaleConstant; 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.kit.ContextKit; @@ -62,14 +62,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAdjustFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAdjustFragment.java index 23a4f8e..fdee789 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAdjustFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAdjustFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.AdjustCaseModel; import com.casic.dcms.view.department.DeptAdjustDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -57,14 +57,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAuthorizeFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAuthorizeFragment.java index f5ba0b0..b5d807e 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAuthorizeFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAuthorizeFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.AuthorizeCaseModel; import com.casic.dcms.view.department.DeptAuthorizeDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -57,14 +57,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseDelayedFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseDelayedFragment.java index e16d47d..52c88fd 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseDelayedFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseDelayedFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.DelayedCaseModel; import com.casic.dcms.view.CaseDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -57,14 +57,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseHandledFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseHandledFragment.java index 0acf747..2ce5297 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseHandledFragment.java @@ -12,12 +12,12 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.HandledCaseModel; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.CaseDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -59,14 +59,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCasePostponeFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCasePostponeFragment.java index b2a3047..d8b3396 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCasePostponeFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCasePostponeFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.PostCaseModel; import com.casic.dcms.view.CaseDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -57,14 +57,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseProcessFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseProcessFragment.java index ef78a7d..2c5f4d7 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseProcessFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseProcessFragment.java @@ -12,12 +12,12 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.HandleCaseModel; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.view.department.DeptTodoDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.StringKit; @@ -58,14 +58,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/adapter/LightResultAdapter.java b/app/src/main/java/com/casic/dcms/adapter/LightResultAdapter.java deleted file mode 100644 index 405af6e..0000000 --- a/app/src/main/java/com/casic/dcms/adapter/LightResultAdapter.java +++ /dev/null @@ -1,107 +0,0 @@ -package com.casic.dcms.adapter; - -import android.annotation.SuppressLint; -import android.content.Context; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.ImageView; -import android.widget.TextView; - -import androidx.annotation.NonNull; -import androidx.recyclerview.widget.RecyclerView; - -import com.casic.dcms.R; -import com.casic.dcms.model.LightListBean; - -import java.util.List; - -public class LightResultAdapter extends RecyclerView.Adapter { - - private final List dataBeans; - private final LayoutInflater layoutInflater; - - public LightResultAdapter(Context context, List beans) { - this.dataBeans = beans; - this.layoutInflater = LayoutInflater.from(context); - } - - @NonNull - @Override - public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - return new ItemViewHolder(layoutInflater.inflate(R.layout.item_light_recycleview, parent, false)); - } - - @Override - public void onBindViewHolder(@NonNull LightResultAdapter.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); - } - }); - } - if (switchClickListener != null) { - holder.lightSwitch.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - switchClickListener.onClick(position); - } - }); - } - } - - @Override - public int getItemCount() { - return dataBeans.size(); - } - - private OnGridItemClickListener clickListener; - - public interface OnGridItemClickListener { - void onClick(int position); - } - - public void setOnGridItemClickListener(OnGridItemClickListener onGridItemClickListener) { - this.clickListener = onGridItemClickListener; - } - - private OnSwitchClickListener switchClickListener; - - public interface OnSwitchClickListener { - void onClick(int position); - } - - public void setOnSwitchClickListener(OnSwitchClickListener switchClickListener) { - this.switchClickListener = switchClickListener; - } - - static class ItemViewHolder extends RecyclerView.ViewHolder { - - private final TextView lightNameView; - private final TextView lightStatusView; - private final ImageView lightSwitch; - - ItemViewHolder(@NonNull View itemView) { - super(itemView); - lightNameView = itemView.findViewById(R.id.lightNameView); - lightStatusView = itemView.findViewById(R.id.lightStatusView); - lightSwitch = itemView.findViewById(R.id.lightSwitch); - } - - void bindView(LightListBean.DataBean.RowsBean dataBean) { - lightNameView.setText(dataBean.getLampName()); - String statusName = dataBean.getStatusName(); - lightStatusView.setText(statusName); - if (statusName.equals("灭灯")) { - lightSwitch.setBackgroundResource(R.drawable.ic_switch_off); - } else if (statusName.equals("报警")) { - lightSwitch.setBackgroundResource(R.drawable.ic_switch_warning); - } else { - lightSwitch.setBackgroundResource(R.drawable.ic_switch_on); - } - } - } -} diff --git a/app/src/main/java/com/casic/dcms/adapter/NormalRecyclerAdapter.java b/app/src/main/java/com/casic/dcms/adapter/NormalRecyclerAdapter.java new file mode 100644 index 0000000..c80e2d5 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/adapter/NormalRecyclerAdapter.java @@ -0,0 +1,134 @@ +package com.casic.dcms.adapter; + +import android.annotation.SuppressLint; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import androidx.annotation.LayoutRes; +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.DiffUtil; +import androidx.recyclerview.widget.RecyclerView; + +import com.pengxh.androidx.lite.adapter.ViewHolder; + +import java.util.List; + +/** + * RecyclerView普通列表适配器 + */ +public abstract class NormalRecyclerAdapter extends RecyclerView.Adapter { + + private static final String TAG = "NormalRecyclerAdapter"; + private final int xmlResource; + private final List dataRows; + + public NormalRecyclerAdapter(@LayoutRes int xmlResource, List dataRows) { + this.xmlResource = xmlResource; + this.dataRows = dataRows; + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + @NonNull + @Override + public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + return new ViewHolder(LayoutInflater.from(parent.getContext()).inflate(xmlResource, parent, false)); + } + + @Override + public void onBindViewHolder(@NonNull ViewHolder holder, @SuppressLint("RecyclerView") int position) { + convertView(holder, position, dataRows.get(position)); + + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (itemClickedListener == null) { + return; + } + itemClickedListener.onItemClicked(position, dataRows.get(position)); + } + }); + } + + public void refresh(List newRows) { + DiffUtil.Callback diffCallback = new DiffUtil.Callback() { + + @Override + public int getOldListSize() { + return dataRows.size(); + } + + @Override + public int getNewListSize() { + return newRows.size(); + } + + @Override + public boolean areItemsTheSame(int oldItemPosition, int newItemPosition) { + if (dataRows == null || newRows == null) { + return false; + } + + // 检查索引是否在有效范围内 + if (oldItemPosition < 0 || oldItemPosition >= dataRows.size() || + newItemPosition < 0 || newItemPosition >= newRows.size()) { + return false; + } + + // 获取元素并进行比较 + Object oldItem = dataRows.get(oldItemPosition); + Object newItem = newRows.get(newItemPosition); + + // 处理空指针情况 + if (oldItem == null && newItem == null) { + return true; + } + if (oldItem == null || newItem == null) { + return false; + } + + return oldItem.equals(newItem); + } + + @Override + public boolean areContentsTheSame(int oldItemPosition, int newItemPosition) { + return dataRows.get(oldItemPosition) == newRows.get(newItemPosition); + } + }; + + DiffUtil.DiffResult diffResult = DiffUtil.calculateDiff(diffCallback); + + dataRows.clear(); + dataRows.addAll(newRows); + + diffResult.dispatchUpdatesTo(this); + } + + /** + * 加载更多 + */ + public void loadMore(List newRows) { + if (newRows.isEmpty()) { + return; + } + int startPosition = this.dataRows.size(); + this.dataRows.addAll(newRows); + notifyItemRangeInserted(startPosition, newRows.size()); + } + + public abstract void convertView(ViewHolder viewHolder, int position, T item); + + private OnItemClickedListener itemClickedListener; + + public interface OnItemClickedListener { + void onItemClicked(int position, T t); + } + + public void setOnItemClickedListener(OnItemClickedListener listener) { + itemClickedListener = listener; + } +} diff --git a/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java b/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java index 1deb066..80f7b98 100644 --- a/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java @@ -58,13 +58,13 @@ } @SuppressLint("NotifyDataSetChanged") - public void setRefreshData(List dataRows) { + public void refresh(List dataRows) { this.dataRows.clear(); this.dataRows.addAll(dataRows); notifyDataSetChanged(); } - public void setLoadMoreData(List dataRows) { + public void loadMore(List dataRows) { this.dataRows.addAll(dataRows); notifyItemRangeInserted(this.dataRows.size(), dataRows.size()); } diff --git a/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java index 3535c40..bd5e484 100644 --- a/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java @@ -10,6 +10,7 @@ import com.bumptech.glide.Glide; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentHomeBinding; import com.casic.dcms.model.HomePageBean; import com.casic.dcms.model.UserBean; @@ -36,7 +37,6 @@ import com.casic.dcms.view.verify.VerifyCaseActivity; import com.casic.dcms.vm.HomePageViewModel; import com.casic.dcms.vm.UserViewModel; -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.kit.LongKit; diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java index 0d2926f..a9cc331 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java @@ -5,22 +5,26 @@ import android.os.Handler; import android.os.Message; import android.text.TextUtils; +import android.view.View; import androidx.annotation.NonNull; import androidx.annotation.Nullable; +import androidx.cardview.widget.CardView; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; -import com.casic.dcms.adapter.LightResultAdapter; +import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentLightListBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightDetailBean; import com.casic.dcms.model.LightListBean; -import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.vm.LightViewModel; import com.casic.dcms.widgets.LightDetailDialog; +import com.pengxh.androidx.lite.adapter.ViewHolder; import com.pengxh.androidx.lite.base.AndroidxBaseFragment; import com.pengxh.androidx.lite.divider.RecyclerViewItemDivider; +import com.pengxh.androidx.lite.kit.IntKit; import com.pengxh.androidx.lite.kit.StringKit; import com.pengxh.androidx.lite.utils.LoadState; import com.pengxh.androidx.lite.utils.LoadingDialog; @@ -37,7 +41,7 @@ private static final String TAG = "LightOnListFragment"; private final WeakReferenceHandler weakReferenceHandler = new WeakReferenceHandler(this); private LightViewModel lightViewModel; - private LightResultAdapter adapter; + private NormalRecyclerAdapter adapter; private List dataBeans = new ArrayList<>(); private int pageIndex = 1; private boolean isRefresh, isLoadMore = false; @@ -50,7 +54,7 @@ @Override protected void initOnCreate(@Nullable Bundle savedInstanceState) { lightViewModel = new ViewModelProvider(this).get(LightViewModel.class); - getLightList(); + lightViewModel.getLightList(pageIndex); } @Override @@ -67,10 +71,6 @@ }); } - private void getLightList() { - lightViewModel.getLightList(LocaleConstant.PAGE_LIMIT, pageIndex); - } - @Override protected void initEvent() { getBinding().refreshLayout.setOnRefreshListener(new OnRefreshListener() { @@ -79,7 +79,7 @@ isRefresh = true; //刷新之后页码重置 pageIndex = 1; - getLightList(); + lightViewModel.getLightList(pageIndex); } }); getBinding().refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() { @@ -87,7 +87,7 @@ public void onLoadMore(@NonNull final RefreshLayout refreshLayout) { isLoadMore = true; pageIndex++; - getLightList(); + lightViewModel.getLightList(pageIndex); } }); @@ -97,21 +97,20 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题 - dataBeans = dataRows; + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - dataBeans.addAll(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { dataBeans = dataRows; + weakReferenceHandler.sendEmptyMessage(20210623); } - weakReferenceHandler.sendEmptyMessage(20210623); } } }); @@ -138,54 +137,67 @@ @Override public boolean handleMessage(@NonNull Message msg) { if (msg.what == 20210623) { - if (isRefresh || isLoadMore) { - adapter.notifyItemRangeInserted(adapter.getItemCount(), LocaleConstant.PAGE_LIMIT); + //首次加载数据 + if (dataBeans.size() == 0) { + getBinding().emptyView.show("没有路灯数据", null); } else { - //首次加载数据 - if (dataBeans.size() == 0) { - getBinding().emptyView.show("没有路灯数据", null); - } else { - getBinding().emptyView.hide(); - adapter = new LightResultAdapter(requireContext(), dataBeans); - getBinding().recyclerView.addItemDecoration(new RecyclerViewItemDivider(1, Color.LTGRAY)); - getBinding().recyclerView.setAdapter(adapter); - adapter.setOnGridItemClickListener(new LightResultAdapter.OnGridItemClickListener() { - @Override - public void onClick(int position) { - String lampId = dataBeans.get(position).getLampId(); - if (TextUtils.isEmpty(lampId)) { - StringKit.show(requireContext(), "错误,路灯编号为空"); - return; - } + getBinding().emptyView.hide(); + adapter = new NormalRecyclerAdapter(R.layout.item_light_recycleview, dataBeans) { + @Override + public void convertView(ViewHolder viewHolder, int position, LightListBean.DataBean.RowsBean item) { + String statusName = item.getStatusName(); + viewHolder.setText(R.id.lightNameView, item.getLampName()) + .setText(R.id.lightStatusView, "已" + statusName); - lightViewModel.getLightDetail(requireContext(), lampId); + CardView statueTagView = viewHolder.getView(R.id.statueTagView); + if (statusName.equals("灭灯")) { + viewHolder.setImageResource(R.id.lightSwitch, R.drawable.ic_switch_off); + statueTagView.setCardBackgroundColor(IntKit.convertColor(requireContext(), R.color.darkGray)); + } else if (statusName.equals("报警")) { + viewHolder.setImageResource(R.id.lightSwitch, R.drawable.ic_switch_warning); + statueTagView.setCardBackgroundColor(IntKit.convertColor(requireContext(), R.color.warnColor)); + } else { + viewHolder.setImageResource(R.id.lightSwitch, R.drawable.ic_switch_on); + statueTagView.setCardBackgroundColor(IntKit.convertColor(requireContext(), R.color.onLineColor)); } - }); - adapter.setOnSwitchClickListener(new LightResultAdapter.OnSwitchClickListener() { - @Override - public void onClick(int position) { - LightListBean.DataBean.RowsBean rowsBean = dataBeans.get(position); + viewHolder.setOnClickListener(R.id.lightSwitch, new View.OnClickListener() { + @Override + public void onClick(View v) { + List lampIds = new ArrayList<>(); + lampIds.add(Long.parseLong(item.getLampId())); - List lampIds = new ArrayList<>(); - lampIds.add(Long.parseLong(rowsBean.getLampId())); - - String statusName = rowsBean.getStatusName(); - String controlType; - if (statusName.equals("离线")) { - controlType = "1"; - } else { - controlType = "0"; + String statusName = item.getStatusName(); + String controlType; + if (statusName.equals("灭灯")) { + controlType = "1"; + } else { + controlType = "0"; + } + lightViewModel.controlLight(requireContext(), lampIds, controlType); } - lightViewModel.controlLight(requireContext(), lampIds, controlType); + }); + } + }; + getBinding().recyclerView.addItemDecoration(new RecyclerViewItemDivider(1, Color.LTGRAY)); + getBinding().recyclerView.setAdapter(adapter); + adapter.setOnItemClickedListener(new NormalRecyclerAdapter.OnItemClickedListener() { + @Override + public void onItemClicked(int position, LightListBean.DataBean.RowsBean rowsBean) { + String lampId = rowsBean.getLampId(); + if (TextUtils.isEmpty(lampId)) { + StringKit.show(requireContext(), "错误,路灯编号为空"); + return; } - }); - } + + lightViewModel.getLightDetail(requireContext(), lampId); + } + }); } } else if (msg.what == 20210624) { isRefresh = true; pageIndex = 1; - lightViewModel.getLightList(LocaleConstant.PAGE_LIMIT, pageIndex); + lightViewModel.getLightList(pageIndex); } return true; } diff --git a/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java index 64791dd..8f872db 100644 --- a/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java @@ -6,12 +6,12 @@ import androidx.annotation.Nullable; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.bean.NoticeLocaleBean; import com.casic.dcms.databinding.FragmentNoticeBinding; import com.casic.dcms.utils.DataBaseManager; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.CaseDetailActivity; -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.kit.ContextKit; diff --git a/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java b/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java index 5980aaf..93ab96c 100644 --- a/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java @@ -87,14 +87,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/business/PackageTodoFragment.java b/app/src/main/java/com/casic/dcms/fragment/business/PackageTodoFragment.java index 9f28bbe..1fefd3f 100644 --- a/app/src/main/java/com/casic/dcms/fragment/business/PackageTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/business/PackageTodoFragment.java @@ -88,14 +88,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { 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 816fb8f..62db8ed 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 @@ -12,13 +12,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentCheckCaseBinding; import com.casic.dcms.model.CaseCheckModel; import com.casic.dcms.utils.LocaleConstant; 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.kit.ContextKit; @@ -61,14 +61,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { 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 e472cd6..27f60a2 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 @@ -12,13 +12,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentCheckCaseBinding; import com.casic.dcms.model.CaseCheckModel; import com.casic.dcms.utils.LocaleConstant; 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.kit.ContextKit; @@ -62,14 +62,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAdjustFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAdjustFragment.java index 23a4f8e..fdee789 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAdjustFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAdjustFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.AdjustCaseModel; import com.casic.dcms.view.department.DeptAdjustDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -57,14 +57,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAuthorizeFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAuthorizeFragment.java index f5ba0b0..b5d807e 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAuthorizeFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAuthorizeFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.AuthorizeCaseModel; import com.casic.dcms.view.department.DeptAuthorizeDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -57,14 +57,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseDelayedFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseDelayedFragment.java index e16d47d..52c88fd 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseDelayedFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseDelayedFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.DelayedCaseModel; import com.casic.dcms.view.CaseDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -57,14 +57,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseHandledFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseHandledFragment.java index 0acf747..2ce5297 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseHandledFragment.java @@ -12,12 +12,12 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.HandledCaseModel; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.CaseDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -59,14 +59,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCasePostponeFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCasePostponeFragment.java index b2a3047..d8b3396 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCasePostponeFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCasePostponeFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.PostCaseModel; import com.casic.dcms.view.CaseDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -57,14 +57,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseProcessFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseProcessFragment.java index ef78a7d..2c5f4d7 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseProcessFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseProcessFragment.java @@ -12,12 +12,12 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.HandleCaseModel; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.view.department.DeptTodoDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.StringKit; @@ -58,14 +58,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseTodoFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseTodoFragment.java index 2f8cb8a..febcb54 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseTodoFragment.java @@ -13,13 +13,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.TodoCaseModel; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.department.DeptTodoDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.StringKit; @@ -60,14 +60,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/adapter/LightResultAdapter.java b/app/src/main/java/com/casic/dcms/adapter/LightResultAdapter.java deleted file mode 100644 index 405af6e..0000000 --- a/app/src/main/java/com/casic/dcms/adapter/LightResultAdapter.java +++ /dev/null @@ -1,107 +0,0 @@ -package com.casic.dcms.adapter; - -import android.annotation.SuppressLint; -import android.content.Context; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.ImageView; -import android.widget.TextView; - -import androidx.annotation.NonNull; -import androidx.recyclerview.widget.RecyclerView; - -import com.casic.dcms.R; -import com.casic.dcms.model.LightListBean; - -import java.util.List; - -public class LightResultAdapter extends RecyclerView.Adapter { - - private final List dataBeans; - private final LayoutInflater layoutInflater; - - public LightResultAdapter(Context context, List beans) { - this.dataBeans = beans; - this.layoutInflater = LayoutInflater.from(context); - } - - @NonNull - @Override - public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - return new ItemViewHolder(layoutInflater.inflate(R.layout.item_light_recycleview, parent, false)); - } - - @Override - public void onBindViewHolder(@NonNull LightResultAdapter.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); - } - }); - } - if (switchClickListener != null) { - holder.lightSwitch.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - switchClickListener.onClick(position); - } - }); - } - } - - @Override - public int getItemCount() { - return dataBeans.size(); - } - - private OnGridItemClickListener clickListener; - - public interface OnGridItemClickListener { - void onClick(int position); - } - - public void setOnGridItemClickListener(OnGridItemClickListener onGridItemClickListener) { - this.clickListener = onGridItemClickListener; - } - - private OnSwitchClickListener switchClickListener; - - public interface OnSwitchClickListener { - void onClick(int position); - } - - public void setOnSwitchClickListener(OnSwitchClickListener switchClickListener) { - this.switchClickListener = switchClickListener; - } - - static class ItemViewHolder extends RecyclerView.ViewHolder { - - private final TextView lightNameView; - private final TextView lightStatusView; - private final ImageView lightSwitch; - - ItemViewHolder(@NonNull View itemView) { - super(itemView); - lightNameView = itemView.findViewById(R.id.lightNameView); - lightStatusView = itemView.findViewById(R.id.lightStatusView); - lightSwitch = itemView.findViewById(R.id.lightSwitch); - } - - void bindView(LightListBean.DataBean.RowsBean dataBean) { - lightNameView.setText(dataBean.getLampName()); - String statusName = dataBean.getStatusName(); - lightStatusView.setText(statusName); - if (statusName.equals("灭灯")) { - lightSwitch.setBackgroundResource(R.drawable.ic_switch_off); - } else if (statusName.equals("报警")) { - lightSwitch.setBackgroundResource(R.drawable.ic_switch_warning); - } else { - lightSwitch.setBackgroundResource(R.drawable.ic_switch_on); - } - } - } -} diff --git a/app/src/main/java/com/casic/dcms/adapter/NormalRecyclerAdapter.java b/app/src/main/java/com/casic/dcms/adapter/NormalRecyclerAdapter.java new file mode 100644 index 0000000..c80e2d5 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/adapter/NormalRecyclerAdapter.java @@ -0,0 +1,134 @@ +package com.casic.dcms.adapter; + +import android.annotation.SuppressLint; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import androidx.annotation.LayoutRes; +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.DiffUtil; +import androidx.recyclerview.widget.RecyclerView; + +import com.pengxh.androidx.lite.adapter.ViewHolder; + +import java.util.List; + +/** + * RecyclerView普通列表适配器 + */ +public abstract class NormalRecyclerAdapter extends RecyclerView.Adapter { + + private static final String TAG = "NormalRecyclerAdapter"; + private final int xmlResource; + private final List dataRows; + + public NormalRecyclerAdapter(@LayoutRes int xmlResource, List dataRows) { + this.xmlResource = xmlResource; + this.dataRows = dataRows; + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + @NonNull + @Override + public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + return new ViewHolder(LayoutInflater.from(parent.getContext()).inflate(xmlResource, parent, false)); + } + + @Override + public void onBindViewHolder(@NonNull ViewHolder holder, @SuppressLint("RecyclerView") int position) { + convertView(holder, position, dataRows.get(position)); + + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (itemClickedListener == null) { + return; + } + itemClickedListener.onItemClicked(position, dataRows.get(position)); + } + }); + } + + public void refresh(List newRows) { + DiffUtil.Callback diffCallback = new DiffUtil.Callback() { + + @Override + public int getOldListSize() { + return dataRows.size(); + } + + @Override + public int getNewListSize() { + return newRows.size(); + } + + @Override + public boolean areItemsTheSame(int oldItemPosition, int newItemPosition) { + if (dataRows == null || newRows == null) { + return false; + } + + // 检查索引是否在有效范围内 + if (oldItemPosition < 0 || oldItemPosition >= dataRows.size() || + newItemPosition < 0 || newItemPosition >= newRows.size()) { + return false; + } + + // 获取元素并进行比较 + Object oldItem = dataRows.get(oldItemPosition); + Object newItem = newRows.get(newItemPosition); + + // 处理空指针情况 + if (oldItem == null && newItem == null) { + return true; + } + if (oldItem == null || newItem == null) { + return false; + } + + return oldItem.equals(newItem); + } + + @Override + public boolean areContentsTheSame(int oldItemPosition, int newItemPosition) { + return dataRows.get(oldItemPosition) == newRows.get(newItemPosition); + } + }; + + DiffUtil.DiffResult diffResult = DiffUtil.calculateDiff(diffCallback); + + dataRows.clear(); + dataRows.addAll(newRows); + + diffResult.dispatchUpdatesTo(this); + } + + /** + * 加载更多 + */ + public void loadMore(List newRows) { + if (newRows.isEmpty()) { + return; + } + int startPosition = this.dataRows.size(); + this.dataRows.addAll(newRows); + notifyItemRangeInserted(startPosition, newRows.size()); + } + + public abstract void convertView(ViewHolder viewHolder, int position, T item); + + private OnItemClickedListener itemClickedListener; + + public interface OnItemClickedListener { + void onItemClicked(int position, T t); + } + + public void setOnItemClickedListener(OnItemClickedListener listener) { + itemClickedListener = listener; + } +} diff --git a/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java b/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java index 1deb066..80f7b98 100644 --- a/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java @@ -58,13 +58,13 @@ } @SuppressLint("NotifyDataSetChanged") - public void setRefreshData(List dataRows) { + public void refresh(List dataRows) { this.dataRows.clear(); this.dataRows.addAll(dataRows); notifyDataSetChanged(); } - public void setLoadMoreData(List dataRows) { + public void loadMore(List dataRows) { this.dataRows.addAll(dataRows); notifyItemRangeInserted(this.dataRows.size(), dataRows.size()); } diff --git a/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java index 3535c40..bd5e484 100644 --- a/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java @@ -10,6 +10,7 @@ import com.bumptech.glide.Glide; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentHomeBinding; import com.casic.dcms.model.HomePageBean; import com.casic.dcms.model.UserBean; @@ -36,7 +37,6 @@ import com.casic.dcms.view.verify.VerifyCaseActivity; import com.casic.dcms.vm.HomePageViewModel; import com.casic.dcms.vm.UserViewModel; -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.kit.LongKit; diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java index 0d2926f..a9cc331 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java @@ -5,22 +5,26 @@ import android.os.Handler; import android.os.Message; import android.text.TextUtils; +import android.view.View; import androidx.annotation.NonNull; import androidx.annotation.Nullable; +import androidx.cardview.widget.CardView; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; -import com.casic.dcms.adapter.LightResultAdapter; +import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentLightListBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightDetailBean; import com.casic.dcms.model.LightListBean; -import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.vm.LightViewModel; import com.casic.dcms.widgets.LightDetailDialog; +import com.pengxh.androidx.lite.adapter.ViewHolder; import com.pengxh.androidx.lite.base.AndroidxBaseFragment; import com.pengxh.androidx.lite.divider.RecyclerViewItemDivider; +import com.pengxh.androidx.lite.kit.IntKit; import com.pengxh.androidx.lite.kit.StringKit; import com.pengxh.androidx.lite.utils.LoadState; import com.pengxh.androidx.lite.utils.LoadingDialog; @@ -37,7 +41,7 @@ private static final String TAG = "LightOnListFragment"; private final WeakReferenceHandler weakReferenceHandler = new WeakReferenceHandler(this); private LightViewModel lightViewModel; - private LightResultAdapter adapter; + private NormalRecyclerAdapter adapter; private List dataBeans = new ArrayList<>(); private int pageIndex = 1; private boolean isRefresh, isLoadMore = false; @@ -50,7 +54,7 @@ @Override protected void initOnCreate(@Nullable Bundle savedInstanceState) { lightViewModel = new ViewModelProvider(this).get(LightViewModel.class); - getLightList(); + lightViewModel.getLightList(pageIndex); } @Override @@ -67,10 +71,6 @@ }); } - private void getLightList() { - lightViewModel.getLightList(LocaleConstant.PAGE_LIMIT, pageIndex); - } - @Override protected void initEvent() { getBinding().refreshLayout.setOnRefreshListener(new OnRefreshListener() { @@ -79,7 +79,7 @@ isRefresh = true; //刷新之后页码重置 pageIndex = 1; - getLightList(); + lightViewModel.getLightList(pageIndex); } }); getBinding().refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() { @@ -87,7 +87,7 @@ public void onLoadMore(@NonNull final RefreshLayout refreshLayout) { isLoadMore = true; pageIndex++; - getLightList(); + lightViewModel.getLightList(pageIndex); } }); @@ -97,21 +97,20 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题 - dataBeans = dataRows; + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - dataBeans.addAll(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { dataBeans = dataRows; + weakReferenceHandler.sendEmptyMessage(20210623); } - weakReferenceHandler.sendEmptyMessage(20210623); } } }); @@ -138,54 +137,67 @@ @Override public boolean handleMessage(@NonNull Message msg) { if (msg.what == 20210623) { - if (isRefresh || isLoadMore) { - adapter.notifyItemRangeInserted(adapter.getItemCount(), LocaleConstant.PAGE_LIMIT); + //首次加载数据 + if (dataBeans.size() == 0) { + getBinding().emptyView.show("没有路灯数据", null); } else { - //首次加载数据 - if (dataBeans.size() == 0) { - getBinding().emptyView.show("没有路灯数据", null); - } else { - getBinding().emptyView.hide(); - adapter = new LightResultAdapter(requireContext(), dataBeans); - getBinding().recyclerView.addItemDecoration(new RecyclerViewItemDivider(1, Color.LTGRAY)); - getBinding().recyclerView.setAdapter(adapter); - adapter.setOnGridItemClickListener(new LightResultAdapter.OnGridItemClickListener() { - @Override - public void onClick(int position) { - String lampId = dataBeans.get(position).getLampId(); - if (TextUtils.isEmpty(lampId)) { - StringKit.show(requireContext(), "错误,路灯编号为空"); - return; - } + getBinding().emptyView.hide(); + adapter = new NormalRecyclerAdapter(R.layout.item_light_recycleview, dataBeans) { + @Override + public void convertView(ViewHolder viewHolder, int position, LightListBean.DataBean.RowsBean item) { + String statusName = item.getStatusName(); + viewHolder.setText(R.id.lightNameView, item.getLampName()) + .setText(R.id.lightStatusView, "已" + statusName); - lightViewModel.getLightDetail(requireContext(), lampId); + CardView statueTagView = viewHolder.getView(R.id.statueTagView); + if (statusName.equals("灭灯")) { + viewHolder.setImageResource(R.id.lightSwitch, R.drawable.ic_switch_off); + statueTagView.setCardBackgroundColor(IntKit.convertColor(requireContext(), R.color.darkGray)); + } else if (statusName.equals("报警")) { + viewHolder.setImageResource(R.id.lightSwitch, R.drawable.ic_switch_warning); + statueTagView.setCardBackgroundColor(IntKit.convertColor(requireContext(), R.color.warnColor)); + } else { + viewHolder.setImageResource(R.id.lightSwitch, R.drawable.ic_switch_on); + statueTagView.setCardBackgroundColor(IntKit.convertColor(requireContext(), R.color.onLineColor)); } - }); - adapter.setOnSwitchClickListener(new LightResultAdapter.OnSwitchClickListener() { - @Override - public void onClick(int position) { - LightListBean.DataBean.RowsBean rowsBean = dataBeans.get(position); + viewHolder.setOnClickListener(R.id.lightSwitch, new View.OnClickListener() { + @Override + public void onClick(View v) { + List lampIds = new ArrayList<>(); + lampIds.add(Long.parseLong(item.getLampId())); - List lampIds = new ArrayList<>(); - lampIds.add(Long.parseLong(rowsBean.getLampId())); - - String statusName = rowsBean.getStatusName(); - String controlType; - if (statusName.equals("离线")) { - controlType = "1"; - } else { - controlType = "0"; + String statusName = item.getStatusName(); + String controlType; + if (statusName.equals("灭灯")) { + controlType = "1"; + } else { + controlType = "0"; + } + lightViewModel.controlLight(requireContext(), lampIds, controlType); } - lightViewModel.controlLight(requireContext(), lampIds, controlType); + }); + } + }; + getBinding().recyclerView.addItemDecoration(new RecyclerViewItemDivider(1, Color.LTGRAY)); + getBinding().recyclerView.setAdapter(adapter); + adapter.setOnItemClickedListener(new NormalRecyclerAdapter.OnItemClickedListener() { + @Override + public void onItemClicked(int position, LightListBean.DataBean.RowsBean rowsBean) { + String lampId = rowsBean.getLampId(); + if (TextUtils.isEmpty(lampId)) { + StringKit.show(requireContext(), "错误,路灯编号为空"); + return; } - }); - } + + lightViewModel.getLightDetail(requireContext(), lampId); + } + }); } } else if (msg.what == 20210624) { isRefresh = true; pageIndex = 1; - lightViewModel.getLightList(LocaleConstant.PAGE_LIMIT, pageIndex); + lightViewModel.getLightList(pageIndex); } return true; } diff --git a/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java index 64791dd..8f872db 100644 --- a/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java @@ -6,12 +6,12 @@ import androidx.annotation.Nullable; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.bean.NoticeLocaleBean; import com.casic.dcms.databinding.FragmentNoticeBinding; import com.casic.dcms.utils.DataBaseManager; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.CaseDetailActivity; -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.kit.ContextKit; diff --git a/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java b/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java index 5980aaf..93ab96c 100644 --- a/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java @@ -87,14 +87,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/business/PackageTodoFragment.java b/app/src/main/java/com/casic/dcms/fragment/business/PackageTodoFragment.java index 9f28bbe..1fefd3f 100644 --- a/app/src/main/java/com/casic/dcms/fragment/business/PackageTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/business/PackageTodoFragment.java @@ -88,14 +88,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { 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 816fb8f..62db8ed 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 @@ -12,13 +12,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentCheckCaseBinding; import com.casic.dcms.model.CaseCheckModel; import com.casic.dcms.utils.LocaleConstant; 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.kit.ContextKit; @@ -61,14 +61,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { 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 e472cd6..27f60a2 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 @@ -12,13 +12,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentCheckCaseBinding; import com.casic.dcms.model.CaseCheckModel; import com.casic.dcms.utils.LocaleConstant; 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.kit.ContextKit; @@ -62,14 +62,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAdjustFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAdjustFragment.java index 23a4f8e..fdee789 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAdjustFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAdjustFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.AdjustCaseModel; import com.casic.dcms.view.department.DeptAdjustDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -57,14 +57,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAuthorizeFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAuthorizeFragment.java index f5ba0b0..b5d807e 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAuthorizeFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAuthorizeFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.AuthorizeCaseModel; import com.casic.dcms.view.department.DeptAuthorizeDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -57,14 +57,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseDelayedFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseDelayedFragment.java index e16d47d..52c88fd 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseDelayedFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseDelayedFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.DelayedCaseModel; import com.casic.dcms.view.CaseDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -57,14 +57,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseHandledFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseHandledFragment.java index 0acf747..2ce5297 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseHandledFragment.java @@ -12,12 +12,12 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.HandledCaseModel; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.CaseDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -59,14 +59,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCasePostponeFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCasePostponeFragment.java index b2a3047..d8b3396 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCasePostponeFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCasePostponeFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.PostCaseModel; import com.casic.dcms.view.CaseDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -57,14 +57,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseProcessFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseProcessFragment.java index ef78a7d..2c5f4d7 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseProcessFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseProcessFragment.java @@ -12,12 +12,12 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.HandleCaseModel; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.view.department.DeptTodoDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.StringKit; @@ -58,14 +58,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseTodoFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseTodoFragment.java index 2f8cb8a..febcb54 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseTodoFragment.java @@ -13,13 +13,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.TodoCaseModel; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.department.DeptTodoDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.StringKit; @@ -60,14 +60,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/handle/CaseHandledFragment.java b/app/src/main/java/com/casic/dcms/fragment/handle/CaseHandledFragment.java index d61fff7..d8d825f 100644 --- a/app/src/main/java/com/casic/dcms/fragment/handle/CaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/handle/CaseHandledFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentHandleCaseBinding; import com.casic.dcms.model.CaseHandledBean; import com.casic.dcms.view.handle.CaseHandledDetailActivity; 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.kit.ContextKit; @@ -58,14 +58,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/adapter/LightResultAdapter.java b/app/src/main/java/com/casic/dcms/adapter/LightResultAdapter.java deleted file mode 100644 index 405af6e..0000000 --- a/app/src/main/java/com/casic/dcms/adapter/LightResultAdapter.java +++ /dev/null @@ -1,107 +0,0 @@ -package com.casic.dcms.adapter; - -import android.annotation.SuppressLint; -import android.content.Context; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.ImageView; -import android.widget.TextView; - -import androidx.annotation.NonNull; -import androidx.recyclerview.widget.RecyclerView; - -import com.casic.dcms.R; -import com.casic.dcms.model.LightListBean; - -import java.util.List; - -public class LightResultAdapter extends RecyclerView.Adapter { - - private final List dataBeans; - private final LayoutInflater layoutInflater; - - public LightResultAdapter(Context context, List beans) { - this.dataBeans = beans; - this.layoutInflater = LayoutInflater.from(context); - } - - @NonNull - @Override - public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - return new ItemViewHolder(layoutInflater.inflate(R.layout.item_light_recycleview, parent, false)); - } - - @Override - public void onBindViewHolder(@NonNull LightResultAdapter.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); - } - }); - } - if (switchClickListener != null) { - holder.lightSwitch.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - switchClickListener.onClick(position); - } - }); - } - } - - @Override - public int getItemCount() { - return dataBeans.size(); - } - - private OnGridItemClickListener clickListener; - - public interface OnGridItemClickListener { - void onClick(int position); - } - - public void setOnGridItemClickListener(OnGridItemClickListener onGridItemClickListener) { - this.clickListener = onGridItemClickListener; - } - - private OnSwitchClickListener switchClickListener; - - public interface OnSwitchClickListener { - void onClick(int position); - } - - public void setOnSwitchClickListener(OnSwitchClickListener switchClickListener) { - this.switchClickListener = switchClickListener; - } - - static class ItemViewHolder extends RecyclerView.ViewHolder { - - private final TextView lightNameView; - private final TextView lightStatusView; - private final ImageView lightSwitch; - - ItemViewHolder(@NonNull View itemView) { - super(itemView); - lightNameView = itemView.findViewById(R.id.lightNameView); - lightStatusView = itemView.findViewById(R.id.lightStatusView); - lightSwitch = itemView.findViewById(R.id.lightSwitch); - } - - void bindView(LightListBean.DataBean.RowsBean dataBean) { - lightNameView.setText(dataBean.getLampName()); - String statusName = dataBean.getStatusName(); - lightStatusView.setText(statusName); - if (statusName.equals("灭灯")) { - lightSwitch.setBackgroundResource(R.drawable.ic_switch_off); - } else if (statusName.equals("报警")) { - lightSwitch.setBackgroundResource(R.drawable.ic_switch_warning); - } else { - lightSwitch.setBackgroundResource(R.drawable.ic_switch_on); - } - } - } -} diff --git a/app/src/main/java/com/casic/dcms/adapter/NormalRecyclerAdapter.java b/app/src/main/java/com/casic/dcms/adapter/NormalRecyclerAdapter.java new file mode 100644 index 0000000..c80e2d5 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/adapter/NormalRecyclerAdapter.java @@ -0,0 +1,134 @@ +package com.casic.dcms.adapter; + +import android.annotation.SuppressLint; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import androidx.annotation.LayoutRes; +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.DiffUtil; +import androidx.recyclerview.widget.RecyclerView; + +import com.pengxh.androidx.lite.adapter.ViewHolder; + +import java.util.List; + +/** + * RecyclerView普通列表适配器 + */ +public abstract class NormalRecyclerAdapter extends RecyclerView.Adapter { + + private static final String TAG = "NormalRecyclerAdapter"; + private final int xmlResource; + private final List dataRows; + + public NormalRecyclerAdapter(@LayoutRes int xmlResource, List dataRows) { + this.xmlResource = xmlResource; + this.dataRows = dataRows; + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + @NonNull + @Override + public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + return new ViewHolder(LayoutInflater.from(parent.getContext()).inflate(xmlResource, parent, false)); + } + + @Override + public void onBindViewHolder(@NonNull ViewHolder holder, @SuppressLint("RecyclerView") int position) { + convertView(holder, position, dataRows.get(position)); + + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (itemClickedListener == null) { + return; + } + itemClickedListener.onItemClicked(position, dataRows.get(position)); + } + }); + } + + public void refresh(List newRows) { + DiffUtil.Callback diffCallback = new DiffUtil.Callback() { + + @Override + public int getOldListSize() { + return dataRows.size(); + } + + @Override + public int getNewListSize() { + return newRows.size(); + } + + @Override + public boolean areItemsTheSame(int oldItemPosition, int newItemPosition) { + if (dataRows == null || newRows == null) { + return false; + } + + // 检查索引是否在有效范围内 + if (oldItemPosition < 0 || oldItemPosition >= dataRows.size() || + newItemPosition < 0 || newItemPosition >= newRows.size()) { + return false; + } + + // 获取元素并进行比较 + Object oldItem = dataRows.get(oldItemPosition); + Object newItem = newRows.get(newItemPosition); + + // 处理空指针情况 + if (oldItem == null && newItem == null) { + return true; + } + if (oldItem == null || newItem == null) { + return false; + } + + return oldItem.equals(newItem); + } + + @Override + public boolean areContentsTheSame(int oldItemPosition, int newItemPosition) { + return dataRows.get(oldItemPosition) == newRows.get(newItemPosition); + } + }; + + DiffUtil.DiffResult diffResult = DiffUtil.calculateDiff(diffCallback); + + dataRows.clear(); + dataRows.addAll(newRows); + + diffResult.dispatchUpdatesTo(this); + } + + /** + * 加载更多 + */ + public void loadMore(List newRows) { + if (newRows.isEmpty()) { + return; + } + int startPosition = this.dataRows.size(); + this.dataRows.addAll(newRows); + notifyItemRangeInserted(startPosition, newRows.size()); + } + + public abstract void convertView(ViewHolder viewHolder, int position, T item); + + private OnItemClickedListener itemClickedListener; + + public interface OnItemClickedListener { + void onItemClicked(int position, T t); + } + + public void setOnItemClickedListener(OnItemClickedListener listener) { + itemClickedListener = listener; + } +} diff --git a/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java b/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java index 1deb066..80f7b98 100644 --- a/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java @@ -58,13 +58,13 @@ } @SuppressLint("NotifyDataSetChanged") - public void setRefreshData(List dataRows) { + public void refresh(List dataRows) { this.dataRows.clear(); this.dataRows.addAll(dataRows); notifyDataSetChanged(); } - public void setLoadMoreData(List dataRows) { + public void loadMore(List dataRows) { this.dataRows.addAll(dataRows); notifyItemRangeInserted(this.dataRows.size(), dataRows.size()); } diff --git a/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java index 3535c40..bd5e484 100644 --- a/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java @@ -10,6 +10,7 @@ import com.bumptech.glide.Glide; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentHomeBinding; import com.casic.dcms.model.HomePageBean; import com.casic.dcms.model.UserBean; @@ -36,7 +37,6 @@ import com.casic.dcms.view.verify.VerifyCaseActivity; import com.casic.dcms.vm.HomePageViewModel; import com.casic.dcms.vm.UserViewModel; -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.kit.LongKit; diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java index 0d2926f..a9cc331 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java @@ -5,22 +5,26 @@ import android.os.Handler; import android.os.Message; import android.text.TextUtils; +import android.view.View; import androidx.annotation.NonNull; import androidx.annotation.Nullable; +import androidx.cardview.widget.CardView; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; -import com.casic.dcms.adapter.LightResultAdapter; +import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentLightListBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightDetailBean; import com.casic.dcms.model.LightListBean; -import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.vm.LightViewModel; import com.casic.dcms.widgets.LightDetailDialog; +import com.pengxh.androidx.lite.adapter.ViewHolder; import com.pengxh.androidx.lite.base.AndroidxBaseFragment; import com.pengxh.androidx.lite.divider.RecyclerViewItemDivider; +import com.pengxh.androidx.lite.kit.IntKit; import com.pengxh.androidx.lite.kit.StringKit; import com.pengxh.androidx.lite.utils.LoadState; import com.pengxh.androidx.lite.utils.LoadingDialog; @@ -37,7 +41,7 @@ private static final String TAG = "LightOnListFragment"; private final WeakReferenceHandler weakReferenceHandler = new WeakReferenceHandler(this); private LightViewModel lightViewModel; - private LightResultAdapter adapter; + private NormalRecyclerAdapter adapter; private List dataBeans = new ArrayList<>(); private int pageIndex = 1; private boolean isRefresh, isLoadMore = false; @@ -50,7 +54,7 @@ @Override protected void initOnCreate(@Nullable Bundle savedInstanceState) { lightViewModel = new ViewModelProvider(this).get(LightViewModel.class); - getLightList(); + lightViewModel.getLightList(pageIndex); } @Override @@ -67,10 +71,6 @@ }); } - private void getLightList() { - lightViewModel.getLightList(LocaleConstant.PAGE_LIMIT, pageIndex); - } - @Override protected void initEvent() { getBinding().refreshLayout.setOnRefreshListener(new OnRefreshListener() { @@ -79,7 +79,7 @@ isRefresh = true; //刷新之后页码重置 pageIndex = 1; - getLightList(); + lightViewModel.getLightList(pageIndex); } }); getBinding().refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() { @@ -87,7 +87,7 @@ public void onLoadMore(@NonNull final RefreshLayout refreshLayout) { isLoadMore = true; pageIndex++; - getLightList(); + lightViewModel.getLightList(pageIndex); } }); @@ -97,21 +97,20 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题 - dataBeans = dataRows; + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - dataBeans.addAll(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { dataBeans = dataRows; + weakReferenceHandler.sendEmptyMessage(20210623); } - weakReferenceHandler.sendEmptyMessage(20210623); } } }); @@ -138,54 +137,67 @@ @Override public boolean handleMessage(@NonNull Message msg) { if (msg.what == 20210623) { - if (isRefresh || isLoadMore) { - adapter.notifyItemRangeInserted(adapter.getItemCount(), LocaleConstant.PAGE_LIMIT); + //首次加载数据 + if (dataBeans.size() == 0) { + getBinding().emptyView.show("没有路灯数据", null); } else { - //首次加载数据 - if (dataBeans.size() == 0) { - getBinding().emptyView.show("没有路灯数据", null); - } else { - getBinding().emptyView.hide(); - adapter = new LightResultAdapter(requireContext(), dataBeans); - getBinding().recyclerView.addItemDecoration(new RecyclerViewItemDivider(1, Color.LTGRAY)); - getBinding().recyclerView.setAdapter(adapter); - adapter.setOnGridItemClickListener(new LightResultAdapter.OnGridItemClickListener() { - @Override - public void onClick(int position) { - String lampId = dataBeans.get(position).getLampId(); - if (TextUtils.isEmpty(lampId)) { - StringKit.show(requireContext(), "错误,路灯编号为空"); - return; - } + getBinding().emptyView.hide(); + adapter = new NormalRecyclerAdapter(R.layout.item_light_recycleview, dataBeans) { + @Override + public void convertView(ViewHolder viewHolder, int position, LightListBean.DataBean.RowsBean item) { + String statusName = item.getStatusName(); + viewHolder.setText(R.id.lightNameView, item.getLampName()) + .setText(R.id.lightStatusView, "已" + statusName); - lightViewModel.getLightDetail(requireContext(), lampId); + CardView statueTagView = viewHolder.getView(R.id.statueTagView); + if (statusName.equals("灭灯")) { + viewHolder.setImageResource(R.id.lightSwitch, R.drawable.ic_switch_off); + statueTagView.setCardBackgroundColor(IntKit.convertColor(requireContext(), R.color.darkGray)); + } else if (statusName.equals("报警")) { + viewHolder.setImageResource(R.id.lightSwitch, R.drawable.ic_switch_warning); + statueTagView.setCardBackgroundColor(IntKit.convertColor(requireContext(), R.color.warnColor)); + } else { + viewHolder.setImageResource(R.id.lightSwitch, R.drawable.ic_switch_on); + statueTagView.setCardBackgroundColor(IntKit.convertColor(requireContext(), R.color.onLineColor)); } - }); - adapter.setOnSwitchClickListener(new LightResultAdapter.OnSwitchClickListener() { - @Override - public void onClick(int position) { - LightListBean.DataBean.RowsBean rowsBean = dataBeans.get(position); + viewHolder.setOnClickListener(R.id.lightSwitch, new View.OnClickListener() { + @Override + public void onClick(View v) { + List lampIds = new ArrayList<>(); + lampIds.add(Long.parseLong(item.getLampId())); - List lampIds = new ArrayList<>(); - lampIds.add(Long.parseLong(rowsBean.getLampId())); - - String statusName = rowsBean.getStatusName(); - String controlType; - if (statusName.equals("离线")) { - controlType = "1"; - } else { - controlType = "0"; + String statusName = item.getStatusName(); + String controlType; + if (statusName.equals("灭灯")) { + controlType = "1"; + } else { + controlType = "0"; + } + lightViewModel.controlLight(requireContext(), lampIds, controlType); } - lightViewModel.controlLight(requireContext(), lampIds, controlType); + }); + } + }; + getBinding().recyclerView.addItemDecoration(new RecyclerViewItemDivider(1, Color.LTGRAY)); + getBinding().recyclerView.setAdapter(adapter); + adapter.setOnItemClickedListener(new NormalRecyclerAdapter.OnItemClickedListener() { + @Override + public void onItemClicked(int position, LightListBean.DataBean.RowsBean rowsBean) { + String lampId = rowsBean.getLampId(); + if (TextUtils.isEmpty(lampId)) { + StringKit.show(requireContext(), "错误,路灯编号为空"); + return; } - }); - } + + lightViewModel.getLightDetail(requireContext(), lampId); + } + }); } } else if (msg.what == 20210624) { isRefresh = true; pageIndex = 1; - lightViewModel.getLightList(LocaleConstant.PAGE_LIMIT, pageIndex); + lightViewModel.getLightList(pageIndex); } return true; } diff --git a/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java index 64791dd..8f872db 100644 --- a/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java @@ -6,12 +6,12 @@ import androidx.annotation.Nullable; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.bean.NoticeLocaleBean; import com.casic.dcms.databinding.FragmentNoticeBinding; import com.casic.dcms.utils.DataBaseManager; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.CaseDetailActivity; -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.kit.ContextKit; diff --git a/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java b/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java index 5980aaf..93ab96c 100644 --- a/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java @@ -87,14 +87,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/business/PackageTodoFragment.java b/app/src/main/java/com/casic/dcms/fragment/business/PackageTodoFragment.java index 9f28bbe..1fefd3f 100644 --- a/app/src/main/java/com/casic/dcms/fragment/business/PackageTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/business/PackageTodoFragment.java @@ -88,14 +88,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { 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 816fb8f..62db8ed 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 @@ -12,13 +12,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentCheckCaseBinding; import com.casic.dcms.model.CaseCheckModel; import com.casic.dcms.utils.LocaleConstant; 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.kit.ContextKit; @@ -61,14 +61,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { 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 e472cd6..27f60a2 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 @@ -12,13 +12,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentCheckCaseBinding; import com.casic.dcms.model.CaseCheckModel; import com.casic.dcms.utils.LocaleConstant; 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.kit.ContextKit; @@ -62,14 +62,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAdjustFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAdjustFragment.java index 23a4f8e..fdee789 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAdjustFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAdjustFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.AdjustCaseModel; import com.casic.dcms.view.department.DeptAdjustDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -57,14 +57,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAuthorizeFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAuthorizeFragment.java index f5ba0b0..b5d807e 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAuthorizeFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAuthorizeFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.AuthorizeCaseModel; import com.casic.dcms.view.department.DeptAuthorizeDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -57,14 +57,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseDelayedFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseDelayedFragment.java index e16d47d..52c88fd 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseDelayedFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseDelayedFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.DelayedCaseModel; import com.casic.dcms.view.CaseDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -57,14 +57,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseHandledFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseHandledFragment.java index 0acf747..2ce5297 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseHandledFragment.java @@ -12,12 +12,12 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.HandledCaseModel; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.CaseDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -59,14 +59,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCasePostponeFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCasePostponeFragment.java index b2a3047..d8b3396 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCasePostponeFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCasePostponeFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.PostCaseModel; import com.casic.dcms.view.CaseDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -57,14 +57,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseProcessFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseProcessFragment.java index ef78a7d..2c5f4d7 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseProcessFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseProcessFragment.java @@ -12,12 +12,12 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.HandleCaseModel; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.view.department.DeptTodoDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.StringKit; @@ -58,14 +58,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseTodoFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseTodoFragment.java index 2f8cb8a..febcb54 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseTodoFragment.java @@ -13,13 +13,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.TodoCaseModel; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.department.DeptTodoDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.StringKit; @@ -60,14 +60,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/handle/CaseHandledFragment.java b/app/src/main/java/com/casic/dcms/fragment/handle/CaseHandledFragment.java index d61fff7..d8d825f 100644 --- a/app/src/main/java/com/casic/dcms/fragment/handle/CaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/handle/CaseHandledFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentHandleCaseBinding; import com.casic.dcms.model.CaseHandledBean; import com.casic.dcms.view.handle.CaseHandledDetailActivity; 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.kit.ContextKit; @@ -58,14 +58,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/handle/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/fragment/handle/CaseTodoFragment.java index 2196251..26d0942 100644 --- a/app/src/main/java/com/casic/dcms/fragment/handle/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/handle/CaseTodoFragment.java @@ -13,12 +13,12 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentHandleCaseBinding; import com.casic.dcms.model.CaseHandleBean; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.handle.CaseHandleDetailActivity; 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.kit.StringKit; @@ -60,14 +60,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/adapter/LightResultAdapter.java b/app/src/main/java/com/casic/dcms/adapter/LightResultAdapter.java deleted file mode 100644 index 405af6e..0000000 --- a/app/src/main/java/com/casic/dcms/adapter/LightResultAdapter.java +++ /dev/null @@ -1,107 +0,0 @@ -package com.casic.dcms.adapter; - -import android.annotation.SuppressLint; -import android.content.Context; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.ImageView; -import android.widget.TextView; - -import androidx.annotation.NonNull; -import androidx.recyclerview.widget.RecyclerView; - -import com.casic.dcms.R; -import com.casic.dcms.model.LightListBean; - -import java.util.List; - -public class LightResultAdapter extends RecyclerView.Adapter { - - private final List dataBeans; - private final LayoutInflater layoutInflater; - - public LightResultAdapter(Context context, List beans) { - this.dataBeans = beans; - this.layoutInflater = LayoutInflater.from(context); - } - - @NonNull - @Override - public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - return new ItemViewHolder(layoutInflater.inflate(R.layout.item_light_recycleview, parent, false)); - } - - @Override - public void onBindViewHolder(@NonNull LightResultAdapter.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); - } - }); - } - if (switchClickListener != null) { - holder.lightSwitch.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - switchClickListener.onClick(position); - } - }); - } - } - - @Override - public int getItemCount() { - return dataBeans.size(); - } - - private OnGridItemClickListener clickListener; - - public interface OnGridItemClickListener { - void onClick(int position); - } - - public void setOnGridItemClickListener(OnGridItemClickListener onGridItemClickListener) { - this.clickListener = onGridItemClickListener; - } - - private OnSwitchClickListener switchClickListener; - - public interface OnSwitchClickListener { - void onClick(int position); - } - - public void setOnSwitchClickListener(OnSwitchClickListener switchClickListener) { - this.switchClickListener = switchClickListener; - } - - static class ItemViewHolder extends RecyclerView.ViewHolder { - - private final TextView lightNameView; - private final TextView lightStatusView; - private final ImageView lightSwitch; - - ItemViewHolder(@NonNull View itemView) { - super(itemView); - lightNameView = itemView.findViewById(R.id.lightNameView); - lightStatusView = itemView.findViewById(R.id.lightStatusView); - lightSwitch = itemView.findViewById(R.id.lightSwitch); - } - - void bindView(LightListBean.DataBean.RowsBean dataBean) { - lightNameView.setText(dataBean.getLampName()); - String statusName = dataBean.getStatusName(); - lightStatusView.setText(statusName); - if (statusName.equals("灭灯")) { - lightSwitch.setBackgroundResource(R.drawable.ic_switch_off); - } else if (statusName.equals("报警")) { - lightSwitch.setBackgroundResource(R.drawable.ic_switch_warning); - } else { - lightSwitch.setBackgroundResource(R.drawable.ic_switch_on); - } - } - } -} diff --git a/app/src/main/java/com/casic/dcms/adapter/NormalRecyclerAdapter.java b/app/src/main/java/com/casic/dcms/adapter/NormalRecyclerAdapter.java new file mode 100644 index 0000000..c80e2d5 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/adapter/NormalRecyclerAdapter.java @@ -0,0 +1,134 @@ +package com.casic.dcms.adapter; + +import android.annotation.SuppressLint; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import androidx.annotation.LayoutRes; +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.DiffUtil; +import androidx.recyclerview.widget.RecyclerView; + +import com.pengxh.androidx.lite.adapter.ViewHolder; + +import java.util.List; + +/** + * RecyclerView普通列表适配器 + */ +public abstract class NormalRecyclerAdapter extends RecyclerView.Adapter { + + private static final String TAG = "NormalRecyclerAdapter"; + private final int xmlResource; + private final List dataRows; + + public NormalRecyclerAdapter(@LayoutRes int xmlResource, List dataRows) { + this.xmlResource = xmlResource; + this.dataRows = dataRows; + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + @NonNull + @Override + public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + return new ViewHolder(LayoutInflater.from(parent.getContext()).inflate(xmlResource, parent, false)); + } + + @Override + public void onBindViewHolder(@NonNull ViewHolder holder, @SuppressLint("RecyclerView") int position) { + convertView(holder, position, dataRows.get(position)); + + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (itemClickedListener == null) { + return; + } + itemClickedListener.onItemClicked(position, dataRows.get(position)); + } + }); + } + + public void refresh(List newRows) { + DiffUtil.Callback diffCallback = new DiffUtil.Callback() { + + @Override + public int getOldListSize() { + return dataRows.size(); + } + + @Override + public int getNewListSize() { + return newRows.size(); + } + + @Override + public boolean areItemsTheSame(int oldItemPosition, int newItemPosition) { + if (dataRows == null || newRows == null) { + return false; + } + + // 检查索引是否在有效范围内 + if (oldItemPosition < 0 || oldItemPosition >= dataRows.size() || + newItemPosition < 0 || newItemPosition >= newRows.size()) { + return false; + } + + // 获取元素并进行比较 + Object oldItem = dataRows.get(oldItemPosition); + Object newItem = newRows.get(newItemPosition); + + // 处理空指针情况 + if (oldItem == null && newItem == null) { + return true; + } + if (oldItem == null || newItem == null) { + return false; + } + + return oldItem.equals(newItem); + } + + @Override + public boolean areContentsTheSame(int oldItemPosition, int newItemPosition) { + return dataRows.get(oldItemPosition) == newRows.get(newItemPosition); + } + }; + + DiffUtil.DiffResult diffResult = DiffUtil.calculateDiff(diffCallback); + + dataRows.clear(); + dataRows.addAll(newRows); + + diffResult.dispatchUpdatesTo(this); + } + + /** + * 加载更多 + */ + public void loadMore(List newRows) { + if (newRows.isEmpty()) { + return; + } + int startPosition = this.dataRows.size(); + this.dataRows.addAll(newRows); + notifyItemRangeInserted(startPosition, newRows.size()); + } + + public abstract void convertView(ViewHolder viewHolder, int position, T item); + + private OnItemClickedListener itemClickedListener; + + public interface OnItemClickedListener { + void onItemClicked(int position, T t); + } + + public void setOnItemClickedListener(OnItemClickedListener listener) { + itemClickedListener = listener; + } +} diff --git a/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java b/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java index 1deb066..80f7b98 100644 --- a/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java @@ -58,13 +58,13 @@ } @SuppressLint("NotifyDataSetChanged") - public void setRefreshData(List dataRows) { + public void refresh(List dataRows) { this.dataRows.clear(); this.dataRows.addAll(dataRows); notifyDataSetChanged(); } - public void setLoadMoreData(List dataRows) { + public void loadMore(List dataRows) { this.dataRows.addAll(dataRows); notifyItemRangeInserted(this.dataRows.size(), dataRows.size()); } diff --git a/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java index 3535c40..bd5e484 100644 --- a/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java @@ -10,6 +10,7 @@ import com.bumptech.glide.Glide; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentHomeBinding; import com.casic.dcms.model.HomePageBean; import com.casic.dcms.model.UserBean; @@ -36,7 +37,6 @@ import com.casic.dcms.view.verify.VerifyCaseActivity; import com.casic.dcms.vm.HomePageViewModel; import com.casic.dcms.vm.UserViewModel; -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.kit.LongKit; diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java index 0d2926f..a9cc331 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java @@ -5,22 +5,26 @@ import android.os.Handler; import android.os.Message; import android.text.TextUtils; +import android.view.View; import androidx.annotation.NonNull; import androidx.annotation.Nullable; +import androidx.cardview.widget.CardView; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; -import com.casic.dcms.adapter.LightResultAdapter; +import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentLightListBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightDetailBean; import com.casic.dcms.model.LightListBean; -import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.vm.LightViewModel; import com.casic.dcms.widgets.LightDetailDialog; +import com.pengxh.androidx.lite.adapter.ViewHolder; import com.pengxh.androidx.lite.base.AndroidxBaseFragment; import com.pengxh.androidx.lite.divider.RecyclerViewItemDivider; +import com.pengxh.androidx.lite.kit.IntKit; import com.pengxh.androidx.lite.kit.StringKit; import com.pengxh.androidx.lite.utils.LoadState; import com.pengxh.androidx.lite.utils.LoadingDialog; @@ -37,7 +41,7 @@ private static final String TAG = "LightOnListFragment"; private final WeakReferenceHandler weakReferenceHandler = new WeakReferenceHandler(this); private LightViewModel lightViewModel; - private LightResultAdapter adapter; + private NormalRecyclerAdapter adapter; private List dataBeans = new ArrayList<>(); private int pageIndex = 1; private boolean isRefresh, isLoadMore = false; @@ -50,7 +54,7 @@ @Override protected void initOnCreate(@Nullable Bundle savedInstanceState) { lightViewModel = new ViewModelProvider(this).get(LightViewModel.class); - getLightList(); + lightViewModel.getLightList(pageIndex); } @Override @@ -67,10 +71,6 @@ }); } - private void getLightList() { - lightViewModel.getLightList(LocaleConstant.PAGE_LIMIT, pageIndex); - } - @Override protected void initEvent() { getBinding().refreshLayout.setOnRefreshListener(new OnRefreshListener() { @@ -79,7 +79,7 @@ isRefresh = true; //刷新之后页码重置 pageIndex = 1; - getLightList(); + lightViewModel.getLightList(pageIndex); } }); getBinding().refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() { @@ -87,7 +87,7 @@ public void onLoadMore(@NonNull final RefreshLayout refreshLayout) { isLoadMore = true; pageIndex++; - getLightList(); + lightViewModel.getLightList(pageIndex); } }); @@ -97,21 +97,20 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题 - dataBeans = dataRows; + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - dataBeans.addAll(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { dataBeans = dataRows; + weakReferenceHandler.sendEmptyMessage(20210623); } - weakReferenceHandler.sendEmptyMessage(20210623); } } }); @@ -138,54 +137,67 @@ @Override public boolean handleMessage(@NonNull Message msg) { if (msg.what == 20210623) { - if (isRefresh || isLoadMore) { - adapter.notifyItemRangeInserted(adapter.getItemCount(), LocaleConstant.PAGE_LIMIT); + //首次加载数据 + if (dataBeans.size() == 0) { + getBinding().emptyView.show("没有路灯数据", null); } else { - //首次加载数据 - if (dataBeans.size() == 0) { - getBinding().emptyView.show("没有路灯数据", null); - } else { - getBinding().emptyView.hide(); - adapter = new LightResultAdapter(requireContext(), dataBeans); - getBinding().recyclerView.addItemDecoration(new RecyclerViewItemDivider(1, Color.LTGRAY)); - getBinding().recyclerView.setAdapter(adapter); - adapter.setOnGridItemClickListener(new LightResultAdapter.OnGridItemClickListener() { - @Override - public void onClick(int position) { - String lampId = dataBeans.get(position).getLampId(); - if (TextUtils.isEmpty(lampId)) { - StringKit.show(requireContext(), "错误,路灯编号为空"); - return; - } + getBinding().emptyView.hide(); + adapter = new NormalRecyclerAdapter(R.layout.item_light_recycleview, dataBeans) { + @Override + public void convertView(ViewHolder viewHolder, int position, LightListBean.DataBean.RowsBean item) { + String statusName = item.getStatusName(); + viewHolder.setText(R.id.lightNameView, item.getLampName()) + .setText(R.id.lightStatusView, "已" + statusName); - lightViewModel.getLightDetail(requireContext(), lampId); + CardView statueTagView = viewHolder.getView(R.id.statueTagView); + if (statusName.equals("灭灯")) { + viewHolder.setImageResource(R.id.lightSwitch, R.drawable.ic_switch_off); + statueTagView.setCardBackgroundColor(IntKit.convertColor(requireContext(), R.color.darkGray)); + } else if (statusName.equals("报警")) { + viewHolder.setImageResource(R.id.lightSwitch, R.drawable.ic_switch_warning); + statueTagView.setCardBackgroundColor(IntKit.convertColor(requireContext(), R.color.warnColor)); + } else { + viewHolder.setImageResource(R.id.lightSwitch, R.drawable.ic_switch_on); + statueTagView.setCardBackgroundColor(IntKit.convertColor(requireContext(), R.color.onLineColor)); } - }); - adapter.setOnSwitchClickListener(new LightResultAdapter.OnSwitchClickListener() { - @Override - public void onClick(int position) { - LightListBean.DataBean.RowsBean rowsBean = dataBeans.get(position); + viewHolder.setOnClickListener(R.id.lightSwitch, new View.OnClickListener() { + @Override + public void onClick(View v) { + List lampIds = new ArrayList<>(); + lampIds.add(Long.parseLong(item.getLampId())); - List lampIds = new ArrayList<>(); - lampIds.add(Long.parseLong(rowsBean.getLampId())); - - String statusName = rowsBean.getStatusName(); - String controlType; - if (statusName.equals("离线")) { - controlType = "1"; - } else { - controlType = "0"; + String statusName = item.getStatusName(); + String controlType; + if (statusName.equals("灭灯")) { + controlType = "1"; + } else { + controlType = "0"; + } + lightViewModel.controlLight(requireContext(), lampIds, controlType); } - lightViewModel.controlLight(requireContext(), lampIds, controlType); + }); + } + }; + getBinding().recyclerView.addItemDecoration(new RecyclerViewItemDivider(1, Color.LTGRAY)); + getBinding().recyclerView.setAdapter(adapter); + adapter.setOnItemClickedListener(new NormalRecyclerAdapter.OnItemClickedListener() { + @Override + public void onItemClicked(int position, LightListBean.DataBean.RowsBean rowsBean) { + String lampId = rowsBean.getLampId(); + if (TextUtils.isEmpty(lampId)) { + StringKit.show(requireContext(), "错误,路灯编号为空"); + return; } - }); - } + + lightViewModel.getLightDetail(requireContext(), lampId); + } + }); } } else if (msg.what == 20210624) { isRefresh = true; pageIndex = 1; - lightViewModel.getLightList(LocaleConstant.PAGE_LIMIT, pageIndex); + lightViewModel.getLightList(pageIndex); } return true; } diff --git a/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java index 64791dd..8f872db 100644 --- a/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java @@ -6,12 +6,12 @@ import androidx.annotation.Nullable; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.bean.NoticeLocaleBean; import com.casic.dcms.databinding.FragmentNoticeBinding; import com.casic.dcms.utils.DataBaseManager; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.CaseDetailActivity; -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.kit.ContextKit; diff --git a/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java b/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java index 5980aaf..93ab96c 100644 --- a/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java @@ -87,14 +87,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/business/PackageTodoFragment.java b/app/src/main/java/com/casic/dcms/fragment/business/PackageTodoFragment.java index 9f28bbe..1fefd3f 100644 --- a/app/src/main/java/com/casic/dcms/fragment/business/PackageTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/business/PackageTodoFragment.java @@ -88,14 +88,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { 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 816fb8f..62db8ed 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 @@ -12,13 +12,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentCheckCaseBinding; import com.casic.dcms.model.CaseCheckModel; import com.casic.dcms.utils.LocaleConstant; 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.kit.ContextKit; @@ -61,14 +61,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { 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 e472cd6..27f60a2 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 @@ -12,13 +12,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentCheckCaseBinding; import com.casic.dcms.model.CaseCheckModel; import com.casic.dcms.utils.LocaleConstant; 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.kit.ContextKit; @@ -62,14 +62,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAdjustFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAdjustFragment.java index 23a4f8e..fdee789 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAdjustFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAdjustFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.AdjustCaseModel; import com.casic.dcms.view.department.DeptAdjustDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -57,14 +57,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAuthorizeFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAuthorizeFragment.java index f5ba0b0..b5d807e 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAuthorizeFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAuthorizeFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.AuthorizeCaseModel; import com.casic.dcms.view.department.DeptAuthorizeDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -57,14 +57,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseDelayedFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseDelayedFragment.java index e16d47d..52c88fd 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseDelayedFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseDelayedFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.DelayedCaseModel; import com.casic.dcms.view.CaseDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -57,14 +57,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseHandledFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseHandledFragment.java index 0acf747..2ce5297 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseHandledFragment.java @@ -12,12 +12,12 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.HandledCaseModel; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.CaseDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -59,14 +59,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCasePostponeFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCasePostponeFragment.java index b2a3047..d8b3396 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCasePostponeFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCasePostponeFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.PostCaseModel; import com.casic.dcms.view.CaseDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -57,14 +57,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseProcessFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseProcessFragment.java index ef78a7d..2c5f4d7 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseProcessFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseProcessFragment.java @@ -12,12 +12,12 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.HandleCaseModel; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.view.department.DeptTodoDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.StringKit; @@ -58,14 +58,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseTodoFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseTodoFragment.java index 2f8cb8a..febcb54 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseTodoFragment.java @@ -13,13 +13,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.TodoCaseModel; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.department.DeptTodoDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.StringKit; @@ -60,14 +60,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/handle/CaseHandledFragment.java b/app/src/main/java/com/casic/dcms/fragment/handle/CaseHandledFragment.java index d61fff7..d8d825f 100644 --- a/app/src/main/java/com/casic/dcms/fragment/handle/CaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/handle/CaseHandledFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentHandleCaseBinding; import com.casic.dcms.model.CaseHandledBean; import com.casic.dcms.view.handle.CaseHandledDetailActivity; 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.kit.ContextKit; @@ -58,14 +58,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/handle/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/fragment/handle/CaseTodoFragment.java index 2196251..26d0942 100644 --- a/app/src/main/java/com/casic/dcms/fragment/handle/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/handle/CaseTodoFragment.java @@ -13,12 +13,12 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentHandleCaseBinding; import com.casic.dcms.model.CaseHandleBean; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.handle.CaseHandleDetailActivity; 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.kit.StringKit; @@ -60,14 +60,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/overtime/CaseHandledFragment.java b/app/src/main/java/com/casic/dcms/fragment/overtime/CaseHandledFragment.java index 5cb44da..3424ebd 100644 --- a/app/src/main/java/com/casic/dcms/fragment/overtime/CaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/overtime/CaseHandledFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentOvertimeCaseBinding; import com.casic.dcms.model.OvertimeCaseBean; import com.casic.dcms.view.CaseTodoHandledDetailActivity; 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.kit.ContextKit; @@ -58,14 +58,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/adapter/LightResultAdapter.java b/app/src/main/java/com/casic/dcms/adapter/LightResultAdapter.java deleted file mode 100644 index 405af6e..0000000 --- a/app/src/main/java/com/casic/dcms/adapter/LightResultAdapter.java +++ /dev/null @@ -1,107 +0,0 @@ -package com.casic.dcms.adapter; - -import android.annotation.SuppressLint; -import android.content.Context; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.ImageView; -import android.widget.TextView; - -import androidx.annotation.NonNull; -import androidx.recyclerview.widget.RecyclerView; - -import com.casic.dcms.R; -import com.casic.dcms.model.LightListBean; - -import java.util.List; - -public class LightResultAdapter extends RecyclerView.Adapter { - - private final List dataBeans; - private final LayoutInflater layoutInflater; - - public LightResultAdapter(Context context, List beans) { - this.dataBeans = beans; - this.layoutInflater = LayoutInflater.from(context); - } - - @NonNull - @Override - public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - return new ItemViewHolder(layoutInflater.inflate(R.layout.item_light_recycleview, parent, false)); - } - - @Override - public void onBindViewHolder(@NonNull LightResultAdapter.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); - } - }); - } - if (switchClickListener != null) { - holder.lightSwitch.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - switchClickListener.onClick(position); - } - }); - } - } - - @Override - public int getItemCount() { - return dataBeans.size(); - } - - private OnGridItemClickListener clickListener; - - public interface OnGridItemClickListener { - void onClick(int position); - } - - public void setOnGridItemClickListener(OnGridItemClickListener onGridItemClickListener) { - this.clickListener = onGridItemClickListener; - } - - private OnSwitchClickListener switchClickListener; - - public interface OnSwitchClickListener { - void onClick(int position); - } - - public void setOnSwitchClickListener(OnSwitchClickListener switchClickListener) { - this.switchClickListener = switchClickListener; - } - - static class ItemViewHolder extends RecyclerView.ViewHolder { - - private final TextView lightNameView; - private final TextView lightStatusView; - private final ImageView lightSwitch; - - ItemViewHolder(@NonNull View itemView) { - super(itemView); - lightNameView = itemView.findViewById(R.id.lightNameView); - lightStatusView = itemView.findViewById(R.id.lightStatusView); - lightSwitch = itemView.findViewById(R.id.lightSwitch); - } - - void bindView(LightListBean.DataBean.RowsBean dataBean) { - lightNameView.setText(dataBean.getLampName()); - String statusName = dataBean.getStatusName(); - lightStatusView.setText(statusName); - if (statusName.equals("灭灯")) { - lightSwitch.setBackgroundResource(R.drawable.ic_switch_off); - } else if (statusName.equals("报警")) { - lightSwitch.setBackgroundResource(R.drawable.ic_switch_warning); - } else { - lightSwitch.setBackgroundResource(R.drawable.ic_switch_on); - } - } - } -} diff --git a/app/src/main/java/com/casic/dcms/adapter/NormalRecyclerAdapter.java b/app/src/main/java/com/casic/dcms/adapter/NormalRecyclerAdapter.java new file mode 100644 index 0000000..c80e2d5 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/adapter/NormalRecyclerAdapter.java @@ -0,0 +1,134 @@ +package com.casic.dcms.adapter; + +import android.annotation.SuppressLint; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import androidx.annotation.LayoutRes; +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.DiffUtil; +import androidx.recyclerview.widget.RecyclerView; + +import com.pengxh.androidx.lite.adapter.ViewHolder; + +import java.util.List; + +/** + * RecyclerView普通列表适配器 + */ +public abstract class NormalRecyclerAdapter extends RecyclerView.Adapter { + + private static final String TAG = "NormalRecyclerAdapter"; + private final int xmlResource; + private final List dataRows; + + public NormalRecyclerAdapter(@LayoutRes int xmlResource, List dataRows) { + this.xmlResource = xmlResource; + this.dataRows = dataRows; + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + @NonNull + @Override + public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + return new ViewHolder(LayoutInflater.from(parent.getContext()).inflate(xmlResource, parent, false)); + } + + @Override + public void onBindViewHolder(@NonNull ViewHolder holder, @SuppressLint("RecyclerView") int position) { + convertView(holder, position, dataRows.get(position)); + + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (itemClickedListener == null) { + return; + } + itemClickedListener.onItemClicked(position, dataRows.get(position)); + } + }); + } + + public void refresh(List newRows) { + DiffUtil.Callback diffCallback = new DiffUtil.Callback() { + + @Override + public int getOldListSize() { + return dataRows.size(); + } + + @Override + public int getNewListSize() { + return newRows.size(); + } + + @Override + public boolean areItemsTheSame(int oldItemPosition, int newItemPosition) { + if (dataRows == null || newRows == null) { + return false; + } + + // 检查索引是否在有效范围内 + if (oldItemPosition < 0 || oldItemPosition >= dataRows.size() || + newItemPosition < 0 || newItemPosition >= newRows.size()) { + return false; + } + + // 获取元素并进行比较 + Object oldItem = dataRows.get(oldItemPosition); + Object newItem = newRows.get(newItemPosition); + + // 处理空指针情况 + if (oldItem == null && newItem == null) { + return true; + } + if (oldItem == null || newItem == null) { + return false; + } + + return oldItem.equals(newItem); + } + + @Override + public boolean areContentsTheSame(int oldItemPosition, int newItemPosition) { + return dataRows.get(oldItemPosition) == newRows.get(newItemPosition); + } + }; + + DiffUtil.DiffResult diffResult = DiffUtil.calculateDiff(diffCallback); + + dataRows.clear(); + dataRows.addAll(newRows); + + diffResult.dispatchUpdatesTo(this); + } + + /** + * 加载更多 + */ + public void loadMore(List newRows) { + if (newRows.isEmpty()) { + return; + } + int startPosition = this.dataRows.size(); + this.dataRows.addAll(newRows); + notifyItemRangeInserted(startPosition, newRows.size()); + } + + public abstract void convertView(ViewHolder viewHolder, int position, T item); + + private OnItemClickedListener itemClickedListener; + + public interface OnItemClickedListener { + void onItemClicked(int position, T t); + } + + public void setOnItemClickedListener(OnItemClickedListener listener) { + itemClickedListener = listener; + } +} diff --git a/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java b/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java index 1deb066..80f7b98 100644 --- a/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java @@ -58,13 +58,13 @@ } @SuppressLint("NotifyDataSetChanged") - public void setRefreshData(List dataRows) { + public void refresh(List dataRows) { this.dataRows.clear(); this.dataRows.addAll(dataRows); notifyDataSetChanged(); } - public void setLoadMoreData(List dataRows) { + public void loadMore(List dataRows) { this.dataRows.addAll(dataRows); notifyItemRangeInserted(this.dataRows.size(), dataRows.size()); } diff --git a/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java index 3535c40..bd5e484 100644 --- a/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java @@ -10,6 +10,7 @@ import com.bumptech.glide.Glide; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentHomeBinding; import com.casic.dcms.model.HomePageBean; import com.casic.dcms.model.UserBean; @@ -36,7 +37,6 @@ import com.casic.dcms.view.verify.VerifyCaseActivity; import com.casic.dcms.vm.HomePageViewModel; import com.casic.dcms.vm.UserViewModel; -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.kit.LongKit; diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java index 0d2926f..a9cc331 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java @@ -5,22 +5,26 @@ import android.os.Handler; import android.os.Message; import android.text.TextUtils; +import android.view.View; import androidx.annotation.NonNull; import androidx.annotation.Nullable; +import androidx.cardview.widget.CardView; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; -import com.casic.dcms.adapter.LightResultAdapter; +import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentLightListBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightDetailBean; import com.casic.dcms.model.LightListBean; -import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.vm.LightViewModel; import com.casic.dcms.widgets.LightDetailDialog; +import com.pengxh.androidx.lite.adapter.ViewHolder; import com.pengxh.androidx.lite.base.AndroidxBaseFragment; import com.pengxh.androidx.lite.divider.RecyclerViewItemDivider; +import com.pengxh.androidx.lite.kit.IntKit; import com.pengxh.androidx.lite.kit.StringKit; import com.pengxh.androidx.lite.utils.LoadState; import com.pengxh.androidx.lite.utils.LoadingDialog; @@ -37,7 +41,7 @@ private static final String TAG = "LightOnListFragment"; private final WeakReferenceHandler weakReferenceHandler = new WeakReferenceHandler(this); private LightViewModel lightViewModel; - private LightResultAdapter adapter; + private NormalRecyclerAdapter adapter; private List dataBeans = new ArrayList<>(); private int pageIndex = 1; private boolean isRefresh, isLoadMore = false; @@ -50,7 +54,7 @@ @Override protected void initOnCreate(@Nullable Bundle savedInstanceState) { lightViewModel = new ViewModelProvider(this).get(LightViewModel.class); - getLightList(); + lightViewModel.getLightList(pageIndex); } @Override @@ -67,10 +71,6 @@ }); } - private void getLightList() { - lightViewModel.getLightList(LocaleConstant.PAGE_LIMIT, pageIndex); - } - @Override protected void initEvent() { getBinding().refreshLayout.setOnRefreshListener(new OnRefreshListener() { @@ -79,7 +79,7 @@ isRefresh = true; //刷新之后页码重置 pageIndex = 1; - getLightList(); + lightViewModel.getLightList(pageIndex); } }); getBinding().refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() { @@ -87,7 +87,7 @@ public void onLoadMore(@NonNull final RefreshLayout refreshLayout) { isLoadMore = true; pageIndex++; - getLightList(); + lightViewModel.getLightList(pageIndex); } }); @@ -97,21 +97,20 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题 - dataBeans = dataRows; + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - dataBeans.addAll(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { dataBeans = dataRows; + weakReferenceHandler.sendEmptyMessage(20210623); } - weakReferenceHandler.sendEmptyMessage(20210623); } } }); @@ -138,54 +137,67 @@ @Override public boolean handleMessage(@NonNull Message msg) { if (msg.what == 20210623) { - if (isRefresh || isLoadMore) { - adapter.notifyItemRangeInserted(adapter.getItemCount(), LocaleConstant.PAGE_LIMIT); + //首次加载数据 + if (dataBeans.size() == 0) { + getBinding().emptyView.show("没有路灯数据", null); } else { - //首次加载数据 - if (dataBeans.size() == 0) { - getBinding().emptyView.show("没有路灯数据", null); - } else { - getBinding().emptyView.hide(); - adapter = new LightResultAdapter(requireContext(), dataBeans); - getBinding().recyclerView.addItemDecoration(new RecyclerViewItemDivider(1, Color.LTGRAY)); - getBinding().recyclerView.setAdapter(adapter); - adapter.setOnGridItemClickListener(new LightResultAdapter.OnGridItemClickListener() { - @Override - public void onClick(int position) { - String lampId = dataBeans.get(position).getLampId(); - if (TextUtils.isEmpty(lampId)) { - StringKit.show(requireContext(), "错误,路灯编号为空"); - return; - } + getBinding().emptyView.hide(); + adapter = new NormalRecyclerAdapter(R.layout.item_light_recycleview, dataBeans) { + @Override + public void convertView(ViewHolder viewHolder, int position, LightListBean.DataBean.RowsBean item) { + String statusName = item.getStatusName(); + viewHolder.setText(R.id.lightNameView, item.getLampName()) + .setText(R.id.lightStatusView, "已" + statusName); - lightViewModel.getLightDetail(requireContext(), lampId); + CardView statueTagView = viewHolder.getView(R.id.statueTagView); + if (statusName.equals("灭灯")) { + viewHolder.setImageResource(R.id.lightSwitch, R.drawable.ic_switch_off); + statueTagView.setCardBackgroundColor(IntKit.convertColor(requireContext(), R.color.darkGray)); + } else if (statusName.equals("报警")) { + viewHolder.setImageResource(R.id.lightSwitch, R.drawable.ic_switch_warning); + statueTagView.setCardBackgroundColor(IntKit.convertColor(requireContext(), R.color.warnColor)); + } else { + viewHolder.setImageResource(R.id.lightSwitch, R.drawable.ic_switch_on); + statueTagView.setCardBackgroundColor(IntKit.convertColor(requireContext(), R.color.onLineColor)); } - }); - adapter.setOnSwitchClickListener(new LightResultAdapter.OnSwitchClickListener() { - @Override - public void onClick(int position) { - LightListBean.DataBean.RowsBean rowsBean = dataBeans.get(position); + viewHolder.setOnClickListener(R.id.lightSwitch, new View.OnClickListener() { + @Override + public void onClick(View v) { + List lampIds = new ArrayList<>(); + lampIds.add(Long.parseLong(item.getLampId())); - List lampIds = new ArrayList<>(); - lampIds.add(Long.parseLong(rowsBean.getLampId())); - - String statusName = rowsBean.getStatusName(); - String controlType; - if (statusName.equals("离线")) { - controlType = "1"; - } else { - controlType = "0"; + String statusName = item.getStatusName(); + String controlType; + if (statusName.equals("灭灯")) { + controlType = "1"; + } else { + controlType = "0"; + } + lightViewModel.controlLight(requireContext(), lampIds, controlType); } - lightViewModel.controlLight(requireContext(), lampIds, controlType); + }); + } + }; + getBinding().recyclerView.addItemDecoration(new RecyclerViewItemDivider(1, Color.LTGRAY)); + getBinding().recyclerView.setAdapter(adapter); + adapter.setOnItemClickedListener(new NormalRecyclerAdapter.OnItemClickedListener() { + @Override + public void onItemClicked(int position, LightListBean.DataBean.RowsBean rowsBean) { + String lampId = rowsBean.getLampId(); + if (TextUtils.isEmpty(lampId)) { + StringKit.show(requireContext(), "错误,路灯编号为空"); + return; } - }); - } + + lightViewModel.getLightDetail(requireContext(), lampId); + } + }); } } else if (msg.what == 20210624) { isRefresh = true; pageIndex = 1; - lightViewModel.getLightList(LocaleConstant.PAGE_LIMIT, pageIndex); + lightViewModel.getLightList(pageIndex); } return true; } diff --git a/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java index 64791dd..8f872db 100644 --- a/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java @@ -6,12 +6,12 @@ import androidx.annotation.Nullable; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.bean.NoticeLocaleBean; import com.casic.dcms.databinding.FragmentNoticeBinding; import com.casic.dcms.utils.DataBaseManager; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.CaseDetailActivity; -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.kit.ContextKit; diff --git a/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java b/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java index 5980aaf..93ab96c 100644 --- a/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java @@ -87,14 +87,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/business/PackageTodoFragment.java b/app/src/main/java/com/casic/dcms/fragment/business/PackageTodoFragment.java index 9f28bbe..1fefd3f 100644 --- a/app/src/main/java/com/casic/dcms/fragment/business/PackageTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/business/PackageTodoFragment.java @@ -88,14 +88,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { 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 816fb8f..62db8ed 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 @@ -12,13 +12,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentCheckCaseBinding; import com.casic.dcms.model.CaseCheckModel; import com.casic.dcms.utils.LocaleConstant; 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.kit.ContextKit; @@ -61,14 +61,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { 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 e472cd6..27f60a2 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 @@ -12,13 +12,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentCheckCaseBinding; import com.casic.dcms.model.CaseCheckModel; import com.casic.dcms.utils.LocaleConstant; 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.kit.ContextKit; @@ -62,14 +62,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAdjustFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAdjustFragment.java index 23a4f8e..fdee789 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAdjustFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAdjustFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.AdjustCaseModel; import com.casic.dcms.view.department.DeptAdjustDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -57,14 +57,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAuthorizeFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAuthorizeFragment.java index f5ba0b0..b5d807e 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAuthorizeFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAuthorizeFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.AuthorizeCaseModel; import com.casic.dcms.view.department.DeptAuthorizeDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -57,14 +57,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseDelayedFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseDelayedFragment.java index e16d47d..52c88fd 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseDelayedFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseDelayedFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.DelayedCaseModel; import com.casic.dcms.view.CaseDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -57,14 +57,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseHandledFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseHandledFragment.java index 0acf747..2ce5297 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseHandledFragment.java @@ -12,12 +12,12 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.HandledCaseModel; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.CaseDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -59,14 +59,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCasePostponeFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCasePostponeFragment.java index b2a3047..d8b3396 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCasePostponeFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCasePostponeFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.PostCaseModel; import com.casic.dcms.view.CaseDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -57,14 +57,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseProcessFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseProcessFragment.java index ef78a7d..2c5f4d7 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseProcessFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseProcessFragment.java @@ -12,12 +12,12 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.HandleCaseModel; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.view.department.DeptTodoDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.StringKit; @@ -58,14 +58,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseTodoFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseTodoFragment.java index 2f8cb8a..febcb54 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseTodoFragment.java @@ -13,13 +13,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.TodoCaseModel; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.department.DeptTodoDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.StringKit; @@ -60,14 +60,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/handle/CaseHandledFragment.java b/app/src/main/java/com/casic/dcms/fragment/handle/CaseHandledFragment.java index d61fff7..d8d825f 100644 --- a/app/src/main/java/com/casic/dcms/fragment/handle/CaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/handle/CaseHandledFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentHandleCaseBinding; import com.casic.dcms.model.CaseHandledBean; import com.casic.dcms.view.handle.CaseHandledDetailActivity; 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.kit.ContextKit; @@ -58,14 +58,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/handle/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/fragment/handle/CaseTodoFragment.java index 2196251..26d0942 100644 --- a/app/src/main/java/com/casic/dcms/fragment/handle/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/handle/CaseTodoFragment.java @@ -13,12 +13,12 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentHandleCaseBinding; import com.casic.dcms.model.CaseHandleBean; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.handle.CaseHandleDetailActivity; 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.kit.StringKit; @@ -60,14 +60,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/overtime/CaseHandledFragment.java b/app/src/main/java/com/casic/dcms/fragment/overtime/CaseHandledFragment.java index 5cb44da..3424ebd 100644 --- a/app/src/main/java/com/casic/dcms/fragment/overtime/CaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/overtime/CaseHandledFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentOvertimeCaseBinding; import com.casic.dcms.model.OvertimeCaseBean; import com.casic.dcms.view.CaseTodoHandledDetailActivity; 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.kit.ContextKit; @@ -58,14 +58,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/overtime/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/fragment/overtime/CaseTodoFragment.java index a98bde5..1c2c20d 100644 --- a/app/src/main/java/com/casic/dcms/fragment/overtime/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/overtime/CaseTodoFragment.java @@ -12,11 +12,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentOvertimeCaseBinding; import com.casic.dcms.model.OvertimeCaseBean; import com.casic.dcms.view.CaseTodoDetailActivity; 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.kit.StringKit; @@ -58,14 +58,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/adapter/LightResultAdapter.java b/app/src/main/java/com/casic/dcms/adapter/LightResultAdapter.java deleted file mode 100644 index 405af6e..0000000 --- a/app/src/main/java/com/casic/dcms/adapter/LightResultAdapter.java +++ /dev/null @@ -1,107 +0,0 @@ -package com.casic.dcms.adapter; - -import android.annotation.SuppressLint; -import android.content.Context; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.ImageView; -import android.widget.TextView; - -import androidx.annotation.NonNull; -import androidx.recyclerview.widget.RecyclerView; - -import com.casic.dcms.R; -import com.casic.dcms.model.LightListBean; - -import java.util.List; - -public class LightResultAdapter extends RecyclerView.Adapter { - - private final List dataBeans; - private final LayoutInflater layoutInflater; - - public LightResultAdapter(Context context, List beans) { - this.dataBeans = beans; - this.layoutInflater = LayoutInflater.from(context); - } - - @NonNull - @Override - public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - return new ItemViewHolder(layoutInflater.inflate(R.layout.item_light_recycleview, parent, false)); - } - - @Override - public void onBindViewHolder(@NonNull LightResultAdapter.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); - } - }); - } - if (switchClickListener != null) { - holder.lightSwitch.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - switchClickListener.onClick(position); - } - }); - } - } - - @Override - public int getItemCount() { - return dataBeans.size(); - } - - private OnGridItemClickListener clickListener; - - public interface OnGridItemClickListener { - void onClick(int position); - } - - public void setOnGridItemClickListener(OnGridItemClickListener onGridItemClickListener) { - this.clickListener = onGridItemClickListener; - } - - private OnSwitchClickListener switchClickListener; - - public interface OnSwitchClickListener { - void onClick(int position); - } - - public void setOnSwitchClickListener(OnSwitchClickListener switchClickListener) { - this.switchClickListener = switchClickListener; - } - - static class ItemViewHolder extends RecyclerView.ViewHolder { - - private final TextView lightNameView; - private final TextView lightStatusView; - private final ImageView lightSwitch; - - ItemViewHolder(@NonNull View itemView) { - super(itemView); - lightNameView = itemView.findViewById(R.id.lightNameView); - lightStatusView = itemView.findViewById(R.id.lightStatusView); - lightSwitch = itemView.findViewById(R.id.lightSwitch); - } - - void bindView(LightListBean.DataBean.RowsBean dataBean) { - lightNameView.setText(dataBean.getLampName()); - String statusName = dataBean.getStatusName(); - lightStatusView.setText(statusName); - if (statusName.equals("灭灯")) { - lightSwitch.setBackgroundResource(R.drawable.ic_switch_off); - } else if (statusName.equals("报警")) { - lightSwitch.setBackgroundResource(R.drawable.ic_switch_warning); - } else { - lightSwitch.setBackgroundResource(R.drawable.ic_switch_on); - } - } - } -} diff --git a/app/src/main/java/com/casic/dcms/adapter/NormalRecyclerAdapter.java b/app/src/main/java/com/casic/dcms/adapter/NormalRecyclerAdapter.java new file mode 100644 index 0000000..c80e2d5 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/adapter/NormalRecyclerAdapter.java @@ -0,0 +1,134 @@ +package com.casic.dcms.adapter; + +import android.annotation.SuppressLint; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import androidx.annotation.LayoutRes; +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.DiffUtil; +import androidx.recyclerview.widget.RecyclerView; + +import com.pengxh.androidx.lite.adapter.ViewHolder; + +import java.util.List; + +/** + * RecyclerView普通列表适配器 + */ +public abstract class NormalRecyclerAdapter extends RecyclerView.Adapter { + + private static final String TAG = "NormalRecyclerAdapter"; + private final int xmlResource; + private final List dataRows; + + public NormalRecyclerAdapter(@LayoutRes int xmlResource, List dataRows) { + this.xmlResource = xmlResource; + this.dataRows = dataRows; + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + @NonNull + @Override + public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + return new ViewHolder(LayoutInflater.from(parent.getContext()).inflate(xmlResource, parent, false)); + } + + @Override + public void onBindViewHolder(@NonNull ViewHolder holder, @SuppressLint("RecyclerView") int position) { + convertView(holder, position, dataRows.get(position)); + + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (itemClickedListener == null) { + return; + } + itemClickedListener.onItemClicked(position, dataRows.get(position)); + } + }); + } + + public void refresh(List newRows) { + DiffUtil.Callback diffCallback = new DiffUtil.Callback() { + + @Override + public int getOldListSize() { + return dataRows.size(); + } + + @Override + public int getNewListSize() { + return newRows.size(); + } + + @Override + public boolean areItemsTheSame(int oldItemPosition, int newItemPosition) { + if (dataRows == null || newRows == null) { + return false; + } + + // 检查索引是否在有效范围内 + if (oldItemPosition < 0 || oldItemPosition >= dataRows.size() || + newItemPosition < 0 || newItemPosition >= newRows.size()) { + return false; + } + + // 获取元素并进行比较 + Object oldItem = dataRows.get(oldItemPosition); + Object newItem = newRows.get(newItemPosition); + + // 处理空指针情况 + if (oldItem == null && newItem == null) { + return true; + } + if (oldItem == null || newItem == null) { + return false; + } + + return oldItem.equals(newItem); + } + + @Override + public boolean areContentsTheSame(int oldItemPosition, int newItemPosition) { + return dataRows.get(oldItemPosition) == newRows.get(newItemPosition); + } + }; + + DiffUtil.DiffResult diffResult = DiffUtil.calculateDiff(diffCallback); + + dataRows.clear(); + dataRows.addAll(newRows); + + diffResult.dispatchUpdatesTo(this); + } + + /** + * 加载更多 + */ + public void loadMore(List newRows) { + if (newRows.isEmpty()) { + return; + } + int startPosition = this.dataRows.size(); + this.dataRows.addAll(newRows); + notifyItemRangeInserted(startPosition, newRows.size()); + } + + public abstract void convertView(ViewHolder viewHolder, int position, T item); + + private OnItemClickedListener itemClickedListener; + + public interface OnItemClickedListener { + void onItemClicked(int position, T t); + } + + public void setOnItemClickedListener(OnItemClickedListener listener) { + itemClickedListener = listener; + } +} diff --git a/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java b/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java index 1deb066..80f7b98 100644 --- a/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java @@ -58,13 +58,13 @@ } @SuppressLint("NotifyDataSetChanged") - public void setRefreshData(List dataRows) { + public void refresh(List dataRows) { this.dataRows.clear(); this.dataRows.addAll(dataRows); notifyDataSetChanged(); } - public void setLoadMoreData(List dataRows) { + public void loadMore(List dataRows) { this.dataRows.addAll(dataRows); notifyItemRangeInserted(this.dataRows.size(), dataRows.size()); } diff --git a/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java index 3535c40..bd5e484 100644 --- a/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java @@ -10,6 +10,7 @@ import com.bumptech.glide.Glide; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentHomeBinding; import com.casic.dcms.model.HomePageBean; import com.casic.dcms.model.UserBean; @@ -36,7 +37,6 @@ import com.casic.dcms.view.verify.VerifyCaseActivity; import com.casic.dcms.vm.HomePageViewModel; import com.casic.dcms.vm.UserViewModel; -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.kit.LongKit; diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java index 0d2926f..a9cc331 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java @@ -5,22 +5,26 @@ import android.os.Handler; import android.os.Message; import android.text.TextUtils; +import android.view.View; import androidx.annotation.NonNull; import androidx.annotation.Nullable; +import androidx.cardview.widget.CardView; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; -import com.casic.dcms.adapter.LightResultAdapter; +import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentLightListBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightDetailBean; import com.casic.dcms.model.LightListBean; -import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.vm.LightViewModel; import com.casic.dcms.widgets.LightDetailDialog; +import com.pengxh.androidx.lite.adapter.ViewHolder; import com.pengxh.androidx.lite.base.AndroidxBaseFragment; import com.pengxh.androidx.lite.divider.RecyclerViewItemDivider; +import com.pengxh.androidx.lite.kit.IntKit; import com.pengxh.androidx.lite.kit.StringKit; import com.pengxh.androidx.lite.utils.LoadState; import com.pengxh.androidx.lite.utils.LoadingDialog; @@ -37,7 +41,7 @@ private static final String TAG = "LightOnListFragment"; private final WeakReferenceHandler weakReferenceHandler = new WeakReferenceHandler(this); private LightViewModel lightViewModel; - private LightResultAdapter adapter; + private NormalRecyclerAdapter adapter; private List dataBeans = new ArrayList<>(); private int pageIndex = 1; private boolean isRefresh, isLoadMore = false; @@ -50,7 +54,7 @@ @Override protected void initOnCreate(@Nullable Bundle savedInstanceState) { lightViewModel = new ViewModelProvider(this).get(LightViewModel.class); - getLightList(); + lightViewModel.getLightList(pageIndex); } @Override @@ -67,10 +71,6 @@ }); } - private void getLightList() { - lightViewModel.getLightList(LocaleConstant.PAGE_LIMIT, pageIndex); - } - @Override protected void initEvent() { getBinding().refreshLayout.setOnRefreshListener(new OnRefreshListener() { @@ -79,7 +79,7 @@ isRefresh = true; //刷新之后页码重置 pageIndex = 1; - getLightList(); + lightViewModel.getLightList(pageIndex); } }); getBinding().refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() { @@ -87,7 +87,7 @@ public void onLoadMore(@NonNull final RefreshLayout refreshLayout) { isLoadMore = true; pageIndex++; - getLightList(); + lightViewModel.getLightList(pageIndex); } }); @@ -97,21 +97,20 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题 - dataBeans = dataRows; + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - dataBeans.addAll(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { dataBeans = dataRows; + weakReferenceHandler.sendEmptyMessage(20210623); } - weakReferenceHandler.sendEmptyMessage(20210623); } } }); @@ -138,54 +137,67 @@ @Override public boolean handleMessage(@NonNull Message msg) { if (msg.what == 20210623) { - if (isRefresh || isLoadMore) { - adapter.notifyItemRangeInserted(adapter.getItemCount(), LocaleConstant.PAGE_LIMIT); + //首次加载数据 + if (dataBeans.size() == 0) { + getBinding().emptyView.show("没有路灯数据", null); } else { - //首次加载数据 - if (dataBeans.size() == 0) { - getBinding().emptyView.show("没有路灯数据", null); - } else { - getBinding().emptyView.hide(); - adapter = new LightResultAdapter(requireContext(), dataBeans); - getBinding().recyclerView.addItemDecoration(new RecyclerViewItemDivider(1, Color.LTGRAY)); - getBinding().recyclerView.setAdapter(adapter); - adapter.setOnGridItemClickListener(new LightResultAdapter.OnGridItemClickListener() { - @Override - public void onClick(int position) { - String lampId = dataBeans.get(position).getLampId(); - if (TextUtils.isEmpty(lampId)) { - StringKit.show(requireContext(), "错误,路灯编号为空"); - return; - } + getBinding().emptyView.hide(); + adapter = new NormalRecyclerAdapter(R.layout.item_light_recycleview, dataBeans) { + @Override + public void convertView(ViewHolder viewHolder, int position, LightListBean.DataBean.RowsBean item) { + String statusName = item.getStatusName(); + viewHolder.setText(R.id.lightNameView, item.getLampName()) + .setText(R.id.lightStatusView, "已" + statusName); - lightViewModel.getLightDetail(requireContext(), lampId); + CardView statueTagView = viewHolder.getView(R.id.statueTagView); + if (statusName.equals("灭灯")) { + viewHolder.setImageResource(R.id.lightSwitch, R.drawable.ic_switch_off); + statueTagView.setCardBackgroundColor(IntKit.convertColor(requireContext(), R.color.darkGray)); + } else if (statusName.equals("报警")) { + viewHolder.setImageResource(R.id.lightSwitch, R.drawable.ic_switch_warning); + statueTagView.setCardBackgroundColor(IntKit.convertColor(requireContext(), R.color.warnColor)); + } else { + viewHolder.setImageResource(R.id.lightSwitch, R.drawable.ic_switch_on); + statueTagView.setCardBackgroundColor(IntKit.convertColor(requireContext(), R.color.onLineColor)); } - }); - adapter.setOnSwitchClickListener(new LightResultAdapter.OnSwitchClickListener() { - @Override - public void onClick(int position) { - LightListBean.DataBean.RowsBean rowsBean = dataBeans.get(position); + viewHolder.setOnClickListener(R.id.lightSwitch, new View.OnClickListener() { + @Override + public void onClick(View v) { + List lampIds = new ArrayList<>(); + lampIds.add(Long.parseLong(item.getLampId())); - List lampIds = new ArrayList<>(); - lampIds.add(Long.parseLong(rowsBean.getLampId())); - - String statusName = rowsBean.getStatusName(); - String controlType; - if (statusName.equals("离线")) { - controlType = "1"; - } else { - controlType = "0"; + String statusName = item.getStatusName(); + String controlType; + if (statusName.equals("灭灯")) { + controlType = "1"; + } else { + controlType = "0"; + } + lightViewModel.controlLight(requireContext(), lampIds, controlType); } - lightViewModel.controlLight(requireContext(), lampIds, controlType); + }); + } + }; + getBinding().recyclerView.addItemDecoration(new RecyclerViewItemDivider(1, Color.LTGRAY)); + getBinding().recyclerView.setAdapter(adapter); + adapter.setOnItemClickedListener(new NormalRecyclerAdapter.OnItemClickedListener() { + @Override + public void onItemClicked(int position, LightListBean.DataBean.RowsBean rowsBean) { + String lampId = rowsBean.getLampId(); + if (TextUtils.isEmpty(lampId)) { + StringKit.show(requireContext(), "错误,路灯编号为空"); + return; } - }); - } + + lightViewModel.getLightDetail(requireContext(), lampId); + } + }); } } else if (msg.what == 20210624) { isRefresh = true; pageIndex = 1; - lightViewModel.getLightList(LocaleConstant.PAGE_LIMIT, pageIndex); + lightViewModel.getLightList(pageIndex); } return true; } diff --git a/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java index 64791dd..8f872db 100644 --- a/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java @@ -6,12 +6,12 @@ import androidx.annotation.Nullable; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.bean.NoticeLocaleBean; import com.casic.dcms.databinding.FragmentNoticeBinding; import com.casic.dcms.utils.DataBaseManager; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.CaseDetailActivity; -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.kit.ContextKit; diff --git a/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java b/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java index 5980aaf..93ab96c 100644 --- a/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java @@ -87,14 +87,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/business/PackageTodoFragment.java b/app/src/main/java/com/casic/dcms/fragment/business/PackageTodoFragment.java index 9f28bbe..1fefd3f 100644 --- a/app/src/main/java/com/casic/dcms/fragment/business/PackageTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/business/PackageTodoFragment.java @@ -88,14 +88,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { 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 816fb8f..62db8ed 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 @@ -12,13 +12,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentCheckCaseBinding; import com.casic.dcms.model.CaseCheckModel; import com.casic.dcms.utils.LocaleConstant; 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.kit.ContextKit; @@ -61,14 +61,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { 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 e472cd6..27f60a2 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 @@ -12,13 +12,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentCheckCaseBinding; import com.casic.dcms.model.CaseCheckModel; import com.casic.dcms.utils.LocaleConstant; 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.kit.ContextKit; @@ -62,14 +62,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAdjustFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAdjustFragment.java index 23a4f8e..fdee789 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAdjustFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAdjustFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.AdjustCaseModel; import com.casic.dcms.view.department.DeptAdjustDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -57,14 +57,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAuthorizeFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAuthorizeFragment.java index f5ba0b0..b5d807e 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAuthorizeFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAuthorizeFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.AuthorizeCaseModel; import com.casic.dcms.view.department.DeptAuthorizeDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -57,14 +57,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseDelayedFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseDelayedFragment.java index e16d47d..52c88fd 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseDelayedFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseDelayedFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.DelayedCaseModel; import com.casic.dcms.view.CaseDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -57,14 +57,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseHandledFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseHandledFragment.java index 0acf747..2ce5297 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseHandledFragment.java @@ -12,12 +12,12 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.HandledCaseModel; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.CaseDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -59,14 +59,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCasePostponeFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCasePostponeFragment.java index b2a3047..d8b3396 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCasePostponeFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCasePostponeFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.PostCaseModel; import com.casic.dcms.view.CaseDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -57,14 +57,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseProcessFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseProcessFragment.java index ef78a7d..2c5f4d7 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseProcessFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseProcessFragment.java @@ -12,12 +12,12 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.HandleCaseModel; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.view.department.DeptTodoDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.StringKit; @@ -58,14 +58,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseTodoFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseTodoFragment.java index 2f8cb8a..febcb54 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseTodoFragment.java @@ -13,13 +13,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.TodoCaseModel; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.department.DeptTodoDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.StringKit; @@ -60,14 +60,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/handle/CaseHandledFragment.java b/app/src/main/java/com/casic/dcms/fragment/handle/CaseHandledFragment.java index d61fff7..d8d825f 100644 --- a/app/src/main/java/com/casic/dcms/fragment/handle/CaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/handle/CaseHandledFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentHandleCaseBinding; import com.casic.dcms.model.CaseHandledBean; import com.casic.dcms.view.handle.CaseHandledDetailActivity; 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.kit.ContextKit; @@ -58,14 +58,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/handle/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/fragment/handle/CaseTodoFragment.java index 2196251..26d0942 100644 --- a/app/src/main/java/com/casic/dcms/fragment/handle/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/handle/CaseTodoFragment.java @@ -13,12 +13,12 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentHandleCaseBinding; import com.casic.dcms.model.CaseHandleBean; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.handle.CaseHandleDetailActivity; 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.kit.StringKit; @@ -60,14 +60,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/overtime/CaseHandledFragment.java b/app/src/main/java/com/casic/dcms/fragment/overtime/CaseHandledFragment.java index 5cb44da..3424ebd 100644 --- a/app/src/main/java/com/casic/dcms/fragment/overtime/CaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/overtime/CaseHandledFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentOvertimeCaseBinding; import com.casic.dcms.model.OvertimeCaseBean; import com.casic.dcms.view.CaseTodoHandledDetailActivity; 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.kit.ContextKit; @@ -58,14 +58,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/overtime/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/fragment/overtime/CaseTodoFragment.java index a98bde5..1c2c20d 100644 --- a/app/src/main/java/com/casic/dcms/fragment/overtime/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/overtime/CaseTodoFragment.java @@ -12,11 +12,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentOvertimeCaseBinding; import com.casic.dcms.model.OvertimeCaseBean; import com.casic.dcms.view.CaseTodoDetailActivity; 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.kit.StringKit; @@ -58,14 +58,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/urgent/CaseHandledFragment.java b/app/src/main/java/com/casic/dcms/fragment/urgent/CaseHandledFragment.java index b55651f..2cc0a02 100644 --- a/app/src/main/java/com/casic/dcms/fragment/urgent/CaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/urgent/CaseHandledFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentUrgentCaseBinding; import com.casic.dcms.model.UrgentCaseBean; import com.casic.dcms.view.CaseTodoHandledDetailActivity; 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.kit.ContextKit; @@ -58,14 +58,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/adapter/LightResultAdapter.java b/app/src/main/java/com/casic/dcms/adapter/LightResultAdapter.java deleted file mode 100644 index 405af6e..0000000 --- a/app/src/main/java/com/casic/dcms/adapter/LightResultAdapter.java +++ /dev/null @@ -1,107 +0,0 @@ -package com.casic.dcms.adapter; - -import android.annotation.SuppressLint; -import android.content.Context; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.ImageView; -import android.widget.TextView; - -import androidx.annotation.NonNull; -import androidx.recyclerview.widget.RecyclerView; - -import com.casic.dcms.R; -import com.casic.dcms.model.LightListBean; - -import java.util.List; - -public class LightResultAdapter extends RecyclerView.Adapter { - - private final List dataBeans; - private final LayoutInflater layoutInflater; - - public LightResultAdapter(Context context, List beans) { - this.dataBeans = beans; - this.layoutInflater = LayoutInflater.from(context); - } - - @NonNull - @Override - public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - return new ItemViewHolder(layoutInflater.inflate(R.layout.item_light_recycleview, parent, false)); - } - - @Override - public void onBindViewHolder(@NonNull LightResultAdapter.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); - } - }); - } - if (switchClickListener != null) { - holder.lightSwitch.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - switchClickListener.onClick(position); - } - }); - } - } - - @Override - public int getItemCount() { - return dataBeans.size(); - } - - private OnGridItemClickListener clickListener; - - public interface OnGridItemClickListener { - void onClick(int position); - } - - public void setOnGridItemClickListener(OnGridItemClickListener onGridItemClickListener) { - this.clickListener = onGridItemClickListener; - } - - private OnSwitchClickListener switchClickListener; - - public interface OnSwitchClickListener { - void onClick(int position); - } - - public void setOnSwitchClickListener(OnSwitchClickListener switchClickListener) { - this.switchClickListener = switchClickListener; - } - - static class ItemViewHolder extends RecyclerView.ViewHolder { - - private final TextView lightNameView; - private final TextView lightStatusView; - private final ImageView lightSwitch; - - ItemViewHolder(@NonNull View itemView) { - super(itemView); - lightNameView = itemView.findViewById(R.id.lightNameView); - lightStatusView = itemView.findViewById(R.id.lightStatusView); - lightSwitch = itemView.findViewById(R.id.lightSwitch); - } - - void bindView(LightListBean.DataBean.RowsBean dataBean) { - lightNameView.setText(dataBean.getLampName()); - String statusName = dataBean.getStatusName(); - lightStatusView.setText(statusName); - if (statusName.equals("灭灯")) { - lightSwitch.setBackgroundResource(R.drawable.ic_switch_off); - } else if (statusName.equals("报警")) { - lightSwitch.setBackgroundResource(R.drawable.ic_switch_warning); - } else { - lightSwitch.setBackgroundResource(R.drawable.ic_switch_on); - } - } - } -} diff --git a/app/src/main/java/com/casic/dcms/adapter/NormalRecyclerAdapter.java b/app/src/main/java/com/casic/dcms/adapter/NormalRecyclerAdapter.java new file mode 100644 index 0000000..c80e2d5 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/adapter/NormalRecyclerAdapter.java @@ -0,0 +1,134 @@ +package com.casic.dcms.adapter; + +import android.annotation.SuppressLint; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import androidx.annotation.LayoutRes; +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.DiffUtil; +import androidx.recyclerview.widget.RecyclerView; + +import com.pengxh.androidx.lite.adapter.ViewHolder; + +import java.util.List; + +/** + * RecyclerView普通列表适配器 + */ +public abstract class NormalRecyclerAdapter extends RecyclerView.Adapter { + + private static final String TAG = "NormalRecyclerAdapter"; + private final int xmlResource; + private final List dataRows; + + public NormalRecyclerAdapter(@LayoutRes int xmlResource, List dataRows) { + this.xmlResource = xmlResource; + this.dataRows = dataRows; + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + @NonNull + @Override + public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + return new ViewHolder(LayoutInflater.from(parent.getContext()).inflate(xmlResource, parent, false)); + } + + @Override + public void onBindViewHolder(@NonNull ViewHolder holder, @SuppressLint("RecyclerView") int position) { + convertView(holder, position, dataRows.get(position)); + + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (itemClickedListener == null) { + return; + } + itemClickedListener.onItemClicked(position, dataRows.get(position)); + } + }); + } + + public void refresh(List newRows) { + DiffUtil.Callback diffCallback = new DiffUtil.Callback() { + + @Override + public int getOldListSize() { + return dataRows.size(); + } + + @Override + public int getNewListSize() { + return newRows.size(); + } + + @Override + public boolean areItemsTheSame(int oldItemPosition, int newItemPosition) { + if (dataRows == null || newRows == null) { + return false; + } + + // 检查索引是否在有效范围内 + if (oldItemPosition < 0 || oldItemPosition >= dataRows.size() || + newItemPosition < 0 || newItemPosition >= newRows.size()) { + return false; + } + + // 获取元素并进行比较 + Object oldItem = dataRows.get(oldItemPosition); + Object newItem = newRows.get(newItemPosition); + + // 处理空指针情况 + if (oldItem == null && newItem == null) { + return true; + } + if (oldItem == null || newItem == null) { + return false; + } + + return oldItem.equals(newItem); + } + + @Override + public boolean areContentsTheSame(int oldItemPosition, int newItemPosition) { + return dataRows.get(oldItemPosition) == newRows.get(newItemPosition); + } + }; + + DiffUtil.DiffResult diffResult = DiffUtil.calculateDiff(diffCallback); + + dataRows.clear(); + dataRows.addAll(newRows); + + diffResult.dispatchUpdatesTo(this); + } + + /** + * 加载更多 + */ + public void loadMore(List newRows) { + if (newRows.isEmpty()) { + return; + } + int startPosition = this.dataRows.size(); + this.dataRows.addAll(newRows); + notifyItemRangeInserted(startPosition, newRows.size()); + } + + public abstract void convertView(ViewHolder viewHolder, int position, T item); + + private OnItemClickedListener itemClickedListener; + + public interface OnItemClickedListener { + void onItemClicked(int position, T t); + } + + public void setOnItemClickedListener(OnItemClickedListener listener) { + itemClickedListener = listener; + } +} diff --git a/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java b/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java index 1deb066..80f7b98 100644 --- a/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java @@ -58,13 +58,13 @@ } @SuppressLint("NotifyDataSetChanged") - public void setRefreshData(List dataRows) { + public void refresh(List dataRows) { this.dataRows.clear(); this.dataRows.addAll(dataRows); notifyDataSetChanged(); } - public void setLoadMoreData(List dataRows) { + public void loadMore(List dataRows) { this.dataRows.addAll(dataRows); notifyItemRangeInserted(this.dataRows.size(), dataRows.size()); } diff --git a/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java index 3535c40..bd5e484 100644 --- a/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java @@ -10,6 +10,7 @@ import com.bumptech.glide.Glide; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentHomeBinding; import com.casic.dcms.model.HomePageBean; import com.casic.dcms.model.UserBean; @@ -36,7 +37,6 @@ import com.casic.dcms.view.verify.VerifyCaseActivity; import com.casic.dcms.vm.HomePageViewModel; import com.casic.dcms.vm.UserViewModel; -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.kit.LongKit; diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java index 0d2926f..a9cc331 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java @@ -5,22 +5,26 @@ import android.os.Handler; import android.os.Message; import android.text.TextUtils; +import android.view.View; import androidx.annotation.NonNull; import androidx.annotation.Nullable; +import androidx.cardview.widget.CardView; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; -import com.casic.dcms.adapter.LightResultAdapter; +import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentLightListBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightDetailBean; import com.casic.dcms.model.LightListBean; -import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.vm.LightViewModel; import com.casic.dcms.widgets.LightDetailDialog; +import com.pengxh.androidx.lite.adapter.ViewHolder; import com.pengxh.androidx.lite.base.AndroidxBaseFragment; import com.pengxh.androidx.lite.divider.RecyclerViewItemDivider; +import com.pengxh.androidx.lite.kit.IntKit; import com.pengxh.androidx.lite.kit.StringKit; import com.pengxh.androidx.lite.utils.LoadState; import com.pengxh.androidx.lite.utils.LoadingDialog; @@ -37,7 +41,7 @@ private static final String TAG = "LightOnListFragment"; private final WeakReferenceHandler weakReferenceHandler = new WeakReferenceHandler(this); private LightViewModel lightViewModel; - private LightResultAdapter adapter; + private NormalRecyclerAdapter adapter; private List dataBeans = new ArrayList<>(); private int pageIndex = 1; private boolean isRefresh, isLoadMore = false; @@ -50,7 +54,7 @@ @Override protected void initOnCreate(@Nullable Bundle savedInstanceState) { lightViewModel = new ViewModelProvider(this).get(LightViewModel.class); - getLightList(); + lightViewModel.getLightList(pageIndex); } @Override @@ -67,10 +71,6 @@ }); } - private void getLightList() { - lightViewModel.getLightList(LocaleConstant.PAGE_LIMIT, pageIndex); - } - @Override protected void initEvent() { getBinding().refreshLayout.setOnRefreshListener(new OnRefreshListener() { @@ -79,7 +79,7 @@ isRefresh = true; //刷新之后页码重置 pageIndex = 1; - getLightList(); + lightViewModel.getLightList(pageIndex); } }); getBinding().refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() { @@ -87,7 +87,7 @@ public void onLoadMore(@NonNull final RefreshLayout refreshLayout) { isLoadMore = true; pageIndex++; - getLightList(); + lightViewModel.getLightList(pageIndex); } }); @@ -97,21 +97,20 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题 - dataBeans = dataRows; + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - dataBeans.addAll(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { dataBeans = dataRows; + weakReferenceHandler.sendEmptyMessage(20210623); } - weakReferenceHandler.sendEmptyMessage(20210623); } } }); @@ -138,54 +137,67 @@ @Override public boolean handleMessage(@NonNull Message msg) { if (msg.what == 20210623) { - if (isRefresh || isLoadMore) { - adapter.notifyItemRangeInserted(adapter.getItemCount(), LocaleConstant.PAGE_LIMIT); + //首次加载数据 + if (dataBeans.size() == 0) { + getBinding().emptyView.show("没有路灯数据", null); } else { - //首次加载数据 - if (dataBeans.size() == 0) { - getBinding().emptyView.show("没有路灯数据", null); - } else { - getBinding().emptyView.hide(); - adapter = new LightResultAdapter(requireContext(), dataBeans); - getBinding().recyclerView.addItemDecoration(new RecyclerViewItemDivider(1, Color.LTGRAY)); - getBinding().recyclerView.setAdapter(adapter); - adapter.setOnGridItemClickListener(new LightResultAdapter.OnGridItemClickListener() { - @Override - public void onClick(int position) { - String lampId = dataBeans.get(position).getLampId(); - if (TextUtils.isEmpty(lampId)) { - StringKit.show(requireContext(), "错误,路灯编号为空"); - return; - } + getBinding().emptyView.hide(); + adapter = new NormalRecyclerAdapter(R.layout.item_light_recycleview, dataBeans) { + @Override + public void convertView(ViewHolder viewHolder, int position, LightListBean.DataBean.RowsBean item) { + String statusName = item.getStatusName(); + viewHolder.setText(R.id.lightNameView, item.getLampName()) + .setText(R.id.lightStatusView, "已" + statusName); - lightViewModel.getLightDetail(requireContext(), lampId); + CardView statueTagView = viewHolder.getView(R.id.statueTagView); + if (statusName.equals("灭灯")) { + viewHolder.setImageResource(R.id.lightSwitch, R.drawable.ic_switch_off); + statueTagView.setCardBackgroundColor(IntKit.convertColor(requireContext(), R.color.darkGray)); + } else if (statusName.equals("报警")) { + viewHolder.setImageResource(R.id.lightSwitch, R.drawable.ic_switch_warning); + statueTagView.setCardBackgroundColor(IntKit.convertColor(requireContext(), R.color.warnColor)); + } else { + viewHolder.setImageResource(R.id.lightSwitch, R.drawable.ic_switch_on); + statueTagView.setCardBackgroundColor(IntKit.convertColor(requireContext(), R.color.onLineColor)); } - }); - adapter.setOnSwitchClickListener(new LightResultAdapter.OnSwitchClickListener() { - @Override - public void onClick(int position) { - LightListBean.DataBean.RowsBean rowsBean = dataBeans.get(position); + viewHolder.setOnClickListener(R.id.lightSwitch, new View.OnClickListener() { + @Override + public void onClick(View v) { + List lampIds = new ArrayList<>(); + lampIds.add(Long.parseLong(item.getLampId())); - List lampIds = new ArrayList<>(); - lampIds.add(Long.parseLong(rowsBean.getLampId())); - - String statusName = rowsBean.getStatusName(); - String controlType; - if (statusName.equals("离线")) { - controlType = "1"; - } else { - controlType = "0"; + String statusName = item.getStatusName(); + String controlType; + if (statusName.equals("灭灯")) { + controlType = "1"; + } else { + controlType = "0"; + } + lightViewModel.controlLight(requireContext(), lampIds, controlType); } - lightViewModel.controlLight(requireContext(), lampIds, controlType); + }); + } + }; + getBinding().recyclerView.addItemDecoration(new RecyclerViewItemDivider(1, Color.LTGRAY)); + getBinding().recyclerView.setAdapter(adapter); + adapter.setOnItemClickedListener(new NormalRecyclerAdapter.OnItemClickedListener() { + @Override + public void onItemClicked(int position, LightListBean.DataBean.RowsBean rowsBean) { + String lampId = rowsBean.getLampId(); + if (TextUtils.isEmpty(lampId)) { + StringKit.show(requireContext(), "错误,路灯编号为空"); + return; } - }); - } + + lightViewModel.getLightDetail(requireContext(), lampId); + } + }); } } else if (msg.what == 20210624) { isRefresh = true; pageIndex = 1; - lightViewModel.getLightList(LocaleConstant.PAGE_LIMIT, pageIndex); + lightViewModel.getLightList(pageIndex); } return true; } diff --git a/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java index 64791dd..8f872db 100644 --- a/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java @@ -6,12 +6,12 @@ import androidx.annotation.Nullable; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.bean.NoticeLocaleBean; import com.casic.dcms.databinding.FragmentNoticeBinding; import com.casic.dcms.utils.DataBaseManager; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.CaseDetailActivity; -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.kit.ContextKit; diff --git a/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java b/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java index 5980aaf..93ab96c 100644 --- a/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java @@ -87,14 +87,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/business/PackageTodoFragment.java b/app/src/main/java/com/casic/dcms/fragment/business/PackageTodoFragment.java index 9f28bbe..1fefd3f 100644 --- a/app/src/main/java/com/casic/dcms/fragment/business/PackageTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/business/PackageTodoFragment.java @@ -88,14 +88,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { 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 816fb8f..62db8ed 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 @@ -12,13 +12,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentCheckCaseBinding; import com.casic.dcms.model.CaseCheckModel; import com.casic.dcms.utils.LocaleConstant; 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.kit.ContextKit; @@ -61,14 +61,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { 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 e472cd6..27f60a2 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 @@ -12,13 +12,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentCheckCaseBinding; import com.casic.dcms.model.CaseCheckModel; import com.casic.dcms.utils.LocaleConstant; 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.kit.ContextKit; @@ -62,14 +62,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAdjustFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAdjustFragment.java index 23a4f8e..fdee789 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAdjustFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAdjustFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.AdjustCaseModel; import com.casic.dcms.view.department.DeptAdjustDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -57,14 +57,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAuthorizeFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAuthorizeFragment.java index f5ba0b0..b5d807e 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAuthorizeFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAuthorizeFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.AuthorizeCaseModel; import com.casic.dcms.view.department.DeptAuthorizeDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -57,14 +57,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseDelayedFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseDelayedFragment.java index e16d47d..52c88fd 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseDelayedFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseDelayedFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.DelayedCaseModel; import com.casic.dcms.view.CaseDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -57,14 +57,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseHandledFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseHandledFragment.java index 0acf747..2ce5297 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseHandledFragment.java @@ -12,12 +12,12 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.HandledCaseModel; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.CaseDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -59,14 +59,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCasePostponeFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCasePostponeFragment.java index b2a3047..d8b3396 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCasePostponeFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCasePostponeFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.PostCaseModel; import com.casic.dcms.view.CaseDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -57,14 +57,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseProcessFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseProcessFragment.java index ef78a7d..2c5f4d7 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseProcessFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseProcessFragment.java @@ -12,12 +12,12 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.HandleCaseModel; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.view.department.DeptTodoDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.StringKit; @@ -58,14 +58,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseTodoFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseTodoFragment.java index 2f8cb8a..febcb54 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseTodoFragment.java @@ -13,13 +13,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.TodoCaseModel; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.department.DeptTodoDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.StringKit; @@ -60,14 +60,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/handle/CaseHandledFragment.java b/app/src/main/java/com/casic/dcms/fragment/handle/CaseHandledFragment.java index d61fff7..d8d825f 100644 --- a/app/src/main/java/com/casic/dcms/fragment/handle/CaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/handle/CaseHandledFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentHandleCaseBinding; import com.casic.dcms.model.CaseHandledBean; import com.casic.dcms.view.handle.CaseHandledDetailActivity; 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.kit.ContextKit; @@ -58,14 +58,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/handle/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/fragment/handle/CaseTodoFragment.java index 2196251..26d0942 100644 --- a/app/src/main/java/com/casic/dcms/fragment/handle/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/handle/CaseTodoFragment.java @@ -13,12 +13,12 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentHandleCaseBinding; import com.casic.dcms.model.CaseHandleBean; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.handle.CaseHandleDetailActivity; 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.kit.StringKit; @@ -60,14 +60,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/overtime/CaseHandledFragment.java b/app/src/main/java/com/casic/dcms/fragment/overtime/CaseHandledFragment.java index 5cb44da..3424ebd 100644 --- a/app/src/main/java/com/casic/dcms/fragment/overtime/CaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/overtime/CaseHandledFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentOvertimeCaseBinding; import com.casic.dcms.model.OvertimeCaseBean; import com.casic.dcms.view.CaseTodoHandledDetailActivity; 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.kit.ContextKit; @@ -58,14 +58,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/overtime/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/fragment/overtime/CaseTodoFragment.java index a98bde5..1c2c20d 100644 --- a/app/src/main/java/com/casic/dcms/fragment/overtime/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/overtime/CaseTodoFragment.java @@ -12,11 +12,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentOvertimeCaseBinding; import com.casic.dcms.model.OvertimeCaseBean; import com.casic.dcms.view.CaseTodoDetailActivity; 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.kit.StringKit; @@ -58,14 +58,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/urgent/CaseHandledFragment.java b/app/src/main/java/com/casic/dcms/fragment/urgent/CaseHandledFragment.java index b55651f..2cc0a02 100644 --- a/app/src/main/java/com/casic/dcms/fragment/urgent/CaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/urgent/CaseHandledFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentUrgentCaseBinding; import com.casic.dcms.model.UrgentCaseBean; import com.casic.dcms.view.CaseTodoHandledDetailActivity; 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.kit.ContextKit; @@ -58,14 +58,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/urgent/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/fragment/urgent/CaseTodoFragment.java index 854d6f8..54b773e 100644 --- a/app/src/main/java/com/casic/dcms/fragment/urgent/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/urgent/CaseTodoFragment.java @@ -12,11 +12,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentUrgentCaseBinding; import com.casic.dcms.model.UrgentCaseBean; import com.casic.dcms.view.CaseTodoDetailActivity; 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.kit.StringKit; @@ -58,14 +58,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/adapter/LightResultAdapter.java b/app/src/main/java/com/casic/dcms/adapter/LightResultAdapter.java deleted file mode 100644 index 405af6e..0000000 --- a/app/src/main/java/com/casic/dcms/adapter/LightResultAdapter.java +++ /dev/null @@ -1,107 +0,0 @@ -package com.casic.dcms.adapter; - -import android.annotation.SuppressLint; -import android.content.Context; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.ImageView; -import android.widget.TextView; - -import androidx.annotation.NonNull; -import androidx.recyclerview.widget.RecyclerView; - -import com.casic.dcms.R; -import com.casic.dcms.model.LightListBean; - -import java.util.List; - -public class LightResultAdapter extends RecyclerView.Adapter { - - private final List dataBeans; - private final LayoutInflater layoutInflater; - - public LightResultAdapter(Context context, List beans) { - this.dataBeans = beans; - this.layoutInflater = LayoutInflater.from(context); - } - - @NonNull - @Override - public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - return new ItemViewHolder(layoutInflater.inflate(R.layout.item_light_recycleview, parent, false)); - } - - @Override - public void onBindViewHolder(@NonNull LightResultAdapter.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); - } - }); - } - if (switchClickListener != null) { - holder.lightSwitch.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - switchClickListener.onClick(position); - } - }); - } - } - - @Override - public int getItemCount() { - return dataBeans.size(); - } - - private OnGridItemClickListener clickListener; - - public interface OnGridItemClickListener { - void onClick(int position); - } - - public void setOnGridItemClickListener(OnGridItemClickListener onGridItemClickListener) { - this.clickListener = onGridItemClickListener; - } - - private OnSwitchClickListener switchClickListener; - - public interface OnSwitchClickListener { - void onClick(int position); - } - - public void setOnSwitchClickListener(OnSwitchClickListener switchClickListener) { - this.switchClickListener = switchClickListener; - } - - static class ItemViewHolder extends RecyclerView.ViewHolder { - - private final TextView lightNameView; - private final TextView lightStatusView; - private final ImageView lightSwitch; - - ItemViewHolder(@NonNull View itemView) { - super(itemView); - lightNameView = itemView.findViewById(R.id.lightNameView); - lightStatusView = itemView.findViewById(R.id.lightStatusView); - lightSwitch = itemView.findViewById(R.id.lightSwitch); - } - - void bindView(LightListBean.DataBean.RowsBean dataBean) { - lightNameView.setText(dataBean.getLampName()); - String statusName = dataBean.getStatusName(); - lightStatusView.setText(statusName); - if (statusName.equals("灭灯")) { - lightSwitch.setBackgroundResource(R.drawable.ic_switch_off); - } else if (statusName.equals("报警")) { - lightSwitch.setBackgroundResource(R.drawable.ic_switch_warning); - } else { - lightSwitch.setBackgroundResource(R.drawable.ic_switch_on); - } - } - } -} diff --git a/app/src/main/java/com/casic/dcms/adapter/NormalRecyclerAdapter.java b/app/src/main/java/com/casic/dcms/adapter/NormalRecyclerAdapter.java new file mode 100644 index 0000000..c80e2d5 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/adapter/NormalRecyclerAdapter.java @@ -0,0 +1,134 @@ +package com.casic.dcms.adapter; + +import android.annotation.SuppressLint; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import androidx.annotation.LayoutRes; +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.DiffUtil; +import androidx.recyclerview.widget.RecyclerView; + +import com.pengxh.androidx.lite.adapter.ViewHolder; + +import java.util.List; + +/** + * RecyclerView普通列表适配器 + */ +public abstract class NormalRecyclerAdapter extends RecyclerView.Adapter { + + private static final String TAG = "NormalRecyclerAdapter"; + private final int xmlResource; + private final List dataRows; + + public NormalRecyclerAdapter(@LayoutRes int xmlResource, List dataRows) { + this.xmlResource = xmlResource; + this.dataRows = dataRows; + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + @NonNull + @Override + public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + return new ViewHolder(LayoutInflater.from(parent.getContext()).inflate(xmlResource, parent, false)); + } + + @Override + public void onBindViewHolder(@NonNull ViewHolder holder, @SuppressLint("RecyclerView") int position) { + convertView(holder, position, dataRows.get(position)); + + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (itemClickedListener == null) { + return; + } + itemClickedListener.onItemClicked(position, dataRows.get(position)); + } + }); + } + + public void refresh(List newRows) { + DiffUtil.Callback diffCallback = new DiffUtil.Callback() { + + @Override + public int getOldListSize() { + return dataRows.size(); + } + + @Override + public int getNewListSize() { + return newRows.size(); + } + + @Override + public boolean areItemsTheSame(int oldItemPosition, int newItemPosition) { + if (dataRows == null || newRows == null) { + return false; + } + + // 检查索引是否在有效范围内 + if (oldItemPosition < 0 || oldItemPosition >= dataRows.size() || + newItemPosition < 0 || newItemPosition >= newRows.size()) { + return false; + } + + // 获取元素并进行比较 + Object oldItem = dataRows.get(oldItemPosition); + Object newItem = newRows.get(newItemPosition); + + // 处理空指针情况 + if (oldItem == null && newItem == null) { + return true; + } + if (oldItem == null || newItem == null) { + return false; + } + + return oldItem.equals(newItem); + } + + @Override + public boolean areContentsTheSame(int oldItemPosition, int newItemPosition) { + return dataRows.get(oldItemPosition) == newRows.get(newItemPosition); + } + }; + + DiffUtil.DiffResult diffResult = DiffUtil.calculateDiff(diffCallback); + + dataRows.clear(); + dataRows.addAll(newRows); + + diffResult.dispatchUpdatesTo(this); + } + + /** + * 加载更多 + */ + public void loadMore(List newRows) { + if (newRows.isEmpty()) { + return; + } + int startPosition = this.dataRows.size(); + this.dataRows.addAll(newRows); + notifyItemRangeInserted(startPosition, newRows.size()); + } + + public abstract void convertView(ViewHolder viewHolder, int position, T item); + + private OnItemClickedListener itemClickedListener; + + public interface OnItemClickedListener { + void onItemClicked(int position, T t); + } + + public void setOnItemClickedListener(OnItemClickedListener listener) { + itemClickedListener = listener; + } +} diff --git a/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java b/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java index 1deb066..80f7b98 100644 --- a/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java @@ -58,13 +58,13 @@ } @SuppressLint("NotifyDataSetChanged") - public void setRefreshData(List dataRows) { + public void refresh(List dataRows) { this.dataRows.clear(); this.dataRows.addAll(dataRows); notifyDataSetChanged(); } - public void setLoadMoreData(List dataRows) { + public void loadMore(List dataRows) { this.dataRows.addAll(dataRows); notifyItemRangeInserted(this.dataRows.size(), dataRows.size()); } diff --git a/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java index 3535c40..bd5e484 100644 --- a/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java @@ -10,6 +10,7 @@ import com.bumptech.glide.Glide; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentHomeBinding; import com.casic.dcms.model.HomePageBean; import com.casic.dcms.model.UserBean; @@ -36,7 +37,6 @@ import com.casic.dcms.view.verify.VerifyCaseActivity; import com.casic.dcms.vm.HomePageViewModel; import com.casic.dcms.vm.UserViewModel; -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.kit.LongKit; diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java index 0d2926f..a9cc331 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java @@ -5,22 +5,26 @@ import android.os.Handler; import android.os.Message; import android.text.TextUtils; +import android.view.View; import androidx.annotation.NonNull; import androidx.annotation.Nullable; +import androidx.cardview.widget.CardView; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; -import com.casic.dcms.adapter.LightResultAdapter; +import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentLightListBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightDetailBean; import com.casic.dcms.model.LightListBean; -import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.vm.LightViewModel; import com.casic.dcms.widgets.LightDetailDialog; +import com.pengxh.androidx.lite.adapter.ViewHolder; import com.pengxh.androidx.lite.base.AndroidxBaseFragment; import com.pengxh.androidx.lite.divider.RecyclerViewItemDivider; +import com.pengxh.androidx.lite.kit.IntKit; import com.pengxh.androidx.lite.kit.StringKit; import com.pengxh.androidx.lite.utils.LoadState; import com.pengxh.androidx.lite.utils.LoadingDialog; @@ -37,7 +41,7 @@ private static final String TAG = "LightOnListFragment"; private final WeakReferenceHandler weakReferenceHandler = new WeakReferenceHandler(this); private LightViewModel lightViewModel; - private LightResultAdapter adapter; + private NormalRecyclerAdapter adapter; private List dataBeans = new ArrayList<>(); private int pageIndex = 1; private boolean isRefresh, isLoadMore = false; @@ -50,7 +54,7 @@ @Override protected void initOnCreate(@Nullable Bundle savedInstanceState) { lightViewModel = new ViewModelProvider(this).get(LightViewModel.class); - getLightList(); + lightViewModel.getLightList(pageIndex); } @Override @@ -67,10 +71,6 @@ }); } - private void getLightList() { - lightViewModel.getLightList(LocaleConstant.PAGE_LIMIT, pageIndex); - } - @Override protected void initEvent() { getBinding().refreshLayout.setOnRefreshListener(new OnRefreshListener() { @@ -79,7 +79,7 @@ isRefresh = true; //刷新之后页码重置 pageIndex = 1; - getLightList(); + lightViewModel.getLightList(pageIndex); } }); getBinding().refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() { @@ -87,7 +87,7 @@ public void onLoadMore(@NonNull final RefreshLayout refreshLayout) { isLoadMore = true; pageIndex++; - getLightList(); + lightViewModel.getLightList(pageIndex); } }); @@ -97,21 +97,20 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题 - dataBeans = dataRows; + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - dataBeans.addAll(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { dataBeans = dataRows; + weakReferenceHandler.sendEmptyMessage(20210623); } - weakReferenceHandler.sendEmptyMessage(20210623); } } }); @@ -138,54 +137,67 @@ @Override public boolean handleMessage(@NonNull Message msg) { if (msg.what == 20210623) { - if (isRefresh || isLoadMore) { - adapter.notifyItemRangeInserted(adapter.getItemCount(), LocaleConstant.PAGE_LIMIT); + //首次加载数据 + if (dataBeans.size() == 0) { + getBinding().emptyView.show("没有路灯数据", null); } else { - //首次加载数据 - if (dataBeans.size() == 0) { - getBinding().emptyView.show("没有路灯数据", null); - } else { - getBinding().emptyView.hide(); - adapter = new LightResultAdapter(requireContext(), dataBeans); - getBinding().recyclerView.addItemDecoration(new RecyclerViewItemDivider(1, Color.LTGRAY)); - getBinding().recyclerView.setAdapter(adapter); - adapter.setOnGridItemClickListener(new LightResultAdapter.OnGridItemClickListener() { - @Override - public void onClick(int position) { - String lampId = dataBeans.get(position).getLampId(); - if (TextUtils.isEmpty(lampId)) { - StringKit.show(requireContext(), "错误,路灯编号为空"); - return; - } + getBinding().emptyView.hide(); + adapter = new NormalRecyclerAdapter(R.layout.item_light_recycleview, dataBeans) { + @Override + public void convertView(ViewHolder viewHolder, int position, LightListBean.DataBean.RowsBean item) { + String statusName = item.getStatusName(); + viewHolder.setText(R.id.lightNameView, item.getLampName()) + .setText(R.id.lightStatusView, "已" + statusName); - lightViewModel.getLightDetail(requireContext(), lampId); + CardView statueTagView = viewHolder.getView(R.id.statueTagView); + if (statusName.equals("灭灯")) { + viewHolder.setImageResource(R.id.lightSwitch, R.drawable.ic_switch_off); + statueTagView.setCardBackgroundColor(IntKit.convertColor(requireContext(), R.color.darkGray)); + } else if (statusName.equals("报警")) { + viewHolder.setImageResource(R.id.lightSwitch, R.drawable.ic_switch_warning); + statueTagView.setCardBackgroundColor(IntKit.convertColor(requireContext(), R.color.warnColor)); + } else { + viewHolder.setImageResource(R.id.lightSwitch, R.drawable.ic_switch_on); + statueTagView.setCardBackgroundColor(IntKit.convertColor(requireContext(), R.color.onLineColor)); } - }); - adapter.setOnSwitchClickListener(new LightResultAdapter.OnSwitchClickListener() { - @Override - public void onClick(int position) { - LightListBean.DataBean.RowsBean rowsBean = dataBeans.get(position); + viewHolder.setOnClickListener(R.id.lightSwitch, new View.OnClickListener() { + @Override + public void onClick(View v) { + List lampIds = new ArrayList<>(); + lampIds.add(Long.parseLong(item.getLampId())); - List lampIds = new ArrayList<>(); - lampIds.add(Long.parseLong(rowsBean.getLampId())); - - String statusName = rowsBean.getStatusName(); - String controlType; - if (statusName.equals("离线")) { - controlType = "1"; - } else { - controlType = "0"; + String statusName = item.getStatusName(); + String controlType; + if (statusName.equals("灭灯")) { + controlType = "1"; + } else { + controlType = "0"; + } + lightViewModel.controlLight(requireContext(), lampIds, controlType); } - lightViewModel.controlLight(requireContext(), lampIds, controlType); + }); + } + }; + getBinding().recyclerView.addItemDecoration(new RecyclerViewItemDivider(1, Color.LTGRAY)); + getBinding().recyclerView.setAdapter(adapter); + adapter.setOnItemClickedListener(new NormalRecyclerAdapter.OnItemClickedListener() { + @Override + public void onItemClicked(int position, LightListBean.DataBean.RowsBean rowsBean) { + String lampId = rowsBean.getLampId(); + if (TextUtils.isEmpty(lampId)) { + StringKit.show(requireContext(), "错误,路灯编号为空"); + return; } - }); - } + + lightViewModel.getLightDetail(requireContext(), lampId); + } + }); } } else if (msg.what == 20210624) { isRefresh = true; pageIndex = 1; - lightViewModel.getLightList(LocaleConstant.PAGE_LIMIT, pageIndex); + lightViewModel.getLightList(pageIndex); } return true; } diff --git a/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java index 64791dd..8f872db 100644 --- a/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java @@ -6,12 +6,12 @@ import androidx.annotation.Nullable; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.bean.NoticeLocaleBean; import com.casic.dcms.databinding.FragmentNoticeBinding; import com.casic.dcms.utils.DataBaseManager; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.CaseDetailActivity; -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.kit.ContextKit; diff --git a/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java b/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java index 5980aaf..93ab96c 100644 --- a/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java @@ -87,14 +87,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/business/PackageTodoFragment.java b/app/src/main/java/com/casic/dcms/fragment/business/PackageTodoFragment.java index 9f28bbe..1fefd3f 100644 --- a/app/src/main/java/com/casic/dcms/fragment/business/PackageTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/business/PackageTodoFragment.java @@ -88,14 +88,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { 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 816fb8f..62db8ed 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 @@ -12,13 +12,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentCheckCaseBinding; import com.casic.dcms.model.CaseCheckModel; import com.casic.dcms.utils.LocaleConstant; 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.kit.ContextKit; @@ -61,14 +61,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { 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 e472cd6..27f60a2 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 @@ -12,13 +12,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentCheckCaseBinding; import com.casic.dcms.model.CaseCheckModel; import com.casic.dcms.utils.LocaleConstant; 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.kit.ContextKit; @@ -62,14 +62,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAdjustFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAdjustFragment.java index 23a4f8e..fdee789 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAdjustFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAdjustFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.AdjustCaseModel; import com.casic.dcms.view.department.DeptAdjustDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -57,14 +57,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAuthorizeFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAuthorizeFragment.java index f5ba0b0..b5d807e 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAuthorizeFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAuthorizeFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.AuthorizeCaseModel; import com.casic.dcms.view.department.DeptAuthorizeDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -57,14 +57,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseDelayedFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseDelayedFragment.java index e16d47d..52c88fd 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseDelayedFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseDelayedFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.DelayedCaseModel; import com.casic.dcms.view.CaseDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -57,14 +57,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseHandledFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseHandledFragment.java index 0acf747..2ce5297 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseHandledFragment.java @@ -12,12 +12,12 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.HandledCaseModel; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.CaseDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -59,14 +59,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCasePostponeFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCasePostponeFragment.java index b2a3047..d8b3396 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCasePostponeFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCasePostponeFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.PostCaseModel; import com.casic.dcms.view.CaseDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -57,14 +57,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseProcessFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseProcessFragment.java index ef78a7d..2c5f4d7 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseProcessFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseProcessFragment.java @@ -12,12 +12,12 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.HandleCaseModel; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.view.department.DeptTodoDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.StringKit; @@ -58,14 +58,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseTodoFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseTodoFragment.java index 2f8cb8a..febcb54 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseTodoFragment.java @@ -13,13 +13,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.TodoCaseModel; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.department.DeptTodoDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.StringKit; @@ -60,14 +60,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/handle/CaseHandledFragment.java b/app/src/main/java/com/casic/dcms/fragment/handle/CaseHandledFragment.java index d61fff7..d8d825f 100644 --- a/app/src/main/java/com/casic/dcms/fragment/handle/CaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/handle/CaseHandledFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentHandleCaseBinding; import com.casic.dcms.model.CaseHandledBean; import com.casic.dcms.view.handle.CaseHandledDetailActivity; 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.kit.ContextKit; @@ -58,14 +58,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/handle/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/fragment/handle/CaseTodoFragment.java index 2196251..26d0942 100644 --- a/app/src/main/java/com/casic/dcms/fragment/handle/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/handle/CaseTodoFragment.java @@ -13,12 +13,12 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentHandleCaseBinding; import com.casic.dcms.model.CaseHandleBean; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.handle.CaseHandleDetailActivity; 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.kit.StringKit; @@ -60,14 +60,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/overtime/CaseHandledFragment.java b/app/src/main/java/com/casic/dcms/fragment/overtime/CaseHandledFragment.java index 5cb44da..3424ebd 100644 --- a/app/src/main/java/com/casic/dcms/fragment/overtime/CaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/overtime/CaseHandledFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentOvertimeCaseBinding; import com.casic.dcms.model.OvertimeCaseBean; import com.casic.dcms.view.CaseTodoHandledDetailActivity; 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.kit.ContextKit; @@ -58,14 +58,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/overtime/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/fragment/overtime/CaseTodoFragment.java index a98bde5..1c2c20d 100644 --- a/app/src/main/java/com/casic/dcms/fragment/overtime/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/overtime/CaseTodoFragment.java @@ -12,11 +12,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentOvertimeCaseBinding; import com.casic.dcms.model.OvertimeCaseBean; import com.casic.dcms.view.CaseTodoDetailActivity; 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.kit.StringKit; @@ -58,14 +58,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/urgent/CaseHandledFragment.java b/app/src/main/java/com/casic/dcms/fragment/urgent/CaseHandledFragment.java index b55651f..2cc0a02 100644 --- a/app/src/main/java/com/casic/dcms/fragment/urgent/CaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/urgent/CaseHandledFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentUrgentCaseBinding; import com.casic.dcms.model.UrgentCaseBean; import com.casic.dcms.view.CaseTodoHandledDetailActivity; 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.kit.ContextKit; @@ -58,14 +58,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/urgent/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/fragment/urgent/CaseTodoFragment.java index 854d6f8..54b773e 100644 --- a/app/src/main/java/com/casic/dcms/fragment/urgent/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/urgent/CaseTodoFragment.java @@ -12,11 +12,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentUrgentCaseBinding; import com.casic.dcms.model.UrgentCaseBean; import com.casic.dcms.view.CaseTodoDetailActivity; 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.kit.StringKit; @@ -58,14 +58,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifiedFragment.java b/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifiedFragment.java index b5a130e..426878b 100644 --- a/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifiedFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifiedFragment.java @@ -12,13 +12,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentVerifyCaseBinding; import com.casic.dcms.model.VerifiedCaseModel; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.verify.VerifiedDetailActivity; 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.kit.ContextKit; @@ -61,14 +61,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/adapter/LightResultAdapter.java b/app/src/main/java/com/casic/dcms/adapter/LightResultAdapter.java deleted file mode 100644 index 405af6e..0000000 --- a/app/src/main/java/com/casic/dcms/adapter/LightResultAdapter.java +++ /dev/null @@ -1,107 +0,0 @@ -package com.casic.dcms.adapter; - -import android.annotation.SuppressLint; -import android.content.Context; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.ImageView; -import android.widget.TextView; - -import androidx.annotation.NonNull; -import androidx.recyclerview.widget.RecyclerView; - -import com.casic.dcms.R; -import com.casic.dcms.model.LightListBean; - -import java.util.List; - -public class LightResultAdapter extends RecyclerView.Adapter { - - private final List dataBeans; - private final LayoutInflater layoutInflater; - - public LightResultAdapter(Context context, List beans) { - this.dataBeans = beans; - this.layoutInflater = LayoutInflater.from(context); - } - - @NonNull - @Override - public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - return new ItemViewHolder(layoutInflater.inflate(R.layout.item_light_recycleview, parent, false)); - } - - @Override - public void onBindViewHolder(@NonNull LightResultAdapter.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); - } - }); - } - if (switchClickListener != null) { - holder.lightSwitch.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - switchClickListener.onClick(position); - } - }); - } - } - - @Override - public int getItemCount() { - return dataBeans.size(); - } - - private OnGridItemClickListener clickListener; - - public interface OnGridItemClickListener { - void onClick(int position); - } - - public void setOnGridItemClickListener(OnGridItemClickListener onGridItemClickListener) { - this.clickListener = onGridItemClickListener; - } - - private OnSwitchClickListener switchClickListener; - - public interface OnSwitchClickListener { - void onClick(int position); - } - - public void setOnSwitchClickListener(OnSwitchClickListener switchClickListener) { - this.switchClickListener = switchClickListener; - } - - static class ItemViewHolder extends RecyclerView.ViewHolder { - - private final TextView lightNameView; - private final TextView lightStatusView; - private final ImageView lightSwitch; - - ItemViewHolder(@NonNull View itemView) { - super(itemView); - lightNameView = itemView.findViewById(R.id.lightNameView); - lightStatusView = itemView.findViewById(R.id.lightStatusView); - lightSwitch = itemView.findViewById(R.id.lightSwitch); - } - - void bindView(LightListBean.DataBean.RowsBean dataBean) { - lightNameView.setText(dataBean.getLampName()); - String statusName = dataBean.getStatusName(); - lightStatusView.setText(statusName); - if (statusName.equals("灭灯")) { - lightSwitch.setBackgroundResource(R.drawable.ic_switch_off); - } else if (statusName.equals("报警")) { - lightSwitch.setBackgroundResource(R.drawable.ic_switch_warning); - } else { - lightSwitch.setBackgroundResource(R.drawable.ic_switch_on); - } - } - } -} diff --git a/app/src/main/java/com/casic/dcms/adapter/NormalRecyclerAdapter.java b/app/src/main/java/com/casic/dcms/adapter/NormalRecyclerAdapter.java new file mode 100644 index 0000000..c80e2d5 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/adapter/NormalRecyclerAdapter.java @@ -0,0 +1,134 @@ +package com.casic.dcms.adapter; + +import android.annotation.SuppressLint; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import androidx.annotation.LayoutRes; +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.DiffUtil; +import androidx.recyclerview.widget.RecyclerView; + +import com.pengxh.androidx.lite.adapter.ViewHolder; + +import java.util.List; + +/** + * RecyclerView普通列表适配器 + */ +public abstract class NormalRecyclerAdapter extends RecyclerView.Adapter { + + private static final String TAG = "NormalRecyclerAdapter"; + private final int xmlResource; + private final List dataRows; + + public NormalRecyclerAdapter(@LayoutRes int xmlResource, List dataRows) { + this.xmlResource = xmlResource; + this.dataRows = dataRows; + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + @NonNull + @Override + public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + return new ViewHolder(LayoutInflater.from(parent.getContext()).inflate(xmlResource, parent, false)); + } + + @Override + public void onBindViewHolder(@NonNull ViewHolder holder, @SuppressLint("RecyclerView") int position) { + convertView(holder, position, dataRows.get(position)); + + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (itemClickedListener == null) { + return; + } + itemClickedListener.onItemClicked(position, dataRows.get(position)); + } + }); + } + + public void refresh(List newRows) { + DiffUtil.Callback diffCallback = new DiffUtil.Callback() { + + @Override + public int getOldListSize() { + return dataRows.size(); + } + + @Override + public int getNewListSize() { + return newRows.size(); + } + + @Override + public boolean areItemsTheSame(int oldItemPosition, int newItemPosition) { + if (dataRows == null || newRows == null) { + return false; + } + + // 检查索引是否在有效范围内 + if (oldItemPosition < 0 || oldItemPosition >= dataRows.size() || + newItemPosition < 0 || newItemPosition >= newRows.size()) { + return false; + } + + // 获取元素并进行比较 + Object oldItem = dataRows.get(oldItemPosition); + Object newItem = newRows.get(newItemPosition); + + // 处理空指针情况 + if (oldItem == null && newItem == null) { + return true; + } + if (oldItem == null || newItem == null) { + return false; + } + + return oldItem.equals(newItem); + } + + @Override + public boolean areContentsTheSame(int oldItemPosition, int newItemPosition) { + return dataRows.get(oldItemPosition) == newRows.get(newItemPosition); + } + }; + + DiffUtil.DiffResult diffResult = DiffUtil.calculateDiff(diffCallback); + + dataRows.clear(); + dataRows.addAll(newRows); + + diffResult.dispatchUpdatesTo(this); + } + + /** + * 加载更多 + */ + public void loadMore(List newRows) { + if (newRows.isEmpty()) { + return; + } + int startPosition = this.dataRows.size(); + this.dataRows.addAll(newRows); + notifyItemRangeInserted(startPosition, newRows.size()); + } + + public abstract void convertView(ViewHolder viewHolder, int position, T item); + + private OnItemClickedListener itemClickedListener; + + public interface OnItemClickedListener { + void onItemClicked(int position, T t); + } + + public void setOnItemClickedListener(OnItemClickedListener listener) { + itemClickedListener = listener; + } +} diff --git a/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java b/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java index 1deb066..80f7b98 100644 --- a/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java @@ -58,13 +58,13 @@ } @SuppressLint("NotifyDataSetChanged") - public void setRefreshData(List dataRows) { + public void refresh(List dataRows) { this.dataRows.clear(); this.dataRows.addAll(dataRows); notifyDataSetChanged(); } - public void setLoadMoreData(List dataRows) { + public void loadMore(List dataRows) { this.dataRows.addAll(dataRows); notifyItemRangeInserted(this.dataRows.size(), dataRows.size()); } diff --git a/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java index 3535c40..bd5e484 100644 --- a/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java @@ -10,6 +10,7 @@ import com.bumptech.glide.Glide; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentHomeBinding; import com.casic.dcms.model.HomePageBean; import com.casic.dcms.model.UserBean; @@ -36,7 +37,6 @@ import com.casic.dcms.view.verify.VerifyCaseActivity; import com.casic.dcms.vm.HomePageViewModel; import com.casic.dcms.vm.UserViewModel; -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.kit.LongKit; diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java index 0d2926f..a9cc331 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java @@ -5,22 +5,26 @@ import android.os.Handler; import android.os.Message; import android.text.TextUtils; +import android.view.View; import androidx.annotation.NonNull; import androidx.annotation.Nullable; +import androidx.cardview.widget.CardView; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; -import com.casic.dcms.adapter.LightResultAdapter; +import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentLightListBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightDetailBean; import com.casic.dcms.model.LightListBean; -import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.vm.LightViewModel; import com.casic.dcms.widgets.LightDetailDialog; +import com.pengxh.androidx.lite.adapter.ViewHolder; import com.pengxh.androidx.lite.base.AndroidxBaseFragment; import com.pengxh.androidx.lite.divider.RecyclerViewItemDivider; +import com.pengxh.androidx.lite.kit.IntKit; import com.pengxh.androidx.lite.kit.StringKit; import com.pengxh.androidx.lite.utils.LoadState; import com.pengxh.androidx.lite.utils.LoadingDialog; @@ -37,7 +41,7 @@ private static final String TAG = "LightOnListFragment"; private final WeakReferenceHandler weakReferenceHandler = new WeakReferenceHandler(this); private LightViewModel lightViewModel; - private LightResultAdapter adapter; + private NormalRecyclerAdapter adapter; private List dataBeans = new ArrayList<>(); private int pageIndex = 1; private boolean isRefresh, isLoadMore = false; @@ -50,7 +54,7 @@ @Override protected void initOnCreate(@Nullable Bundle savedInstanceState) { lightViewModel = new ViewModelProvider(this).get(LightViewModel.class); - getLightList(); + lightViewModel.getLightList(pageIndex); } @Override @@ -67,10 +71,6 @@ }); } - private void getLightList() { - lightViewModel.getLightList(LocaleConstant.PAGE_LIMIT, pageIndex); - } - @Override protected void initEvent() { getBinding().refreshLayout.setOnRefreshListener(new OnRefreshListener() { @@ -79,7 +79,7 @@ isRefresh = true; //刷新之后页码重置 pageIndex = 1; - getLightList(); + lightViewModel.getLightList(pageIndex); } }); getBinding().refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() { @@ -87,7 +87,7 @@ public void onLoadMore(@NonNull final RefreshLayout refreshLayout) { isLoadMore = true; pageIndex++; - getLightList(); + lightViewModel.getLightList(pageIndex); } }); @@ -97,21 +97,20 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题 - dataBeans = dataRows; + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - dataBeans.addAll(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { dataBeans = dataRows; + weakReferenceHandler.sendEmptyMessage(20210623); } - weakReferenceHandler.sendEmptyMessage(20210623); } } }); @@ -138,54 +137,67 @@ @Override public boolean handleMessage(@NonNull Message msg) { if (msg.what == 20210623) { - if (isRefresh || isLoadMore) { - adapter.notifyItemRangeInserted(adapter.getItemCount(), LocaleConstant.PAGE_LIMIT); + //首次加载数据 + if (dataBeans.size() == 0) { + getBinding().emptyView.show("没有路灯数据", null); } else { - //首次加载数据 - if (dataBeans.size() == 0) { - getBinding().emptyView.show("没有路灯数据", null); - } else { - getBinding().emptyView.hide(); - adapter = new LightResultAdapter(requireContext(), dataBeans); - getBinding().recyclerView.addItemDecoration(new RecyclerViewItemDivider(1, Color.LTGRAY)); - getBinding().recyclerView.setAdapter(adapter); - adapter.setOnGridItemClickListener(new LightResultAdapter.OnGridItemClickListener() { - @Override - public void onClick(int position) { - String lampId = dataBeans.get(position).getLampId(); - if (TextUtils.isEmpty(lampId)) { - StringKit.show(requireContext(), "错误,路灯编号为空"); - return; - } + getBinding().emptyView.hide(); + adapter = new NormalRecyclerAdapter(R.layout.item_light_recycleview, dataBeans) { + @Override + public void convertView(ViewHolder viewHolder, int position, LightListBean.DataBean.RowsBean item) { + String statusName = item.getStatusName(); + viewHolder.setText(R.id.lightNameView, item.getLampName()) + .setText(R.id.lightStatusView, "已" + statusName); - lightViewModel.getLightDetail(requireContext(), lampId); + CardView statueTagView = viewHolder.getView(R.id.statueTagView); + if (statusName.equals("灭灯")) { + viewHolder.setImageResource(R.id.lightSwitch, R.drawable.ic_switch_off); + statueTagView.setCardBackgroundColor(IntKit.convertColor(requireContext(), R.color.darkGray)); + } else if (statusName.equals("报警")) { + viewHolder.setImageResource(R.id.lightSwitch, R.drawable.ic_switch_warning); + statueTagView.setCardBackgroundColor(IntKit.convertColor(requireContext(), R.color.warnColor)); + } else { + viewHolder.setImageResource(R.id.lightSwitch, R.drawable.ic_switch_on); + statueTagView.setCardBackgroundColor(IntKit.convertColor(requireContext(), R.color.onLineColor)); } - }); - adapter.setOnSwitchClickListener(new LightResultAdapter.OnSwitchClickListener() { - @Override - public void onClick(int position) { - LightListBean.DataBean.RowsBean rowsBean = dataBeans.get(position); + viewHolder.setOnClickListener(R.id.lightSwitch, new View.OnClickListener() { + @Override + public void onClick(View v) { + List lampIds = new ArrayList<>(); + lampIds.add(Long.parseLong(item.getLampId())); - List lampIds = new ArrayList<>(); - lampIds.add(Long.parseLong(rowsBean.getLampId())); - - String statusName = rowsBean.getStatusName(); - String controlType; - if (statusName.equals("离线")) { - controlType = "1"; - } else { - controlType = "0"; + String statusName = item.getStatusName(); + String controlType; + if (statusName.equals("灭灯")) { + controlType = "1"; + } else { + controlType = "0"; + } + lightViewModel.controlLight(requireContext(), lampIds, controlType); } - lightViewModel.controlLight(requireContext(), lampIds, controlType); + }); + } + }; + getBinding().recyclerView.addItemDecoration(new RecyclerViewItemDivider(1, Color.LTGRAY)); + getBinding().recyclerView.setAdapter(adapter); + adapter.setOnItemClickedListener(new NormalRecyclerAdapter.OnItemClickedListener() { + @Override + public void onItemClicked(int position, LightListBean.DataBean.RowsBean rowsBean) { + String lampId = rowsBean.getLampId(); + if (TextUtils.isEmpty(lampId)) { + StringKit.show(requireContext(), "错误,路灯编号为空"); + return; } - }); - } + + lightViewModel.getLightDetail(requireContext(), lampId); + } + }); } } else if (msg.what == 20210624) { isRefresh = true; pageIndex = 1; - lightViewModel.getLightList(LocaleConstant.PAGE_LIMIT, pageIndex); + lightViewModel.getLightList(pageIndex); } return true; } diff --git a/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java index 64791dd..8f872db 100644 --- a/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java @@ -6,12 +6,12 @@ import androidx.annotation.Nullable; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.bean.NoticeLocaleBean; import com.casic.dcms.databinding.FragmentNoticeBinding; import com.casic.dcms.utils.DataBaseManager; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.CaseDetailActivity; -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.kit.ContextKit; diff --git a/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java b/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java index 5980aaf..93ab96c 100644 --- a/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java @@ -87,14 +87,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/business/PackageTodoFragment.java b/app/src/main/java/com/casic/dcms/fragment/business/PackageTodoFragment.java index 9f28bbe..1fefd3f 100644 --- a/app/src/main/java/com/casic/dcms/fragment/business/PackageTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/business/PackageTodoFragment.java @@ -88,14 +88,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { 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 816fb8f..62db8ed 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 @@ -12,13 +12,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentCheckCaseBinding; import com.casic.dcms.model.CaseCheckModel; import com.casic.dcms.utils.LocaleConstant; 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.kit.ContextKit; @@ -61,14 +61,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { 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 e472cd6..27f60a2 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 @@ -12,13 +12,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentCheckCaseBinding; import com.casic.dcms.model.CaseCheckModel; import com.casic.dcms.utils.LocaleConstant; 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.kit.ContextKit; @@ -62,14 +62,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAdjustFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAdjustFragment.java index 23a4f8e..fdee789 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAdjustFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAdjustFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.AdjustCaseModel; import com.casic.dcms.view.department.DeptAdjustDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -57,14 +57,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAuthorizeFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAuthorizeFragment.java index f5ba0b0..b5d807e 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAuthorizeFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAuthorizeFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.AuthorizeCaseModel; import com.casic.dcms.view.department.DeptAuthorizeDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -57,14 +57,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseDelayedFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseDelayedFragment.java index e16d47d..52c88fd 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseDelayedFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseDelayedFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.DelayedCaseModel; import com.casic.dcms.view.CaseDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -57,14 +57,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseHandledFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseHandledFragment.java index 0acf747..2ce5297 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseHandledFragment.java @@ -12,12 +12,12 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.HandledCaseModel; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.CaseDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -59,14 +59,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCasePostponeFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCasePostponeFragment.java index b2a3047..d8b3396 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCasePostponeFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCasePostponeFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.PostCaseModel; import com.casic.dcms.view.CaseDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -57,14 +57,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseProcessFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseProcessFragment.java index ef78a7d..2c5f4d7 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseProcessFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseProcessFragment.java @@ -12,12 +12,12 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.HandleCaseModel; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.view.department.DeptTodoDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.StringKit; @@ -58,14 +58,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseTodoFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseTodoFragment.java index 2f8cb8a..febcb54 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseTodoFragment.java @@ -13,13 +13,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.TodoCaseModel; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.department.DeptTodoDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.StringKit; @@ -60,14 +60,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/handle/CaseHandledFragment.java b/app/src/main/java/com/casic/dcms/fragment/handle/CaseHandledFragment.java index d61fff7..d8d825f 100644 --- a/app/src/main/java/com/casic/dcms/fragment/handle/CaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/handle/CaseHandledFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentHandleCaseBinding; import com.casic.dcms.model.CaseHandledBean; import com.casic.dcms.view.handle.CaseHandledDetailActivity; 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.kit.ContextKit; @@ -58,14 +58,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/handle/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/fragment/handle/CaseTodoFragment.java index 2196251..26d0942 100644 --- a/app/src/main/java/com/casic/dcms/fragment/handle/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/handle/CaseTodoFragment.java @@ -13,12 +13,12 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentHandleCaseBinding; import com.casic.dcms.model.CaseHandleBean; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.handle.CaseHandleDetailActivity; 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.kit.StringKit; @@ -60,14 +60,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/overtime/CaseHandledFragment.java b/app/src/main/java/com/casic/dcms/fragment/overtime/CaseHandledFragment.java index 5cb44da..3424ebd 100644 --- a/app/src/main/java/com/casic/dcms/fragment/overtime/CaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/overtime/CaseHandledFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentOvertimeCaseBinding; import com.casic.dcms.model.OvertimeCaseBean; import com.casic.dcms.view.CaseTodoHandledDetailActivity; 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.kit.ContextKit; @@ -58,14 +58,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/overtime/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/fragment/overtime/CaseTodoFragment.java index a98bde5..1c2c20d 100644 --- a/app/src/main/java/com/casic/dcms/fragment/overtime/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/overtime/CaseTodoFragment.java @@ -12,11 +12,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentOvertimeCaseBinding; import com.casic.dcms.model.OvertimeCaseBean; import com.casic.dcms.view.CaseTodoDetailActivity; 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.kit.StringKit; @@ -58,14 +58,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/urgent/CaseHandledFragment.java b/app/src/main/java/com/casic/dcms/fragment/urgent/CaseHandledFragment.java index b55651f..2cc0a02 100644 --- a/app/src/main/java/com/casic/dcms/fragment/urgent/CaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/urgent/CaseHandledFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentUrgentCaseBinding; import com.casic.dcms.model.UrgentCaseBean; import com.casic.dcms.view.CaseTodoHandledDetailActivity; 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.kit.ContextKit; @@ -58,14 +58,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/urgent/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/fragment/urgent/CaseTodoFragment.java index 854d6f8..54b773e 100644 --- a/app/src/main/java/com/casic/dcms/fragment/urgent/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/urgent/CaseTodoFragment.java @@ -12,11 +12,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentUrgentCaseBinding; import com.casic.dcms.model.UrgentCaseBean; import com.casic.dcms.view.CaseTodoDetailActivity; 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.kit.StringKit; @@ -58,14 +58,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifiedFragment.java b/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifiedFragment.java index b5a130e..426878b 100644 --- a/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifiedFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifiedFragment.java @@ -12,13 +12,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentVerifyCaseBinding; import com.casic.dcms.model.VerifiedCaseModel; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.verify.VerifiedDetailActivity; 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.kit.ContextKit; @@ -61,14 +61,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifyFragment.java b/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifyFragment.java index 00039fc..d5a91fc 100644 --- a/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifyFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifyFragment.java @@ -12,13 +12,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentVerifyCaseBinding; import com.casic.dcms.model.VerifyCaseModel; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.verify.VerifyDetailActivity; 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.kit.ContextKit; @@ -61,14 +61,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; diff --git a/app/src/main/java/com/casic/dcms/adapter/LightResultAdapter.java b/app/src/main/java/com/casic/dcms/adapter/LightResultAdapter.java deleted file mode 100644 index 405af6e..0000000 --- a/app/src/main/java/com/casic/dcms/adapter/LightResultAdapter.java +++ /dev/null @@ -1,107 +0,0 @@ -package com.casic.dcms.adapter; - -import android.annotation.SuppressLint; -import android.content.Context; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.ImageView; -import android.widget.TextView; - -import androidx.annotation.NonNull; -import androidx.recyclerview.widget.RecyclerView; - -import com.casic.dcms.R; -import com.casic.dcms.model.LightListBean; - -import java.util.List; - -public class LightResultAdapter extends RecyclerView.Adapter { - - private final List dataBeans; - private final LayoutInflater layoutInflater; - - public LightResultAdapter(Context context, List beans) { - this.dataBeans = beans; - this.layoutInflater = LayoutInflater.from(context); - } - - @NonNull - @Override - public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - return new ItemViewHolder(layoutInflater.inflate(R.layout.item_light_recycleview, parent, false)); - } - - @Override - public void onBindViewHolder(@NonNull LightResultAdapter.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); - } - }); - } - if (switchClickListener != null) { - holder.lightSwitch.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - switchClickListener.onClick(position); - } - }); - } - } - - @Override - public int getItemCount() { - return dataBeans.size(); - } - - private OnGridItemClickListener clickListener; - - public interface OnGridItemClickListener { - void onClick(int position); - } - - public void setOnGridItemClickListener(OnGridItemClickListener onGridItemClickListener) { - this.clickListener = onGridItemClickListener; - } - - private OnSwitchClickListener switchClickListener; - - public interface OnSwitchClickListener { - void onClick(int position); - } - - public void setOnSwitchClickListener(OnSwitchClickListener switchClickListener) { - this.switchClickListener = switchClickListener; - } - - static class ItemViewHolder extends RecyclerView.ViewHolder { - - private final TextView lightNameView; - private final TextView lightStatusView; - private final ImageView lightSwitch; - - ItemViewHolder(@NonNull View itemView) { - super(itemView); - lightNameView = itemView.findViewById(R.id.lightNameView); - lightStatusView = itemView.findViewById(R.id.lightStatusView); - lightSwitch = itemView.findViewById(R.id.lightSwitch); - } - - void bindView(LightListBean.DataBean.RowsBean dataBean) { - lightNameView.setText(dataBean.getLampName()); - String statusName = dataBean.getStatusName(); - lightStatusView.setText(statusName); - if (statusName.equals("灭灯")) { - lightSwitch.setBackgroundResource(R.drawable.ic_switch_off); - } else if (statusName.equals("报警")) { - lightSwitch.setBackgroundResource(R.drawable.ic_switch_warning); - } else { - lightSwitch.setBackgroundResource(R.drawable.ic_switch_on); - } - } - } -} diff --git a/app/src/main/java/com/casic/dcms/adapter/NormalRecyclerAdapter.java b/app/src/main/java/com/casic/dcms/adapter/NormalRecyclerAdapter.java new file mode 100644 index 0000000..c80e2d5 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/adapter/NormalRecyclerAdapter.java @@ -0,0 +1,134 @@ +package com.casic.dcms.adapter; + +import android.annotation.SuppressLint; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import androidx.annotation.LayoutRes; +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.DiffUtil; +import androidx.recyclerview.widget.RecyclerView; + +import com.pengxh.androidx.lite.adapter.ViewHolder; + +import java.util.List; + +/** + * RecyclerView普通列表适配器 + */ +public abstract class NormalRecyclerAdapter extends RecyclerView.Adapter { + + private static final String TAG = "NormalRecyclerAdapter"; + private final int xmlResource; + private final List dataRows; + + public NormalRecyclerAdapter(@LayoutRes int xmlResource, List dataRows) { + this.xmlResource = xmlResource; + this.dataRows = dataRows; + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + @NonNull + @Override + public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + return new ViewHolder(LayoutInflater.from(parent.getContext()).inflate(xmlResource, parent, false)); + } + + @Override + public void onBindViewHolder(@NonNull ViewHolder holder, @SuppressLint("RecyclerView") int position) { + convertView(holder, position, dataRows.get(position)); + + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (itemClickedListener == null) { + return; + } + itemClickedListener.onItemClicked(position, dataRows.get(position)); + } + }); + } + + public void refresh(List newRows) { + DiffUtil.Callback diffCallback = new DiffUtil.Callback() { + + @Override + public int getOldListSize() { + return dataRows.size(); + } + + @Override + public int getNewListSize() { + return newRows.size(); + } + + @Override + public boolean areItemsTheSame(int oldItemPosition, int newItemPosition) { + if (dataRows == null || newRows == null) { + return false; + } + + // 检查索引是否在有效范围内 + if (oldItemPosition < 0 || oldItemPosition >= dataRows.size() || + newItemPosition < 0 || newItemPosition >= newRows.size()) { + return false; + } + + // 获取元素并进行比较 + Object oldItem = dataRows.get(oldItemPosition); + Object newItem = newRows.get(newItemPosition); + + // 处理空指针情况 + if (oldItem == null && newItem == null) { + return true; + } + if (oldItem == null || newItem == null) { + return false; + } + + return oldItem.equals(newItem); + } + + @Override + public boolean areContentsTheSame(int oldItemPosition, int newItemPosition) { + return dataRows.get(oldItemPosition) == newRows.get(newItemPosition); + } + }; + + DiffUtil.DiffResult diffResult = DiffUtil.calculateDiff(diffCallback); + + dataRows.clear(); + dataRows.addAll(newRows); + + diffResult.dispatchUpdatesTo(this); + } + + /** + * 加载更多 + */ + public void loadMore(List newRows) { + if (newRows.isEmpty()) { + return; + } + int startPosition = this.dataRows.size(); + this.dataRows.addAll(newRows); + notifyItemRangeInserted(startPosition, newRows.size()); + } + + public abstract void convertView(ViewHolder viewHolder, int position, T item); + + private OnItemClickedListener itemClickedListener; + + public interface OnItemClickedListener { + void onItemClicked(int position, T t); + } + + public void setOnItemClickedListener(OnItemClickedListener listener) { + itemClickedListener = listener; + } +} diff --git a/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java b/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java index 1deb066..80f7b98 100644 --- a/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java @@ -58,13 +58,13 @@ } @SuppressLint("NotifyDataSetChanged") - public void setRefreshData(List dataRows) { + public void refresh(List dataRows) { this.dataRows.clear(); this.dataRows.addAll(dataRows); notifyDataSetChanged(); } - public void setLoadMoreData(List dataRows) { + public void loadMore(List dataRows) { this.dataRows.addAll(dataRows); notifyItemRangeInserted(this.dataRows.size(), dataRows.size()); } diff --git a/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java index 3535c40..bd5e484 100644 --- a/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java @@ -10,6 +10,7 @@ import com.bumptech.glide.Glide; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentHomeBinding; import com.casic.dcms.model.HomePageBean; import com.casic.dcms.model.UserBean; @@ -36,7 +37,6 @@ import com.casic.dcms.view.verify.VerifyCaseActivity; import com.casic.dcms.vm.HomePageViewModel; import com.casic.dcms.vm.UserViewModel; -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.kit.LongKit; diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java index 0d2926f..a9cc331 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java @@ -5,22 +5,26 @@ import android.os.Handler; import android.os.Message; import android.text.TextUtils; +import android.view.View; import androidx.annotation.NonNull; import androidx.annotation.Nullable; +import androidx.cardview.widget.CardView; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; -import com.casic.dcms.adapter.LightResultAdapter; +import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentLightListBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightDetailBean; import com.casic.dcms.model.LightListBean; -import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.vm.LightViewModel; import com.casic.dcms.widgets.LightDetailDialog; +import com.pengxh.androidx.lite.adapter.ViewHolder; import com.pengxh.androidx.lite.base.AndroidxBaseFragment; import com.pengxh.androidx.lite.divider.RecyclerViewItemDivider; +import com.pengxh.androidx.lite.kit.IntKit; import com.pengxh.androidx.lite.kit.StringKit; import com.pengxh.androidx.lite.utils.LoadState; import com.pengxh.androidx.lite.utils.LoadingDialog; @@ -37,7 +41,7 @@ private static final String TAG = "LightOnListFragment"; private final WeakReferenceHandler weakReferenceHandler = new WeakReferenceHandler(this); private LightViewModel lightViewModel; - private LightResultAdapter adapter; + private NormalRecyclerAdapter adapter; private List dataBeans = new ArrayList<>(); private int pageIndex = 1; private boolean isRefresh, isLoadMore = false; @@ -50,7 +54,7 @@ @Override protected void initOnCreate(@Nullable Bundle savedInstanceState) { lightViewModel = new ViewModelProvider(this).get(LightViewModel.class); - getLightList(); + lightViewModel.getLightList(pageIndex); } @Override @@ -67,10 +71,6 @@ }); } - private void getLightList() { - lightViewModel.getLightList(LocaleConstant.PAGE_LIMIT, pageIndex); - } - @Override protected void initEvent() { getBinding().refreshLayout.setOnRefreshListener(new OnRefreshListener() { @@ -79,7 +79,7 @@ isRefresh = true; //刷新之后页码重置 pageIndex = 1; - getLightList(); + lightViewModel.getLightList(pageIndex); } }); getBinding().refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() { @@ -87,7 +87,7 @@ public void onLoadMore(@NonNull final RefreshLayout refreshLayout) { isLoadMore = true; pageIndex++; - getLightList(); + lightViewModel.getLightList(pageIndex); } }); @@ -97,21 +97,20 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题 - dataBeans = dataRows; + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - dataBeans.addAll(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { dataBeans = dataRows; + weakReferenceHandler.sendEmptyMessage(20210623); } - weakReferenceHandler.sendEmptyMessage(20210623); } } }); @@ -138,54 +137,67 @@ @Override public boolean handleMessage(@NonNull Message msg) { if (msg.what == 20210623) { - if (isRefresh || isLoadMore) { - adapter.notifyItemRangeInserted(adapter.getItemCount(), LocaleConstant.PAGE_LIMIT); + //首次加载数据 + if (dataBeans.size() == 0) { + getBinding().emptyView.show("没有路灯数据", null); } else { - //首次加载数据 - if (dataBeans.size() == 0) { - getBinding().emptyView.show("没有路灯数据", null); - } else { - getBinding().emptyView.hide(); - adapter = new LightResultAdapter(requireContext(), dataBeans); - getBinding().recyclerView.addItemDecoration(new RecyclerViewItemDivider(1, Color.LTGRAY)); - getBinding().recyclerView.setAdapter(adapter); - adapter.setOnGridItemClickListener(new LightResultAdapter.OnGridItemClickListener() { - @Override - public void onClick(int position) { - String lampId = dataBeans.get(position).getLampId(); - if (TextUtils.isEmpty(lampId)) { - StringKit.show(requireContext(), "错误,路灯编号为空"); - return; - } + getBinding().emptyView.hide(); + adapter = new NormalRecyclerAdapter(R.layout.item_light_recycleview, dataBeans) { + @Override + public void convertView(ViewHolder viewHolder, int position, LightListBean.DataBean.RowsBean item) { + String statusName = item.getStatusName(); + viewHolder.setText(R.id.lightNameView, item.getLampName()) + .setText(R.id.lightStatusView, "已" + statusName); - lightViewModel.getLightDetail(requireContext(), lampId); + CardView statueTagView = viewHolder.getView(R.id.statueTagView); + if (statusName.equals("灭灯")) { + viewHolder.setImageResource(R.id.lightSwitch, R.drawable.ic_switch_off); + statueTagView.setCardBackgroundColor(IntKit.convertColor(requireContext(), R.color.darkGray)); + } else if (statusName.equals("报警")) { + viewHolder.setImageResource(R.id.lightSwitch, R.drawable.ic_switch_warning); + statueTagView.setCardBackgroundColor(IntKit.convertColor(requireContext(), R.color.warnColor)); + } else { + viewHolder.setImageResource(R.id.lightSwitch, R.drawable.ic_switch_on); + statueTagView.setCardBackgroundColor(IntKit.convertColor(requireContext(), R.color.onLineColor)); } - }); - adapter.setOnSwitchClickListener(new LightResultAdapter.OnSwitchClickListener() { - @Override - public void onClick(int position) { - LightListBean.DataBean.RowsBean rowsBean = dataBeans.get(position); + viewHolder.setOnClickListener(R.id.lightSwitch, new View.OnClickListener() { + @Override + public void onClick(View v) { + List lampIds = new ArrayList<>(); + lampIds.add(Long.parseLong(item.getLampId())); - List lampIds = new ArrayList<>(); - lampIds.add(Long.parseLong(rowsBean.getLampId())); - - String statusName = rowsBean.getStatusName(); - String controlType; - if (statusName.equals("离线")) { - controlType = "1"; - } else { - controlType = "0"; + String statusName = item.getStatusName(); + String controlType; + if (statusName.equals("灭灯")) { + controlType = "1"; + } else { + controlType = "0"; + } + lightViewModel.controlLight(requireContext(), lampIds, controlType); } - lightViewModel.controlLight(requireContext(), lampIds, controlType); + }); + } + }; + getBinding().recyclerView.addItemDecoration(new RecyclerViewItemDivider(1, Color.LTGRAY)); + getBinding().recyclerView.setAdapter(adapter); + adapter.setOnItemClickedListener(new NormalRecyclerAdapter.OnItemClickedListener() { + @Override + public void onItemClicked(int position, LightListBean.DataBean.RowsBean rowsBean) { + String lampId = rowsBean.getLampId(); + if (TextUtils.isEmpty(lampId)) { + StringKit.show(requireContext(), "错误,路灯编号为空"); + return; } - }); - } + + lightViewModel.getLightDetail(requireContext(), lampId); + } + }); } } else if (msg.what == 20210624) { isRefresh = true; pageIndex = 1; - lightViewModel.getLightList(LocaleConstant.PAGE_LIMIT, pageIndex); + lightViewModel.getLightList(pageIndex); } return true; } diff --git a/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java index 64791dd..8f872db 100644 --- a/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java @@ -6,12 +6,12 @@ import androidx.annotation.Nullable; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.bean.NoticeLocaleBean; import com.casic.dcms.databinding.FragmentNoticeBinding; import com.casic.dcms.utils.DataBaseManager; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.CaseDetailActivity; -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.kit.ContextKit; diff --git a/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java b/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java index 5980aaf..93ab96c 100644 --- a/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java @@ -87,14 +87,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/business/PackageTodoFragment.java b/app/src/main/java/com/casic/dcms/fragment/business/PackageTodoFragment.java index 9f28bbe..1fefd3f 100644 --- a/app/src/main/java/com/casic/dcms/fragment/business/PackageTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/business/PackageTodoFragment.java @@ -88,14 +88,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { 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 816fb8f..62db8ed 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 @@ -12,13 +12,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentCheckCaseBinding; import com.casic.dcms.model.CaseCheckModel; import com.casic.dcms.utils.LocaleConstant; 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.kit.ContextKit; @@ -61,14 +61,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { 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 e472cd6..27f60a2 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 @@ -12,13 +12,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentCheckCaseBinding; import com.casic.dcms.model.CaseCheckModel; import com.casic.dcms.utils.LocaleConstant; 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.kit.ContextKit; @@ -62,14 +62,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAdjustFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAdjustFragment.java index 23a4f8e..fdee789 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAdjustFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAdjustFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.AdjustCaseModel; import com.casic.dcms.view.department.DeptAdjustDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -57,14 +57,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAuthorizeFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAuthorizeFragment.java index f5ba0b0..b5d807e 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAuthorizeFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAuthorizeFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.AuthorizeCaseModel; import com.casic.dcms.view.department.DeptAuthorizeDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -57,14 +57,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseDelayedFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseDelayedFragment.java index e16d47d..52c88fd 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseDelayedFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseDelayedFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.DelayedCaseModel; import com.casic.dcms.view.CaseDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -57,14 +57,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseHandledFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseHandledFragment.java index 0acf747..2ce5297 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseHandledFragment.java @@ -12,12 +12,12 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.HandledCaseModel; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.CaseDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -59,14 +59,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCasePostponeFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCasePostponeFragment.java index b2a3047..d8b3396 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCasePostponeFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCasePostponeFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.PostCaseModel; import com.casic.dcms.view.CaseDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -57,14 +57,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseProcessFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseProcessFragment.java index ef78a7d..2c5f4d7 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseProcessFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseProcessFragment.java @@ -12,12 +12,12 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.HandleCaseModel; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.view.department.DeptTodoDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.StringKit; @@ -58,14 +58,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseTodoFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseTodoFragment.java index 2f8cb8a..febcb54 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseTodoFragment.java @@ -13,13 +13,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.TodoCaseModel; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.department.DeptTodoDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.StringKit; @@ -60,14 +60,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/handle/CaseHandledFragment.java b/app/src/main/java/com/casic/dcms/fragment/handle/CaseHandledFragment.java index d61fff7..d8d825f 100644 --- a/app/src/main/java/com/casic/dcms/fragment/handle/CaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/handle/CaseHandledFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentHandleCaseBinding; import com.casic.dcms.model.CaseHandledBean; import com.casic.dcms.view.handle.CaseHandledDetailActivity; 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.kit.ContextKit; @@ -58,14 +58,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/handle/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/fragment/handle/CaseTodoFragment.java index 2196251..26d0942 100644 --- a/app/src/main/java/com/casic/dcms/fragment/handle/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/handle/CaseTodoFragment.java @@ -13,12 +13,12 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentHandleCaseBinding; import com.casic.dcms.model.CaseHandleBean; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.handle.CaseHandleDetailActivity; 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.kit.StringKit; @@ -60,14 +60,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/overtime/CaseHandledFragment.java b/app/src/main/java/com/casic/dcms/fragment/overtime/CaseHandledFragment.java index 5cb44da..3424ebd 100644 --- a/app/src/main/java/com/casic/dcms/fragment/overtime/CaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/overtime/CaseHandledFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentOvertimeCaseBinding; import com.casic.dcms.model.OvertimeCaseBean; import com.casic.dcms.view.CaseTodoHandledDetailActivity; 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.kit.ContextKit; @@ -58,14 +58,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/overtime/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/fragment/overtime/CaseTodoFragment.java index a98bde5..1c2c20d 100644 --- a/app/src/main/java/com/casic/dcms/fragment/overtime/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/overtime/CaseTodoFragment.java @@ -12,11 +12,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentOvertimeCaseBinding; import com.casic.dcms.model.OvertimeCaseBean; import com.casic.dcms.view.CaseTodoDetailActivity; 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.kit.StringKit; @@ -58,14 +58,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/urgent/CaseHandledFragment.java b/app/src/main/java/com/casic/dcms/fragment/urgent/CaseHandledFragment.java index b55651f..2cc0a02 100644 --- a/app/src/main/java/com/casic/dcms/fragment/urgent/CaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/urgent/CaseHandledFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentUrgentCaseBinding; import com.casic.dcms.model.UrgentCaseBean; import com.casic.dcms.view.CaseTodoHandledDetailActivity; 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.kit.ContextKit; @@ -58,14 +58,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/urgent/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/fragment/urgent/CaseTodoFragment.java index 854d6f8..54b773e 100644 --- a/app/src/main/java/com/casic/dcms/fragment/urgent/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/urgent/CaseTodoFragment.java @@ -12,11 +12,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentUrgentCaseBinding; import com.casic.dcms.model.UrgentCaseBean; import com.casic.dcms.view.CaseTodoDetailActivity; 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.kit.StringKit; @@ -58,14 +58,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifiedFragment.java b/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifiedFragment.java index b5a130e..426878b 100644 --- a/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifiedFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifiedFragment.java @@ -12,13 +12,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentVerifyCaseBinding; import com.casic.dcms.model.VerifiedCaseModel; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.verify.VerifiedDetailActivity; 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.kit.ContextKit; @@ -61,14 +61,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifyFragment.java b/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifyFragment.java index 00039fc..d5a91fc 100644 --- a/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifyFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifyFragment.java @@ -12,13 +12,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentVerifyCaseBinding; import com.casic.dcms.model.VerifyCaseModel; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.verify.VerifyDetailActivity; 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.kit.ContextKit; @@ -61,14 +61,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java index b371a7c..ddddaf1 100644 --- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java +++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java @@ -594,8 +594,8 @@ /** * 路灯分页列表 */ - public static Observable getLightListResult(int limit, int offset) { - return api.getLightList(AuthenticationHelper.getToken(), limit, offset); + public static Observable getLightListResult(int offset) { + return api.getLightList(AuthenticationHelper.getToken(), LocaleConstant.PAGE_LIMIT, offset); } /** diff --git a/app/src/main/java/com/casic/dcms/adapter/LightResultAdapter.java b/app/src/main/java/com/casic/dcms/adapter/LightResultAdapter.java deleted file mode 100644 index 405af6e..0000000 --- a/app/src/main/java/com/casic/dcms/adapter/LightResultAdapter.java +++ /dev/null @@ -1,107 +0,0 @@ -package com.casic.dcms.adapter; - -import android.annotation.SuppressLint; -import android.content.Context; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.ImageView; -import android.widget.TextView; - -import androidx.annotation.NonNull; -import androidx.recyclerview.widget.RecyclerView; - -import com.casic.dcms.R; -import com.casic.dcms.model.LightListBean; - -import java.util.List; - -public class LightResultAdapter extends RecyclerView.Adapter { - - private final List dataBeans; - private final LayoutInflater layoutInflater; - - public LightResultAdapter(Context context, List beans) { - this.dataBeans = beans; - this.layoutInflater = LayoutInflater.from(context); - } - - @NonNull - @Override - public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - return new ItemViewHolder(layoutInflater.inflate(R.layout.item_light_recycleview, parent, false)); - } - - @Override - public void onBindViewHolder(@NonNull LightResultAdapter.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); - } - }); - } - if (switchClickListener != null) { - holder.lightSwitch.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - switchClickListener.onClick(position); - } - }); - } - } - - @Override - public int getItemCount() { - return dataBeans.size(); - } - - private OnGridItemClickListener clickListener; - - public interface OnGridItemClickListener { - void onClick(int position); - } - - public void setOnGridItemClickListener(OnGridItemClickListener onGridItemClickListener) { - this.clickListener = onGridItemClickListener; - } - - private OnSwitchClickListener switchClickListener; - - public interface OnSwitchClickListener { - void onClick(int position); - } - - public void setOnSwitchClickListener(OnSwitchClickListener switchClickListener) { - this.switchClickListener = switchClickListener; - } - - static class ItemViewHolder extends RecyclerView.ViewHolder { - - private final TextView lightNameView; - private final TextView lightStatusView; - private final ImageView lightSwitch; - - ItemViewHolder(@NonNull View itemView) { - super(itemView); - lightNameView = itemView.findViewById(R.id.lightNameView); - lightStatusView = itemView.findViewById(R.id.lightStatusView); - lightSwitch = itemView.findViewById(R.id.lightSwitch); - } - - void bindView(LightListBean.DataBean.RowsBean dataBean) { - lightNameView.setText(dataBean.getLampName()); - String statusName = dataBean.getStatusName(); - lightStatusView.setText(statusName); - if (statusName.equals("灭灯")) { - lightSwitch.setBackgroundResource(R.drawable.ic_switch_off); - } else if (statusName.equals("报警")) { - lightSwitch.setBackgroundResource(R.drawable.ic_switch_warning); - } else { - lightSwitch.setBackgroundResource(R.drawable.ic_switch_on); - } - } - } -} diff --git a/app/src/main/java/com/casic/dcms/adapter/NormalRecyclerAdapter.java b/app/src/main/java/com/casic/dcms/adapter/NormalRecyclerAdapter.java new file mode 100644 index 0000000..c80e2d5 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/adapter/NormalRecyclerAdapter.java @@ -0,0 +1,134 @@ +package com.casic.dcms.adapter; + +import android.annotation.SuppressLint; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import androidx.annotation.LayoutRes; +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.DiffUtil; +import androidx.recyclerview.widget.RecyclerView; + +import com.pengxh.androidx.lite.adapter.ViewHolder; + +import java.util.List; + +/** + * RecyclerView普通列表适配器 + */ +public abstract class NormalRecyclerAdapter extends RecyclerView.Adapter { + + private static final String TAG = "NormalRecyclerAdapter"; + private final int xmlResource; + private final List dataRows; + + public NormalRecyclerAdapter(@LayoutRes int xmlResource, List dataRows) { + this.xmlResource = xmlResource; + this.dataRows = dataRows; + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + @NonNull + @Override + public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + return new ViewHolder(LayoutInflater.from(parent.getContext()).inflate(xmlResource, parent, false)); + } + + @Override + public void onBindViewHolder(@NonNull ViewHolder holder, @SuppressLint("RecyclerView") int position) { + convertView(holder, position, dataRows.get(position)); + + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (itemClickedListener == null) { + return; + } + itemClickedListener.onItemClicked(position, dataRows.get(position)); + } + }); + } + + public void refresh(List newRows) { + DiffUtil.Callback diffCallback = new DiffUtil.Callback() { + + @Override + public int getOldListSize() { + return dataRows.size(); + } + + @Override + public int getNewListSize() { + return newRows.size(); + } + + @Override + public boolean areItemsTheSame(int oldItemPosition, int newItemPosition) { + if (dataRows == null || newRows == null) { + return false; + } + + // 检查索引是否在有效范围内 + if (oldItemPosition < 0 || oldItemPosition >= dataRows.size() || + newItemPosition < 0 || newItemPosition >= newRows.size()) { + return false; + } + + // 获取元素并进行比较 + Object oldItem = dataRows.get(oldItemPosition); + Object newItem = newRows.get(newItemPosition); + + // 处理空指针情况 + if (oldItem == null && newItem == null) { + return true; + } + if (oldItem == null || newItem == null) { + return false; + } + + return oldItem.equals(newItem); + } + + @Override + public boolean areContentsTheSame(int oldItemPosition, int newItemPosition) { + return dataRows.get(oldItemPosition) == newRows.get(newItemPosition); + } + }; + + DiffUtil.DiffResult diffResult = DiffUtil.calculateDiff(diffCallback); + + dataRows.clear(); + dataRows.addAll(newRows); + + diffResult.dispatchUpdatesTo(this); + } + + /** + * 加载更多 + */ + public void loadMore(List newRows) { + if (newRows.isEmpty()) { + return; + } + int startPosition = this.dataRows.size(); + this.dataRows.addAll(newRows); + notifyItemRangeInserted(startPosition, newRows.size()); + } + + public abstract void convertView(ViewHolder viewHolder, int position, T item); + + private OnItemClickedListener itemClickedListener; + + public interface OnItemClickedListener { + void onItemClicked(int position, T t); + } + + public void setOnItemClickedListener(OnItemClickedListener listener) { + itemClickedListener = listener; + } +} diff --git a/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java b/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java index 1deb066..80f7b98 100644 --- a/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java @@ -58,13 +58,13 @@ } @SuppressLint("NotifyDataSetChanged") - public void setRefreshData(List dataRows) { + public void refresh(List dataRows) { this.dataRows.clear(); this.dataRows.addAll(dataRows); notifyDataSetChanged(); } - public void setLoadMoreData(List dataRows) { + public void loadMore(List dataRows) { this.dataRows.addAll(dataRows); notifyItemRangeInserted(this.dataRows.size(), dataRows.size()); } diff --git a/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java index 3535c40..bd5e484 100644 --- a/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java @@ -10,6 +10,7 @@ import com.bumptech.glide.Glide; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentHomeBinding; import com.casic.dcms.model.HomePageBean; import com.casic.dcms.model.UserBean; @@ -36,7 +37,6 @@ import com.casic.dcms.view.verify.VerifyCaseActivity; import com.casic.dcms.vm.HomePageViewModel; import com.casic.dcms.vm.UserViewModel; -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.kit.LongKit; diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java index 0d2926f..a9cc331 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java @@ -5,22 +5,26 @@ import android.os.Handler; import android.os.Message; import android.text.TextUtils; +import android.view.View; import androidx.annotation.NonNull; import androidx.annotation.Nullable; +import androidx.cardview.widget.CardView; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; -import com.casic.dcms.adapter.LightResultAdapter; +import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentLightListBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightDetailBean; import com.casic.dcms.model.LightListBean; -import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.vm.LightViewModel; import com.casic.dcms.widgets.LightDetailDialog; +import com.pengxh.androidx.lite.adapter.ViewHolder; import com.pengxh.androidx.lite.base.AndroidxBaseFragment; import com.pengxh.androidx.lite.divider.RecyclerViewItemDivider; +import com.pengxh.androidx.lite.kit.IntKit; import com.pengxh.androidx.lite.kit.StringKit; import com.pengxh.androidx.lite.utils.LoadState; import com.pengxh.androidx.lite.utils.LoadingDialog; @@ -37,7 +41,7 @@ private static final String TAG = "LightOnListFragment"; private final WeakReferenceHandler weakReferenceHandler = new WeakReferenceHandler(this); private LightViewModel lightViewModel; - private LightResultAdapter adapter; + private NormalRecyclerAdapter adapter; private List dataBeans = new ArrayList<>(); private int pageIndex = 1; private boolean isRefresh, isLoadMore = false; @@ -50,7 +54,7 @@ @Override protected void initOnCreate(@Nullable Bundle savedInstanceState) { lightViewModel = new ViewModelProvider(this).get(LightViewModel.class); - getLightList(); + lightViewModel.getLightList(pageIndex); } @Override @@ -67,10 +71,6 @@ }); } - private void getLightList() { - lightViewModel.getLightList(LocaleConstant.PAGE_LIMIT, pageIndex); - } - @Override protected void initEvent() { getBinding().refreshLayout.setOnRefreshListener(new OnRefreshListener() { @@ -79,7 +79,7 @@ isRefresh = true; //刷新之后页码重置 pageIndex = 1; - getLightList(); + lightViewModel.getLightList(pageIndex); } }); getBinding().refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() { @@ -87,7 +87,7 @@ public void onLoadMore(@NonNull final RefreshLayout refreshLayout) { isLoadMore = true; pageIndex++; - getLightList(); + lightViewModel.getLightList(pageIndex); } }); @@ -97,21 +97,20 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题 - dataBeans = dataRows; + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - dataBeans.addAll(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { dataBeans = dataRows; + weakReferenceHandler.sendEmptyMessage(20210623); } - weakReferenceHandler.sendEmptyMessage(20210623); } } }); @@ -138,54 +137,67 @@ @Override public boolean handleMessage(@NonNull Message msg) { if (msg.what == 20210623) { - if (isRefresh || isLoadMore) { - adapter.notifyItemRangeInserted(adapter.getItemCount(), LocaleConstant.PAGE_LIMIT); + //首次加载数据 + if (dataBeans.size() == 0) { + getBinding().emptyView.show("没有路灯数据", null); } else { - //首次加载数据 - if (dataBeans.size() == 0) { - getBinding().emptyView.show("没有路灯数据", null); - } else { - getBinding().emptyView.hide(); - adapter = new LightResultAdapter(requireContext(), dataBeans); - getBinding().recyclerView.addItemDecoration(new RecyclerViewItemDivider(1, Color.LTGRAY)); - getBinding().recyclerView.setAdapter(adapter); - adapter.setOnGridItemClickListener(new LightResultAdapter.OnGridItemClickListener() { - @Override - public void onClick(int position) { - String lampId = dataBeans.get(position).getLampId(); - if (TextUtils.isEmpty(lampId)) { - StringKit.show(requireContext(), "错误,路灯编号为空"); - return; - } + getBinding().emptyView.hide(); + adapter = new NormalRecyclerAdapter(R.layout.item_light_recycleview, dataBeans) { + @Override + public void convertView(ViewHolder viewHolder, int position, LightListBean.DataBean.RowsBean item) { + String statusName = item.getStatusName(); + viewHolder.setText(R.id.lightNameView, item.getLampName()) + .setText(R.id.lightStatusView, "已" + statusName); - lightViewModel.getLightDetail(requireContext(), lampId); + CardView statueTagView = viewHolder.getView(R.id.statueTagView); + if (statusName.equals("灭灯")) { + viewHolder.setImageResource(R.id.lightSwitch, R.drawable.ic_switch_off); + statueTagView.setCardBackgroundColor(IntKit.convertColor(requireContext(), R.color.darkGray)); + } else if (statusName.equals("报警")) { + viewHolder.setImageResource(R.id.lightSwitch, R.drawable.ic_switch_warning); + statueTagView.setCardBackgroundColor(IntKit.convertColor(requireContext(), R.color.warnColor)); + } else { + viewHolder.setImageResource(R.id.lightSwitch, R.drawable.ic_switch_on); + statueTagView.setCardBackgroundColor(IntKit.convertColor(requireContext(), R.color.onLineColor)); } - }); - adapter.setOnSwitchClickListener(new LightResultAdapter.OnSwitchClickListener() { - @Override - public void onClick(int position) { - LightListBean.DataBean.RowsBean rowsBean = dataBeans.get(position); + viewHolder.setOnClickListener(R.id.lightSwitch, new View.OnClickListener() { + @Override + public void onClick(View v) { + List lampIds = new ArrayList<>(); + lampIds.add(Long.parseLong(item.getLampId())); - List lampIds = new ArrayList<>(); - lampIds.add(Long.parseLong(rowsBean.getLampId())); - - String statusName = rowsBean.getStatusName(); - String controlType; - if (statusName.equals("离线")) { - controlType = "1"; - } else { - controlType = "0"; + String statusName = item.getStatusName(); + String controlType; + if (statusName.equals("灭灯")) { + controlType = "1"; + } else { + controlType = "0"; + } + lightViewModel.controlLight(requireContext(), lampIds, controlType); } - lightViewModel.controlLight(requireContext(), lampIds, controlType); + }); + } + }; + getBinding().recyclerView.addItemDecoration(new RecyclerViewItemDivider(1, Color.LTGRAY)); + getBinding().recyclerView.setAdapter(adapter); + adapter.setOnItemClickedListener(new NormalRecyclerAdapter.OnItemClickedListener() { + @Override + public void onItemClicked(int position, LightListBean.DataBean.RowsBean rowsBean) { + String lampId = rowsBean.getLampId(); + if (TextUtils.isEmpty(lampId)) { + StringKit.show(requireContext(), "错误,路灯编号为空"); + return; } - }); - } + + lightViewModel.getLightDetail(requireContext(), lampId); + } + }); } } else if (msg.what == 20210624) { isRefresh = true; pageIndex = 1; - lightViewModel.getLightList(LocaleConstant.PAGE_LIMIT, pageIndex); + lightViewModel.getLightList(pageIndex); } return true; } diff --git a/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java index 64791dd..8f872db 100644 --- a/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java @@ -6,12 +6,12 @@ import androidx.annotation.Nullable; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.bean.NoticeLocaleBean; import com.casic.dcms.databinding.FragmentNoticeBinding; import com.casic.dcms.utils.DataBaseManager; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.CaseDetailActivity; -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.kit.ContextKit; diff --git a/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java b/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java index 5980aaf..93ab96c 100644 --- a/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java @@ -87,14 +87,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/business/PackageTodoFragment.java b/app/src/main/java/com/casic/dcms/fragment/business/PackageTodoFragment.java index 9f28bbe..1fefd3f 100644 --- a/app/src/main/java/com/casic/dcms/fragment/business/PackageTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/business/PackageTodoFragment.java @@ -88,14 +88,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { 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 816fb8f..62db8ed 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 @@ -12,13 +12,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentCheckCaseBinding; import com.casic.dcms.model.CaseCheckModel; import com.casic.dcms.utils.LocaleConstant; 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.kit.ContextKit; @@ -61,14 +61,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { 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 e472cd6..27f60a2 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 @@ -12,13 +12,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentCheckCaseBinding; import com.casic.dcms.model.CaseCheckModel; import com.casic.dcms.utils.LocaleConstant; 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.kit.ContextKit; @@ -62,14 +62,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAdjustFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAdjustFragment.java index 23a4f8e..fdee789 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAdjustFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAdjustFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.AdjustCaseModel; import com.casic.dcms.view.department.DeptAdjustDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -57,14 +57,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAuthorizeFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAuthorizeFragment.java index f5ba0b0..b5d807e 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAuthorizeFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAuthorizeFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.AuthorizeCaseModel; import com.casic.dcms.view.department.DeptAuthorizeDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -57,14 +57,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseDelayedFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseDelayedFragment.java index e16d47d..52c88fd 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseDelayedFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseDelayedFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.DelayedCaseModel; import com.casic.dcms.view.CaseDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -57,14 +57,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseHandledFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseHandledFragment.java index 0acf747..2ce5297 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseHandledFragment.java @@ -12,12 +12,12 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.HandledCaseModel; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.CaseDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -59,14 +59,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCasePostponeFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCasePostponeFragment.java index b2a3047..d8b3396 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCasePostponeFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCasePostponeFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.PostCaseModel; import com.casic.dcms.view.CaseDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -57,14 +57,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseProcessFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseProcessFragment.java index ef78a7d..2c5f4d7 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseProcessFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseProcessFragment.java @@ -12,12 +12,12 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.HandleCaseModel; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.view.department.DeptTodoDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.StringKit; @@ -58,14 +58,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseTodoFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseTodoFragment.java index 2f8cb8a..febcb54 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseTodoFragment.java @@ -13,13 +13,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.TodoCaseModel; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.department.DeptTodoDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.StringKit; @@ -60,14 +60,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/handle/CaseHandledFragment.java b/app/src/main/java/com/casic/dcms/fragment/handle/CaseHandledFragment.java index d61fff7..d8d825f 100644 --- a/app/src/main/java/com/casic/dcms/fragment/handle/CaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/handle/CaseHandledFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentHandleCaseBinding; import com.casic.dcms.model.CaseHandledBean; import com.casic.dcms.view.handle.CaseHandledDetailActivity; 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.kit.ContextKit; @@ -58,14 +58,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/handle/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/fragment/handle/CaseTodoFragment.java index 2196251..26d0942 100644 --- a/app/src/main/java/com/casic/dcms/fragment/handle/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/handle/CaseTodoFragment.java @@ -13,12 +13,12 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentHandleCaseBinding; import com.casic.dcms.model.CaseHandleBean; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.handle.CaseHandleDetailActivity; 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.kit.StringKit; @@ -60,14 +60,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/overtime/CaseHandledFragment.java b/app/src/main/java/com/casic/dcms/fragment/overtime/CaseHandledFragment.java index 5cb44da..3424ebd 100644 --- a/app/src/main/java/com/casic/dcms/fragment/overtime/CaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/overtime/CaseHandledFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentOvertimeCaseBinding; import com.casic.dcms.model.OvertimeCaseBean; import com.casic.dcms.view.CaseTodoHandledDetailActivity; 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.kit.ContextKit; @@ -58,14 +58,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/overtime/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/fragment/overtime/CaseTodoFragment.java index a98bde5..1c2c20d 100644 --- a/app/src/main/java/com/casic/dcms/fragment/overtime/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/overtime/CaseTodoFragment.java @@ -12,11 +12,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentOvertimeCaseBinding; import com.casic.dcms.model.OvertimeCaseBean; import com.casic.dcms.view.CaseTodoDetailActivity; 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.kit.StringKit; @@ -58,14 +58,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/urgent/CaseHandledFragment.java b/app/src/main/java/com/casic/dcms/fragment/urgent/CaseHandledFragment.java index b55651f..2cc0a02 100644 --- a/app/src/main/java/com/casic/dcms/fragment/urgent/CaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/urgent/CaseHandledFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentUrgentCaseBinding; import com.casic.dcms.model.UrgentCaseBean; import com.casic.dcms.view.CaseTodoHandledDetailActivity; 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.kit.ContextKit; @@ -58,14 +58,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/urgent/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/fragment/urgent/CaseTodoFragment.java index 854d6f8..54b773e 100644 --- a/app/src/main/java/com/casic/dcms/fragment/urgent/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/urgent/CaseTodoFragment.java @@ -12,11 +12,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentUrgentCaseBinding; import com.casic.dcms.model.UrgentCaseBean; import com.casic.dcms.view.CaseTodoDetailActivity; 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.kit.StringKit; @@ -58,14 +58,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifiedFragment.java b/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifiedFragment.java index b5a130e..426878b 100644 --- a/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifiedFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifiedFragment.java @@ -12,13 +12,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentVerifyCaseBinding; import com.casic.dcms.model.VerifiedCaseModel; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.verify.VerifiedDetailActivity; 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.kit.ContextKit; @@ -61,14 +61,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifyFragment.java b/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifyFragment.java index 00039fc..d5a91fc 100644 --- a/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifyFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifyFragment.java @@ -12,13 +12,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentVerifyCaseBinding; import com.casic.dcms.model.VerifyCaseModel; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.verify.VerifyDetailActivity; 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.kit.ContextKit; @@ -61,14 +61,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java index b371a7c..ddddaf1 100644 --- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java +++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java @@ -594,8 +594,8 @@ /** * 路灯分页列表 */ - public static Observable getLightListResult(int limit, int offset) { - return api.getLightList(AuthenticationHelper.getToken(), limit, offset); + public static Observable getLightListResult(int offset) { + return api.getLightList(AuthenticationHelper.getToken(), LocaleConstant.PAGE_LIMIT, offset); } /** 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 82ecb71..77fed79 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java @@ -10,11 +10,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.ActivityCaseProcessBinding; import com.casic.dcms.model.CaseProcessBean; import com.casic.dcms.utils.ViewGroupHub; import com.casic.dcms.vm.CommonDataViewModel; -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.utils.Constant; diff --git a/app/src/main/java/com/casic/dcms/adapter/LightResultAdapter.java b/app/src/main/java/com/casic/dcms/adapter/LightResultAdapter.java deleted file mode 100644 index 405af6e..0000000 --- a/app/src/main/java/com/casic/dcms/adapter/LightResultAdapter.java +++ /dev/null @@ -1,107 +0,0 @@ -package com.casic.dcms.adapter; - -import android.annotation.SuppressLint; -import android.content.Context; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.ImageView; -import android.widget.TextView; - -import androidx.annotation.NonNull; -import androidx.recyclerview.widget.RecyclerView; - -import com.casic.dcms.R; -import com.casic.dcms.model.LightListBean; - -import java.util.List; - -public class LightResultAdapter extends RecyclerView.Adapter { - - private final List dataBeans; - private final LayoutInflater layoutInflater; - - public LightResultAdapter(Context context, List beans) { - this.dataBeans = beans; - this.layoutInflater = LayoutInflater.from(context); - } - - @NonNull - @Override - public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - return new ItemViewHolder(layoutInflater.inflate(R.layout.item_light_recycleview, parent, false)); - } - - @Override - public void onBindViewHolder(@NonNull LightResultAdapter.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); - } - }); - } - if (switchClickListener != null) { - holder.lightSwitch.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - switchClickListener.onClick(position); - } - }); - } - } - - @Override - public int getItemCount() { - return dataBeans.size(); - } - - private OnGridItemClickListener clickListener; - - public interface OnGridItemClickListener { - void onClick(int position); - } - - public void setOnGridItemClickListener(OnGridItemClickListener onGridItemClickListener) { - this.clickListener = onGridItemClickListener; - } - - private OnSwitchClickListener switchClickListener; - - public interface OnSwitchClickListener { - void onClick(int position); - } - - public void setOnSwitchClickListener(OnSwitchClickListener switchClickListener) { - this.switchClickListener = switchClickListener; - } - - static class ItemViewHolder extends RecyclerView.ViewHolder { - - private final TextView lightNameView; - private final TextView lightStatusView; - private final ImageView lightSwitch; - - ItemViewHolder(@NonNull View itemView) { - super(itemView); - lightNameView = itemView.findViewById(R.id.lightNameView); - lightStatusView = itemView.findViewById(R.id.lightStatusView); - lightSwitch = itemView.findViewById(R.id.lightSwitch); - } - - void bindView(LightListBean.DataBean.RowsBean dataBean) { - lightNameView.setText(dataBean.getLampName()); - String statusName = dataBean.getStatusName(); - lightStatusView.setText(statusName); - if (statusName.equals("灭灯")) { - lightSwitch.setBackgroundResource(R.drawable.ic_switch_off); - } else if (statusName.equals("报警")) { - lightSwitch.setBackgroundResource(R.drawable.ic_switch_warning); - } else { - lightSwitch.setBackgroundResource(R.drawable.ic_switch_on); - } - } - } -} diff --git a/app/src/main/java/com/casic/dcms/adapter/NormalRecyclerAdapter.java b/app/src/main/java/com/casic/dcms/adapter/NormalRecyclerAdapter.java new file mode 100644 index 0000000..c80e2d5 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/adapter/NormalRecyclerAdapter.java @@ -0,0 +1,134 @@ +package com.casic.dcms.adapter; + +import android.annotation.SuppressLint; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import androidx.annotation.LayoutRes; +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.DiffUtil; +import androidx.recyclerview.widget.RecyclerView; + +import com.pengxh.androidx.lite.adapter.ViewHolder; + +import java.util.List; + +/** + * RecyclerView普通列表适配器 + */ +public abstract class NormalRecyclerAdapter extends RecyclerView.Adapter { + + private static final String TAG = "NormalRecyclerAdapter"; + private final int xmlResource; + private final List dataRows; + + public NormalRecyclerAdapter(@LayoutRes int xmlResource, List dataRows) { + this.xmlResource = xmlResource; + this.dataRows = dataRows; + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + @NonNull + @Override + public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + return new ViewHolder(LayoutInflater.from(parent.getContext()).inflate(xmlResource, parent, false)); + } + + @Override + public void onBindViewHolder(@NonNull ViewHolder holder, @SuppressLint("RecyclerView") int position) { + convertView(holder, position, dataRows.get(position)); + + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (itemClickedListener == null) { + return; + } + itemClickedListener.onItemClicked(position, dataRows.get(position)); + } + }); + } + + public void refresh(List newRows) { + DiffUtil.Callback diffCallback = new DiffUtil.Callback() { + + @Override + public int getOldListSize() { + return dataRows.size(); + } + + @Override + public int getNewListSize() { + return newRows.size(); + } + + @Override + public boolean areItemsTheSame(int oldItemPosition, int newItemPosition) { + if (dataRows == null || newRows == null) { + return false; + } + + // 检查索引是否在有效范围内 + if (oldItemPosition < 0 || oldItemPosition >= dataRows.size() || + newItemPosition < 0 || newItemPosition >= newRows.size()) { + return false; + } + + // 获取元素并进行比较 + Object oldItem = dataRows.get(oldItemPosition); + Object newItem = newRows.get(newItemPosition); + + // 处理空指针情况 + if (oldItem == null && newItem == null) { + return true; + } + if (oldItem == null || newItem == null) { + return false; + } + + return oldItem.equals(newItem); + } + + @Override + public boolean areContentsTheSame(int oldItemPosition, int newItemPosition) { + return dataRows.get(oldItemPosition) == newRows.get(newItemPosition); + } + }; + + DiffUtil.DiffResult diffResult = DiffUtil.calculateDiff(diffCallback); + + dataRows.clear(); + dataRows.addAll(newRows); + + diffResult.dispatchUpdatesTo(this); + } + + /** + * 加载更多 + */ + public void loadMore(List newRows) { + if (newRows.isEmpty()) { + return; + } + int startPosition = this.dataRows.size(); + this.dataRows.addAll(newRows); + notifyItemRangeInserted(startPosition, newRows.size()); + } + + public abstract void convertView(ViewHolder viewHolder, int position, T item); + + private OnItemClickedListener itemClickedListener; + + public interface OnItemClickedListener { + void onItemClicked(int position, T t); + } + + public void setOnItemClickedListener(OnItemClickedListener listener) { + itemClickedListener = listener; + } +} diff --git a/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java b/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java index 1deb066..80f7b98 100644 --- a/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java @@ -58,13 +58,13 @@ } @SuppressLint("NotifyDataSetChanged") - public void setRefreshData(List dataRows) { + public void refresh(List dataRows) { this.dataRows.clear(); this.dataRows.addAll(dataRows); notifyDataSetChanged(); } - public void setLoadMoreData(List dataRows) { + public void loadMore(List dataRows) { this.dataRows.addAll(dataRows); notifyItemRangeInserted(this.dataRows.size(), dataRows.size()); } diff --git a/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java index 3535c40..bd5e484 100644 --- a/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java @@ -10,6 +10,7 @@ import com.bumptech.glide.Glide; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentHomeBinding; import com.casic.dcms.model.HomePageBean; import com.casic.dcms.model.UserBean; @@ -36,7 +37,6 @@ import com.casic.dcms.view.verify.VerifyCaseActivity; import com.casic.dcms.vm.HomePageViewModel; import com.casic.dcms.vm.UserViewModel; -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.kit.LongKit; diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java index 0d2926f..a9cc331 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java @@ -5,22 +5,26 @@ import android.os.Handler; import android.os.Message; import android.text.TextUtils; +import android.view.View; import androidx.annotation.NonNull; import androidx.annotation.Nullable; +import androidx.cardview.widget.CardView; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; -import com.casic.dcms.adapter.LightResultAdapter; +import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentLightListBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightDetailBean; import com.casic.dcms.model.LightListBean; -import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.vm.LightViewModel; import com.casic.dcms.widgets.LightDetailDialog; +import com.pengxh.androidx.lite.adapter.ViewHolder; import com.pengxh.androidx.lite.base.AndroidxBaseFragment; import com.pengxh.androidx.lite.divider.RecyclerViewItemDivider; +import com.pengxh.androidx.lite.kit.IntKit; import com.pengxh.androidx.lite.kit.StringKit; import com.pengxh.androidx.lite.utils.LoadState; import com.pengxh.androidx.lite.utils.LoadingDialog; @@ -37,7 +41,7 @@ private static final String TAG = "LightOnListFragment"; private final WeakReferenceHandler weakReferenceHandler = new WeakReferenceHandler(this); private LightViewModel lightViewModel; - private LightResultAdapter adapter; + private NormalRecyclerAdapter adapter; private List dataBeans = new ArrayList<>(); private int pageIndex = 1; private boolean isRefresh, isLoadMore = false; @@ -50,7 +54,7 @@ @Override protected void initOnCreate(@Nullable Bundle savedInstanceState) { lightViewModel = new ViewModelProvider(this).get(LightViewModel.class); - getLightList(); + lightViewModel.getLightList(pageIndex); } @Override @@ -67,10 +71,6 @@ }); } - private void getLightList() { - lightViewModel.getLightList(LocaleConstant.PAGE_LIMIT, pageIndex); - } - @Override protected void initEvent() { getBinding().refreshLayout.setOnRefreshListener(new OnRefreshListener() { @@ -79,7 +79,7 @@ isRefresh = true; //刷新之后页码重置 pageIndex = 1; - getLightList(); + lightViewModel.getLightList(pageIndex); } }); getBinding().refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() { @@ -87,7 +87,7 @@ public void onLoadMore(@NonNull final RefreshLayout refreshLayout) { isLoadMore = true; pageIndex++; - getLightList(); + lightViewModel.getLightList(pageIndex); } }); @@ -97,21 +97,20 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题 - dataBeans = dataRows; + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - dataBeans.addAll(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { dataBeans = dataRows; + weakReferenceHandler.sendEmptyMessage(20210623); } - weakReferenceHandler.sendEmptyMessage(20210623); } } }); @@ -138,54 +137,67 @@ @Override public boolean handleMessage(@NonNull Message msg) { if (msg.what == 20210623) { - if (isRefresh || isLoadMore) { - adapter.notifyItemRangeInserted(adapter.getItemCount(), LocaleConstant.PAGE_LIMIT); + //首次加载数据 + if (dataBeans.size() == 0) { + getBinding().emptyView.show("没有路灯数据", null); } else { - //首次加载数据 - if (dataBeans.size() == 0) { - getBinding().emptyView.show("没有路灯数据", null); - } else { - getBinding().emptyView.hide(); - adapter = new LightResultAdapter(requireContext(), dataBeans); - getBinding().recyclerView.addItemDecoration(new RecyclerViewItemDivider(1, Color.LTGRAY)); - getBinding().recyclerView.setAdapter(adapter); - adapter.setOnGridItemClickListener(new LightResultAdapter.OnGridItemClickListener() { - @Override - public void onClick(int position) { - String lampId = dataBeans.get(position).getLampId(); - if (TextUtils.isEmpty(lampId)) { - StringKit.show(requireContext(), "错误,路灯编号为空"); - return; - } + getBinding().emptyView.hide(); + adapter = new NormalRecyclerAdapter(R.layout.item_light_recycleview, dataBeans) { + @Override + public void convertView(ViewHolder viewHolder, int position, LightListBean.DataBean.RowsBean item) { + String statusName = item.getStatusName(); + viewHolder.setText(R.id.lightNameView, item.getLampName()) + .setText(R.id.lightStatusView, "已" + statusName); - lightViewModel.getLightDetail(requireContext(), lampId); + CardView statueTagView = viewHolder.getView(R.id.statueTagView); + if (statusName.equals("灭灯")) { + viewHolder.setImageResource(R.id.lightSwitch, R.drawable.ic_switch_off); + statueTagView.setCardBackgroundColor(IntKit.convertColor(requireContext(), R.color.darkGray)); + } else if (statusName.equals("报警")) { + viewHolder.setImageResource(R.id.lightSwitch, R.drawable.ic_switch_warning); + statueTagView.setCardBackgroundColor(IntKit.convertColor(requireContext(), R.color.warnColor)); + } else { + viewHolder.setImageResource(R.id.lightSwitch, R.drawable.ic_switch_on); + statueTagView.setCardBackgroundColor(IntKit.convertColor(requireContext(), R.color.onLineColor)); } - }); - adapter.setOnSwitchClickListener(new LightResultAdapter.OnSwitchClickListener() { - @Override - public void onClick(int position) { - LightListBean.DataBean.RowsBean rowsBean = dataBeans.get(position); + viewHolder.setOnClickListener(R.id.lightSwitch, new View.OnClickListener() { + @Override + public void onClick(View v) { + List lampIds = new ArrayList<>(); + lampIds.add(Long.parseLong(item.getLampId())); - List lampIds = new ArrayList<>(); - lampIds.add(Long.parseLong(rowsBean.getLampId())); - - String statusName = rowsBean.getStatusName(); - String controlType; - if (statusName.equals("离线")) { - controlType = "1"; - } else { - controlType = "0"; + String statusName = item.getStatusName(); + String controlType; + if (statusName.equals("灭灯")) { + controlType = "1"; + } else { + controlType = "0"; + } + lightViewModel.controlLight(requireContext(), lampIds, controlType); } - lightViewModel.controlLight(requireContext(), lampIds, controlType); + }); + } + }; + getBinding().recyclerView.addItemDecoration(new RecyclerViewItemDivider(1, Color.LTGRAY)); + getBinding().recyclerView.setAdapter(adapter); + adapter.setOnItemClickedListener(new NormalRecyclerAdapter.OnItemClickedListener() { + @Override + public void onItemClicked(int position, LightListBean.DataBean.RowsBean rowsBean) { + String lampId = rowsBean.getLampId(); + if (TextUtils.isEmpty(lampId)) { + StringKit.show(requireContext(), "错误,路灯编号为空"); + return; } - }); - } + + lightViewModel.getLightDetail(requireContext(), lampId); + } + }); } } else if (msg.what == 20210624) { isRefresh = true; pageIndex = 1; - lightViewModel.getLightList(LocaleConstant.PAGE_LIMIT, pageIndex); + lightViewModel.getLightList(pageIndex); } return true; } diff --git a/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java index 64791dd..8f872db 100644 --- a/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java @@ -6,12 +6,12 @@ import androidx.annotation.Nullable; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.bean.NoticeLocaleBean; import com.casic.dcms.databinding.FragmentNoticeBinding; import com.casic.dcms.utils.DataBaseManager; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.CaseDetailActivity; -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.kit.ContextKit; diff --git a/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java b/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java index 5980aaf..93ab96c 100644 --- a/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java @@ -87,14 +87,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/business/PackageTodoFragment.java b/app/src/main/java/com/casic/dcms/fragment/business/PackageTodoFragment.java index 9f28bbe..1fefd3f 100644 --- a/app/src/main/java/com/casic/dcms/fragment/business/PackageTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/business/PackageTodoFragment.java @@ -88,14 +88,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { 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 816fb8f..62db8ed 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 @@ -12,13 +12,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentCheckCaseBinding; import com.casic.dcms.model.CaseCheckModel; import com.casic.dcms.utils.LocaleConstant; 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.kit.ContextKit; @@ -61,14 +61,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { 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 e472cd6..27f60a2 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 @@ -12,13 +12,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentCheckCaseBinding; import com.casic.dcms.model.CaseCheckModel; import com.casic.dcms.utils.LocaleConstant; 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.kit.ContextKit; @@ -62,14 +62,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAdjustFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAdjustFragment.java index 23a4f8e..fdee789 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAdjustFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAdjustFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.AdjustCaseModel; import com.casic.dcms.view.department.DeptAdjustDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -57,14 +57,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAuthorizeFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAuthorizeFragment.java index f5ba0b0..b5d807e 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAuthorizeFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAuthorizeFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.AuthorizeCaseModel; import com.casic.dcms.view.department.DeptAuthorizeDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -57,14 +57,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseDelayedFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseDelayedFragment.java index e16d47d..52c88fd 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseDelayedFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseDelayedFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.DelayedCaseModel; import com.casic.dcms.view.CaseDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -57,14 +57,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseHandledFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseHandledFragment.java index 0acf747..2ce5297 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseHandledFragment.java @@ -12,12 +12,12 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.HandledCaseModel; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.CaseDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -59,14 +59,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCasePostponeFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCasePostponeFragment.java index b2a3047..d8b3396 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCasePostponeFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCasePostponeFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.PostCaseModel; import com.casic.dcms.view.CaseDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -57,14 +57,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseProcessFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseProcessFragment.java index ef78a7d..2c5f4d7 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseProcessFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseProcessFragment.java @@ -12,12 +12,12 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.HandleCaseModel; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.view.department.DeptTodoDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.StringKit; @@ -58,14 +58,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseTodoFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseTodoFragment.java index 2f8cb8a..febcb54 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseTodoFragment.java @@ -13,13 +13,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.TodoCaseModel; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.department.DeptTodoDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.StringKit; @@ -60,14 +60,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/handle/CaseHandledFragment.java b/app/src/main/java/com/casic/dcms/fragment/handle/CaseHandledFragment.java index d61fff7..d8d825f 100644 --- a/app/src/main/java/com/casic/dcms/fragment/handle/CaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/handle/CaseHandledFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentHandleCaseBinding; import com.casic.dcms.model.CaseHandledBean; import com.casic.dcms.view.handle.CaseHandledDetailActivity; 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.kit.ContextKit; @@ -58,14 +58,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/handle/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/fragment/handle/CaseTodoFragment.java index 2196251..26d0942 100644 --- a/app/src/main/java/com/casic/dcms/fragment/handle/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/handle/CaseTodoFragment.java @@ -13,12 +13,12 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentHandleCaseBinding; import com.casic.dcms.model.CaseHandleBean; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.handle.CaseHandleDetailActivity; 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.kit.StringKit; @@ -60,14 +60,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/overtime/CaseHandledFragment.java b/app/src/main/java/com/casic/dcms/fragment/overtime/CaseHandledFragment.java index 5cb44da..3424ebd 100644 --- a/app/src/main/java/com/casic/dcms/fragment/overtime/CaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/overtime/CaseHandledFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentOvertimeCaseBinding; import com.casic.dcms.model.OvertimeCaseBean; import com.casic.dcms.view.CaseTodoHandledDetailActivity; 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.kit.ContextKit; @@ -58,14 +58,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/overtime/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/fragment/overtime/CaseTodoFragment.java index a98bde5..1c2c20d 100644 --- a/app/src/main/java/com/casic/dcms/fragment/overtime/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/overtime/CaseTodoFragment.java @@ -12,11 +12,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentOvertimeCaseBinding; import com.casic.dcms.model.OvertimeCaseBean; import com.casic.dcms.view.CaseTodoDetailActivity; 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.kit.StringKit; @@ -58,14 +58,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/urgent/CaseHandledFragment.java b/app/src/main/java/com/casic/dcms/fragment/urgent/CaseHandledFragment.java index b55651f..2cc0a02 100644 --- a/app/src/main/java/com/casic/dcms/fragment/urgent/CaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/urgent/CaseHandledFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentUrgentCaseBinding; import com.casic.dcms.model.UrgentCaseBean; import com.casic.dcms.view.CaseTodoHandledDetailActivity; 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.kit.ContextKit; @@ -58,14 +58,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/urgent/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/fragment/urgent/CaseTodoFragment.java index 854d6f8..54b773e 100644 --- a/app/src/main/java/com/casic/dcms/fragment/urgent/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/urgent/CaseTodoFragment.java @@ -12,11 +12,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentUrgentCaseBinding; import com.casic.dcms.model.UrgentCaseBean; import com.casic.dcms.view.CaseTodoDetailActivity; 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.kit.StringKit; @@ -58,14 +58,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifiedFragment.java b/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifiedFragment.java index b5a130e..426878b 100644 --- a/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifiedFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifiedFragment.java @@ -12,13 +12,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentVerifyCaseBinding; import com.casic.dcms.model.VerifiedCaseModel; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.verify.VerifiedDetailActivity; 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.kit.ContextKit; @@ -61,14 +61,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifyFragment.java b/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifyFragment.java index 00039fc..d5a91fc 100644 --- a/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifyFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifyFragment.java @@ -12,13 +12,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentVerifyCaseBinding; import com.casic.dcms.model.VerifyCaseModel; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.verify.VerifyDetailActivity; 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.kit.ContextKit; @@ -61,14 +61,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java index b371a7c..ddddaf1 100644 --- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java +++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java @@ -594,8 +594,8 @@ /** * 路灯分页列表 */ - public static Observable getLightListResult(int limit, int offset) { - return api.getLightList(AuthenticationHelper.getToken(), limit, offset); + public static Observable getLightListResult(int offset) { + return api.getLightList(AuthenticationHelper.getToken(), LocaleConstant.PAGE_LIMIT, offset); } /** 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 82ecb71..77fed79 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java @@ -10,11 +10,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.ActivityCaseProcessBinding; import com.casic.dcms.model.CaseProcessBean; import com.casic.dcms.utils.ViewGroupHub; import com.casic.dcms.vm.CommonDataViewModel; -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.utils.Constant; diff --git a/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java b/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java index 1154918..4af8a96 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java @@ -10,11 +10,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.ActivityCaseListBinding; import com.casic.dcms.model.CaseSearchResultBean; import com.casic.dcms.utils.ViewGroupHub; 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.AndroidxBaseActivity; import com.pengxh.androidx.lite.kit.ContextKit; @@ -104,14 +104,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); binding.refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(context, "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); binding.refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/adapter/LightResultAdapter.java b/app/src/main/java/com/casic/dcms/adapter/LightResultAdapter.java deleted file mode 100644 index 405af6e..0000000 --- a/app/src/main/java/com/casic/dcms/adapter/LightResultAdapter.java +++ /dev/null @@ -1,107 +0,0 @@ -package com.casic.dcms.adapter; - -import android.annotation.SuppressLint; -import android.content.Context; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.ImageView; -import android.widget.TextView; - -import androidx.annotation.NonNull; -import androidx.recyclerview.widget.RecyclerView; - -import com.casic.dcms.R; -import com.casic.dcms.model.LightListBean; - -import java.util.List; - -public class LightResultAdapter extends RecyclerView.Adapter { - - private final List dataBeans; - private final LayoutInflater layoutInflater; - - public LightResultAdapter(Context context, List beans) { - this.dataBeans = beans; - this.layoutInflater = LayoutInflater.from(context); - } - - @NonNull - @Override - public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - return new ItemViewHolder(layoutInflater.inflate(R.layout.item_light_recycleview, parent, false)); - } - - @Override - public void onBindViewHolder(@NonNull LightResultAdapter.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); - } - }); - } - if (switchClickListener != null) { - holder.lightSwitch.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - switchClickListener.onClick(position); - } - }); - } - } - - @Override - public int getItemCount() { - return dataBeans.size(); - } - - private OnGridItemClickListener clickListener; - - public interface OnGridItemClickListener { - void onClick(int position); - } - - public void setOnGridItemClickListener(OnGridItemClickListener onGridItemClickListener) { - this.clickListener = onGridItemClickListener; - } - - private OnSwitchClickListener switchClickListener; - - public interface OnSwitchClickListener { - void onClick(int position); - } - - public void setOnSwitchClickListener(OnSwitchClickListener switchClickListener) { - this.switchClickListener = switchClickListener; - } - - static class ItemViewHolder extends RecyclerView.ViewHolder { - - private final TextView lightNameView; - private final TextView lightStatusView; - private final ImageView lightSwitch; - - ItemViewHolder(@NonNull View itemView) { - super(itemView); - lightNameView = itemView.findViewById(R.id.lightNameView); - lightStatusView = itemView.findViewById(R.id.lightStatusView); - lightSwitch = itemView.findViewById(R.id.lightSwitch); - } - - void bindView(LightListBean.DataBean.RowsBean dataBean) { - lightNameView.setText(dataBean.getLampName()); - String statusName = dataBean.getStatusName(); - lightStatusView.setText(statusName); - if (statusName.equals("灭灯")) { - lightSwitch.setBackgroundResource(R.drawable.ic_switch_off); - } else if (statusName.equals("报警")) { - lightSwitch.setBackgroundResource(R.drawable.ic_switch_warning); - } else { - lightSwitch.setBackgroundResource(R.drawable.ic_switch_on); - } - } - } -} diff --git a/app/src/main/java/com/casic/dcms/adapter/NormalRecyclerAdapter.java b/app/src/main/java/com/casic/dcms/adapter/NormalRecyclerAdapter.java new file mode 100644 index 0000000..c80e2d5 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/adapter/NormalRecyclerAdapter.java @@ -0,0 +1,134 @@ +package com.casic.dcms.adapter; + +import android.annotation.SuppressLint; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import androidx.annotation.LayoutRes; +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.DiffUtil; +import androidx.recyclerview.widget.RecyclerView; + +import com.pengxh.androidx.lite.adapter.ViewHolder; + +import java.util.List; + +/** + * RecyclerView普通列表适配器 + */ +public abstract class NormalRecyclerAdapter extends RecyclerView.Adapter { + + private static final String TAG = "NormalRecyclerAdapter"; + private final int xmlResource; + private final List dataRows; + + public NormalRecyclerAdapter(@LayoutRes int xmlResource, List dataRows) { + this.xmlResource = xmlResource; + this.dataRows = dataRows; + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + @NonNull + @Override + public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + return new ViewHolder(LayoutInflater.from(parent.getContext()).inflate(xmlResource, parent, false)); + } + + @Override + public void onBindViewHolder(@NonNull ViewHolder holder, @SuppressLint("RecyclerView") int position) { + convertView(holder, position, dataRows.get(position)); + + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (itemClickedListener == null) { + return; + } + itemClickedListener.onItemClicked(position, dataRows.get(position)); + } + }); + } + + public void refresh(List newRows) { + DiffUtil.Callback diffCallback = new DiffUtil.Callback() { + + @Override + public int getOldListSize() { + return dataRows.size(); + } + + @Override + public int getNewListSize() { + return newRows.size(); + } + + @Override + public boolean areItemsTheSame(int oldItemPosition, int newItemPosition) { + if (dataRows == null || newRows == null) { + return false; + } + + // 检查索引是否在有效范围内 + if (oldItemPosition < 0 || oldItemPosition >= dataRows.size() || + newItemPosition < 0 || newItemPosition >= newRows.size()) { + return false; + } + + // 获取元素并进行比较 + Object oldItem = dataRows.get(oldItemPosition); + Object newItem = newRows.get(newItemPosition); + + // 处理空指针情况 + if (oldItem == null && newItem == null) { + return true; + } + if (oldItem == null || newItem == null) { + return false; + } + + return oldItem.equals(newItem); + } + + @Override + public boolean areContentsTheSame(int oldItemPosition, int newItemPosition) { + return dataRows.get(oldItemPosition) == newRows.get(newItemPosition); + } + }; + + DiffUtil.DiffResult diffResult = DiffUtil.calculateDiff(diffCallback); + + dataRows.clear(); + dataRows.addAll(newRows); + + diffResult.dispatchUpdatesTo(this); + } + + /** + * 加载更多 + */ + public void loadMore(List newRows) { + if (newRows.isEmpty()) { + return; + } + int startPosition = this.dataRows.size(); + this.dataRows.addAll(newRows); + notifyItemRangeInserted(startPosition, newRows.size()); + } + + public abstract void convertView(ViewHolder viewHolder, int position, T item); + + private OnItemClickedListener itemClickedListener; + + public interface OnItemClickedListener { + void onItemClicked(int position, T t); + } + + public void setOnItemClickedListener(OnItemClickedListener listener) { + itemClickedListener = listener; + } +} diff --git a/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java b/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java index 1deb066..80f7b98 100644 --- a/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java @@ -58,13 +58,13 @@ } @SuppressLint("NotifyDataSetChanged") - public void setRefreshData(List dataRows) { + public void refresh(List dataRows) { this.dataRows.clear(); this.dataRows.addAll(dataRows); notifyDataSetChanged(); } - public void setLoadMoreData(List dataRows) { + public void loadMore(List dataRows) { this.dataRows.addAll(dataRows); notifyItemRangeInserted(this.dataRows.size(), dataRows.size()); } diff --git a/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java index 3535c40..bd5e484 100644 --- a/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java @@ -10,6 +10,7 @@ import com.bumptech.glide.Glide; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentHomeBinding; import com.casic.dcms.model.HomePageBean; import com.casic.dcms.model.UserBean; @@ -36,7 +37,6 @@ import com.casic.dcms.view.verify.VerifyCaseActivity; import com.casic.dcms.vm.HomePageViewModel; import com.casic.dcms.vm.UserViewModel; -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.kit.LongKit; diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java index 0d2926f..a9cc331 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java @@ -5,22 +5,26 @@ import android.os.Handler; import android.os.Message; import android.text.TextUtils; +import android.view.View; import androidx.annotation.NonNull; import androidx.annotation.Nullable; +import androidx.cardview.widget.CardView; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; -import com.casic.dcms.adapter.LightResultAdapter; +import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentLightListBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightDetailBean; import com.casic.dcms.model.LightListBean; -import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.vm.LightViewModel; import com.casic.dcms.widgets.LightDetailDialog; +import com.pengxh.androidx.lite.adapter.ViewHolder; import com.pengxh.androidx.lite.base.AndroidxBaseFragment; import com.pengxh.androidx.lite.divider.RecyclerViewItemDivider; +import com.pengxh.androidx.lite.kit.IntKit; import com.pengxh.androidx.lite.kit.StringKit; import com.pengxh.androidx.lite.utils.LoadState; import com.pengxh.androidx.lite.utils.LoadingDialog; @@ -37,7 +41,7 @@ private static final String TAG = "LightOnListFragment"; private final WeakReferenceHandler weakReferenceHandler = new WeakReferenceHandler(this); private LightViewModel lightViewModel; - private LightResultAdapter adapter; + private NormalRecyclerAdapter adapter; private List dataBeans = new ArrayList<>(); private int pageIndex = 1; private boolean isRefresh, isLoadMore = false; @@ -50,7 +54,7 @@ @Override protected void initOnCreate(@Nullable Bundle savedInstanceState) { lightViewModel = new ViewModelProvider(this).get(LightViewModel.class); - getLightList(); + lightViewModel.getLightList(pageIndex); } @Override @@ -67,10 +71,6 @@ }); } - private void getLightList() { - lightViewModel.getLightList(LocaleConstant.PAGE_LIMIT, pageIndex); - } - @Override protected void initEvent() { getBinding().refreshLayout.setOnRefreshListener(new OnRefreshListener() { @@ -79,7 +79,7 @@ isRefresh = true; //刷新之后页码重置 pageIndex = 1; - getLightList(); + lightViewModel.getLightList(pageIndex); } }); getBinding().refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() { @@ -87,7 +87,7 @@ public void onLoadMore(@NonNull final RefreshLayout refreshLayout) { isLoadMore = true; pageIndex++; - getLightList(); + lightViewModel.getLightList(pageIndex); } }); @@ -97,21 +97,20 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题 - dataBeans = dataRows; + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - dataBeans.addAll(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { dataBeans = dataRows; + weakReferenceHandler.sendEmptyMessage(20210623); } - weakReferenceHandler.sendEmptyMessage(20210623); } } }); @@ -138,54 +137,67 @@ @Override public boolean handleMessage(@NonNull Message msg) { if (msg.what == 20210623) { - if (isRefresh || isLoadMore) { - adapter.notifyItemRangeInserted(adapter.getItemCount(), LocaleConstant.PAGE_LIMIT); + //首次加载数据 + if (dataBeans.size() == 0) { + getBinding().emptyView.show("没有路灯数据", null); } else { - //首次加载数据 - if (dataBeans.size() == 0) { - getBinding().emptyView.show("没有路灯数据", null); - } else { - getBinding().emptyView.hide(); - adapter = new LightResultAdapter(requireContext(), dataBeans); - getBinding().recyclerView.addItemDecoration(new RecyclerViewItemDivider(1, Color.LTGRAY)); - getBinding().recyclerView.setAdapter(adapter); - adapter.setOnGridItemClickListener(new LightResultAdapter.OnGridItemClickListener() { - @Override - public void onClick(int position) { - String lampId = dataBeans.get(position).getLampId(); - if (TextUtils.isEmpty(lampId)) { - StringKit.show(requireContext(), "错误,路灯编号为空"); - return; - } + getBinding().emptyView.hide(); + adapter = new NormalRecyclerAdapter(R.layout.item_light_recycleview, dataBeans) { + @Override + public void convertView(ViewHolder viewHolder, int position, LightListBean.DataBean.RowsBean item) { + String statusName = item.getStatusName(); + viewHolder.setText(R.id.lightNameView, item.getLampName()) + .setText(R.id.lightStatusView, "已" + statusName); - lightViewModel.getLightDetail(requireContext(), lampId); + CardView statueTagView = viewHolder.getView(R.id.statueTagView); + if (statusName.equals("灭灯")) { + viewHolder.setImageResource(R.id.lightSwitch, R.drawable.ic_switch_off); + statueTagView.setCardBackgroundColor(IntKit.convertColor(requireContext(), R.color.darkGray)); + } else if (statusName.equals("报警")) { + viewHolder.setImageResource(R.id.lightSwitch, R.drawable.ic_switch_warning); + statueTagView.setCardBackgroundColor(IntKit.convertColor(requireContext(), R.color.warnColor)); + } else { + viewHolder.setImageResource(R.id.lightSwitch, R.drawable.ic_switch_on); + statueTagView.setCardBackgroundColor(IntKit.convertColor(requireContext(), R.color.onLineColor)); } - }); - adapter.setOnSwitchClickListener(new LightResultAdapter.OnSwitchClickListener() { - @Override - public void onClick(int position) { - LightListBean.DataBean.RowsBean rowsBean = dataBeans.get(position); + viewHolder.setOnClickListener(R.id.lightSwitch, new View.OnClickListener() { + @Override + public void onClick(View v) { + List lampIds = new ArrayList<>(); + lampIds.add(Long.parseLong(item.getLampId())); - List lampIds = new ArrayList<>(); - lampIds.add(Long.parseLong(rowsBean.getLampId())); - - String statusName = rowsBean.getStatusName(); - String controlType; - if (statusName.equals("离线")) { - controlType = "1"; - } else { - controlType = "0"; + String statusName = item.getStatusName(); + String controlType; + if (statusName.equals("灭灯")) { + controlType = "1"; + } else { + controlType = "0"; + } + lightViewModel.controlLight(requireContext(), lampIds, controlType); } - lightViewModel.controlLight(requireContext(), lampIds, controlType); + }); + } + }; + getBinding().recyclerView.addItemDecoration(new RecyclerViewItemDivider(1, Color.LTGRAY)); + getBinding().recyclerView.setAdapter(adapter); + adapter.setOnItemClickedListener(new NormalRecyclerAdapter.OnItemClickedListener() { + @Override + public void onItemClicked(int position, LightListBean.DataBean.RowsBean rowsBean) { + String lampId = rowsBean.getLampId(); + if (TextUtils.isEmpty(lampId)) { + StringKit.show(requireContext(), "错误,路灯编号为空"); + return; } - }); - } + + lightViewModel.getLightDetail(requireContext(), lampId); + } + }); } } else if (msg.what == 20210624) { isRefresh = true; pageIndex = 1; - lightViewModel.getLightList(LocaleConstant.PAGE_LIMIT, pageIndex); + lightViewModel.getLightList(pageIndex); } return true; } diff --git a/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java index 64791dd..8f872db 100644 --- a/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java @@ -6,12 +6,12 @@ import androidx.annotation.Nullable; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.bean.NoticeLocaleBean; import com.casic.dcms.databinding.FragmentNoticeBinding; import com.casic.dcms.utils.DataBaseManager; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.CaseDetailActivity; -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.kit.ContextKit; diff --git a/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java b/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java index 5980aaf..93ab96c 100644 --- a/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java @@ -87,14 +87,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/business/PackageTodoFragment.java b/app/src/main/java/com/casic/dcms/fragment/business/PackageTodoFragment.java index 9f28bbe..1fefd3f 100644 --- a/app/src/main/java/com/casic/dcms/fragment/business/PackageTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/business/PackageTodoFragment.java @@ -88,14 +88,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { 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 816fb8f..62db8ed 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 @@ -12,13 +12,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentCheckCaseBinding; import com.casic.dcms.model.CaseCheckModel; import com.casic.dcms.utils.LocaleConstant; 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.kit.ContextKit; @@ -61,14 +61,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { 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 e472cd6..27f60a2 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 @@ -12,13 +12,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentCheckCaseBinding; import com.casic.dcms.model.CaseCheckModel; import com.casic.dcms.utils.LocaleConstant; 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.kit.ContextKit; @@ -62,14 +62,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAdjustFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAdjustFragment.java index 23a4f8e..fdee789 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAdjustFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAdjustFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.AdjustCaseModel; import com.casic.dcms.view.department.DeptAdjustDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -57,14 +57,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAuthorizeFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAuthorizeFragment.java index f5ba0b0..b5d807e 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAuthorizeFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAuthorizeFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.AuthorizeCaseModel; import com.casic.dcms.view.department.DeptAuthorizeDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -57,14 +57,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseDelayedFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseDelayedFragment.java index e16d47d..52c88fd 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseDelayedFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseDelayedFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.DelayedCaseModel; import com.casic.dcms.view.CaseDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -57,14 +57,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseHandledFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseHandledFragment.java index 0acf747..2ce5297 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseHandledFragment.java @@ -12,12 +12,12 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.HandledCaseModel; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.CaseDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -59,14 +59,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCasePostponeFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCasePostponeFragment.java index b2a3047..d8b3396 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCasePostponeFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCasePostponeFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.PostCaseModel; import com.casic.dcms.view.CaseDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -57,14 +57,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseProcessFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseProcessFragment.java index ef78a7d..2c5f4d7 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseProcessFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseProcessFragment.java @@ -12,12 +12,12 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.HandleCaseModel; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.view.department.DeptTodoDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.StringKit; @@ -58,14 +58,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseTodoFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseTodoFragment.java index 2f8cb8a..febcb54 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseTodoFragment.java @@ -13,13 +13,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.TodoCaseModel; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.department.DeptTodoDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.StringKit; @@ -60,14 +60,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/handle/CaseHandledFragment.java b/app/src/main/java/com/casic/dcms/fragment/handle/CaseHandledFragment.java index d61fff7..d8d825f 100644 --- a/app/src/main/java/com/casic/dcms/fragment/handle/CaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/handle/CaseHandledFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentHandleCaseBinding; import com.casic.dcms.model.CaseHandledBean; import com.casic.dcms.view.handle.CaseHandledDetailActivity; 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.kit.ContextKit; @@ -58,14 +58,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/handle/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/fragment/handle/CaseTodoFragment.java index 2196251..26d0942 100644 --- a/app/src/main/java/com/casic/dcms/fragment/handle/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/handle/CaseTodoFragment.java @@ -13,12 +13,12 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentHandleCaseBinding; import com.casic.dcms.model.CaseHandleBean; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.handle.CaseHandleDetailActivity; 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.kit.StringKit; @@ -60,14 +60,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/overtime/CaseHandledFragment.java b/app/src/main/java/com/casic/dcms/fragment/overtime/CaseHandledFragment.java index 5cb44da..3424ebd 100644 --- a/app/src/main/java/com/casic/dcms/fragment/overtime/CaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/overtime/CaseHandledFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentOvertimeCaseBinding; import com.casic.dcms.model.OvertimeCaseBean; import com.casic.dcms.view.CaseTodoHandledDetailActivity; 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.kit.ContextKit; @@ -58,14 +58,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/overtime/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/fragment/overtime/CaseTodoFragment.java index a98bde5..1c2c20d 100644 --- a/app/src/main/java/com/casic/dcms/fragment/overtime/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/overtime/CaseTodoFragment.java @@ -12,11 +12,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentOvertimeCaseBinding; import com.casic.dcms.model.OvertimeCaseBean; import com.casic.dcms.view.CaseTodoDetailActivity; 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.kit.StringKit; @@ -58,14 +58,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/urgent/CaseHandledFragment.java b/app/src/main/java/com/casic/dcms/fragment/urgent/CaseHandledFragment.java index b55651f..2cc0a02 100644 --- a/app/src/main/java/com/casic/dcms/fragment/urgent/CaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/urgent/CaseHandledFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentUrgentCaseBinding; import com.casic.dcms.model.UrgentCaseBean; import com.casic.dcms.view.CaseTodoHandledDetailActivity; 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.kit.ContextKit; @@ -58,14 +58,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/urgent/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/fragment/urgent/CaseTodoFragment.java index 854d6f8..54b773e 100644 --- a/app/src/main/java/com/casic/dcms/fragment/urgent/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/urgent/CaseTodoFragment.java @@ -12,11 +12,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentUrgentCaseBinding; import com.casic.dcms.model.UrgentCaseBean; import com.casic.dcms.view.CaseTodoDetailActivity; 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.kit.StringKit; @@ -58,14 +58,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifiedFragment.java b/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifiedFragment.java index b5a130e..426878b 100644 --- a/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifiedFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifiedFragment.java @@ -12,13 +12,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentVerifyCaseBinding; import com.casic.dcms.model.VerifiedCaseModel; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.verify.VerifiedDetailActivity; 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.kit.ContextKit; @@ -61,14 +61,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifyFragment.java b/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifyFragment.java index 00039fc..d5a91fc 100644 --- a/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifyFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifyFragment.java @@ -12,13 +12,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentVerifyCaseBinding; import com.casic.dcms.model.VerifyCaseModel; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.verify.VerifyDetailActivity; 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.kit.ContextKit; @@ -61,14 +61,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java index b371a7c..ddddaf1 100644 --- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java +++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java @@ -594,8 +594,8 @@ /** * 路灯分页列表 */ - public static Observable getLightListResult(int limit, int offset) { - return api.getLightList(AuthenticationHelper.getToken(), limit, offset); + public static Observable getLightListResult(int offset) { + return api.getLightList(AuthenticationHelper.getToken(), LocaleConstant.PAGE_LIMIT, offset); } /** 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 82ecb71..77fed79 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java @@ -10,11 +10,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.ActivityCaseProcessBinding; import com.casic.dcms.model.CaseProcessBean; import com.casic.dcms.utils.ViewGroupHub; import com.casic.dcms.vm.CommonDataViewModel; -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.utils.Constant; diff --git a/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java b/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java index 1154918..4af8a96 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java @@ -10,11 +10,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.ActivityCaseListBinding; import com.casic.dcms.model.CaseSearchResultBean; import com.casic.dcms.utils.ViewGroupHub; 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.AndroidxBaseActivity; import com.pengxh.androidx.lite.kit.ContextKit; @@ -104,14 +104,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); binding.refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(context, "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); binding.refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java b/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java index efbd88d..2b7b698 100644 --- a/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java +++ b/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java @@ -13,12 +13,12 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.ActivityMaintainRecordBinding; import com.casic.dcms.model.MaintainRecordBean; import com.casic.dcms.utils.ViewGroupHub; import com.casic.dcms.vm.BridgeViewModel; import com.casic.dcms.widgets.RangeDateActionSheet; -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.divider.RecyclerViewItemDivider; @@ -76,14 +76,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); binding.refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(context, "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); binding.refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/adapter/LightResultAdapter.java b/app/src/main/java/com/casic/dcms/adapter/LightResultAdapter.java deleted file mode 100644 index 405af6e..0000000 --- a/app/src/main/java/com/casic/dcms/adapter/LightResultAdapter.java +++ /dev/null @@ -1,107 +0,0 @@ -package com.casic.dcms.adapter; - -import android.annotation.SuppressLint; -import android.content.Context; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.ImageView; -import android.widget.TextView; - -import androidx.annotation.NonNull; -import androidx.recyclerview.widget.RecyclerView; - -import com.casic.dcms.R; -import com.casic.dcms.model.LightListBean; - -import java.util.List; - -public class LightResultAdapter extends RecyclerView.Adapter { - - private final List dataBeans; - private final LayoutInflater layoutInflater; - - public LightResultAdapter(Context context, List beans) { - this.dataBeans = beans; - this.layoutInflater = LayoutInflater.from(context); - } - - @NonNull - @Override - public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - return new ItemViewHolder(layoutInflater.inflate(R.layout.item_light_recycleview, parent, false)); - } - - @Override - public void onBindViewHolder(@NonNull LightResultAdapter.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); - } - }); - } - if (switchClickListener != null) { - holder.lightSwitch.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - switchClickListener.onClick(position); - } - }); - } - } - - @Override - public int getItemCount() { - return dataBeans.size(); - } - - private OnGridItemClickListener clickListener; - - public interface OnGridItemClickListener { - void onClick(int position); - } - - public void setOnGridItemClickListener(OnGridItemClickListener onGridItemClickListener) { - this.clickListener = onGridItemClickListener; - } - - private OnSwitchClickListener switchClickListener; - - public interface OnSwitchClickListener { - void onClick(int position); - } - - public void setOnSwitchClickListener(OnSwitchClickListener switchClickListener) { - this.switchClickListener = switchClickListener; - } - - static class ItemViewHolder extends RecyclerView.ViewHolder { - - private final TextView lightNameView; - private final TextView lightStatusView; - private final ImageView lightSwitch; - - ItemViewHolder(@NonNull View itemView) { - super(itemView); - lightNameView = itemView.findViewById(R.id.lightNameView); - lightStatusView = itemView.findViewById(R.id.lightStatusView); - lightSwitch = itemView.findViewById(R.id.lightSwitch); - } - - void bindView(LightListBean.DataBean.RowsBean dataBean) { - lightNameView.setText(dataBean.getLampName()); - String statusName = dataBean.getStatusName(); - lightStatusView.setText(statusName); - if (statusName.equals("灭灯")) { - lightSwitch.setBackgroundResource(R.drawable.ic_switch_off); - } else if (statusName.equals("报警")) { - lightSwitch.setBackgroundResource(R.drawable.ic_switch_warning); - } else { - lightSwitch.setBackgroundResource(R.drawable.ic_switch_on); - } - } - } -} diff --git a/app/src/main/java/com/casic/dcms/adapter/NormalRecyclerAdapter.java b/app/src/main/java/com/casic/dcms/adapter/NormalRecyclerAdapter.java new file mode 100644 index 0000000..c80e2d5 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/adapter/NormalRecyclerAdapter.java @@ -0,0 +1,134 @@ +package com.casic.dcms.adapter; + +import android.annotation.SuppressLint; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import androidx.annotation.LayoutRes; +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.DiffUtil; +import androidx.recyclerview.widget.RecyclerView; + +import com.pengxh.androidx.lite.adapter.ViewHolder; + +import java.util.List; + +/** + * RecyclerView普通列表适配器 + */ +public abstract class NormalRecyclerAdapter extends RecyclerView.Adapter { + + private static final String TAG = "NormalRecyclerAdapter"; + private final int xmlResource; + private final List dataRows; + + public NormalRecyclerAdapter(@LayoutRes int xmlResource, List dataRows) { + this.xmlResource = xmlResource; + this.dataRows = dataRows; + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + @NonNull + @Override + public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + return new ViewHolder(LayoutInflater.from(parent.getContext()).inflate(xmlResource, parent, false)); + } + + @Override + public void onBindViewHolder(@NonNull ViewHolder holder, @SuppressLint("RecyclerView") int position) { + convertView(holder, position, dataRows.get(position)); + + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (itemClickedListener == null) { + return; + } + itemClickedListener.onItemClicked(position, dataRows.get(position)); + } + }); + } + + public void refresh(List newRows) { + DiffUtil.Callback diffCallback = new DiffUtil.Callback() { + + @Override + public int getOldListSize() { + return dataRows.size(); + } + + @Override + public int getNewListSize() { + return newRows.size(); + } + + @Override + public boolean areItemsTheSame(int oldItemPosition, int newItemPosition) { + if (dataRows == null || newRows == null) { + return false; + } + + // 检查索引是否在有效范围内 + if (oldItemPosition < 0 || oldItemPosition >= dataRows.size() || + newItemPosition < 0 || newItemPosition >= newRows.size()) { + return false; + } + + // 获取元素并进行比较 + Object oldItem = dataRows.get(oldItemPosition); + Object newItem = newRows.get(newItemPosition); + + // 处理空指针情况 + if (oldItem == null && newItem == null) { + return true; + } + if (oldItem == null || newItem == null) { + return false; + } + + return oldItem.equals(newItem); + } + + @Override + public boolean areContentsTheSame(int oldItemPosition, int newItemPosition) { + return dataRows.get(oldItemPosition) == newRows.get(newItemPosition); + } + }; + + DiffUtil.DiffResult diffResult = DiffUtil.calculateDiff(diffCallback); + + dataRows.clear(); + dataRows.addAll(newRows); + + diffResult.dispatchUpdatesTo(this); + } + + /** + * 加载更多 + */ + public void loadMore(List newRows) { + if (newRows.isEmpty()) { + return; + } + int startPosition = this.dataRows.size(); + this.dataRows.addAll(newRows); + notifyItemRangeInserted(startPosition, newRows.size()); + } + + public abstract void convertView(ViewHolder viewHolder, int position, T item); + + private OnItemClickedListener itemClickedListener; + + public interface OnItemClickedListener { + void onItemClicked(int position, T t); + } + + public void setOnItemClickedListener(OnItemClickedListener listener) { + itemClickedListener = listener; + } +} diff --git a/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java b/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java index 1deb066..80f7b98 100644 --- a/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java @@ -58,13 +58,13 @@ } @SuppressLint("NotifyDataSetChanged") - public void setRefreshData(List dataRows) { + public void refresh(List dataRows) { this.dataRows.clear(); this.dataRows.addAll(dataRows); notifyDataSetChanged(); } - public void setLoadMoreData(List dataRows) { + public void loadMore(List dataRows) { this.dataRows.addAll(dataRows); notifyItemRangeInserted(this.dataRows.size(), dataRows.size()); } diff --git a/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java index 3535c40..bd5e484 100644 --- a/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java @@ -10,6 +10,7 @@ import com.bumptech.glide.Glide; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentHomeBinding; import com.casic.dcms.model.HomePageBean; import com.casic.dcms.model.UserBean; @@ -36,7 +37,6 @@ import com.casic.dcms.view.verify.VerifyCaseActivity; import com.casic.dcms.vm.HomePageViewModel; import com.casic.dcms.vm.UserViewModel; -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.kit.LongKit; diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java index 0d2926f..a9cc331 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java @@ -5,22 +5,26 @@ import android.os.Handler; import android.os.Message; import android.text.TextUtils; +import android.view.View; import androidx.annotation.NonNull; import androidx.annotation.Nullable; +import androidx.cardview.widget.CardView; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; -import com.casic.dcms.adapter.LightResultAdapter; +import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentLightListBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightDetailBean; import com.casic.dcms.model.LightListBean; -import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.vm.LightViewModel; import com.casic.dcms.widgets.LightDetailDialog; +import com.pengxh.androidx.lite.adapter.ViewHolder; import com.pengxh.androidx.lite.base.AndroidxBaseFragment; import com.pengxh.androidx.lite.divider.RecyclerViewItemDivider; +import com.pengxh.androidx.lite.kit.IntKit; import com.pengxh.androidx.lite.kit.StringKit; import com.pengxh.androidx.lite.utils.LoadState; import com.pengxh.androidx.lite.utils.LoadingDialog; @@ -37,7 +41,7 @@ private static final String TAG = "LightOnListFragment"; private final WeakReferenceHandler weakReferenceHandler = new WeakReferenceHandler(this); private LightViewModel lightViewModel; - private LightResultAdapter adapter; + private NormalRecyclerAdapter adapter; private List dataBeans = new ArrayList<>(); private int pageIndex = 1; private boolean isRefresh, isLoadMore = false; @@ -50,7 +54,7 @@ @Override protected void initOnCreate(@Nullable Bundle savedInstanceState) { lightViewModel = new ViewModelProvider(this).get(LightViewModel.class); - getLightList(); + lightViewModel.getLightList(pageIndex); } @Override @@ -67,10 +71,6 @@ }); } - private void getLightList() { - lightViewModel.getLightList(LocaleConstant.PAGE_LIMIT, pageIndex); - } - @Override protected void initEvent() { getBinding().refreshLayout.setOnRefreshListener(new OnRefreshListener() { @@ -79,7 +79,7 @@ isRefresh = true; //刷新之后页码重置 pageIndex = 1; - getLightList(); + lightViewModel.getLightList(pageIndex); } }); getBinding().refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() { @@ -87,7 +87,7 @@ public void onLoadMore(@NonNull final RefreshLayout refreshLayout) { isLoadMore = true; pageIndex++; - getLightList(); + lightViewModel.getLightList(pageIndex); } }); @@ -97,21 +97,20 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题 - dataBeans = dataRows; + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - dataBeans.addAll(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { dataBeans = dataRows; + weakReferenceHandler.sendEmptyMessage(20210623); } - weakReferenceHandler.sendEmptyMessage(20210623); } } }); @@ -138,54 +137,67 @@ @Override public boolean handleMessage(@NonNull Message msg) { if (msg.what == 20210623) { - if (isRefresh || isLoadMore) { - adapter.notifyItemRangeInserted(adapter.getItemCount(), LocaleConstant.PAGE_LIMIT); + //首次加载数据 + if (dataBeans.size() == 0) { + getBinding().emptyView.show("没有路灯数据", null); } else { - //首次加载数据 - if (dataBeans.size() == 0) { - getBinding().emptyView.show("没有路灯数据", null); - } else { - getBinding().emptyView.hide(); - adapter = new LightResultAdapter(requireContext(), dataBeans); - getBinding().recyclerView.addItemDecoration(new RecyclerViewItemDivider(1, Color.LTGRAY)); - getBinding().recyclerView.setAdapter(adapter); - adapter.setOnGridItemClickListener(new LightResultAdapter.OnGridItemClickListener() { - @Override - public void onClick(int position) { - String lampId = dataBeans.get(position).getLampId(); - if (TextUtils.isEmpty(lampId)) { - StringKit.show(requireContext(), "错误,路灯编号为空"); - return; - } + getBinding().emptyView.hide(); + adapter = new NormalRecyclerAdapter(R.layout.item_light_recycleview, dataBeans) { + @Override + public void convertView(ViewHolder viewHolder, int position, LightListBean.DataBean.RowsBean item) { + String statusName = item.getStatusName(); + viewHolder.setText(R.id.lightNameView, item.getLampName()) + .setText(R.id.lightStatusView, "已" + statusName); - lightViewModel.getLightDetail(requireContext(), lampId); + CardView statueTagView = viewHolder.getView(R.id.statueTagView); + if (statusName.equals("灭灯")) { + viewHolder.setImageResource(R.id.lightSwitch, R.drawable.ic_switch_off); + statueTagView.setCardBackgroundColor(IntKit.convertColor(requireContext(), R.color.darkGray)); + } else if (statusName.equals("报警")) { + viewHolder.setImageResource(R.id.lightSwitch, R.drawable.ic_switch_warning); + statueTagView.setCardBackgroundColor(IntKit.convertColor(requireContext(), R.color.warnColor)); + } else { + viewHolder.setImageResource(R.id.lightSwitch, R.drawable.ic_switch_on); + statueTagView.setCardBackgroundColor(IntKit.convertColor(requireContext(), R.color.onLineColor)); } - }); - adapter.setOnSwitchClickListener(new LightResultAdapter.OnSwitchClickListener() { - @Override - public void onClick(int position) { - LightListBean.DataBean.RowsBean rowsBean = dataBeans.get(position); + viewHolder.setOnClickListener(R.id.lightSwitch, new View.OnClickListener() { + @Override + public void onClick(View v) { + List lampIds = new ArrayList<>(); + lampIds.add(Long.parseLong(item.getLampId())); - List lampIds = new ArrayList<>(); - lampIds.add(Long.parseLong(rowsBean.getLampId())); - - String statusName = rowsBean.getStatusName(); - String controlType; - if (statusName.equals("离线")) { - controlType = "1"; - } else { - controlType = "0"; + String statusName = item.getStatusName(); + String controlType; + if (statusName.equals("灭灯")) { + controlType = "1"; + } else { + controlType = "0"; + } + lightViewModel.controlLight(requireContext(), lampIds, controlType); } - lightViewModel.controlLight(requireContext(), lampIds, controlType); + }); + } + }; + getBinding().recyclerView.addItemDecoration(new RecyclerViewItemDivider(1, Color.LTGRAY)); + getBinding().recyclerView.setAdapter(adapter); + adapter.setOnItemClickedListener(new NormalRecyclerAdapter.OnItemClickedListener() { + @Override + public void onItemClicked(int position, LightListBean.DataBean.RowsBean rowsBean) { + String lampId = rowsBean.getLampId(); + if (TextUtils.isEmpty(lampId)) { + StringKit.show(requireContext(), "错误,路灯编号为空"); + return; } - }); - } + + lightViewModel.getLightDetail(requireContext(), lampId); + } + }); } } else if (msg.what == 20210624) { isRefresh = true; pageIndex = 1; - lightViewModel.getLightList(LocaleConstant.PAGE_LIMIT, pageIndex); + lightViewModel.getLightList(pageIndex); } return true; } diff --git a/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java index 64791dd..8f872db 100644 --- a/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java @@ -6,12 +6,12 @@ import androidx.annotation.Nullable; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.bean.NoticeLocaleBean; import com.casic.dcms.databinding.FragmentNoticeBinding; import com.casic.dcms.utils.DataBaseManager; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.CaseDetailActivity; -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.kit.ContextKit; diff --git a/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java b/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java index 5980aaf..93ab96c 100644 --- a/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java @@ -87,14 +87,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/business/PackageTodoFragment.java b/app/src/main/java/com/casic/dcms/fragment/business/PackageTodoFragment.java index 9f28bbe..1fefd3f 100644 --- a/app/src/main/java/com/casic/dcms/fragment/business/PackageTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/business/PackageTodoFragment.java @@ -88,14 +88,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { 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 816fb8f..62db8ed 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 @@ -12,13 +12,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentCheckCaseBinding; import com.casic.dcms.model.CaseCheckModel; import com.casic.dcms.utils.LocaleConstant; 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.kit.ContextKit; @@ -61,14 +61,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { 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 e472cd6..27f60a2 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 @@ -12,13 +12,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentCheckCaseBinding; import com.casic.dcms.model.CaseCheckModel; import com.casic.dcms.utils.LocaleConstant; 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.kit.ContextKit; @@ -62,14 +62,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAdjustFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAdjustFragment.java index 23a4f8e..fdee789 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAdjustFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAdjustFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.AdjustCaseModel; import com.casic.dcms.view.department.DeptAdjustDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -57,14 +57,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAuthorizeFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAuthorizeFragment.java index f5ba0b0..b5d807e 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAuthorizeFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAuthorizeFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.AuthorizeCaseModel; import com.casic.dcms.view.department.DeptAuthorizeDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -57,14 +57,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseDelayedFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseDelayedFragment.java index e16d47d..52c88fd 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseDelayedFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseDelayedFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.DelayedCaseModel; import com.casic.dcms.view.CaseDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -57,14 +57,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseHandledFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseHandledFragment.java index 0acf747..2ce5297 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseHandledFragment.java @@ -12,12 +12,12 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.HandledCaseModel; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.CaseDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -59,14 +59,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCasePostponeFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCasePostponeFragment.java index b2a3047..d8b3396 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCasePostponeFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCasePostponeFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.PostCaseModel; import com.casic.dcms.view.CaseDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -57,14 +57,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseProcessFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseProcessFragment.java index ef78a7d..2c5f4d7 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseProcessFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseProcessFragment.java @@ -12,12 +12,12 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.HandleCaseModel; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.view.department.DeptTodoDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.StringKit; @@ -58,14 +58,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseTodoFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseTodoFragment.java index 2f8cb8a..febcb54 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseTodoFragment.java @@ -13,13 +13,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.TodoCaseModel; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.department.DeptTodoDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.StringKit; @@ -60,14 +60,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/handle/CaseHandledFragment.java b/app/src/main/java/com/casic/dcms/fragment/handle/CaseHandledFragment.java index d61fff7..d8d825f 100644 --- a/app/src/main/java/com/casic/dcms/fragment/handle/CaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/handle/CaseHandledFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentHandleCaseBinding; import com.casic.dcms.model.CaseHandledBean; import com.casic.dcms.view.handle.CaseHandledDetailActivity; 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.kit.ContextKit; @@ -58,14 +58,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/handle/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/fragment/handle/CaseTodoFragment.java index 2196251..26d0942 100644 --- a/app/src/main/java/com/casic/dcms/fragment/handle/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/handle/CaseTodoFragment.java @@ -13,12 +13,12 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentHandleCaseBinding; import com.casic.dcms.model.CaseHandleBean; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.handle.CaseHandleDetailActivity; 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.kit.StringKit; @@ -60,14 +60,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/overtime/CaseHandledFragment.java b/app/src/main/java/com/casic/dcms/fragment/overtime/CaseHandledFragment.java index 5cb44da..3424ebd 100644 --- a/app/src/main/java/com/casic/dcms/fragment/overtime/CaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/overtime/CaseHandledFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentOvertimeCaseBinding; import com.casic.dcms.model.OvertimeCaseBean; import com.casic.dcms.view.CaseTodoHandledDetailActivity; 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.kit.ContextKit; @@ -58,14 +58,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/overtime/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/fragment/overtime/CaseTodoFragment.java index a98bde5..1c2c20d 100644 --- a/app/src/main/java/com/casic/dcms/fragment/overtime/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/overtime/CaseTodoFragment.java @@ -12,11 +12,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentOvertimeCaseBinding; import com.casic.dcms.model.OvertimeCaseBean; import com.casic.dcms.view.CaseTodoDetailActivity; 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.kit.StringKit; @@ -58,14 +58,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/urgent/CaseHandledFragment.java b/app/src/main/java/com/casic/dcms/fragment/urgent/CaseHandledFragment.java index b55651f..2cc0a02 100644 --- a/app/src/main/java/com/casic/dcms/fragment/urgent/CaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/urgent/CaseHandledFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentUrgentCaseBinding; import com.casic.dcms.model.UrgentCaseBean; import com.casic.dcms.view.CaseTodoHandledDetailActivity; 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.kit.ContextKit; @@ -58,14 +58,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/urgent/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/fragment/urgent/CaseTodoFragment.java index 854d6f8..54b773e 100644 --- a/app/src/main/java/com/casic/dcms/fragment/urgent/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/urgent/CaseTodoFragment.java @@ -12,11 +12,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentUrgentCaseBinding; import com.casic.dcms.model.UrgentCaseBean; import com.casic.dcms.view.CaseTodoDetailActivity; 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.kit.StringKit; @@ -58,14 +58,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifiedFragment.java b/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifiedFragment.java index b5a130e..426878b 100644 --- a/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifiedFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifiedFragment.java @@ -12,13 +12,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentVerifyCaseBinding; import com.casic.dcms.model.VerifiedCaseModel; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.verify.VerifiedDetailActivity; 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.kit.ContextKit; @@ -61,14 +61,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifyFragment.java b/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifyFragment.java index 00039fc..d5a91fc 100644 --- a/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifyFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifyFragment.java @@ -12,13 +12,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentVerifyCaseBinding; import com.casic.dcms.model.VerifyCaseModel; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.verify.VerifyDetailActivity; 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.kit.ContextKit; @@ -61,14 +61,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java index b371a7c..ddddaf1 100644 --- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java +++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java @@ -594,8 +594,8 @@ /** * 路灯分页列表 */ - public static Observable getLightListResult(int limit, int offset) { - return api.getLightList(AuthenticationHelper.getToken(), limit, offset); + public static Observable getLightListResult(int offset) { + return api.getLightList(AuthenticationHelper.getToken(), LocaleConstant.PAGE_LIMIT, offset); } /** 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 82ecb71..77fed79 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java @@ -10,11 +10,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.ActivityCaseProcessBinding; import com.casic.dcms.model.CaseProcessBean; import com.casic.dcms.utils.ViewGroupHub; import com.casic.dcms.vm.CommonDataViewModel; -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.utils.Constant; diff --git a/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java b/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java index 1154918..4af8a96 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java @@ -10,11 +10,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.ActivityCaseListBinding; import com.casic.dcms.model.CaseSearchResultBean; import com.casic.dcms.utils.ViewGroupHub; 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.AndroidxBaseActivity; import com.pengxh.androidx.lite.kit.ContextKit; @@ -104,14 +104,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); binding.refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(context, "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); binding.refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java b/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java index efbd88d..2b7b698 100644 --- a/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java +++ b/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java @@ -13,12 +13,12 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.ActivityMaintainRecordBinding; import com.casic.dcms.model.MaintainRecordBean; import com.casic.dcms.utils.ViewGroupHub; import com.casic.dcms.vm.BridgeViewModel; import com.casic.dcms.widgets.RangeDateActionSheet; -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.divider.RecyclerViewItemDivider; @@ -76,14 +76,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); binding.refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(context, "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); binding.refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java b/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java index 53a3c59..8c65f4d 100644 --- a/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java +++ b/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java @@ -14,6 +14,7 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.ActivityPipeBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.AlarmDataBean; @@ -22,7 +23,6 @@ import com.casic.dcms.view.map.WarningOnMapActivity; import com.casic.dcms.vm.AlarmViewModel; import com.casic.dcms.widgets.CancelAlarmDialog; -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.divider.RecyclerViewItemDivider; @@ -109,14 +109,14 @@ SaveKeyValues.putValue("alarmTotal", alarmDataBean.getData().getTotal()); List dataRows = alarmDataBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); binding.refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(context, "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); binding.refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/adapter/LightResultAdapter.java b/app/src/main/java/com/casic/dcms/adapter/LightResultAdapter.java deleted file mode 100644 index 405af6e..0000000 --- a/app/src/main/java/com/casic/dcms/adapter/LightResultAdapter.java +++ /dev/null @@ -1,107 +0,0 @@ -package com.casic.dcms.adapter; - -import android.annotation.SuppressLint; -import android.content.Context; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.ImageView; -import android.widget.TextView; - -import androidx.annotation.NonNull; -import androidx.recyclerview.widget.RecyclerView; - -import com.casic.dcms.R; -import com.casic.dcms.model.LightListBean; - -import java.util.List; - -public class LightResultAdapter extends RecyclerView.Adapter { - - private final List dataBeans; - private final LayoutInflater layoutInflater; - - public LightResultAdapter(Context context, List beans) { - this.dataBeans = beans; - this.layoutInflater = LayoutInflater.from(context); - } - - @NonNull - @Override - public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - return new ItemViewHolder(layoutInflater.inflate(R.layout.item_light_recycleview, parent, false)); - } - - @Override - public void onBindViewHolder(@NonNull LightResultAdapter.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); - } - }); - } - if (switchClickListener != null) { - holder.lightSwitch.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - switchClickListener.onClick(position); - } - }); - } - } - - @Override - public int getItemCount() { - return dataBeans.size(); - } - - private OnGridItemClickListener clickListener; - - public interface OnGridItemClickListener { - void onClick(int position); - } - - public void setOnGridItemClickListener(OnGridItemClickListener onGridItemClickListener) { - this.clickListener = onGridItemClickListener; - } - - private OnSwitchClickListener switchClickListener; - - public interface OnSwitchClickListener { - void onClick(int position); - } - - public void setOnSwitchClickListener(OnSwitchClickListener switchClickListener) { - this.switchClickListener = switchClickListener; - } - - static class ItemViewHolder extends RecyclerView.ViewHolder { - - private final TextView lightNameView; - private final TextView lightStatusView; - private final ImageView lightSwitch; - - ItemViewHolder(@NonNull View itemView) { - super(itemView); - lightNameView = itemView.findViewById(R.id.lightNameView); - lightStatusView = itemView.findViewById(R.id.lightStatusView); - lightSwitch = itemView.findViewById(R.id.lightSwitch); - } - - void bindView(LightListBean.DataBean.RowsBean dataBean) { - lightNameView.setText(dataBean.getLampName()); - String statusName = dataBean.getStatusName(); - lightStatusView.setText(statusName); - if (statusName.equals("灭灯")) { - lightSwitch.setBackgroundResource(R.drawable.ic_switch_off); - } else if (statusName.equals("报警")) { - lightSwitch.setBackgroundResource(R.drawable.ic_switch_warning); - } else { - lightSwitch.setBackgroundResource(R.drawable.ic_switch_on); - } - } - } -} diff --git a/app/src/main/java/com/casic/dcms/adapter/NormalRecyclerAdapter.java b/app/src/main/java/com/casic/dcms/adapter/NormalRecyclerAdapter.java new file mode 100644 index 0000000..c80e2d5 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/adapter/NormalRecyclerAdapter.java @@ -0,0 +1,134 @@ +package com.casic.dcms.adapter; + +import android.annotation.SuppressLint; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import androidx.annotation.LayoutRes; +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.DiffUtil; +import androidx.recyclerview.widget.RecyclerView; + +import com.pengxh.androidx.lite.adapter.ViewHolder; + +import java.util.List; + +/** + * RecyclerView普通列表适配器 + */ +public abstract class NormalRecyclerAdapter extends RecyclerView.Adapter { + + private static final String TAG = "NormalRecyclerAdapter"; + private final int xmlResource; + private final List dataRows; + + public NormalRecyclerAdapter(@LayoutRes int xmlResource, List dataRows) { + this.xmlResource = xmlResource; + this.dataRows = dataRows; + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + @NonNull + @Override + public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + return new ViewHolder(LayoutInflater.from(parent.getContext()).inflate(xmlResource, parent, false)); + } + + @Override + public void onBindViewHolder(@NonNull ViewHolder holder, @SuppressLint("RecyclerView") int position) { + convertView(holder, position, dataRows.get(position)); + + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (itemClickedListener == null) { + return; + } + itemClickedListener.onItemClicked(position, dataRows.get(position)); + } + }); + } + + public void refresh(List newRows) { + DiffUtil.Callback diffCallback = new DiffUtil.Callback() { + + @Override + public int getOldListSize() { + return dataRows.size(); + } + + @Override + public int getNewListSize() { + return newRows.size(); + } + + @Override + public boolean areItemsTheSame(int oldItemPosition, int newItemPosition) { + if (dataRows == null || newRows == null) { + return false; + } + + // 检查索引是否在有效范围内 + if (oldItemPosition < 0 || oldItemPosition >= dataRows.size() || + newItemPosition < 0 || newItemPosition >= newRows.size()) { + return false; + } + + // 获取元素并进行比较 + Object oldItem = dataRows.get(oldItemPosition); + Object newItem = newRows.get(newItemPosition); + + // 处理空指针情况 + if (oldItem == null && newItem == null) { + return true; + } + if (oldItem == null || newItem == null) { + return false; + } + + return oldItem.equals(newItem); + } + + @Override + public boolean areContentsTheSame(int oldItemPosition, int newItemPosition) { + return dataRows.get(oldItemPosition) == newRows.get(newItemPosition); + } + }; + + DiffUtil.DiffResult diffResult = DiffUtil.calculateDiff(diffCallback); + + dataRows.clear(); + dataRows.addAll(newRows); + + diffResult.dispatchUpdatesTo(this); + } + + /** + * 加载更多 + */ + public void loadMore(List newRows) { + if (newRows.isEmpty()) { + return; + } + int startPosition = this.dataRows.size(); + this.dataRows.addAll(newRows); + notifyItemRangeInserted(startPosition, newRows.size()); + } + + public abstract void convertView(ViewHolder viewHolder, int position, T item); + + private OnItemClickedListener itemClickedListener; + + public interface OnItemClickedListener { + void onItemClicked(int position, T t); + } + + public void setOnItemClickedListener(OnItemClickedListener listener) { + itemClickedListener = listener; + } +} diff --git a/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java b/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java index 1deb066..80f7b98 100644 --- a/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java @@ -58,13 +58,13 @@ } @SuppressLint("NotifyDataSetChanged") - public void setRefreshData(List dataRows) { + public void refresh(List dataRows) { this.dataRows.clear(); this.dataRows.addAll(dataRows); notifyDataSetChanged(); } - public void setLoadMoreData(List dataRows) { + public void loadMore(List dataRows) { this.dataRows.addAll(dataRows); notifyItemRangeInserted(this.dataRows.size(), dataRows.size()); } diff --git a/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java index 3535c40..bd5e484 100644 --- a/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java @@ -10,6 +10,7 @@ import com.bumptech.glide.Glide; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentHomeBinding; import com.casic.dcms.model.HomePageBean; import com.casic.dcms.model.UserBean; @@ -36,7 +37,6 @@ import com.casic.dcms.view.verify.VerifyCaseActivity; import com.casic.dcms.vm.HomePageViewModel; import com.casic.dcms.vm.UserViewModel; -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.kit.LongKit; diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java index 0d2926f..a9cc331 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java @@ -5,22 +5,26 @@ import android.os.Handler; import android.os.Message; import android.text.TextUtils; +import android.view.View; import androidx.annotation.NonNull; import androidx.annotation.Nullable; +import androidx.cardview.widget.CardView; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; -import com.casic.dcms.adapter.LightResultAdapter; +import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentLightListBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightDetailBean; import com.casic.dcms.model.LightListBean; -import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.vm.LightViewModel; import com.casic.dcms.widgets.LightDetailDialog; +import com.pengxh.androidx.lite.adapter.ViewHolder; import com.pengxh.androidx.lite.base.AndroidxBaseFragment; import com.pengxh.androidx.lite.divider.RecyclerViewItemDivider; +import com.pengxh.androidx.lite.kit.IntKit; import com.pengxh.androidx.lite.kit.StringKit; import com.pengxh.androidx.lite.utils.LoadState; import com.pengxh.androidx.lite.utils.LoadingDialog; @@ -37,7 +41,7 @@ private static final String TAG = "LightOnListFragment"; private final WeakReferenceHandler weakReferenceHandler = new WeakReferenceHandler(this); private LightViewModel lightViewModel; - private LightResultAdapter adapter; + private NormalRecyclerAdapter adapter; private List dataBeans = new ArrayList<>(); private int pageIndex = 1; private boolean isRefresh, isLoadMore = false; @@ -50,7 +54,7 @@ @Override protected void initOnCreate(@Nullable Bundle savedInstanceState) { lightViewModel = new ViewModelProvider(this).get(LightViewModel.class); - getLightList(); + lightViewModel.getLightList(pageIndex); } @Override @@ -67,10 +71,6 @@ }); } - private void getLightList() { - lightViewModel.getLightList(LocaleConstant.PAGE_LIMIT, pageIndex); - } - @Override protected void initEvent() { getBinding().refreshLayout.setOnRefreshListener(new OnRefreshListener() { @@ -79,7 +79,7 @@ isRefresh = true; //刷新之后页码重置 pageIndex = 1; - getLightList(); + lightViewModel.getLightList(pageIndex); } }); getBinding().refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() { @@ -87,7 +87,7 @@ public void onLoadMore(@NonNull final RefreshLayout refreshLayout) { isLoadMore = true; pageIndex++; - getLightList(); + lightViewModel.getLightList(pageIndex); } }); @@ -97,21 +97,20 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题 - dataBeans = dataRows; + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - dataBeans.addAll(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { dataBeans = dataRows; + weakReferenceHandler.sendEmptyMessage(20210623); } - weakReferenceHandler.sendEmptyMessage(20210623); } } }); @@ -138,54 +137,67 @@ @Override public boolean handleMessage(@NonNull Message msg) { if (msg.what == 20210623) { - if (isRefresh || isLoadMore) { - adapter.notifyItemRangeInserted(adapter.getItemCount(), LocaleConstant.PAGE_LIMIT); + //首次加载数据 + if (dataBeans.size() == 0) { + getBinding().emptyView.show("没有路灯数据", null); } else { - //首次加载数据 - if (dataBeans.size() == 0) { - getBinding().emptyView.show("没有路灯数据", null); - } else { - getBinding().emptyView.hide(); - adapter = new LightResultAdapter(requireContext(), dataBeans); - getBinding().recyclerView.addItemDecoration(new RecyclerViewItemDivider(1, Color.LTGRAY)); - getBinding().recyclerView.setAdapter(adapter); - adapter.setOnGridItemClickListener(new LightResultAdapter.OnGridItemClickListener() { - @Override - public void onClick(int position) { - String lampId = dataBeans.get(position).getLampId(); - if (TextUtils.isEmpty(lampId)) { - StringKit.show(requireContext(), "错误,路灯编号为空"); - return; - } + getBinding().emptyView.hide(); + adapter = new NormalRecyclerAdapter(R.layout.item_light_recycleview, dataBeans) { + @Override + public void convertView(ViewHolder viewHolder, int position, LightListBean.DataBean.RowsBean item) { + String statusName = item.getStatusName(); + viewHolder.setText(R.id.lightNameView, item.getLampName()) + .setText(R.id.lightStatusView, "已" + statusName); - lightViewModel.getLightDetail(requireContext(), lampId); + CardView statueTagView = viewHolder.getView(R.id.statueTagView); + if (statusName.equals("灭灯")) { + viewHolder.setImageResource(R.id.lightSwitch, R.drawable.ic_switch_off); + statueTagView.setCardBackgroundColor(IntKit.convertColor(requireContext(), R.color.darkGray)); + } else if (statusName.equals("报警")) { + viewHolder.setImageResource(R.id.lightSwitch, R.drawable.ic_switch_warning); + statueTagView.setCardBackgroundColor(IntKit.convertColor(requireContext(), R.color.warnColor)); + } else { + viewHolder.setImageResource(R.id.lightSwitch, R.drawable.ic_switch_on); + statueTagView.setCardBackgroundColor(IntKit.convertColor(requireContext(), R.color.onLineColor)); } - }); - adapter.setOnSwitchClickListener(new LightResultAdapter.OnSwitchClickListener() { - @Override - public void onClick(int position) { - LightListBean.DataBean.RowsBean rowsBean = dataBeans.get(position); + viewHolder.setOnClickListener(R.id.lightSwitch, new View.OnClickListener() { + @Override + public void onClick(View v) { + List lampIds = new ArrayList<>(); + lampIds.add(Long.parseLong(item.getLampId())); - List lampIds = new ArrayList<>(); - lampIds.add(Long.parseLong(rowsBean.getLampId())); - - String statusName = rowsBean.getStatusName(); - String controlType; - if (statusName.equals("离线")) { - controlType = "1"; - } else { - controlType = "0"; + String statusName = item.getStatusName(); + String controlType; + if (statusName.equals("灭灯")) { + controlType = "1"; + } else { + controlType = "0"; + } + lightViewModel.controlLight(requireContext(), lampIds, controlType); } - lightViewModel.controlLight(requireContext(), lampIds, controlType); + }); + } + }; + getBinding().recyclerView.addItemDecoration(new RecyclerViewItemDivider(1, Color.LTGRAY)); + getBinding().recyclerView.setAdapter(adapter); + adapter.setOnItemClickedListener(new NormalRecyclerAdapter.OnItemClickedListener() { + @Override + public void onItemClicked(int position, LightListBean.DataBean.RowsBean rowsBean) { + String lampId = rowsBean.getLampId(); + if (TextUtils.isEmpty(lampId)) { + StringKit.show(requireContext(), "错误,路灯编号为空"); + return; } - }); - } + + lightViewModel.getLightDetail(requireContext(), lampId); + } + }); } } else if (msg.what == 20210624) { isRefresh = true; pageIndex = 1; - lightViewModel.getLightList(LocaleConstant.PAGE_LIMIT, pageIndex); + lightViewModel.getLightList(pageIndex); } return true; } diff --git a/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java index 64791dd..8f872db 100644 --- a/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java @@ -6,12 +6,12 @@ import androidx.annotation.Nullable; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.bean.NoticeLocaleBean; import com.casic.dcms.databinding.FragmentNoticeBinding; import com.casic.dcms.utils.DataBaseManager; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.CaseDetailActivity; -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.kit.ContextKit; diff --git a/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java b/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java index 5980aaf..93ab96c 100644 --- a/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java @@ -87,14 +87,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/business/PackageTodoFragment.java b/app/src/main/java/com/casic/dcms/fragment/business/PackageTodoFragment.java index 9f28bbe..1fefd3f 100644 --- a/app/src/main/java/com/casic/dcms/fragment/business/PackageTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/business/PackageTodoFragment.java @@ -88,14 +88,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { 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 816fb8f..62db8ed 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 @@ -12,13 +12,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentCheckCaseBinding; import com.casic.dcms.model.CaseCheckModel; import com.casic.dcms.utils.LocaleConstant; 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.kit.ContextKit; @@ -61,14 +61,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { 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 e472cd6..27f60a2 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 @@ -12,13 +12,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentCheckCaseBinding; import com.casic.dcms.model.CaseCheckModel; import com.casic.dcms.utils.LocaleConstant; 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.kit.ContextKit; @@ -62,14 +62,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAdjustFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAdjustFragment.java index 23a4f8e..fdee789 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAdjustFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAdjustFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.AdjustCaseModel; import com.casic.dcms.view.department.DeptAdjustDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -57,14 +57,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAuthorizeFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAuthorizeFragment.java index f5ba0b0..b5d807e 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAuthorizeFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAuthorizeFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.AuthorizeCaseModel; import com.casic.dcms.view.department.DeptAuthorizeDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -57,14 +57,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseDelayedFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseDelayedFragment.java index e16d47d..52c88fd 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseDelayedFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseDelayedFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.DelayedCaseModel; import com.casic.dcms.view.CaseDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -57,14 +57,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseHandledFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseHandledFragment.java index 0acf747..2ce5297 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseHandledFragment.java @@ -12,12 +12,12 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.HandledCaseModel; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.CaseDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -59,14 +59,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCasePostponeFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCasePostponeFragment.java index b2a3047..d8b3396 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCasePostponeFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCasePostponeFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.PostCaseModel; import com.casic.dcms.view.CaseDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -57,14 +57,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseProcessFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseProcessFragment.java index ef78a7d..2c5f4d7 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseProcessFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseProcessFragment.java @@ -12,12 +12,12 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.HandleCaseModel; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.view.department.DeptTodoDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.StringKit; @@ -58,14 +58,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseTodoFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseTodoFragment.java index 2f8cb8a..febcb54 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseTodoFragment.java @@ -13,13 +13,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.TodoCaseModel; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.department.DeptTodoDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.StringKit; @@ -60,14 +60,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/handle/CaseHandledFragment.java b/app/src/main/java/com/casic/dcms/fragment/handle/CaseHandledFragment.java index d61fff7..d8d825f 100644 --- a/app/src/main/java/com/casic/dcms/fragment/handle/CaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/handle/CaseHandledFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentHandleCaseBinding; import com.casic.dcms.model.CaseHandledBean; import com.casic.dcms.view.handle.CaseHandledDetailActivity; 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.kit.ContextKit; @@ -58,14 +58,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/handle/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/fragment/handle/CaseTodoFragment.java index 2196251..26d0942 100644 --- a/app/src/main/java/com/casic/dcms/fragment/handle/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/handle/CaseTodoFragment.java @@ -13,12 +13,12 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentHandleCaseBinding; import com.casic.dcms.model.CaseHandleBean; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.handle.CaseHandleDetailActivity; 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.kit.StringKit; @@ -60,14 +60,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/overtime/CaseHandledFragment.java b/app/src/main/java/com/casic/dcms/fragment/overtime/CaseHandledFragment.java index 5cb44da..3424ebd 100644 --- a/app/src/main/java/com/casic/dcms/fragment/overtime/CaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/overtime/CaseHandledFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentOvertimeCaseBinding; import com.casic.dcms.model.OvertimeCaseBean; import com.casic.dcms.view.CaseTodoHandledDetailActivity; 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.kit.ContextKit; @@ -58,14 +58,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/overtime/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/fragment/overtime/CaseTodoFragment.java index a98bde5..1c2c20d 100644 --- a/app/src/main/java/com/casic/dcms/fragment/overtime/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/overtime/CaseTodoFragment.java @@ -12,11 +12,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentOvertimeCaseBinding; import com.casic.dcms.model.OvertimeCaseBean; import com.casic.dcms.view.CaseTodoDetailActivity; 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.kit.StringKit; @@ -58,14 +58,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/urgent/CaseHandledFragment.java b/app/src/main/java/com/casic/dcms/fragment/urgent/CaseHandledFragment.java index b55651f..2cc0a02 100644 --- a/app/src/main/java/com/casic/dcms/fragment/urgent/CaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/urgent/CaseHandledFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentUrgentCaseBinding; import com.casic.dcms.model.UrgentCaseBean; import com.casic.dcms.view.CaseTodoHandledDetailActivity; 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.kit.ContextKit; @@ -58,14 +58,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/urgent/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/fragment/urgent/CaseTodoFragment.java index 854d6f8..54b773e 100644 --- a/app/src/main/java/com/casic/dcms/fragment/urgent/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/urgent/CaseTodoFragment.java @@ -12,11 +12,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentUrgentCaseBinding; import com.casic.dcms.model.UrgentCaseBean; import com.casic.dcms.view.CaseTodoDetailActivity; 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.kit.StringKit; @@ -58,14 +58,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifiedFragment.java b/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifiedFragment.java index b5a130e..426878b 100644 --- a/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifiedFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifiedFragment.java @@ -12,13 +12,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentVerifyCaseBinding; import com.casic.dcms.model.VerifiedCaseModel; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.verify.VerifiedDetailActivity; 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.kit.ContextKit; @@ -61,14 +61,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifyFragment.java b/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifyFragment.java index 00039fc..d5a91fc 100644 --- a/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifyFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifyFragment.java @@ -12,13 +12,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentVerifyCaseBinding; import com.casic.dcms.model.VerifyCaseModel; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.verify.VerifyDetailActivity; 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.kit.ContextKit; @@ -61,14 +61,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java index b371a7c..ddddaf1 100644 --- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java +++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java @@ -594,8 +594,8 @@ /** * 路灯分页列表 */ - public static Observable getLightListResult(int limit, int offset) { - return api.getLightList(AuthenticationHelper.getToken(), limit, offset); + public static Observable getLightListResult(int offset) { + return api.getLightList(AuthenticationHelper.getToken(), LocaleConstant.PAGE_LIMIT, offset); } /** 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 82ecb71..77fed79 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java @@ -10,11 +10,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.ActivityCaseProcessBinding; import com.casic.dcms.model.CaseProcessBean; import com.casic.dcms.utils.ViewGroupHub; import com.casic.dcms.vm.CommonDataViewModel; -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.utils.Constant; diff --git a/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java b/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java index 1154918..4af8a96 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java @@ -10,11 +10,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.ActivityCaseListBinding; import com.casic.dcms.model.CaseSearchResultBean; import com.casic.dcms.utils.ViewGroupHub; 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.AndroidxBaseActivity; import com.pengxh.androidx.lite.kit.ContextKit; @@ -104,14 +104,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); binding.refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(context, "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); binding.refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java b/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java index efbd88d..2b7b698 100644 --- a/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java +++ b/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java @@ -13,12 +13,12 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.ActivityMaintainRecordBinding; import com.casic.dcms.model.MaintainRecordBean; import com.casic.dcms.utils.ViewGroupHub; import com.casic.dcms.vm.BridgeViewModel; import com.casic.dcms.widgets.RangeDateActionSheet; -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.divider.RecyclerViewItemDivider; @@ -76,14 +76,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); binding.refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(context, "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); binding.refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java b/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java index 53a3c59..8c65f4d 100644 --- a/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java +++ b/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java @@ -14,6 +14,7 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.ActivityPipeBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.AlarmDataBean; @@ -22,7 +23,6 @@ import com.casic.dcms.view.map.WarningOnMapActivity; import com.casic.dcms.vm.AlarmViewModel; import com.casic.dcms.widgets.CancelAlarmDialog; -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.divider.RecyclerViewItemDivider; @@ -109,14 +109,14 @@ SaveKeyValues.putValue("alarmTotal", alarmDataBean.getData().getTotal()); List dataRows = alarmDataBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); binding.refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(context, "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); binding.refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java b/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java index b1cb4df..1492a18 100644 --- a/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java +++ b/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java @@ -14,6 +14,7 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.ActivityWellListBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.WellListBean; @@ -21,7 +22,6 @@ import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.ViewGroupHub; import com.casic.dcms.vm.WellViewModel; -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.divider.RecyclerViewItemDivider; @@ -103,14 +103,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); binding.refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(context, "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); binding.refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/adapter/LightResultAdapter.java b/app/src/main/java/com/casic/dcms/adapter/LightResultAdapter.java deleted file mode 100644 index 405af6e..0000000 --- a/app/src/main/java/com/casic/dcms/adapter/LightResultAdapter.java +++ /dev/null @@ -1,107 +0,0 @@ -package com.casic.dcms.adapter; - -import android.annotation.SuppressLint; -import android.content.Context; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.ImageView; -import android.widget.TextView; - -import androidx.annotation.NonNull; -import androidx.recyclerview.widget.RecyclerView; - -import com.casic.dcms.R; -import com.casic.dcms.model.LightListBean; - -import java.util.List; - -public class LightResultAdapter extends RecyclerView.Adapter { - - private final List dataBeans; - private final LayoutInflater layoutInflater; - - public LightResultAdapter(Context context, List beans) { - this.dataBeans = beans; - this.layoutInflater = LayoutInflater.from(context); - } - - @NonNull - @Override - public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - return new ItemViewHolder(layoutInflater.inflate(R.layout.item_light_recycleview, parent, false)); - } - - @Override - public void onBindViewHolder(@NonNull LightResultAdapter.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); - } - }); - } - if (switchClickListener != null) { - holder.lightSwitch.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - switchClickListener.onClick(position); - } - }); - } - } - - @Override - public int getItemCount() { - return dataBeans.size(); - } - - private OnGridItemClickListener clickListener; - - public interface OnGridItemClickListener { - void onClick(int position); - } - - public void setOnGridItemClickListener(OnGridItemClickListener onGridItemClickListener) { - this.clickListener = onGridItemClickListener; - } - - private OnSwitchClickListener switchClickListener; - - public interface OnSwitchClickListener { - void onClick(int position); - } - - public void setOnSwitchClickListener(OnSwitchClickListener switchClickListener) { - this.switchClickListener = switchClickListener; - } - - static class ItemViewHolder extends RecyclerView.ViewHolder { - - private final TextView lightNameView; - private final TextView lightStatusView; - private final ImageView lightSwitch; - - ItemViewHolder(@NonNull View itemView) { - super(itemView); - lightNameView = itemView.findViewById(R.id.lightNameView); - lightStatusView = itemView.findViewById(R.id.lightStatusView); - lightSwitch = itemView.findViewById(R.id.lightSwitch); - } - - void bindView(LightListBean.DataBean.RowsBean dataBean) { - lightNameView.setText(dataBean.getLampName()); - String statusName = dataBean.getStatusName(); - lightStatusView.setText(statusName); - if (statusName.equals("灭灯")) { - lightSwitch.setBackgroundResource(R.drawable.ic_switch_off); - } else if (statusName.equals("报警")) { - lightSwitch.setBackgroundResource(R.drawable.ic_switch_warning); - } else { - lightSwitch.setBackgroundResource(R.drawable.ic_switch_on); - } - } - } -} diff --git a/app/src/main/java/com/casic/dcms/adapter/NormalRecyclerAdapter.java b/app/src/main/java/com/casic/dcms/adapter/NormalRecyclerAdapter.java new file mode 100644 index 0000000..c80e2d5 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/adapter/NormalRecyclerAdapter.java @@ -0,0 +1,134 @@ +package com.casic.dcms.adapter; + +import android.annotation.SuppressLint; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import androidx.annotation.LayoutRes; +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.DiffUtil; +import androidx.recyclerview.widget.RecyclerView; + +import com.pengxh.androidx.lite.adapter.ViewHolder; + +import java.util.List; + +/** + * RecyclerView普通列表适配器 + */ +public abstract class NormalRecyclerAdapter extends RecyclerView.Adapter { + + private static final String TAG = "NormalRecyclerAdapter"; + private final int xmlResource; + private final List dataRows; + + public NormalRecyclerAdapter(@LayoutRes int xmlResource, List dataRows) { + this.xmlResource = xmlResource; + this.dataRows = dataRows; + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + @NonNull + @Override + public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + return new ViewHolder(LayoutInflater.from(parent.getContext()).inflate(xmlResource, parent, false)); + } + + @Override + public void onBindViewHolder(@NonNull ViewHolder holder, @SuppressLint("RecyclerView") int position) { + convertView(holder, position, dataRows.get(position)); + + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (itemClickedListener == null) { + return; + } + itemClickedListener.onItemClicked(position, dataRows.get(position)); + } + }); + } + + public void refresh(List newRows) { + DiffUtil.Callback diffCallback = new DiffUtil.Callback() { + + @Override + public int getOldListSize() { + return dataRows.size(); + } + + @Override + public int getNewListSize() { + return newRows.size(); + } + + @Override + public boolean areItemsTheSame(int oldItemPosition, int newItemPosition) { + if (dataRows == null || newRows == null) { + return false; + } + + // 检查索引是否在有效范围内 + if (oldItemPosition < 0 || oldItemPosition >= dataRows.size() || + newItemPosition < 0 || newItemPosition >= newRows.size()) { + return false; + } + + // 获取元素并进行比较 + Object oldItem = dataRows.get(oldItemPosition); + Object newItem = newRows.get(newItemPosition); + + // 处理空指针情况 + if (oldItem == null && newItem == null) { + return true; + } + if (oldItem == null || newItem == null) { + return false; + } + + return oldItem.equals(newItem); + } + + @Override + public boolean areContentsTheSame(int oldItemPosition, int newItemPosition) { + return dataRows.get(oldItemPosition) == newRows.get(newItemPosition); + } + }; + + DiffUtil.DiffResult diffResult = DiffUtil.calculateDiff(diffCallback); + + dataRows.clear(); + dataRows.addAll(newRows); + + diffResult.dispatchUpdatesTo(this); + } + + /** + * 加载更多 + */ + public void loadMore(List newRows) { + if (newRows.isEmpty()) { + return; + } + int startPosition = this.dataRows.size(); + this.dataRows.addAll(newRows); + notifyItemRangeInserted(startPosition, newRows.size()); + } + + public abstract void convertView(ViewHolder viewHolder, int position, T item); + + private OnItemClickedListener itemClickedListener; + + public interface OnItemClickedListener { + void onItemClicked(int position, T t); + } + + public void setOnItemClickedListener(OnItemClickedListener listener) { + itemClickedListener = listener; + } +} diff --git a/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java b/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java index 1deb066..80f7b98 100644 --- a/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java @@ -58,13 +58,13 @@ } @SuppressLint("NotifyDataSetChanged") - public void setRefreshData(List dataRows) { + public void refresh(List dataRows) { this.dataRows.clear(); this.dataRows.addAll(dataRows); notifyDataSetChanged(); } - public void setLoadMoreData(List dataRows) { + public void loadMore(List dataRows) { this.dataRows.addAll(dataRows); notifyItemRangeInserted(this.dataRows.size(), dataRows.size()); } diff --git a/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java index 3535c40..bd5e484 100644 --- a/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java @@ -10,6 +10,7 @@ import com.bumptech.glide.Glide; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentHomeBinding; import com.casic.dcms.model.HomePageBean; import com.casic.dcms.model.UserBean; @@ -36,7 +37,6 @@ import com.casic.dcms.view.verify.VerifyCaseActivity; import com.casic.dcms.vm.HomePageViewModel; import com.casic.dcms.vm.UserViewModel; -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.kit.LongKit; diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java index 0d2926f..a9cc331 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java @@ -5,22 +5,26 @@ import android.os.Handler; import android.os.Message; import android.text.TextUtils; +import android.view.View; import androidx.annotation.NonNull; import androidx.annotation.Nullable; +import androidx.cardview.widget.CardView; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; -import com.casic.dcms.adapter.LightResultAdapter; +import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentLightListBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightDetailBean; import com.casic.dcms.model.LightListBean; -import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.vm.LightViewModel; import com.casic.dcms.widgets.LightDetailDialog; +import com.pengxh.androidx.lite.adapter.ViewHolder; import com.pengxh.androidx.lite.base.AndroidxBaseFragment; import com.pengxh.androidx.lite.divider.RecyclerViewItemDivider; +import com.pengxh.androidx.lite.kit.IntKit; import com.pengxh.androidx.lite.kit.StringKit; import com.pengxh.androidx.lite.utils.LoadState; import com.pengxh.androidx.lite.utils.LoadingDialog; @@ -37,7 +41,7 @@ private static final String TAG = "LightOnListFragment"; private final WeakReferenceHandler weakReferenceHandler = new WeakReferenceHandler(this); private LightViewModel lightViewModel; - private LightResultAdapter adapter; + private NormalRecyclerAdapter adapter; private List dataBeans = new ArrayList<>(); private int pageIndex = 1; private boolean isRefresh, isLoadMore = false; @@ -50,7 +54,7 @@ @Override protected void initOnCreate(@Nullable Bundle savedInstanceState) { lightViewModel = new ViewModelProvider(this).get(LightViewModel.class); - getLightList(); + lightViewModel.getLightList(pageIndex); } @Override @@ -67,10 +71,6 @@ }); } - private void getLightList() { - lightViewModel.getLightList(LocaleConstant.PAGE_LIMIT, pageIndex); - } - @Override protected void initEvent() { getBinding().refreshLayout.setOnRefreshListener(new OnRefreshListener() { @@ -79,7 +79,7 @@ isRefresh = true; //刷新之后页码重置 pageIndex = 1; - getLightList(); + lightViewModel.getLightList(pageIndex); } }); getBinding().refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() { @@ -87,7 +87,7 @@ public void onLoadMore(@NonNull final RefreshLayout refreshLayout) { isLoadMore = true; pageIndex++; - getLightList(); + lightViewModel.getLightList(pageIndex); } }); @@ -97,21 +97,20 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题 - dataBeans = dataRows; + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - dataBeans.addAll(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { dataBeans = dataRows; + weakReferenceHandler.sendEmptyMessage(20210623); } - weakReferenceHandler.sendEmptyMessage(20210623); } } }); @@ -138,54 +137,67 @@ @Override public boolean handleMessage(@NonNull Message msg) { if (msg.what == 20210623) { - if (isRefresh || isLoadMore) { - adapter.notifyItemRangeInserted(adapter.getItemCount(), LocaleConstant.PAGE_LIMIT); + //首次加载数据 + if (dataBeans.size() == 0) { + getBinding().emptyView.show("没有路灯数据", null); } else { - //首次加载数据 - if (dataBeans.size() == 0) { - getBinding().emptyView.show("没有路灯数据", null); - } else { - getBinding().emptyView.hide(); - adapter = new LightResultAdapter(requireContext(), dataBeans); - getBinding().recyclerView.addItemDecoration(new RecyclerViewItemDivider(1, Color.LTGRAY)); - getBinding().recyclerView.setAdapter(adapter); - adapter.setOnGridItemClickListener(new LightResultAdapter.OnGridItemClickListener() { - @Override - public void onClick(int position) { - String lampId = dataBeans.get(position).getLampId(); - if (TextUtils.isEmpty(lampId)) { - StringKit.show(requireContext(), "错误,路灯编号为空"); - return; - } + getBinding().emptyView.hide(); + adapter = new NormalRecyclerAdapter(R.layout.item_light_recycleview, dataBeans) { + @Override + public void convertView(ViewHolder viewHolder, int position, LightListBean.DataBean.RowsBean item) { + String statusName = item.getStatusName(); + viewHolder.setText(R.id.lightNameView, item.getLampName()) + .setText(R.id.lightStatusView, "已" + statusName); - lightViewModel.getLightDetail(requireContext(), lampId); + CardView statueTagView = viewHolder.getView(R.id.statueTagView); + if (statusName.equals("灭灯")) { + viewHolder.setImageResource(R.id.lightSwitch, R.drawable.ic_switch_off); + statueTagView.setCardBackgroundColor(IntKit.convertColor(requireContext(), R.color.darkGray)); + } else if (statusName.equals("报警")) { + viewHolder.setImageResource(R.id.lightSwitch, R.drawable.ic_switch_warning); + statueTagView.setCardBackgroundColor(IntKit.convertColor(requireContext(), R.color.warnColor)); + } else { + viewHolder.setImageResource(R.id.lightSwitch, R.drawable.ic_switch_on); + statueTagView.setCardBackgroundColor(IntKit.convertColor(requireContext(), R.color.onLineColor)); } - }); - adapter.setOnSwitchClickListener(new LightResultAdapter.OnSwitchClickListener() { - @Override - public void onClick(int position) { - LightListBean.DataBean.RowsBean rowsBean = dataBeans.get(position); + viewHolder.setOnClickListener(R.id.lightSwitch, new View.OnClickListener() { + @Override + public void onClick(View v) { + List lampIds = new ArrayList<>(); + lampIds.add(Long.parseLong(item.getLampId())); - List lampIds = new ArrayList<>(); - lampIds.add(Long.parseLong(rowsBean.getLampId())); - - String statusName = rowsBean.getStatusName(); - String controlType; - if (statusName.equals("离线")) { - controlType = "1"; - } else { - controlType = "0"; + String statusName = item.getStatusName(); + String controlType; + if (statusName.equals("灭灯")) { + controlType = "1"; + } else { + controlType = "0"; + } + lightViewModel.controlLight(requireContext(), lampIds, controlType); } - lightViewModel.controlLight(requireContext(), lampIds, controlType); + }); + } + }; + getBinding().recyclerView.addItemDecoration(new RecyclerViewItemDivider(1, Color.LTGRAY)); + getBinding().recyclerView.setAdapter(adapter); + adapter.setOnItemClickedListener(new NormalRecyclerAdapter.OnItemClickedListener() { + @Override + public void onItemClicked(int position, LightListBean.DataBean.RowsBean rowsBean) { + String lampId = rowsBean.getLampId(); + if (TextUtils.isEmpty(lampId)) { + StringKit.show(requireContext(), "错误,路灯编号为空"); + return; } - }); - } + + lightViewModel.getLightDetail(requireContext(), lampId); + } + }); } } else if (msg.what == 20210624) { isRefresh = true; pageIndex = 1; - lightViewModel.getLightList(LocaleConstant.PAGE_LIMIT, pageIndex); + lightViewModel.getLightList(pageIndex); } return true; } diff --git a/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java index 64791dd..8f872db 100644 --- a/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java @@ -6,12 +6,12 @@ import androidx.annotation.Nullable; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.bean.NoticeLocaleBean; import com.casic.dcms.databinding.FragmentNoticeBinding; import com.casic.dcms.utils.DataBaseManager; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.CaseDetailActivity; -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.kit.ContextKit; diff --git a/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java b/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java index 5980aaf..93ab96c 100644 --- a/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java @@ -87,14 +87,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/business/PackageTodoFragment.java b/app/src/main/java/com/casic/dcms/fragment/business/PackageTodoFragment.java index 9f28bbe..1fefd3f 100644 --- a/app/src/main/java/com/casic/dcms/fragment/business/PackageTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/business/PackageTodoFragment.java @@ -88,14 +88,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { 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 816fb8f..62db8ed 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 @@ -12,13 +12,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentCheckCaseBinding; import com.casic.dcms.model.CaseCheckModel; import com.casic.dcms.utils.LocaleConstant; 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.kit.ContextKit; @@ -61,14 +61,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { 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 e472cd6..27f60a2 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 @@ -12,13 +12,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentCheckCaseBinding; import com.casic.dcms.model.CaseCheckModel; import com.casic.dcms.utils.LocaleConstant; 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.kit.ContextKit; @@ -62,14 +62,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAdjustFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAdjustFragment.java index 23a4f8e..fdee789 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAdjustFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAdjustFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.AdjustCaseModel; import com.casic.dcms.view.department.DeptAdjustDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -57,14 +57,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAuthorizeFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAuthorizeFragment.java index f5ba0b0..b5d807e 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAuthorizeFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAuthorizeFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.AuthorizeCaseModel; import com.casic.dcms.view.department.DeptAuthorizeDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -57,14 +57,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseDelayedFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseDelayedFragment.java index e16d47d..52c88fd 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseDelayedFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseDelayedFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.DelayedCaseModel; import com.casic.dcms.view.CaseDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -57,14 +57,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseHandledFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseHandledFragment.java index 0acf747..2ce5297 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseHandledFragment.java @@ -12,12 +12,12 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.HandledCaseModel; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.CaseDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -59,14 +59,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCasePostponeFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCasePostponeFragment.java index b2a3047..d8b3396 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCasePostponeFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCasePostponeFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.PostCaseModel; import com.casic.dcms.view.CaseDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -57,14 +57,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseProcessFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseProcessFragment.java index ef78a7d..2c5f4d7 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseProcessFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseProcessFragment.java @@ -12,12 +12,12 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.HandleCaseModel; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.view.department.DeptTodoDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.StringKit; @@ -58,14 +58,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseTodoFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseTodoFragment.java index 2f8cb8a..febcb54 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseTodoFragment.java @@ -13,13 +13,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.TodoCaseModel; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.department.DeptTodoDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.StringKit; @@ -60,14 +60,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/handle/CaseHandledFragment.java b/app/src/main/java/com/casic/dcms/fragment/handle/CaseHandledFragment.java index d61fff7..d8d825f 100644 --- a/app/src/main/java/com/casic/dcms/fragment/handle/CaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/handle/CaseHandledFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentHandleCaseBinding; import com.casic.dcms.model.CaseHandledBean; import com.casic.dcms.view.handle.CaseHandledDetailActivity; 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.kit.ContextKit; @@ -58,14 +58,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/handle/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/fragment/handle/CaseTodoFragment.java index 2196251..26d0942 100644 --- a/app/src/main/java/com/casic/dcms/fragment/handle/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/handle/CaseTodoFragment.java @@ -13,12 +13,12 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentHandleCaseBinding; import com.casic.dcms.model.CaseHandleBean; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.handle.CaseHandleDetailActivity; 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.kit.StringKit; @@ -60,14 +60,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/overtime/CaseHandledFragment.java b/app/src/main/java/com/casic/dcms/fragment/overtime/CaseHandledFragment.java index 5cb44da..3424ebd 100644 --- a/app/src/main/java/com/casic/dcms/fragment/overtime/CaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/overtime/CaseHandledFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentOvertimeCaseBinding; import com.casic.dcms.model.OvertimeCaseBean; import com.casic.dcms.view.CaseTodoHandledDetailActivity; 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.kit.ContextKit; @@ -58,14 +58,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/overtime/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/fragment/overtime/CaseTodoFragment.java index a98bde5..1c2c20d 100644 --- a/app/src/main/java/com/casic/dcms/fragment/overtime/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/overtime/CaseTodoFragment.java @@ -12,11 +12,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentOvertimeCaseBinding; import com.casic.dcms.model.OvertimeCaseBean; import com.casic.dcms.view.CaseTodoDetailActivity; 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.kit.StringKit; @@ -58,14 +58,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/urgent/CaseHandledFragment.java b/app/src/main/java/com/casic/dcms/fragment/urgent/CaseHandledFragment.java index b55651f..2cc0a02 100644 --- a/app/src/main/java/com/casic/dcms/fragment/urgent/CaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/urgent/CaseHandledFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentUrgentCaseBinding; import com.casic.dcms.model.UrgentCaseBean; import com.casic.dcms.view.CaseTodoHandledDetailActivity; 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.kit.ContextKit; @@ -58,14 +58,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/urgent/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/fragment/urgent/CaseTodoFragment.java index 854d6f8..54b773e 100644 --- a/app/src/main/java/com/casic/dcms/fragment/urgent/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/urgent/CaseTodoFragment.java @@ -12,11 +12,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentUrgentCaseBinding; import com.casic.dcms.model.UrgentCaseBean; import com.casic.dcms.view.CaseTodoDetailActivity; 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.kit.StringKit; @@ -58,14 +58,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifiedFragment.java b/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifiedFragment.java index b5a130e..426878b 100644 --- a/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifiedFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifiedFragment.java @@ -12,13 +12,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentVerifyCaseBinding; import com.casic.dcms.model.VerifiedCaseModel; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.verify.VerifiedDetailActivity; 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.kit.ContextKit; @@ -61,14 +61,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifyFragment.java b/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifyFragment.java index 00039fc..d5a91fc 100644 --- a/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifyFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifyFragment.java @@ -12,13 +12,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentVerifyCaseBinding; import com.casic.dcms.model.VerifyCaseModel; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.verify.VerifyDetailActivity; 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.kit.ContextKit; @@ -61,14 +61,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java index b371a7c..ddddaf1 100644 --- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java +++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java @@ -594,8 +594,8 @@ /** * 路灯分页列表 */ - public static Observable getLightListResult(int limit, int offset) { - return api.getLightList(AuthenticationHelper.getToken(), limit, offset); + public static Observable getLightListResult(int offset) { + return api.getLightList(AuthenticationHelper.getToken(), LocaleConstant.PAGE_LIMIT, offset); } /** 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 82ecb71..77fed79 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java @@ -10,11 +10,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.ActivityCaseProcessBinding; import com.casic.dcms.model.CaseProcessBean; import com.casic.dcms.utils.ViewGroupHub; import com.casic.dcms.vm.CommonDataViewModel; -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.utils.Constant; diff --git a/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java b/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java index 1154918..4af8a96 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java @@ -10,11 +10,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.ActivityCaseListBinding; import com.casic.dcms.model.CaseSearchResultBean; import com.casic.dcms.utils.ViewGroupHub; 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.AndroidxBaseActivity; import com.pengxh.androidx.lite.kit.ContextKit; @@ -104,14 +104,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); binding.refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(context, "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); binding.refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java b/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java index efbd88d..2b7b698 100644 --- a/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java +++ b/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java @@ -13,12 +13,12 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.ActivityMaintainRecordBinding; import com.casic.dcms.model.MaintainRecordBean; import com.casic.dcms.utils.ViewGroupHub; import com.casic.dcms.vm.BridgeViewModel; import com.casic.dcms.widgets.RangeDateActionSheet; -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.divider.RecyclerViewItemDivider; @@ -76,14 +76,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); binding.refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(context, "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); binding.refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java b/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java index 53a3c59..8c65f4d 100644 --- a/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java +++ b/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java @@ -14,6 +14,7 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.ActivityPipeBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.AlarmDataBean; @@ -22,7 +23,6 @@ import com.casic.dcms.view.map.WarningOnMapActivity; import com.casic.dcms.vm.AlarmViewModel; import com.casic.dcms.widgets.CancelAlarmDialog; -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.divider.RecyclerViewItemDivider; @@ -109,14 +109,14 @@ SaveKeyValues.putValue("alarmTotal", alarmDataBean.getData().getTotal()); List dataRows = alarmDataBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); binding.refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(context, "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); binding.refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java b/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java index b1cb4df..1492a18 100644 --- a/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java +++ b/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java @@ -14,6 +14,7 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.ActivityWellListBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.WellListBean; @@ -21,7 +22,6 @@ import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.ViewGroupHub; import com.casic.dcms.vm.WellViewModel; -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.divider.RecyclerViewItemDivider; @@ -103,14 +103,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); binding.refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(context, "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); binding.refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java index 35ef2b0..14352aa 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java @@ -11,6 +11,7 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.ActivityCaseResourceBinding; import com.casic.dcms.model.CaseResourceBean; import com.casic.dcms.utils.ChartViewHelper; @@ -21,7 +22,6 @@ import com.casic.dcms.vm.DataAnalysisViewModel; import com.casic.dcms.widgets.RangeDateActionSheet; import com.github.mikephil.charting.data.PieEntry; -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.divider.RecyclerViewItemDivider; diff --git a/app/src/main/java/com/casic/dcms/adapter/LightResultAdapter.java b/app/src/main/java/com/casic/dcms/adapter/LightResultAdapter.java deleted file mode 100644 index 405af6e..0000000 --- a/app/src/main/java/com/casic/dcms/adapter/LightResultAdapter.java +++ /dev/null @@ -1,107 +0,0 @@ -package com.casic.dcms.adapter; - -import android.annotation.SuppressLint; -import android.content.Context; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.ImageView; -import android.widget.TextView; - -import androidx.annotation.NonNull; -import androidx.recyclerview.widget.RecyclerView; - -import com.casic.dcms.R; -import com.casic.dcms.model.LightListBean; - -import java.util.List; - -public class LightResultAdapter extends RecyclerView.Adapter { - - private final List dataBeans; - private final LayoutInflater layoutInflater; - - public LightResultAdapter(Context context, List beans) { - this.dataBeans = beans; - this.layoutInflater = LayoutInflater.from(context); - } - - @NonNull - @Override - public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - return new ItemViewHolder(layoutInflater.inflate(R.layout.item_light_recycleview, parent, false)); - } - - @Override - public void onBindViewHolder(@NonNull LightResultAdapter.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); - } - }); - } - if (switchClickListener != null) { - holder.lightSwitch.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - switchClickListener.onClick(position); - } - }); - } - } - - @Override - public int getItemCount() { - return dataBeans.size(); - } - - private OnGridItemClickListener clickListener; - - public interface OnGridItemClickListener { - void onClick(int position); - } - - public void setOnGridItemClickListener(OnGridItemClickListener onGridItemClickListener) { - this.clickListener = onGridItemClickListener; - } - - private OnSwitchClickListener switchClickListener; - - public interface OnSwitchClickListener { - void onClick(int position); - } - - public void setOnSwitchClickListener(OnSwitchClickListener switchClickListener) { - this.switchClickListener = switchClickListener; - } - - static class ItemViewHolder extends RecyclerView.ViewHolder { - - private final TextView lightNameView; - private final TextView lightStatusView; - private final ImageView lightSwitch; - - ItemViewHolder(@NonNull View itemView) { - super(itemView); - lightNameView = itemView.findViewById(R.id.lightNameView); - lightStatusView = itemView.findViewById(R.id.lightStatusView); - lightSwitch = itemView.findViewById(R.id.lightSwitch); - } - - void bindView(LightListBean.DataBean.RowsBean dataBean) { - lightNameView.setText(dataBean.getLampName()); - String statusName = dataBean.getStatusName(); - lightStatusView.setText(statusName); - if (statusName.equals("灭灯")) { - lightSwitch.setBackgroundResource(R.drawable.ic_switch_off); - } else if (statusName.equals("报警")) { - lightSwitch.setBackgroundResource(R.drawable.ic_switch_warning); - } else { - lightSwitch.setBackgroundResource(R.drawable.ic_switch_on); - } - } - } -} diff --git a/app/src/main/java/com/casic/dcms/adapter/NormalRecyclerAdapter.java b/app/src/main/java/com/casic/dcms/adapter/NormalRecyclerAdapter.java new file mode 100644 index 0000000..c80e2d5 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/adapter/NormalRecyclerAdapter.java @@ -0,0 +1,134 @@ +package com.casic.dcms.adapter; + +import android.annotation.SuppressLint; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import androidx.annotation.LayoutRes; +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.DiffUtil; +import androidx.recyclerview.widget.RecyclerView; + +import com.pengxh.androidx.lite.adapter.ViewHolder; + +import java.util.List; + +/** + * RecyclerView普通列表适配器 + */ +public abstract class NormalRecyclerAdapter extends RecyclerView.Adapter { + + private static final String TAG = "NormalRecyclerAdapter"; + private final int xmlResource; + private final List dataRows; + + public NormalRecyclerAdapter(@LayoutRes int xmlResource, List dataRows) { + this.xmlResource = xmlResource; + this.dataRows = dataRows; + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + @NonNull + @Override + public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + return new ViewHolder(LayoutInflater.from(parent.getContext()).inflate(xmlResource, parent, false)); + } + + @Override + public void onBindViewHolder(@NonNull ViewHolder holder, @SuppressLint("RecyclerView") int position) { + convertView(holder, position, dataRows.get(position)); + + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (itemClickedListener == null) { + return; + } + itemClickedListener.onItemClicked(position, dataRows.get(position)); + } + }); + } + + public void refresh(List newRows) { + DiffUtil.Callback diffCallback = new DiffUtil.Callback() { + + @Override + public int getOldListSize() { + return dataRows.size(); + } + + @Override + public int getNewListSize() { + return newRows.size(); + } + + @Override + public boolean areItemsTheSame(int oldItemPosition, int newItemPosition) { + if (dataRows == null || newRows == null) { + return false; + } + + // 检查索引是否在有效范围内 + if (oldItemPosition < 0 || oldItemPosition >= dataRows.size() || + newItemPosition < 0 || newItemPosition >= newRows.size()) { + return false; + } + + // 获取元素并进行比较 + Object oldItem = dataRows.get(oldItemPosition); + Object newItem = newRows.get(newItemPosition); + + // 处理空指针情况 + if (oldItem == null && newItem == null) { + return true; + } + if (oldItem == null || newItem == null) { + return false; + } + + return oldItem.equals(newItem); + } + + @Override + public boolean areContentsTheSame(int oldItemPosition, int newItemPosition) { + return dataRows.get(oldItemPosition) == newRows.get(newItemPosition); + } + }; + + DiffUtil.DiffResult diffResult = DiffUtil.calculateDiff(diffCallback); + + dataRows.clear(); + dataRows.addAll(newRows); + + diffResult.dispatchUpdatesTo(this); + } + + /** + * 加载更多 + */ + public void loadMore(List newRows) { + if (newRows.isEmpty()) { + return; + } + int startPosition = this.dataRows.size(); + this.dataRows.addAll(newRows); + notifyItemRangeInserted(startPosition, newRows.size()); + } + + public abstract void convertView(ViewHolder viewHolder, int position, T item); + + private OnItemClickedListener itemClickedListener; + + public interface OnItemClickedListener { + void onItemClicked(int position, T t); + } + + public void setOnItemClickedListener(OnItemClickedListener listener) { + itemClickedListener = listener; + } +} diff --git a/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java b/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java index 1deb066..80f7b98 100644 --- a/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java @@ -58,13 +58,13 @@ } @SuppressLint("NotifyDataSetChanged") - public void setRefreshData(List dataRows) { + public void refresh(List dataRows) { this.dataRows.clear(); this.dataRows.addAll(dataRows); notifyDataSetChanged(); } - public void setLoadMoreData(List dataRows) { + public void loadMore(List dataRows) { this.dataRows.addAll(dataRows); notifyItemRangeInserted(this.dataRows.size(), dataRows.size()); } diff --git a/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java index 3535c40..bd5e484 100644 --- a/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java @@ -10,6 +10,7 @@ import com.bumptech.glide.Glide; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentHomeBinding; import com.casic.dcms.model.HomePageBean; import com.casic.dcms.model.UserBean; @@ -36,7 +37,6 @@ import com.casic.dcms.view.verify.VerifyCaseActivity; import com.casic.dcms.vm.HomePageViewModel; import com.casic.dcms.vm.UserViewModel; -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.kit.LongKit; diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java index 0d2926f..a9cc331 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java @@ -5,22 +5,26 @@ import android.os.Handler; import android.os.Message; import android.text.TextUtils; +import android.view.View; import androidx.annotation.NonNull; import androidx.annotation.Nullable; +import androidx.cardview.widget.CardView; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; -import com.casic.dcms.adapter.LightResultAdapter; +import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentLightListBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightDetailBean; import com.casic.dcms.model.LightListBean; -import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.vm.LightViewModel; import com.casic.dcms.widgets.LightDetailDialog; +import com.pengxh.androidx.lite.adapter.ViewHolder; import com.pengxh.androidx.lite.base.AndroidxBaseFragment; import com.pengxh.androidx.lite.divider.RecyclerViewItemDivider; +import com.pengxh.androidx.lite.kit.IntKit; import com.pengxh.androidx.lite.kit.StringKit; import com.pengxh.androidx.lite.utils.LoadState; import com.pengxh.androidx.lite.utils.LoadingDialog; @@ -37,7 +41,7 @@ private static final String TAG = "LightOnListFragment"; private final WeakReferenceHandler weakReferenceHandler = new WeakReferenceHandler(this); private LightViewModel lightViewModel; - private LightResultAdapter adapter; + private NormalRecyclerAdapter adapter; private List dataBeans = new ArrayList<>(); private int pageIndex = 1; private boolean isRefresh, isLoadMore = false; @@ -50,7 +54,7 @@ @Override protected void initOnCreate(@Nullable Bundle savedInstanceState) { lightViewModel = new ViewModelProvider(this).get(LightViewModel.class); - getLightList(); + lightViewModel.getLightList(pageIndex); } @Override @@ -67,10 +71,6 @@ }); } - private void getLightList() { - lightViewModel.getLightList(LocaleConstant.PAGE_LIMIT, pageIndex); - } - @Override protected void initEvent() { getBinding().refreshLayout.setOnRefreshListener(new OnRefreshListener() { @@ -79,7 +79,7 @@ isRefresh = true; //刷新之后页码重置 pageIndex = 1; - getLightList(); + lightViewModel.getLightList(pageIndex); } }); getBinding().refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() { @@ -87,7 +87,7 @@ public void onLoadMore(@NonNull final RefreshLayout refreshLayout) { isLoadMore = true; pageIndex++; - getLightList(); + lightViewModel.getLightList(pageIndex); } }); @@ -97,21 +97,20 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题 - dataBeans = dataRows; + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - dataBeans.addAll(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { dataBeans = dataRows; + weakReferenceHandler.sendEmptyMessage(20210623); } - weakReferenceHandler.sendEmptyMessage(20210623); } } }); @@ -138,54 +137,67 @@ @Override public boolean handleMessage(@NonNull Message msg) { if (msg.what == 20210623) { - if (isRefresh || isLoadMore) { - adapter.notifyItemRangeInserted(adapter.getItemCount(), LocaleConstant.PAGE_LIMIT); + //首次加载数据 + if (dataBeans.size() == 0) { + getBinding().emptyView.show("没有路灯数据", null); } else { - //首次加载数据 - if (dataBeans.size() == 0) { - getBinding().emptyView.show("没有路灯数据", null); - } else { - getBinding().emptyView.hide(); - adapter = new LightResultAdapter(requireContext(), dataBeans); - getBinding().recyclerView.addItemDecoration(new RecyclerViewItemDivider(1, Color.LTGRAY)); - getBinding().recyclerView.setAdapter(adapter); - adapter.setOnGridItemClickListener(new LightResultAdapter.OnGridItemClickListener() { - @Override - public void onClick(int position) { - String lampId = dataBeans.get(position).getLampId(); - if (TextUtils.isEmpty(lampId)) { - StringKit.show(requireContext(), "错误,路灯编号为空"); - return; - } + getBinding().emptyView.hide(); + adapter = new NormalRecyclerAdapter(R.layout.item_light_recycleview, dataBeans) { + @Override + public void convertView(ViewHolder viewHolder, int position, LightListBean.DataBean.RowsBean item) { + String statusName = item.getStatusName(); + viewHolder.setText(R.id.lightNameView, item.getLampName()) + .setText(R.id.lightStatusView, "已" + statusName); - lightViewModel.getLightDetail(requireContext(), lampId); + CardView statueTagView = viewHolder.getView(R.id.statueTagView); + if (statusName.equals("灭灯")) { + viewHolder.setImageResource(R.id.lightSwitch, R.drawable.ic_switch_off); + statueTagView.setCardBackgroundColor(IntKit.convertColor(requireContext(), R.color.darkGray)); + } else if (statusName.equals("报警")) { + viewHolder.setImageResource(R.id.lightSwitch, R.drawable.ic_switch_warning); + statueTagView.setCardBackgroundColor(IntKit.convertColor(requireContext(), R.color.warnColor)); + } else { + viewHolder.setImageResource(R.id.lightSwitch, R.drawable.ic_switch_on); + statueTagView.setCardBackgroundColor(IntKit.convertColor(requireContext(), R.color.onLineColor)); } - }); - adapter.setOnSwitchClickListener(new LightResultAdapter.OnSwitchClickListener() { - @Override - public void onClick(int position) { - LightListBean.DataBean.RowsBean rowsBean = dataBeans.get(position); + viewHolder.setOnClickListener(R.id.lightSwitch, new View.OnClickListener() { + @Override + public void onClick(View v) { + List lampIds = new ArrayList<>(); + lampIds.add(Long.parseLong(item.getLampId())); - List lampIds = new ArrayList<>(); - lampIds.add(Long.parseLong(rowsBean.getLampId())); - - String statusName = rowsBean.getStatusName(); - String controlType; - if (statusName.equals("离线")) { - controlType = "1"; - } else { - controlType = "0"; + String statusName = item.getStatusName(); + String controlType; + if (statusName.equals("灭灯")) { + controlType = "1"; + } else { + controlType = "0"; + } + lightViewModel.controlLight(requireContext(), lampIds, controlType); } - lightViewModel.controlLight(requireContext(), lampIds, controlType); + }); + } + }; + getBinding().recyclerView.addItemDecoration(new RecyclerViewItemDivider(1, Color.LTGRAY)); + getBinding().recyclerView.setAdapter(adapter); + adapter.setOnItemClickedListener(new NormalRecyclerAdapter.OnItemClickedListener() { + @Override + public void onItemClicked(int position, LightListBean.DataBean.RowsBean rowsBean) { + String lampId = rowsBean.getLampId(); + if (TextUtils.isEmpty(lampId)) { + StringKit.show(requireContext(), "错误,路灯编号为空"); + return; } - }); - } + + lightViewModel.getLightDetail(requireContext(), lampId); + } + }); } } else if (msg.what == 20210624) { isRefresh = true; pageIndex = 1; - lightViewModel.getLightList(LocaleConstant.PAGE_LIMIT, pageIndex); + lightViewModel.getLightList(pageIndex); } return true; } diff --git a/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java index 64791dd..8f872db 100644 --- a/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java @@ -6,12 +6,12 @@ import androidx.annotation.Nullable; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.bean.NoticeLocaleBean; import com.casic.dcms.databinding.FragmentNoticeBinding; import com.casic.dcms.utils.DataBaseManager; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.CaseDetailActivity; -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.kit.ContextKit; diff --git a/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java b/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java index 5980aaf..93ab96c 100644 --- a/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java @@ -87,14 +87,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/business/PackageTodoFragment.java b/app/src/main/java/com/casic/dcms/fragment/business/PackageTodoFragment.java index 9f28bbe..1fefd3f 100644 --- a/app/src/main/java/com/casic/dcms/fragment/business/PackageTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/business/PackageTodoFragment.java @@ -88,14 +88,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { 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 816fb8f..62db8ed 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 @@ -12,13 +12,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentCheckCaseBinding; import com.casic.dcms.model.CaseCheckModel; import com.casic.dcms.utils.LocaleConstant; 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.kit.ContextKit; @@ -61,14 +61,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { 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 e472cd6..27f60a2 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 @@ -12,13 +12,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentCheckCaseBinding; import com.casic.dcms.model.CaseCheckModel; import com.casic.dcms.utils.LocaleConstant; 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.kit.ContextKit; @@ -62,14 +62,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAdjustFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAdjustFragment.java index 23a4f8e..fdee789 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAdjustFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAdjustFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.AdjustCaseModel; import com.casic.dcms.view.department.DeptAdjustDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -57,14 +57,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAuthorizeFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAuthorizeFragment.java index f5ba0b0..b5d807e 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAuthorizeFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAuthorizeFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.AuthorizeCaseModel; import com.casic.dcms.view.department.DeptAuthorizeDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -57,14 +57,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseDelayedFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseDelayedFragment.java index e16d47d..52c88fd 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseDelayedFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseDelayedFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.DelayedCaseModel; import com.casic.dcms.view.CaseDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -57,14 +57,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseHandledFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseHandledFragment.java index 0acf747..2ce5297 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseHandledFragment.java @@ -12,12 +12,12 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.HandledCaseModel; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.CaseDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -59,14 +59,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCasePostponeFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCasePostponeFragment.java index b2a3047..d8b3396 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCasePostponeFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCasePostponeFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.PostCaseModel; import com.casic.dcms.view.CaseDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -57,14 +57,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseProcessFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseProcessFragment.java index ef78a7d..2c5f4d7 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseProcessFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseProcessFragment.java @@ -12,12 +12,12 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.HandleCaseModel; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.view.department.DeptTodoDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.StringKit; @@ -58,14 +58,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseTodoFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseTodoFragment.java index 2f8cb8a..febcb54 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseTodoFragment.java @@ -13,13 +13,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.TodoCaseModel; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.department.DeptTodoDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.StringKit; @@ -60,14 +60,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/handle/CaseHandledFragment.java b/app/src/main/java/com/casic/dcms/fragment/handle/CaseHandledFragment.java index d61fff7..d8d825f 100644 --- a/app/src/main/java/com/casic/dcms/fragment/handle/CaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/handle/CaseHandledFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentHandleCaseBinding; import com.casic.dcms.model.CaseHandledBean; import com.casic.dcms.view.handle.CaseHandledDetailActivity; 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.kit.ContextKit; @@ -58,14 +58,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/handle/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/fragment/handle/CaseTodoFragment.java index 2196251..26d0942 100644 --- a/app/src/main/java/com/casic/dcms/fragment/handle/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/handle/CaseTodoFragment.java @@ -13,12 +13,12 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentHandleCaseBinding; import com.casic.dcms.model.CaseHandleBean; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.handle.CaseHandleDetailActivity; 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.kit.StringKit; @@ -60,14 +60,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/overtime/CaseHandledFragment.java b/app/src/main/java/com/casic/dcms/fragment/overtime/CaseHandledFragment.java index 5cb44da..3424ebd 100644 --- a/app/src/main/java/com/casic/dcms/fragment/overtime/CaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/overtime/CaseHandledFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentOvertimeCaseBinding; import com.casic.dcms.model.OvertimeCaseBean; import com.casic.dcms.view.CaseTodoHandledDetailActivity; 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.kit.ContextKit; @@ -58,14 +58,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/overtime/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/fragment/overtime/CaseTodoFragment.java index a98bde5..1c2c20d 100644 --- a/app/src/main/java/com/casic/dcms/fragment/overtime/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/overtime/CaseTodoFragment.java @@ -12,11 +12,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentOvertimeCaseBinding; import com.casic.dcms.model.OvertimeCaseBean; import com.casic.dcms.view.CaseTodoDetailActivity; 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.kit.StringKit; @@ -58,14 +58,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/urgent/CaseHandledFragment.java b/app/src/main/java/com/casic/dcms/fragment/urgent/CaseHandledFragment.java index b55651f..2cc0a02 100644 --- a/app/src/main/java/com/casic/dcms/fragment/urgent/CaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/urgent/CaseHandledFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentUrgentCaseBinding; import com.casic.dcms.model.UrgentCaseBean; import com.casic.dcms.view.CaseTodoHandledDetailActivity; 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.kit.ContextKit; @@ -58,14 +58,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/urgent/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/fragment/urgent/CaseTodoFragment.java index 854d6f8..54b773e 100644 --- a/app/src/main/java/com/casic/dcms/fragment/urgent/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/urgent/CaseTodoFragment.java @@ -12,11 +12,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentUrgentCaseBinding; import com.casic.dcms.model.UrgentCaseBean; import com.casic.dcms.view.CaseTodoDetailActivity; 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.kit.StringKit; @@ -58,14 +58,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifiedFragment.java b/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifiedFragment.java index b5a130e..426878b 100644 --- a/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifiedFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifiedFragment.java @@ -12,13 +12,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentVerifyCaseBinding; import com.casic.dcms.model.VerifiedCaseModel; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.verify.VerifiedDetailActivity; 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.kit.ContextKit; @@ -61,14 +61,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifyFragment.java b/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifyFragment.java index 00039fc..d5a91fc 100644 --- a/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifyFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifyFragment.java @@ -12,13 +12,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentVerifyCaseBinding; import com.casic.dcms.model.VerifyCaseModel; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.verify.VerifyDetailActivity; 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.kit.ContextKit; @@ -61,14 +61,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java index b371a7c..ddddaf1 100644 --- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java +++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java @@ -594,8 +594,8 @@ /** * 路灯分页列表 */ - public static Observable getLightListResult(int limit, int offset) { - return api.getLightList(AuthenticationHelper.getToken(), limit, offset); + public static Observable getLightListResult(int offset) { + return api.getLightList(AuthenticationHelper.getToken(), LocaleConstant.PAGE_LIMIT, offset); } /** 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 82ecb71..77fed79 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java @@ -10,11 +10,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.ActivityCaseProcessBinding; import com.casic.dcms.model.CaseProcessBean; import com.casic.dcms.utils.ViewGroupHub; import com.casic.dcms.vm.CommonDataViewModel; -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.utils.Constant; diff --git a/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java b/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java index 1154918..4af8a96 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java @@ -10,11 +10,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.ActivityCaseListBinding; import com.casic.dcms.model.CaseSearchResultBean; import com.casic.dcms.utils.ViewGroupHub; 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.AndroidxBaseActivity; import com.pengxh.androidx.lite.kit.ContextKit; @@ -104,14 +104,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); binding.refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(context, "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); binding.refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java b/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java index efbd88d..2b7b698 100644 --- a/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java +++ b/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java @@ -13,12 +13,12 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.ActivityMaintainRecordBinding; import com.casic.dcms.model.MaintainRecordBean; import com.casic.dcms.utils.ViewGroupHub; import com.casic.dcms.vm.BridgeViewModel; import com.casic.dcms.widgets.RangeDateActionSheet; -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.divider.RecyclerViewItemDivider; @@ -76,14 +76,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); binding.refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(context, "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); binding.refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java b/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java index 53a3c59..8c65f4d 100644 --- a/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java +++ b/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java @@ -14,6 +14,7 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.ActivityPipeBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.AlarmDataBean; @@ -22,7 +23,6 @@ import com.casic.dcms.view.map.WarningOnMapActivity; import com.casic.dcms.vm.AlarmViewModel; import com.casic.dcms.widgets.CancelAlarmDialog; -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.divider.RecyclerViewItemDivider; @@ -109,14 +109,14 @@ SaveKeyValues.putValue("alarmTotal", alarmDataBean.getData().getTotal()); List dataRows = alarmDataBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); binding.refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(context, "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); binding.refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java b/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java index b1cb4df..1492a18 100644 --- a/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java +++ b/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java @@ -14,6 +14,7 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.ActivityWellListBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.WellListBean; @@ -21,7 +22,6 @@ import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.ViewGroupHub; import com.casic.dcms.vm.WellViewModel; -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.divider.RecyclerViewItemDivider; @@ -103,14 +103,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); binding.refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(context, "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); binding.refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java index 35ef2b0..14352aa 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java @@ -11,6 +11,7 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.ActivityCaseResourceBinding; import com.casic.dcms.model.CaseResourceBean; import com.casic.dcms.utils.ChartViewHelper; @@ -21,7 +22,6 @@ import com.casic.dcms.vm.DataAnalysisViewModel; import com.casic.dcms.widgets.RangeDateActionSheet; import com.github.mikephil.charting.data.PieEntry; -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.divider.RecyclerViewItemDivider; diff --git a/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java index 32f3f27..4c5ca87 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java @@ -8,13 +8,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.ActivityCityBaseDataBinding; import com.casic.dcms.model.CityBaseDataBean; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.ViewGroupHub; import com.casic.dcms.vm.DataAnalysisViewModel; -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.utils.LoadState; diff --git a/app/src/main/java/com/casic/dcms/adapter/LightResultAdapter.java b/app/src/main/java/com/casic/dcms/adapter/LightResultAdapter.java deleted file mode 100644 index 405af6e..0000000 --- a/app/src/main/java/com/casic/dcms/adapter/LightResultAdapter.java +++ /dev/null @@ -1,107 +0,0 @@ -package com.casic.dcms.adapter; - -import android.annotation.SuppressLint; -import android.content.Context; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.ImageView; -import android.widget.TextView; - -import androidx.annotation.NonNull; -import androidx.recyclerview.widget.RecyclerView; - -import com.casic.dcms.R; -import com.casic.dcms.model.LightListBean; - -import java.util.List; - -public class LightResultAdapter extends RecyclerView.Adapter { - - private final List dataBeans; - private final LayoutInflater layoutInflater; - - public LightResultAdapter(Context context, List beans) { - this.dataBeans = beans; - this.layoutInflater = LayoutInflater.from(context); - } - - @NonNull - @Override - public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - return new ItemViewHolder(layoutInflater.inflate(R.layout.item_light_recycleview, parent, false)); - } - - @Override - public void onBindViewHolder(@NonNull LightResultAdapter.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); - } - }); - } - if (switchClickListener != null) { - holder.lightSwitch.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - switchClickListener.onClick(position); - } - }); - } - } - - @Override - public int getItemCount() { - return dataBeans.size(); - } - - private OnGridItemClickListener clickListener; - - public interface OnGridItemClickListener { - void onClick(int position); - } - - public void setOnGridItemClickListener(OnGridItemClickListener onGridItemClickListener) { - this.clickListener = onGridItemClickListener; - } - - private OnSwitchClickListener switchClickListener; - - public interface OnSwitchClickListener { - void onClick(int position); - } - - public void setOnSwitchClickListener(OnSwitchClickListener switchClickListener) { - this.switchClickListener = switchClickListener; - } - - static class ItemViewHolder extends RecyclerView.ViewHolder { - - private final TextView lightNameView; - private final TextView lightStatusView; - private final ImageView lightSwitch; - - ItemViewHolder(@NonNull View itemView) { - super(itemView); - lightNameView = itemView.findViewById(R.id.lightNameView); - lightStatusView = itemView.findViewById(R.id.lightStatusView); - lightSwitch = itemView.findViewById(R.id.lightSwitch); - } - - void bindView(LightListBean.DataBean.RowsBean dataBean) { - lightNameView.setText(dataBean.getLampName()); - String statusName = dataBean.getStatusName(); - lightStatusView.setText(statusName); - if (statusName.equals("灭灯")) { - lightSwitch.setBackgroundResource(R.drawable.ic_switch_off); - } else if (statusName.equals("报警")) { - lightSwitch.setBackgroundResource(R.drawable.ic_switch_warning); - } else { - lightSwitch.setBackgroundResource(R.drawable.ic_switch_on); - } - } - } -} diff --git a/app/src/main/java/com/casic/dcms/adapter/NormalRecyclerAdapter.java b/app/src/main/java/com/casic/dcms/adapter/NormalRecyclerAdapter.java new file mode 100644 index 0000000..c80e2d5 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/adapter/NormalRecyclerAdapter.java @@ -0,0 +1,134 @@ +package com.casic.dcms.adapter; + +import android.annotation.SuppressLint; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import androidx.annotation.LayoutRes; +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.DiffUtil; +import androidx.recyclerview.widget.RecyclerView; + +import com.pengxh.androidx.lite.adapter.ViewHolder; + +import java.util.List; + +/** + * RecyclerView普通列表适配器 + */ +public abstract class NormalRecyclerAdapter extends RecyclerView.Adapter { + + private static final String TAG = "NormalRecyclerAdapter"; + private final int xmlResource; + private final List dataRows; + + public NormalRecyclerAdapter(@LayoutRes int xmlResource, List dataRows) { + this.xmlResource = xmlResource; + this.dataRows = dataRows; + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + @NonNull + @Override + public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + return new ViewHolder(LayoutInflater.from(parent.getContext()).inflate(xmlResource, parent, false)); + } + + @Override + public void onBindViewHolder(@NonNull ViewHolder holder, @SuppressLint("RecyclerView") int position) { + convertView(holder, position, dataRows.get(position)); + + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (itemClickedListener == null) { + return; + } + itemClickedListener.onItemClicked(position, dataRows.get(position)); + } + }); + } + + public void refresh(List newRows) { + DiffUtil.Callback diffCallback = new DiffUtil.Callback() { + + @Override + public int getOldListSize() { + return dataRows.size(); + } + + @Override + public int getNewListSize() { + return newRows.size(); + } + + @Override + public boolean areItemsTheSame(int oldItemPosition, int newItemPosition) { + if (dataRows == null || newRows == null) { + return false; + } + + // 检查索引是否在有效范围内 + if (oldItemPosition < 0 || oldItemPosition >= dataRows.size() || + newItemPosition < 0 || newItemPosition >= newRows.size()) { + return false; + } + + // 获取元素并进行比较 + Object oldItem = dataRows.get(oldItemPosition); + Object newItem = newRows.get(newItemPosition); + + // 处理空指针情况 + if (oldItem == null && newItem == null) { + return true; + } + if (oldItem == null || newItem == null) { + return false; + } + + return oldItem.equals(newItem); + } + + @Override + public boolean areContentsTheSame(int oldItemPosition, int newItemPosition) { + return dataRows.get(oldItemPosition) == newRows.get(newItemPosition); + } + }; + + DiffUtil.DiffResult diffResult = DiffUtil.calculateDiff(diffCallback); + + dataRows.clear(); + dataRows.addAll(newRows); + + diffResult.dispatchUpdatesTo(this); + } + + /** + * 加载更多 + */ + public void loadMore(List newRows) { + if (newRows.isEmpty()) { + return; + } + int startPosition = this.dataRows.size(); + this.dataRows.addAll(newRows); + notifyItemRangeInserted(startPosition, newRows.size()); + } + + public abstract void convertView(ViewHolder viewHolder, int position, T item); + + private OnItemClickedListener itemClickedListener; + + public interface OnItemClickedListener { + void onItemClicked(int position, T t); + } + + public void setOnItemClickedListener(OnItemClickedListener listener) { + itemClickedListener = listener; + } +} diff --git a/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java b/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java index 1deb066..80f7b98 100644 --- a/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java @@ -58,13 +58,13 @@ } @SuppressLint("NotifyDataSetChanged") - public void setRefreshData(List dataRows) { + public void refresh(List dataRows) { this.dataRows.clear(); this.dataRows.addAll(dataRows); notifyDataSetChanged(); } - public void setLoadMoreData(List dataRows) { + public void loadMore(List dataRows) { this.dataRows.addAll(dataRows); notifyItemRangeInserted(this.dataRows.size(), dataRows.size()); } diff --git a/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java index 3535c40..bd5e484 100644 --- a/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java @@ -10,6 +10,7 @@ import com.bumptech.glide.Glide; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentHomeBinding; import com.casic.dcms.model.HomePageBean; import com.casic.dcms.model.UserBean; @@ -36,7 +37,6 @@ import com.casic.dcms.view.verify.VerifyCaseActivity; import com.casic.dcms.vm.HomePageViewModel; import com.casic.dcms.vm.UserViewModel; -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.kit.LongKit; diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java index 0d2926f..a9cc331 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java @@ -5,22 +5,26 @@ import android.os.Handler; import android.os.Message; import android.text.TextUtils; +import android.view.View; import androidx.annotation.NonNull; import androidx.annotation.Nullable; +import androidx.cardview.widget.CardView; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; -import com.casic.dcms.adapter.LightResultAdapter; +import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentLightListBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightDetailBean; import com.casic.dcms.model.LightListBean; -import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.vm.LightViewModel; import com.casic.dcms.widgets.LightDetailDialog; +import com.pengxh.androidx.lite.adapter.ViewHolder; import com.pengxh.androidx.lite.base.AndroidxBaseFragment; import com.pengxh.androidx.lite.divider.RecyclerViewItemDivider; +import com.pengxh.androidx.lite.kit.IntKit; import com.pengxh.androidx.lite.kit.StringKit; import com.pengxh.androidx.lite.utils.LoadState; import com.pengxh.androidx.lite.utils.LoadingDialog; @@ -37,7 +41,7 @@ private static final String TAG = "LightOnListFragment"; private final WeakReferenceHandler weakReferenceHandler = new WeakReferenceHandler(this); private LightViewModel lightViewModel; - private LightResultAdapter adapter; + private NormalRecyclerAdapter adapter; private List dataBeans = new ArrayList<>(); private int pageIndex = 1; private boolean isRefresh, isLoadMore = false; @@ -50,7 +54,7 @@ @Override protected void initOnCreate(@Nullable Bundle savedInstanceState) { lightViewModel = new ViewModelProvider(this).get(LightViewModel.class); - getLightList(); + lightViewModel.getLightList(pageIndex); } @Override @@ -67,10 +71,6 @@ }); } - private void getLightList() { - lightViewModel.getLightList(LocaleConstant.PAGE_LIMIT, pageIndex); - } - @Override protected void initEvent() { getBinding().refreshLayout.setOnRefreshListener(new OnRefreshListener() { @@ -79,7 +79,7 @@ isRefresh = true; //刷新之后页码重置 pageIndex = 1; - getLightList(); + lightViewModel.getLightList(pageIndex); } }); getBinding().refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() { @@ -87,7 +87,7 @@ public void onLoadMore(@NonNull final RefreshLayout refreshLayout) { isLoadMore = true; pageIndex++; - getLightList(); + lightViewModel.getLightList(pageIndex); } }); @@ -97,21 +97,20 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题 - dataBeans = dataRows; + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - dataBeans.addAll(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { dataBeans = dataRows; + weakReferenceHandler.sendEmptyMessage(20210623); } - weakReferenceHandler.sendEmptyMessage(20210623); } } }); @@ -138,54 +137,67 @@ @Override public boolean handleMessage(@NonNull Message msg) { if (msg.what == 20210623) { - if (isRefresh || isLoadMore) { - adapter.notifyItemRangeInserted(adapter.getItemCount(), LocaleConstant.PAGE_LIMIT); + //首次加载数据 + if (dataBeans.size() == 0) { + getBinding().emptyView.show("没有路灯数据", null); } else { - //首次加载数据 - if (dataBeans.size() == 0) { - getBinding().emptyView.show("没有路灯数据", null); - } else { - getBinding().emptyView.hide(); - adapter = new LightResultAdapter(requireContext(), dataBeans); - getBinding().recyclerView.addItemDecoration(new RecyclerViewItemDivider(1, Color.LTGRAY)); - getBinding().recyclerView.setAdapter(adapter); - adapter.setOnGridItemClickListener(new LightResultAdapter.OnGridItemClickListener() { - @Override - public void onClick(int position) { - String lampId = dataBeans.get(position).getLampId(); - if (TextUtils.isEmpty(lampId)) { - StringKit.show(requireContext(), "错误,路灯编号为空"); - return; - } + getBinding().emptyView.hide(); + adapter = new NormalRecyclerAdapter(R.layout.item_light_recycleview, dataBeans) { + @Override + public void convertView(ViewHolder viewHolder, int position, LightListBean.DataBean.RowsBean item) { + String statusName = item.getStatusName(); + viewHolder.setText(R.id.lightNameView, item.getLampName()) + .setText(R.id.lightStatusView, "已" + statusName); - lightViewModel.getLightDetail(requireContext(), lampId); + CardView statueTagView = viewHolder.getView(R.id.statueTagView); + if (statusName.equals("灭灯")) { + viewHolder.setImageResource(R.id.lightSwitch, R.drawable.ic_switch_off); + statueTagView.setCardBackgroundColor(IntKit.convertColor(requireContext(), R.color.darkGray)); + } else if (statusName.equals("报警")) { + viewHolder.setImageResource(R.id.lightSwitch, R.drawable.ic_switch_warning); + statueTagView.setCardBackgroundColor(IntKit.convertColor(requireContext(), R.color.warnColor)); + } else { + viewHolder.setImageResource(R.id.lightSwitch, R.drawable.ic_switch_on); + statueTagView.setCardBackgroundColor(IntKit.convertColor(requireContext(), R.color.onLineColor)); } - }); - adapter.setOnSwitchClickListener(new LightResultAdapter.OnSwitchClickListener() { - @Override - public void onClick(int position) { - LightListBean.DataBean.RowsBean rowsBean = dataBeans.get(position); + viewHolder.setOnClickListener(R.id.lightSwitch, new View.OnClickListener() { + @Override + public void onClick(View v) { + List lampIds = new ArrayList<>(); + lampIds.add(Long.parseLong(item.getLampId())); - List lampIds = new ArrayList<>(); - lampIds.add(Long.parseLong(rowsBean.getLampId())); - - String statusName = rowsBean.getStatusName(); - String controlType; - if (statusName.equals("离线")) { - controlType = "1"; - } else { - controlType = "0"; + String statusName = item.getStatusName(); + String controlType; + if (statusName.equals("灭灯")) { + controlType = "1"; + } else { + controlType = "0"; + } + lightViewModel.controlLight(requireContext(), lampIds, controlType); } - lightViewModel.controlLight(requireContext(), lampIds, controlType); + }); + } + }; + getBinding().recyclerView.addItemDecoration(new RecyclerViewItemDivider(1, Color.LTGRAY)); + getBinding().recyclerView.setAdapter(adapter); + adapter.setOnItemClickedListener(new NormalRecyclerAdapter.OnItemClickedListener() { + @Override + public void onItemClicked(int position, LightListBean.DataBean.RowsBean rowsBean) { + String lampId = rowsBean.getLampId(); + if (TextUtils.isEmpty(lampId)) { + StringKit.show(requireContext(), "错误,路灯编号为空"); + return; } - }); - } + + lightViewModel.getLightDetail(requireContext(), lampId); + } + }); } } else if (msg.what == 20210624) { isRefresh = true; pageIndex = 1; - lightViewModel.getLightList(LocaleConstant.PAGE_LIMIT, pageIndex); + lightViewModel.getLightList(pageIndex); } return true; } diff --git a/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java index 64791dd..8f872db 100644 --- a/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java @@ -6,12 +6,12 @@ import androidx.annotation.Nullable; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.bean.NoticeLocaleBean; import com.casic.dcms.databinding.FragmentNoticeBinding; import com.casic.dcms.utils.DataBaseManager; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.CaseDetailActivity; -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.kit.ContextKit; diff --git a/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java b/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java index 5980aaf..93ab96c 100644 --- a/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java @@ -87,14 +87,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/business/PackageTodoFragment.java b/app/src/main/java/com/casic/dcms/fragment/business/PackageTodoFragment.java index 9f28bbe..1fefd3f 100644 --- a/app/src/main/java/com/casic/dcms/fragment/business/PackageTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/business/PackageTodoFragment.java @@ -88,14 +88,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { 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 816fb8f..62db8ed 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 @@ -12,13 +12,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentCheckCaseBinding; import com.casic.dcms.model.CaseCheckModel; import com.casic.dcms.utils.LocaleConstant; 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.kit.ContextKit; @@ -61,14 +61,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { 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 e472cd6..27f60a2 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 @@ -12,13 +12,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentCheckCaseBinding; import com.casic.dcms.model.CaseCheckModel; import com.casic.dcms.utils.LocaleConstant; 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.kit.ContextKit; @@ -62,14 +62,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAdjustFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAdjustFragment.java index 23a4f8e..fdee789 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAdjustFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAdjustFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.AdjustCaseModel; import com.casic.dcms.view.department.DeptAdjustDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -57,14 +57,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAuthorizeFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAuthorizeFragment.java index f5ba0b0..b5d807e 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAuthorizeFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAuthorizeFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.AuthorizeCaseModel; import com.casic.dcms.view.department.DeptAuthorizeDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -57,14 +57,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseDelayedFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseDelayedFragment.java index e16d47d..52c88fd 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseDelayedFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseDelayedFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.DelayedCaseModel; import com.casic.dcms.view.CaseDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -57,14 +57,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseHandledFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseHandledFragment.java index 0acf747..2ce5297 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseHandledFragment.java @@ -12,12 +12,12 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.HandledCaseModel; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.CaseDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -59,14 +59,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCasePostponeFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCasePostponeFragment.java index b2a3047..d8b3396 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCasePostponeFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCasePostponeFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.PostCaseModel; import com.casic.dcms.view.CaseDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -57,14 +57,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseProcessFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseProcessFragment.java index ef78a7d..2c5f4d7 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseProcessFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseProcessFragment.java @@ -12,12 +12,12 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.HandleCaseModel; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.view.department.DeptTodoDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.StringKit; @@ -58,14 +58,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseTodoFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseTodoFragment.java index 2f8cb8a..febcb54 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseTodoFragment.java @@ -13,13 +13,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.TodoCaseModel; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.department.DeptTodoDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.StringKit; @@ -60,14 +60,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/handle/CaseHandledFragment.java b/app/src/main/java/com/casic/dcms/fragment/handle/CaseHandledFragment.java index d61fff7..d8d825f 100644 --- a/app/src/main/java/com/casic/dcms/fragment/handle/CaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/handle/CaseHandledFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentHandleCaseBinding; import com.casic.dcms.model.CaseHandledBean; import com.casic.dcms.view.handle.CaseHandledDetailActivity; 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.kit.ContextKit; @@ -58,14 +58,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/handle/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/fragment/handle/CaseTodoFragment.java index 2196251..26d0942 100644 --- a/app/src/main/java/com/casic/dcms/fragment/handle/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/handle/CaseTodoFragment.java @@ -13,12 +13,12 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentHandleCaseBinding; import com.casic.dcms.model.CaseHandleBean; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.handle.CaseHandleDetailActivity; 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.kit.StringKit; @@ -60,14 +60,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/overtime/CaseHandledFragment.java b/app/src/main/java/com/casic/dcms/fragment/overtime/CaseHandledFragment.java index 5cb44da..3424ebd 100644 --- a/app/src/main/java/com/casic/dcms/fragment/overtime/CaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/overtime/CaseHandledFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentOvertimeCaseBinding; import com.casic.dcms.model.OvertimeCaseBean; import com.casic.dcms.view.CaseTodoHandledDetailActivity; 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.kit.ContextKit; @@ -58,14 +58,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/overtime/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/fragment/overtime/CaseTodoFragment.java index a98bde5..1c2c20d 100644 --- a/app/src/main/java/com/casic/dcms/fragment/overtime/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/overtime/CaseTodoFragment.java @@ -12,11 +12,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentOvertimeCaseBinding; import com.casic.dcms.model.OvertimeCaseBean; import com.casic.dcms.view.CaseTodoDetailActivity; 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.kit.StringKit; @@ -58,14 +58,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/urgent/CaseHandledFragment.java b/app/src/main/java/com/casic/dcms/fragment/urgent/CaseHandledFragment.java index b55651f..2cc0a02 100644 --- a/app/src/main/java/com/casic/dcms/fragment/urgent/CaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/urgent/CaseHandledFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentUrgentCaseBinding; import com.casic.dcms.model.UrgentCaseBean; import com.casic.dcms.view.CaseTodoHandledDetailActivity; 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.kit.ContextKit; @@ -58,14 +58,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/urgent/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/fragment/urgent/CaseTodoFragment.java index 854d6f8..54b773e 100644 --- a/app/src/main/java/com/casic/dcms/fragment/urgent/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/urgent/CaseTodoFragment.java @@ -12,11 +12,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentUrgentCaseBinding; import com.casic.dcms.model.UrgentCaseBean; import com.casic.dcms.view.CaseTodoDetailActivity; 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.kit.StringKit; @@ -58,14 +58,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifiedFragment.java b/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifiedFragment.java index b5a130e..426878b 100644 --- a/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifiedFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifiedFragment.java @@ -12,13 +12,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentVerifyCaseBinding; import com.casic.dcms.model.VerifiedCaseModel; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.verify.VerifiedDetailActivity; 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.kit.ContextKit; @@ -61,14 +61,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifyFragment.java b/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifyFragment.java index 00039fc..d5a91fc 100644 --- a/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifyFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifyFragment.java @@ -12,13 +12,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentVerifyCaseBinding; import com.casic.dcms.model.VerifyCaseModel; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.verify.VerifyDetailActivity; 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.kit.ContextKit; @@ -61,14 +61,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java index b371a7c..ddddaf1 100644 --- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java +++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java @@ -594,8 +594,8 @@ /** * 路灯分页列表 */ - public static Observable getLightListResult(int limit, int offset) { - return api.getLightList(AuthenticationHelper.getToken(), limit, offset); + public static Observable getLightListResult(int offset) { + return api.getLightList(AuthenticationHelper.getToken(), LocaleConstant.PAGE_LIMIT, offset); } /** 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 82ecb71..77fed79 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java @@ -10,11 +10,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.ActivityCaseProcessBinding; import com.casic.dcms.model.CaseProcessBean; import com.casic.dcms.utils.ViewGroupHub; import com.casic.dcms.vm.CommonDataViewModel; -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.utils.Constant; diff --git a/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java b/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java index 1154918..4af8a96 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java @@ -10,11 +10,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.ActivityCaseListBinding; import com.casic.dcms.model.CaseSearchResultBean; import com.casic.dcms.utils.ViewGroupHub; 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.AndroidxBaseActivity; import com.pengxh.androidx.lite.kit.ContextKit; @@ -104,14 +104,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); binding.refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(context, "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); binding.refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java b/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java index efbd88d..2b7b698 100644 --- a/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java +++ b/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java @@ -13,12 +13,12 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.ActivityMaintainRecordBinding; import com.casic.dcms.model.MaintainRecordBean; import com.casic.dcms.utils.ViewGroupHub; import com.casic.dcms.vm.BridgeViewModel; import com.casic.dcms.widgets.RangeDateActionSheet; -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.divider.RecyclerViewItemDivider; @@ -76,14 +76,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); binding.refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(context, "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); binding.refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java b/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java index 53a3c59..8c65f4d 100644 --- a/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java +++ b/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java @@ -14,6 +14,7 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.ActivityPipeBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.AlarmDataBean; @@ -22,7 +23,6 @@ import com.casic.dcms.view.map.WarningOnMapActivity; import com.casic.dcms.vm.AlarmViewModel; import com.casic.dcms.widgets.CancelAlarmDialog; -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.divider.RecyclerViewItemDivider; @@ -109,14 +109,14 @@ SaveKeyValues.putValue("alarmTotal", alarmDataBean.getData().getTotal()); List dataRows = alarmDataBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); binding.refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(context, "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); binding.refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java b/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java index b1cb4df..1492a18 100644 --- a/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java +++ b/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java @@ -14,6 +14,7 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.ActivityWellListBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.WellListBean; @@ -21,7 +22,6 @@ import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.ViewGroupHub; import com.casic.dcms.vm.WellViewModel; -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.divider.RecyclerViewItemDivider; @@ -103,14 +103,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); binding.refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(context, "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); binding.refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java index 35ef2b0..14352aa 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java @@ -11,6 +11,7 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.ActivityCaseResourceBinding; import com.casic.dcms.model.CaseResourceBean; import com.casic.dcms.utils.ChartViewHelper; @@ -21,7 +22,6 @@ import com.casic.dcms.vm.DataAnalysisViewModel; import com.casic.dcms.widgets.RangeDateActionSheet; import com.github.mikephil.charting.data.PieEntry; -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.divider.RecyclerViewItemDivider; diff --git a/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java index 32f3f27..4c5ca87 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java @@ -8,13 +8,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.ActivityCityBaseDataBinding; import com.casic.dcms.model.CityBaseDataBean; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.ViewGroupHub; import com.casic.dcms.vm.DataAnalysisViewModel; -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.utils.LoadState; diff --git a/app/src/main/java/com/casic/dcms/view/statistics/DataAnalysisActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/DataAnalysisActivity.java index 769b6de..f3b24df 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/DataAnalysisActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/DataAnalysisActivity.java @@ -7,11 +7,11 @@ import androidx.annotation.Nullable; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.ActivityCaseAnalysisBinding; import com.casic.dcms.model.DataAnalysisGridModel; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.ViewGroupHub; -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.kit.ContextKit; diff --git a/app/src/main/java/com/casic/dcms/adapter/LightResultAdapter.java b/app/src/main/java/com/casic/dcms/adapter/LightResultAdapter.java deleted file mode 100644 index 405af6e..0000000 --- a/app/src/main/java/com/casic/dcms/adapter/LightResultAdapter.java +++ /dev/null @@ -1,107 +0,0 @@ -package com.casic.dcms.adapter; - -import android.annotation.SuppressLint; -import android.content.Context; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.ImageView; -import android.widget.TextView; - -import androidx.annotation.NonNull; -import androidx.recyclerview.widget.RecyclerView; - -import com.casic.dcms.R; -import com.casic.dcms.model.LightListBean; - -import java.util.List; - -public class LightResultAdapter extends RecyclerView.Adapter { - - private final List dataBeans; - private final LayoutInflater layoutInflater; - - public LightResultAdapter(Context context, List beans) { - this.dataBeans = beans; - this.layoutInflater = LayoutInflater.from(context); - } - - @NonNull - @Override - public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - return new ItemViewHolder(layoutInflater.inflate(R.layout.item_light_recycleview, parent, false)); - } - - @Override - public void onBindViewHolder(@NonNull LightResultAdapter.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); - } - }); - } - if (switchClickListener != null) { - holder.lightSwitch.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - switchClickListener.onClick(position); - } - }); - } - } - - @Override - public int getItemCount() { - return dataBeans.size(); - } - - private OnGridItemClickListener clickListener; - - public interface OnGridItemClickListener { - void onClick(int position); - } - - public void setOnGridItemClickListener(OnGridItemClickListener onGridItemClickListener) { - this.clickListener = onGridItemClickListener; - } - - private OnSwitchClickListener switchClickListener; - - public interface OnSwitchClickListener { - void onClick(int position); - } - - public void setOnSwitchClickListener(OnSwitchClickListener switchClickListener) { - this.switchClickListener = switchClickListener; - } - - static class ItemViewHolder extends RecyclerView.ViewHolder { - - private final TextView lightNameView; - private final TextView lightStatusView; - private final ImageView lightSwitch; - - ItemViewHolder(@NonNull View itemView) { - super(itemView); - lightNameView = itemView.findViewById(R.id.lightNameView); - lightStatusView = itemView.findViewById(R.id.lightStatusView); - lightSwitch = itemView.findViewById(R.id.lightSwitch); - } - - void bindView(LightListBean.DataBean.RowsBean dataBean) { - lightNameView.setText(dataBean.getLampName()); - String statusName = dataBean.getStatusName(); - lightStatusView.setText(statusName); - if (statusName.equals("灭灯")) { - lightSwitch.setBackgroundResource(R.drawable.ic_switch_off); - } else if (statusName.equals("报警")) { - lightSwitch.setBackgroundResource(R.drawable.ic_switch_warning); - } else { - lightSwitch.setBackgroundResource(R.drawable.ic_switch_on); - } - } - } -} diff --git a/app/src/main/java/com/casic/dcms/adapter/NormalRecyclerAdapter.java b/app/src/main/java/com/casic/dcms/adapter/NormalRecyclerAdapter.java new file mode 100644 index 0000000..c80e2d5 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/adapter/NormalRecyclerAdapter.java @@ -0,0 +1,134 @@ +package com.casic.dcms.adapter; + +import android.annotation.SuppressLint; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import androidx.annotation.LayoutRes; +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.DiffUtil; +import androidx.recyclerview.widget.RecyclerView; + +import com.pengxh.androidx.lite.adapter.ViewHolder; + +import java.util.List; + +/** + * RecyclerView普通列表适配器 + */ +public abstract class NormalRecyclerAdapter extends RecyclerView.Adapter { + + private static final String TAG = "NormalRecyclerAdapter"; + private final int xmlResource; + private final List dataRows; + + public NormalRecyclerAdapter(@LayoutRes int xmlResource, List dataRows) { + this.xmlResource = xmlResource; + this.dataRows = dataRows; + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + @NonNull + @Override + public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + return new ViewHolder(LayoutInflater.from(parent.getContext()).inflate(xmlResource, parent, false)); + } + + @Override + public void onBindViewHolder(@NonNull ViewHolder holder, @SuppressLint("RecyclerView") int position) { + convertView(holder, position, dataRows.get(position)); + + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (itemClickedListener == null) { + return; + } + itemClickedListener.onItemClicked(position, dataRows.get(position)); + } + }); + } + + public void refresh(List newRows) { + DiffUtil.Callback diffCallback = new DiffUtil.Callback() { + + @Override + public int getOldListSize() { + return dataRows.size(); + } + + @Override + public int getNewListSize() { + return newRows.size(); + } + + @Override + public boolean areItemsTheSame(int oldItemPosition, int newItemPosition) { + if (dataRows == null || newRows == null) { + return false; + } + + // 检查索引是否在有效范围内 + if (oldItemPosition < 0 || oldItemPosition >= dataRows.size() || + newItemPosition < 0 || newItemPosition >= newRows.size()) { + return false; + } + + // 获取元素并进行比较 + Object oldItem = dataRows.get(oldItemPosition); + Object newItem = newRows.get(newItemPosition); + + // 处理空指针情况 + if (oldItem == null && newItem == null) { + return true; + } + if (oldItem == null || newItem == null) { + return false; + } + + return oldItem.equals(newItem); + } + + @Override + public boolean areContentsTheSame(int oldItemPosition, int newItemPosition) { + return dataRows.get(oldItemPosition) == newRows.get(newItemPosition); + } + }; + + DiffUtil.DiffResult diffResult = DiffUtil.calculateDiff(diffCallback); + + dataRows.clear(); + dataRows.addAll(newRows); + + diffResult.dispatchUpdatesTo(this); + } + + /** + * 加载更多 + */ + public void loadMore(List newRows) { + if (newRows.isEmpty()) { + return; + } + int startPosition = this.dataRows.size(); + this.dataRows.addAll(newRows); + notifyItemRangeInserted(startPosition, newRows.size()); + } + + public abstract void convertView(ViewHolder viewHolder, int position, T item); + + private OnItemClickedListener itemClickedListener; + + public interface OnItemClickedListener { + void onItemClicked(int position, T t); + } + + public void setOnItemClickedListener(OnItemClickedListener listener) { + itemClickedListener = listener; + } +} diff --git a/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java b/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java index 1deb066..80f7b98 100644 --- a/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java @@ -58,13 +58,13 @@ } @SuppressLint("NotifyDataSetChanged") - public void setRefreshData(List dataRows) { + public void refresh(List dataRows) { this.dataRows.clear(); this.dataRows.addAll(dataRows); notifyDataSetChanged(); } - public void setLoadMoreData(List dataRows) { + public void loadMore(List dataRows) { this.dataRows.addAll(dataRows); notifyItemRangeInserted(this.dataRows.size(), dataRows.size()); } diff --git a/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java index 3535c40..bd5e484 100644 --- a/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java @@ -10,6 +10,7 @@ import com.bumptech.glide.Glide; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentHomeBinding; import com.casic.dcms.model.HomePageBean; import com.casic.dcms.model.UserBean; @@ -36,7 +37,6 @@ import com.casic.dcms.view.verify.VerifyCaseActivity; import com.casic.dcms.vm.HomePageViewModel; import com.casic.dcms.vm.UserViewModel; -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.kit.LongKit; diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java index 0d2926f..a9cc331 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java @@ -5,22 +5,26 @@ import android.os.Handler; import android.os.Message; import android.text.TextUtils; +import android.view.View; import androidx.annotation.NonNull; import androidx.annotation.Nullable; +import androidx.cardview.widget.CardView; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; -import com.casic.dcms.adapter.LightResultAdapter; +import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentLightListBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightDetailBean; import com.casic.dcms.model.LightListBean; -import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.vm.LightViewModel; import com.casic.dcms.widgets.LightDetailDialog; +import com.pengxh.androidx.lite.adapter.ViewHolder; import com.pengxh.androidx.lite.base.AndroidxBaseFragment; import com.pengxh.androidx.lite.divider.RecyclerViewItemDivider; +import com.pengxh.androidx.lite.kit.IntKit; import com.pengxh.androidx.lite.kit.StringKit; import com.pengxh.androidx.lite.utils.LoadState; import com.pengxh.androidx.lite.utils.LoadingDialog; @@ -37,7 +41,7 @@ private static final String TAG = "LightOnListFragment"; private final WeakReferenceHandler weakReferenceHandler = new WeakReferenceHandler(this); private LightViewModel lightViewModel; - private LightResultAdapter adapter; + private NormalRecyclerAdapter adapter; private List dataBeans = new ArrayList<>(); private int pageIndex = 1; private boolean isRefresh, isLoadMore = false; @@ -50,7 +54,7 @@ @Override protected void initOnCreate(@Nullable Bundle savedInstanceState) { lightViewModel = new ViewModelProvider(this).get(LightViewModel.class); - getLightList(); + lightViewModel.getLightList(pageIndex); } @Override @@ -67,10 +71,6 @@ }); } - private void getLightList() { - lightViewModel.getLightList(LocaleConstant.PAGE_LIMIT, pageIndex); - } - @Override protected void initEvent() { getBinding().refreshLayout.setOnRefreshListener(new OnRefreshListener() { @@ -79,7 +79,7 @@ isRefresh = true; //刷新之后页码重置 pageIndex = 1; - getLightList(); + lightViewModel.getLightList(pageIndex); } }); getBinding().refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() { @@ -87,7 +87,7 @@ public void onLoadMore(@NonNull final RefreshLayout refreshLayout) { isLoadMore = true; pageIndex++; - getLightList(); + lightViewModel.getLightList(pageIndex); } }); @@ -97,21 +97,20 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题 - dataBeans = dataRows; + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - dataBeans.addAll(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { dataBeans = dataRows; + weakReferenceHandler.sendEmptyMessage(20210623); } - weakReferenceHandler.sendEmptyMessage(20210623); } } }); @@ -138,54 +137,67 @@ @Override public boolean handleMessage(@NonNull Message msg) { if (msg.what == 20210623) { - if (isRefresh || isLoadMore) { - adapter.notifyItemRangeInserted(adapter.getItemCount(), LocaleConstant.PAGE_LIMIT); + //首次加载数据 + if (dataBeans.size() == 0) { + getBinding().emptyView.show("没有路灯数据", null); } else { - //首次加载数据 - if (dataBeans.size() == 0) { - getBinding().emptyView.show("没有路灯数据", null); - } else { - getBinding().emptyView.hide(); - adapter = new LightResultAdapter(requireContext(), dataBeans); - getBinding().recyclerView.addItemDecoration(new RecyclerViewItemDivider(1, Color.LTGRAY)); - getBinding().recyclerView.setAdapter(adapter); - adapter.setOnGridItemClickListener(new LightResultAdapter.OnGridItemClickListener() { - @Override - public void onClick(int position) { - String lampId = dataBeans.get(position).getLampId(); - if (TextUtils.isEmpty(lampId)) { - StringKit.show(requireContext(), "错误,路灯编号为空"); - return; - } + getBinding().emptyView.hide(); + adapter = new NormalRecyclerAdapter(R.layout.item_light_recycleview, dataBeans) { + @Override + public void convertView(ViewHolder viewHolder, int position, LightListBean.DataBean.RowsBean item) { + String statusName = item.getStatusName(); + viewHolder.setText(R.id.lightNameView, item.getLampName()) + .setText(R.id.lightStatusView, "已" + statusName); - lightViewModel.getLightDetail(requireContext(), lampId); + CardView statueTagView = viewHolder.getView(R.id.statueTagView); + if (statusName.equals("灭灯")) { + viewHolder.setImageResource(R.id.lightSwitch, R.drawable.ic_switch_off); + statueTagView.setCardBackgroundColor(IntKit.convertColor(requireContext(), R.color.darkGray)); + } else if (statusName.equals("报警")) { + viewHolder.setImageResource(R.id.lightSwitch, R.drawable.ic_switch_warning); + statueTagView.setCardBackgroundColor(IntKit.convertColor(requireContext(), R.color.warnColor)); + } else { + viewHolder.setImageResource(R.id.lightSwitch, R.drawable.ic_switch_on); + statueTagView.setCardBackgroundColor(IntKit.convertColor(requireContext(), R.color.onLineColor)); } - }); - adapter.setOnSwitchClickListener(new LightResultAdapter.OnSwitchClickListener() { - @Override - public void onClick(int position) { - LightListBean.DataBean.RowsBean rowsBean = dataBeans.get(position); + viewHolder.setOnClickListener(R.id.lightSwitch, new View.OnClickListener() { + @Override + public void onClick(View v) { + List lampIds = new ArrayList<>(); + lampIds.add(Long.parseLong(item.getLampId())); - List lampIds = new ArrayList<>(); - lampIds.add(Long.parseLong(rowsBean.getLampId())); - - String statusName = rowsBean.getStatusName(); - String controlType; - if (statusName.equals("离线")) { - controlType = "1"; - } else { - controlType = "0"; + String statusName = item.getStatusName(); + String controlType; + if (statusName.equals("灭灯")) { + controlType = "1"; + } else { + controlType = "0"; + } + lightViewModel.controlLight(requireContext(), lampIds, controlType); } - lightViewModel.controlLight(requireContext(), lampIds, controlType); + }); + } + }; + getBinding().recyclerView.addItemDecoration(new RecyclerViewItemDivider(1, Color.LTGRAY)); + getBinding().recyclerView.setAdapter(adapter); + adapter.setOnItemClickedListener(new NormalRecyclerAdapter.OnItemClickedListener() { + @Override + public void onItemClicked(int position, LightListBean.DataBean.RowsBean rowsBean) { + String lampId = rowsBean.getLampId(); + if (TextUtils.isEmpty(lampId)) { + StringKit.show(requireContext(), "错误,路灯编号为空"); + return; } - }); - } + + lightViewModel.getLightDetail(requireContext(), lampId); + } + }); } } else if (msg.what == 20210624) { isRefresh = true; pageIndex = 1; - lightViewModel.getLightList(LocaleConstant.PAGE_LIMIT, pageIndex); + lightViewModel.getLightList(pageIndex); } return true; } diff --git a/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java index 64791dd..8f872db 100644 --- a/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java @@ -6,12 +6,12 @@ import androidx.annotation.Nullable; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.bean.NoticeLocaleBean; import com.casic.dcms.databinding.FragmentNoticeBinding; import com.casic.dcms.utils.DataBaseManager; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.CaseDetailActivity; -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.kit.ContextKit; diff --git a/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java b/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java index 5980aaf..93ab96c 100644 --- a/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java @@ -87,14 +87,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/business/PackageTodoFragment.java b/app/src/main/java/com/casic/dcms/fragment/business/PackageTodoFragment.java index 9f28bbe..1fefd3f 100644 --- a/app/src/main/java/com/casic/dcms/fragment/business/PackageTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/business/PackageTodoFragment.java @@ -88,14 +88,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { 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 816fb8f..62db8ed 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 @@ -12,13 +12,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentCheckCaseBinding; import com.casic.dcms.model.CaseCheckModel; import com.casic.dcms.utils.LocaleConstant; 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.kit.ContextKit; @@ -61,14 +61,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { 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 e472cd6..27f60a2 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 @@ -12,13 +12,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentCheckCaseBinding; import com.casic.dcms.model.CaseCheckModel; import com.casic.dcms.utils.LocaleConstant; 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.kit.ContextKit; @@ -62,14 +62,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAdjustFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAdjustFragment.java index 23a4f8e..fdee789 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAdjustFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAdjustFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.AdjustCaseModel; import com.casic.dcms.view.department.DeptAdjustDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -57,14 +57,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAuthorizeFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAuthorizeFragment.java index f5ba0b0..b5d807e 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAuthorizeFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAuthorizeFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.AuthorizeCaseModel; import com.casic.dcms.view.department.DeptAuthorizeDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -57,14 +57,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseDelayedFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseDelayedFragment.java index e16d47d..52c88fd 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseDelayedFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseDelayedFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.DelayedCaseModel; import com.casic.dcms.view.CaseDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -57,14 +57,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseHandledFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseHandledFragment.java index 0acf747..2ce5297 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseHandledFragment.java @@ -12,12 +12,12 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.HandledCaseModel; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.CaseDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -59,14 +59,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCasePostponeFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCasePostponeFragment.java index b2a3047..d8b3396 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCasePostponeFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCasePostponeFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.PostCaseModel; import com.casic.dcms.view.CaseDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -57,14 +57,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseProcessFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseProcessFragment.java index ef78a7d..2c5f4d7 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseProcessFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseProcessFragment.java @@ -12,12 +12,12 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.HandleCaseModel; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.view.department.DeptTodoDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.StringKit; @@ -58,14 +58,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseTodoFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseTodoFragment.java index 2f8cb8a..febcb54 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseTodoFragment.java @@ -13,13 +13,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.TodoCaseModel; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.department.DeptTodoDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.StringKit; @@ -60,14 +60,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/handle/CaseHandledFragment.java b/app/src/main/java/com/casic/dcms/fragment/handle/CaseHandledFragment.java index d61fff7..d8d825f 100644 --- a/app/src/main/java/com/casic/dcms/fragment/handle/CaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/handle/CaseHandledFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentHandleCaseBinding; import com.casic.dcms.model.CaseHandledBean; import com.casic.dcms.view.handle.CaseHandledDetailActivity; 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.kit.ContextKit; @@ -58,14 +58,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/handle/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/fragment/handle/CaseTodoFragment.java index 2196251..26d0942 100644 --- a/app/src/main/java/com/casic/dcms/fragment/handle/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/handle/CaseTodoFragment.java @@ -13,12 +13,12 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentHandleCaseBinding; import com.casic.dcms.model.CaseHandleBean; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.handle.CaseHandleDetailActivity; 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.kit.StringKit; @@ -60,14 +60,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/overtime/CaseHandledFragment.java b/app/src/main/java/com/casic/dcms/fragment/overtime/CaseHandledFragment.java index 5cb44da..3424ebd 100644 --- a/app/src/main/java/com/casic/dcms/fragment/overtime/CaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/overtime/CaseHandledFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentOvertimeCaseBinding; import com.casic.dcms.model.OvertimeCaseBean; import com.casic.dcms.view.CaseTodoHandledDetailActivity; 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.kit.ContextKit; @@ -58,14 +58,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/overtime/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/fragment/overtime/CaseTodoFragment.java index a98bde5..1c2c20d 100644 --- a/app/src/main/java/com/casic/dcms/fragment/overtime/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/overtime/CaseTodoFragment.java @@ -12,11 +12,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentOvertimeCaseBinding; import com.casic.dcms.model.OvertimeCaseBean; import com.casic.dcms.view.CaseTodoDetailActivity; 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.kit.StringKit; @@ -58,14 +58,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/urgent/CaseHandledFragment.java b/app/src/main/java/com/casic/dcms/fragment/urgent/CaseHandledFragment.java index b55651f..2cc0a02 100644 --- a/app/src/main/java/com/casic/dcms/fragment/urgent/CaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/urgent/CaseHandledFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentUrgentCaseBinding; import com.casic.dcms.model.UrgentCaseBean; import com.casic.dcms.view.CaseTodoHandledDetailActivity; 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.kit.ContextKit; @@ -58,14 +58,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/urgent/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/fragment/urgent/CaseTodoFragment.java index 854d6f8..54b773e 100644 --- a/app/src/main/java/com/casic/dcms/fragment/urgent/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/urgent/CaseTodoFragment.java @@ -12,11 +12,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentUrgentCaseBinding; import com.casic.dcms.model.UrgentCaseBean; import com.casic.dcms.view.CaseTodoDetailActivity; 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.kit.StringKit; @@ -58,14 +58,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifiedFragment.java b/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifiedFragment.java index b5a130e..426878b 100644 --- a/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifiedFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifiedFragment.java @@ -12,13 +12,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentVerifyCaseBinding; import com.casic.dcms.model.VerifiedCaseModel; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.verify.VerifiedDetailActivity; 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.kit.ContextKit; @@ -61,14 +61,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifyFragment.java b/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifyFragment.java index 00039fc..d5a91fc 100644 --- a/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifyFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifyFragment.java @@ -12,13 +12,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentVerifyCaseBinding; import com.casic.dcms.model.VerifyCaseModel; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.verify.VerifyDetailActivity; 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.kit.ContextKit; @@ -61,14 +61,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java index b371a7c..ddddaf1 100644 --- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java +++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java @@ -594,8 +594,8 @@ /** * 路灯分页列表 */ - public static Observable getLightListResult(int limit, int offset) { - return api.getLightList(AuthenticationHelper.getToken(), limit, offset); + public static Observable getLightListResult(int offset) { + return api.getLightList(AuthenticationHelper.getToken(), LocaleConstant.PAGE_LIMIT, offset); } /** 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 82ecb71..77fed79 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java @@ -10,11 +10,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.ActivityCaseProcessBinding; import com.casic.dcms.model.CaseProcessBean; import com.casic.dcms.utils.ViewGroupHub; import com.casic.dcms.vm.CommonDataViewModel; -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.utils.Constant; diff --git a/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java b/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java index 1154918..4af8a96 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java @@ -10,11 +10,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.ActivityCaseListBinding; import com.casic.dcms.model.CaseSearchResultBean; import com.casic.dcms.utils.ViewGroupHub; 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.AndroidxBaseActivity; import com.pengxh.androidx.lite.kit.ContextKit; @@ -104,14 +104,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); binding.refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(context, "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); binding.refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java b/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java index efbd88d..2b7b698 100644 --- a/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java +++ b/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java @@ -13,12 +13,12 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.ActivityMaintainRecordBinding; import com.casic.dcms.model.MaintainRecordBean; import com.casic.dcms.utils.ViewGroupHub; import com.casic.dcms.vm.BridgeViewModel; import com.casic.dcms.widgets.RangeDateActionSheet; -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.divider.RecyclerViewItemDivider; @@ -76,14 +76,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); binding.refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(context, "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); binding.refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java b/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java index 53a3c59..8c65f4d 100644 --- a/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java +++ b/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java @@ -14,6 +14,7 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.ActivityPipeBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.AlarmDataBean; @@ -22,7 +23,6 @@ import com.casic.dcms.view.map.WarningOnMapActivity; import com.casic.dcms.vm.AlarmViewModel; import com.casic.dcms.widgets.CancelAlarmDialog; -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.divider.RecyclerViewItemDivider; @@ -109,14 +109,14 @@ SaveKeyValues.putValue("alarmTotal", alarmDataBean.getData().getTotal()); List dataRows = alarmDataBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); binding.refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(context, "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); binding.refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java b/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java index b1cb4df..1492a18 100644 --- a/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java +++ b/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java @@ -14,6 +14,7 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.ActivityWellListBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.WellListBean; @@ -21,7 +22,6 @@ import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.ViewGroupHub; import com.casic.dcms.vm.WellViewModel; -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.divider.RecyclerViewItemDivider; @@ -103,14 +103,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); binding.refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(context, "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); binding.refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java index 35ef2b0..14352aa 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java @@ -11,6 +11,7 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.ActivityCaseResourceBinding; import com.casic.dcms.model.CaseResourceBean; import com.casic.dcms.utils.ChartViewHelper; @@ -21,7 +22,6 @@ import com.casic.dcms.vm.DataAnalysisViewModel; import com.casic.dcms.widgets.RangeDateActionSheet; import com.github.mikephil.charting.data.PieEntry; -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.divider.RecyclerViewItemDivider; diff --git a/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java index 32f3f27..4c5ca87 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java @@ -8,13 +8,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.ActivityCityBaseDataBinding; import com.casic.dcms.model.CityBaseDataBean; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.ViewGroupHub; import com.casic.dcms.vm.DataAnalysisViewModel; -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.utils.LoadState; diff --git a/app/src/main/java/com/casic/dcms/view/statistics/DataAnalysisActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/DataAnalysisActivity.java index 769b6de..f3b24df 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/DataAnalysisActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/DataAnalysisActivity.java @@ -7,11 +7,11 @@ import androidx.annotation.Nullable; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.ActivityCaseAnalysisBinding; import com.casic.dcms.model.DataAnalysisGridModel; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.ViewGroupHub; -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.kit.ContextKit; diff --git a/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java index 3f6adb6..d154820 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java @@ -11,6 +11,7 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.ActivityDeptHandleConditionBinding; import com.casic.dcms.model.DeptHandleConditionBean; import com.casic.dcms.utils.ChartViewHelper; @@ -21,7 +22,6 @@ import com.casic.dcms.vm.DataAnalysisViewModel; import com.casic.dcms.widgets.RangeDateActionSheet; import com.github.mikephil.charting.data.BarEntry; -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.divider.RecyclerViewItemDivider; diff --git a/app/src/main/java/com/casic/dcms/adapter/LightResultAdapter.java b/app/src/main/java/com/casic/dcms/adapter/LightResultAdapter.java deleted file mode 100644 index 405af6e..0000000 --- a/app/src/main/java/com/casic/dcms/adapter/LightResultAdapter.java +++ /dev/null @@ -1,107 +0,0 @@ -package com.casic.dcms.adapter; - -import android.annotation.SuppressLint; -import android.content.Context; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.ImageView; -import android.widget.TextView; - -import androidx.annotation.NonNull; -import androidx.recyclerview.widget.RecyclerView; - -import com.casic.dcms.R; -import com.casic.dcms.model.LightListBean; - -import java.util.List; - -public class LightResultAdapter extends RecyclerView.Adapter { - - private final List dataBeans; - private final LayoutInflater layoutInflater; - - public LightResultAdapter(Context context, List beans) { - this.dataBeans = beans; - this.layoutInflater = LayoutInflater.from(context); - } - - @NonNull - @Override - public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - return new ItemViewHolder(layoutInflater.inflate(R.layout.item_light_recycleview, parent, false)); - } - - @Override - public void onBindViewHolder(@NonNull LightResultAdapter.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); - } - }); - } - if (switchClickListener != null) { - holder.lightSwitch.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - switchClickListener.onClick(position); - } - }); - } - } - - @Override - public int getItemCount() { - return dataBeans.size(); - } - - private OnGridItemClickListener clickListener; - - public interface OnGridItemClickListener { - void onClick(int position); - } - - public void setOnGridItemClickListener(OnGridItemClickListener onGridItemClickListener) { - this.clickListener = onGridItemClickListener; - } - - private OnSwitchClickListener switchClickListener; - - public interface OnSwitchClickListener { - void onClick(int position); - } - - public void setOnSwitchClickListener(OnSwitchClickListener switchClickListener) { - this.switchClickListener = switchClickListener; - } - - static class ItemViewHolder extends RecyclerView.ViewHolder { - - private final TextView lightNameView; - private final TextView lightStatusView; - private final ImageView lightSwitch; - - ItemViewHolder(@NonNull View itemView) { - super(itemView); - lightNameView = itemView.findViewById(R.id.lightNameView); - lightStatusView = itemView.findViewById(R.id.lightStatusView); - lightSwitch = itemView.findViewById(R.id.lightSwitch); - } - - void bindView(LightListBean.DataBean.RowsBean dataBean) { - lightNameView.setText(dataBean.getLampName()); - String statusName = dataBean.getStatusName(); - lightStatusView.setText(statusName); - if (statusName.equals("灭灯")) { - lightSwitch.setBackgroundResource(R.drawable.ic_switch_off); - } else if (statusName.equals("报警")) { - lightSwitch.setBackgroundResource(R.drawable.ic_switch_warning); - } else { - lightSwitch.setBackgroundResource(R.drawable.ic_switch_on); - } - } - } -} diff --git a/app/src/main/java/com/casic/dcms/adapter/NormalRecyclerAdapter.java b/app/src/main/java/com/casic/dcms/adapter/NormalRecyclerAdapter.java new file mode 100644 index 0000000..c80e2d5 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/adapter/NormalRecyclerAdapter.java @@ -0,0 +1,134 @@ +package com.casic.dcms.adapter; + +import android.annotation.SuppressLint; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import androidx.annotation.LayoutRes; +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.DiffUtil; +import androidx.recyclerview.widget.RecyclerView; + +import com.pengxh.androidx.lite.adapter.ViewHolder; + +import java.util.List; + +/** + * RecyclerView普通列表适配器 + */ +public abstract class NormalRecyclerAdapter extends RecyclerView.Adapter { + + private static final String TAG = "NormalRecyclerAdapter"; + private final int xmlResource; + private final List dataRows; + + public NormalRecyclerAdapter(@LayoutRes int xmlResource, List dataRows) { + this.xmlResource = xmlResource; + this.dataRows = dataRows; + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + @NonNull + @Override + public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + return new ViewHolder(LayoutInflater.from(parent.getContext()).inflate(xmlResource, parent, false)); + } + + @Override + public void onBindViewHolder(@NonNull ViewHolder holder, @SuppressLint("RecyclerView") int position) { + convertView(holder, position, dataRows.get(position)); + + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (itemClickedListener == null) { + return; + } + itemClickedListener.onItemClicked(position, dataRows.get(position)); + } + }); + } + + public void refresh(List newRows) { + DiffUtil.Callback diffCallback = new DiffUtil.Callback() { + + @Override + public int getOldListSize() { + return dataRows.size(); + } + + @Override + public int getNewListSize() { + return newRows.size(); + } + + @Override + public boolean areItemsTheSame(int oldItemPosition, int newItemPosition) { + if (dataRows == null || newRows == null) { + return false; + } + + // 检查索引是否在有效范围内 + if (oldItemPosition < 0 || oldItemPosition >= dataRows.size() || + newItemPosition < 0 || newItemPosition >= newRows.size()) { + return false; + } + + // 获取元素并进行比较 + Object oldItem = dataRows.get(oldItemPosition); + Object newItem = newRows.get(newItemPosition); + + // 处理空指针情况 + if (oldItem == null && newItem == null) { + return true; + } + if (oldItem == null || newItem == null) { + return false; + } + + return oldItem.equals(newItem); + } + + @Override + public boolean areContentsTheSame(int oldItemPosition, int newItemPosition) { + return dataRows.get(oldItemPosition) == newRows.get(newItemPosition); + } + }; + + DiffUtil.DiffResult diffResult = DiffUtil.calculateDiff(diffCallback); + + dataRows.clear(); + dataRows.addAll(newRows); + + diffResult.dispatchUpdatesTo(this); + } + + /** + * 加载更多 + */ + public void loadMore(List newRows) { + if (newRows.isEmpty()) { + return; + } + int startPosition = this.dataRows.size(); + this.dataRows.addAll(newRows); + notifyItemRangeInserted(startPosition, newRows.size()); + } + + public abstract void convertView(ViewHolder viewHolder, int position, T item); + + private OnItemClickedListener itemClickedListener; + + public interface OnItemClickedListener { + void onItemClicked(int position, T t); + } + + public void setOnItemClickedListener(OnItemClickedListener listener) { + itemClickedListener = listener; + } +} diff --git a/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java b/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java index 1deb066..80f7b98 100644 --- a/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java @@ -58,13 +58,13 @@ } @SuppressLint("NotifyDataSetChanged") - public void setRefreshData(List dataRows) { + public void refresh(List dataRows) { this.dataRows.clear(); this.dataRows.addAll(dataRows); notifyDataSetChanged(); } - public void setLoadMoreData(List dataRows) { + public void loadMore(List dataRows) { this.dataRows.addAll(dataRows); notifyItemRangeInserted(this.dataRows.size(), dataRows.size()); } diff --git a/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java index 3535c40..bd5e484 100644 --- a/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java @@ -10,6 +10,7 @@ import com.bumptech.glide.Glide; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentHomeBinding; import com.casic.dcms.model.HomePageBean; import com.casic.dcms.model.UserBean; @@ -36,7 +37,6 @@ import com.casic.dcms.view.verify.VerifyCaseActivity; import com.casic.dcms.vm.HomePageViewModel; import com.casic.dcms.vm.UserViewModel; -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.kit.LongKit; diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java index 0d2926f..a9cc331 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java @@ -5,22 +5,26 @@ import android.os.Handler; import android.os.Message; import android.text.TextUtils; +import android.view.View; import androidx.annotation.NonNull; import androidx.annotation.Nullable; +import androidx.cardview.widget.CardView; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; -import com.casic.dcms.adapter.LightResultAdapter; +import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentLightListBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightDetailBean; import com.casic.dcms.model.LightListBean; -import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.vm.LightViewModel; import com.casic.dcms.widgets.LightDetailDialog; +import com.pengxh.androidx.lite.adapter.ViewHolder; import com.pengxh.androidx.lite.base.AndroidxBaseFragment; import com.pengxh.androidx.lite.divider.RecyclerViewItemDivider; +import com.pengxh.androidx.lite.kit.IntKit; import com.pengxh.androidx.lite.kit.StringKit; import com.pengxh.androidx.lite.utils.LoadState; import com.pengxh.androidx.lite.utils.LoadingDialog; @@ -37,7 +41,7 @@ private static final String TAG = "LightOnListFragment"; private final WeakReferenceHandler weakReferenceHandler = new WeakReferenceHandler(this); private LightViewModel lightViewModel; - private LightResultAdapter adapter; + private NormalRecyclerAdapter adapter; private List dataBeans = new ArrayList<>(); private int pageIndex = 1; private boolean isRefresh, isLoadMore = false; @@ -50,7 +54,7 @@ @Override protected void initOnCreate(@Nullable Bundle savedInstanceState) { lightViewModel = new ViewModelProvider(this).get(LightViewModel.class); - getLightList(); + lightViewModel.getLightList(pageIndex); } @Override @@ -67,10 +71,6 @@ }); } - private void getLightList() { - lightViewModel.getLightList(LocaleConstant.PAGE_LIMIT, pageIndex); - } - @Override protected void initEvent() { getBinding().refreshLayout.setOnRefreshListener(new OnRefreshListener() { @@ -79,7 +79,7 @@ isRefresh = true; //刷新之后页码重置 pageIndex = 1; - getLightList(); + lightViewModel.getLightList(pageIndex); } }); getBinding().refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() { @@ -87,7 +87,7 @@ public void onLoadMore(@NonNull final RefreshLayout refreshLayout) { isLoadMore = true; pageIndex++; - getLightList(); + lightViewModel.getLightList(pageIndex); } }); @@ -97,21 +97,20 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题 - dataBeans = dataRows; + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - dataBeans.addAll(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { dataBeans = dataRows; + weakReferenceHandler.sendEmptyMessage(20210623); } - weakReferenceHandler.sendEmptyMessage(20210623); } } }); @@ -138,54 +137,67 @@ @Override public boolean handleMessage(@NonNull Message msg) { if (msg.what == 20210623) { - if (isRefresh || isLoadMore) { - adapter.notifyItemRangeInserted(adapter.getItemCount(), LocaleConstant.PAGE_LIMIT); + //首次加载数据 + if (dataBeans.size() == 0) { + getBinding().emptyView.show("没有路灯数据", null); } else { - //首次加载数据 - if (dataBeans.size() == 0) { - getBinding().emptyView.show("没有路灯数据", null); - } else { - getBinding().emptyView.hide(); - adapter = new LightResultAdapter(requireContext(), dataBeans); - getBinding().recyclerView.addItemDecoration(new RecyclerViewItemDivider(1, Color.LTGRAY)); - getBinding().recyclerView.setAdapter(adapter); - adapter.setOnGridItemClickListener(new LightResultAdapter.OnGridItemClickListener() { - @Override - public void onClick(int position) { - String lampId = dataBeans.get(position).getLampId(); - if (TextUtils.isEmpty(lampId)) { - StringKit.show(requireContext(), "错误,路灯编号为空"); - return; - } + getBinding().emptyView.hide(); + adapter = new NormalRecyclerAdapter(R.layout.item_light_recycleview, dataBeans) { + @Override + public void convertView(ViewHolder viewHolder, int position, LightListBean.DataBean.RowsBean item) { + String statusName = item.getStatusName(); + viewHolder.setText(R.id.lightNameView, item.getLampName()) + .setText(R.id.lightStatusView, "已" + statusName); - lightViewModel.getLightDetail(requireContext(), lampId); + CardView statueTagView = viewHolder.getView(R.id.statueTagView); + if (statusName.equals("灭灯")) { + viewHolder.setImageResource(R.id.lightSwitch, R.drawable.ic_switch_off); + statueTagView.setCardBackgroundColor(IntKit.convertColor(requireContext(), R.color.darkGray)); + } else if (statusName.equals("报警")) { + viewHolder.setImageResource(R.id.lightSwitch, R.drawable.ic_switch_warning); + statueTagView.setCardBackgroundColor(IntKit.convertColor(requireContext(), R.color.warnColor)); + } else { + viewHolder.setImageResource(R.id.lightSwitch, R.drawable.ic_switch_on); + statueTagView.setCardBackgroundColor(IntKit.convertColor(requireContext(), R.color.onLineColor)); } - }); - adapter.setOnSwitchClickListener(new LightResultAdapter.OnSwitchClickListener() { - @Override - public void onClick(int position) { - LightListBean.DataBean.RowsBean rowsBean = dataBeans.get(position); + viewHolder.setOnClickListener(R.id.lightSwitch, new View.OnClickListener() { + @Override + public void onClick(View v) { + List lampIds = new ArrayList<>(); + lampIds.add(Long.parseLong(item.getLampId())); - List lampIds = new ArrayList<>(); - lampIds.add(Long.parseLong(rowsBean.getLampId())); - - String statusName = rowsBean.getStatusName(); - String controlType; - if (statusName.equals("离线")) { - controlType = "1"; - } else { - controlType = "0"; + String statusName = item.getStatusName(); + String controlType; + if (statusName.equals("灭灯")) { + controlType = "1"; + } else { + controlType = "0"; + } + lightViewModel.controlLight(requireContext(), lampIds, controlType); } - lightViewModel.controlLight(requireContext(), lampIds, controlType); + }); + } + }; + getBinding().recyclerView.addItemDecoration(new RecyclerViewItemDivider(1, Color.LTGRAY)); + getBinding().recyclerView.setAdapter(adapter); + adapter.setOnItemClickedListener(new NormalRecyclerAdapter.OnItemClickedListener() { + @Override + public void onItemClicked(int position, LightListBean.DataBean.RowsBean rowsBean) { + String lampId = rowsBean.getLampId(); + if (TextUtils.isEmpty(lampId)) { + StringKit.show(requireContext(), "错误,路灯编号为空"); + return; } - }); - } + + lightViewModel.getLightDetail(requireContext(), lampId); + } + }); } } else if (msg.what == 20210624) { isRefresh = true; pageIndex = 1; - lightViewModel.getLightList(LocaleConstant.PAGE_LIMIT, pageIndex); + lightViewModel.getLightList(pageIndex); } return true; } diff --git a/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java index 64791dd..8f872db 100644 --- a/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java @@ -6,12 +6,12 @@ import androidx.annotation.Nullable; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.bean.NoticeLocaleBean; import com.casic.dcms.databinding.FragmentNoticeBinding; import com.casic.dcms.utils.DataBaseManager; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.CaseDetailActivity; -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.kit.ContextKit; diff --git a/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java b/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java index 5980aaf..93ab96c 100644 --- a/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java @@ -87,14 +87,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/business/PackageTodoFragment.java b/app/src/main/java/com/casic/dcms/fragment/business/PackageTodoFragment.java index 9f28bbe..1fefd3f 100644 --- a/app/src/main/java/com/casic/dcms/fragment/business/PackageTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/business/PackageTodoFragment.java @@ -88,14 +88,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { 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 816fb8f..62db8ed 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 @@ -12,13 +12,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentCheckCaseBinding; import com.casic.dcms.model.CaseCheckModel; import com.casic.dcms.utils.LocaleConstant; 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.kit.ContextKit; @@ -61,14 +61,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { 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 e472cd6..27f60a2 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 @@ -12,13 +12,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentCheckCaseBinding; import com.casic.dcms.model.CaseCheckModel; import com.casic.dcms.utils.LocaleConstant; 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.kit.ContextKit; @@ -62,14 +62,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAdjustFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAdjustFragment.java index 23a4f8e..fdee789 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAdjustFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAdjustFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.AdjustCaseModel; import com.casic.dcms.view.department.DeptAdjustDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -57,14 +57,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAuthorizeFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAuthorizeFragment.java index f5ba0b0..b5d807e 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAuthorizeFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAuthorizeFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.AuthorizeCaseModel; import com.casic.dcms.view.department.DeptAuthorizeDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -57,14 +57,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseDelayedFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseDelayedFragment.java index e16d47d..52c88fd 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseDelayedFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseDelayedFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.DelayedCaseModel; import com.casic.dcms.view.CaseDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -57,14 +57,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseHandledFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseHandledFragment.java index 0acf747..2ce5297 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseHandledFragment.java @@ -12,12 +12,12 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.HandledCaseModel; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.CaseDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -59,14 +59,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCasePostponeFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCasePostponeFragment.java index b2a3047..d8b3396 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCasePostponeFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCasePostponeFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.PostCaseModel; import com.casic.dcms.view.CaseDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -57,14 +57,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseProcessFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseProcessFragment.java index ef78a7d..2c5f4d7 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseProcessFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseProcessFragment.java @@ -12,12 +12,12 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.HandleCaseModel; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.view.department.DeptTodoDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.StringKit; @@ -58,14 +58,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseTodoFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseTodoFragment.java index 2f8cb8a..febcb54 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseTodoFragment.java @@ -13,13 +13,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.TodoCaseModel; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.department.DeptTodoDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.StringKit; @@ -60,14 +60,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/handle/CaseHandledFragment.java b/app/src/main/java/com/casic/dcms/fragment/handle/CaseHandledFragment.java index d61fff7..d8d825f 100644 --- a/app/src/main/java/com/casic/dcms/fragment/handle/CaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/handle/CaseHandledFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentHandleCaseBinding; import com.casic.dcms.model.CaseHandledBean; import com.casic.dcms.view.handle.CaseHandledDetailActivity; 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.kit.ContextKit; @@ -58,14 +58,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/handle/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/fragment/handle/CaseTodoFragment.java index 2196251..26d0942 100644 --- a/app/src/main/java/com/casic/dcms/fragment/handle/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/handle/CaseTodoFragment.java @@ -13,12 +13,12 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentHandleCaseBinding; import com.casic.dcms.model.CaseHandleBean; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.handle.CaseHandleDetailActivity; 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.kit.StringKit; @@ -60,14 +60,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/overtime/CaseHandledFragment.java b/app/src/main/java/com/casic/dcms/fragment/overtime/CaseHandledFragment.java index 5cb44da..3424ebd 100644 --- a/app/src/main/java/com/casic/dcms/fragment/overtime/CaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/overtime/CaseHandledFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentOvertimeCaseBinding; import com.casic.dcms.model.OvertimeCaseBean; import com.casic.dcms.view.CaseTodoHandledDetailActivity; 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.kit.ContextKit; @@ -58,14 +58,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/overtime/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/fragment/overtime/CaseTodoFragment.java index a98bde5..1c2c20d 100644 --- a/app/src/main/java/com/casic/dcms/fragment/overtime/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/overtime/CaseTodoFragment.java @@ -12,11 +12,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentOvertimeCaseBinding; import com.casic.dcms.model.OvertimeCaseBean; import com.casic.dcms.view.CaseTodoDetailActivity; 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.kit.StringKit; @@ -58,14 +58,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/urgent/CaseHandledFragment.java b/app/src/main/java/com/casic/dcms/fragment/urgent/CaseHandledFragment.java index b55651f..2cc0a02 100644 --- a/app/src/main/java/com/casic/dcms/fragment/urgent/CaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/urgent/CaseHandledFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentUrgentCaseBinding; import com.casic.dcms.model.UrgentCaseBean; import com.casic.dcms.view.CaseTodoHandledDetailActivity; 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.kit.ContextKit; @@ -58,14 +58,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/urgent/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/fragment/urgent/CaseTodoFragment.java index 854d6f8..54b773e 100644 --- a/app/src/main/java/com/casic/dcms/fragment/urgent/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/urgent/CaseTodoFragment.java @@ -12,11 +12,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentUrgentCaseBinding; import com.casic.dcms.model.UrgentCaseBean; import com.casic.dcms.view.CaseTodoDetailActivity; 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.kit.StringKit; @@ -58,14 +58,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifiedFragment.java b/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifiedFragment.java index b5a130e..426878b 100644 --- a/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifiedFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifiedFragment.java @@ -12,13 +12,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentVerifyCaseBinding; import com.casic.dcms.model.VerifiedCaseModel; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.verify.VerifiedDetailActivity; 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.kit.ContextKit; @@ -61,14 +61,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifyFragment.java b/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifyFragment.java index 00039fc..d5a91fc 100644 --- a/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifyFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifyFragment.java @@ -12,13 +12,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentVerifyCaseBinding; import com.casic.dcms.model.VerifyCaseModel; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.verify.VerifyDetailActivity; 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.kit.ContextKit; @@ -61,14 +61,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java index b371a7c..ddddaf1 100644 --- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java +++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java @@ -594,8 +594,8 @@ /** * 路灯分页列表 */ - public static Observable getLightListResult(int limit, int offset) { - return api.getLightList(AuthenticationHelper.getToken(), limit, offset); + public static Observable getLightListResult(int offset) { + return api.getLightList(AuthenticationHelper.getToken(), LocaleConstant.PAGE_LIMIT, offset); } /** 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 82ecb71..77fed79 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java @@ -10,11 +10,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.ActivityCaseProcessBinding; import com.casic.dcms.model.CaseProcessBean; import com.casic.dcms.utils.ViewGroupHub; import com.casic.dcms.vm.CommonDataViewModel; -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.utils.Constant; diff --git a/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java b/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java index 1154918..4af8a96 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java @@ -10,11 +10,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.ActivityCaseListBinding; import com.casic.dcms.model.CaseSearchResultBean; import com.casic.dcms.utils.ViewGroupHub; 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.AndroidxBaseActivity; import com.pengxh.androidx.lite.kit.ContextKit; @@ -104,14 +104,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); binding.refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(context, "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); binding.refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java b/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java index efbd88d..2b7b698 100644 --- a/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java +++ b/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java @@ -13,12 +13,12 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.ActivityMaintainRecordBinding; import com.casic.dcms.model.MaintainRecordBean; import com.casic.dcms.utils.ViewGroupHub; import com.casic.dcms.vm.BridgeViewModel; import com.casic.dcms.widgets.RangeDateActionSheet; -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.divider.RecyclerViewItemDivider; @@ -76,14 +76,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); binding.refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(context, "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); binding.refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java b/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java index 53a3c59..8c65f4d 100644 --- a/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java +++ b/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java @@ -14,6 +14,7 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.ActivityPipeBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.AlarmDataBean; @@ -22,7 +23,6 @@ import com.casic.dcms.view.map.WarningOnMapActivity; import com.casic.dcms.vm.AlarmViewModel; import com.casic.dcms.widgets.CancelAlarmDialog; -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.divider.RecyclerViewItemDivider; @@ -109,14 +109,14 @@ SaveKeyValues.putValue("alarmTotal", alarmDataBean.getData().getTotal()); List dataRows = alarmDataBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); binding.refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(context, "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); binding.refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java b/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java index b1cb4df..1492a18 100644 --- a/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java +++ b/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java @@ -14,6 +14,7 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.ActivityWellListBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.WellListBean; @@ -21,7 +22,6 @@ import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.ViewGroupHub; import com.casic.dcms.vm.WellViewModel; -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.divider.RecyclerViewItemDivider; @@ -103,14 +103,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); binding.refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(context, "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); binding.refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java index 35ef2b0..14352aa 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java @@ -11,6 +11,7 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.ActivityCaseResourceBinding; import com.casic.dcms.model.CaseResourceBean; import com.casic.dcms.utils.ChartViewHelper; @@ -21,7 +22,6 @@ import com.casic.dcms.vm.DataAnalysisViewModel; import com.casic.dcms.widgets.RangeDateActionSheet; import com.github.mikephil.charting.data.PieEntry; -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.divider.RecyclerViewItemDivider; diff --git a/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java index 32f3f27..4c5ca87 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java @@ -8,13 +8,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.ActivityCityBaseDataBinding; import com.casic.dcms.model.CityBaseDataBean; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.ViewGroupHub; import com.casic.dcms.vm.DataAnalysisViewModel; -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.utils.LoadState; diff --git a/app/src/main/java/com/casic/dcms/view/statistics/DataAnalysisActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/DataAnalysisActivity.java index 769b6de..f3b24df 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/DataAnalysisActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/DataAnalysisActivity.java @@ -7,11 +7,11 @@ import androidx.annotation.Nullable; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.ActivityCaseAnalysisBinding; import com.casic.dcms.model.DataAnalysisGridModel; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.ViewGroupHub; -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.kit.ContextKit; diff --git a/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java index 3f6adb6..d154820 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java @@ -11,6 +11,7 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.ActivityDeptHandleConditionBinding; import com.casic.dcms.model.DeptHandleConditionBean; import com.casic.dcms.utils.ChartViewHelper; @@ -21,7 +22,6 @@ import com.casic.dcms.vm.DataAnalysisViewModel; import com.casic.dcms.widgets.RangeDateActionSheet; import com.github.mikephil.charting.data.BarEntry; -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.divider.RecyclerViewItemDivider; diff --git a/app/src/main/java/com/casic/dcms/view/statistics/GridAnalysisActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/GridAnalysisActivity.java index ff22d41..9dbcc25 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/GridAnalysisActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/GridAnalysisActivity.java @@ -12,6 +12,7 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.ActivityGridAnalysisBinding; import com.casic.dcms.model.GridAnalysisBean; import com.casic.dcms.utils.ColorHub; @@ -20,7 +21,6 @@ import com.casic.dcms.utils.ViewGroupHub; import com.casic.dcms.vm.DataAnalysisViewModel; import com.casic.dcms.widgets.RangeDateActionSheet; -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.divider.RecyclerViewItemDivider; diff --git a/app/src/main/java/com/casic/dcms/adapter/LightResultAdapter.java b/app/src/main/java/com/casic/dcms/adapter/LightResultAdapter.java deleted file mode 100644 index 405af6e..0000000 --- a/app/src/main/java/com/casic/dcms/adapter/LightResultAdapter.java +++ /dev/null @@ -1,107 +0,0 @@ -package com.casic.dcms.adapter; - -import android.annotation.SuppressLint; -import android.content.Context; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.ImageView; -import android.widget.TextView; - -import androidx.annotation.NonNull; -import androidx.recyclerview.widget.RecyclerView; - -import com.casic.dcms.R; -import com.casic.dcms.model.LightListBean; - -import java.util.List; - -public class LightResultAdapter extends RecyclerView.Adapter { - - private final List dataBeans; - private final LayoutInflater layoutInflater; - - public LightResultAdapter(Context context, List beans) { - this.dataBeans = beans; - this.layoutInflater = LayoutInflater.from(context); - } - - @NonNull - @Override - public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - return new ItemViewHolder(layoutInflater.inflate(R.layout.item_light_recycleview, parent, false)); - } - - @Override - public void onBindViewHolder(@NonNull LightResultAdapter.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); - } - }); - } - if (switchClickListener != null) { - holder.lightSwitch.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - switchClickListener.onClick(position); - } - }); - } - } - - @Override - public int getItemCount() { - return dataBeans.size(); - } - - private OnGridItemClickListener clickListener; - - public interface OnGridItemClickListener { - void onClick(int position); - } - - public void setOnGridItemClickListener(OnGridItemClickListener onGridItemClickListener) { - this.clickListener = onGridItemClickListener; - } - - private OnSwitchClickListener switchClickListener; - - public interface OnSwitchClickListener { - void onClick(int position); - } - - public void setOnSwitchClickListener(OnSwitchClickListener switchClickListener) { - this.switchClickListener = switchClickListener; - } - - static class ItemViewHolder extends RecyclerView.ViewHolder { - - private final TextView lightNameView; - private final TextView lightStatusView; - private final ImageView lightSwitch; - - ItemViewHolder(@NonNull View itemView) { - super(itemView); - lightNameView = itemView.findViewById(R.id.lightNameView); - lightStatusView = itemView.findViewById(R.id.lightStatusView); - lightSwitch = itemView.findViewById(R.id.lightSwitch); - } - - void bindView(LightListBean.DataBean.RowsBean dataBean) { - lightNameView.setText(dataBean.getLampName()); - String statusName = dataBean.getStatusName(); - lightStatusView.setText(statusName); - if (statusName.equals("灭灯")) { - lightSwitch.setBackgroundResource(R.drawable.ic_switch_off); - } else if (statusName.equals("报警")) { - lightSwitch.setBackgroundResource(R.drawable.ic_switch_warning); - } else { - lightSwitch.setBackgroundResource(R.drawable.ic_switch_on); - } - } - } -} diff --git a/app/src/main/java/com/casic/dcms/adapter/NormalRecyclerAdapter.java b/app/src/main/java/com/casic/dcms/adapter/NormalRecyclerAdapter.java new file mode 100644 index 0000000..c80e2d5 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/adapter/NormalRecyclerAdapter.java @@ -0,0 +1,134 @@ +package com.casic.dcms.adapter; + +import android.annotation.SuppressLint; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import androidx.annotation.LayoutRes; +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.DiffUtil; +import androidx.recyclerview.widget.RecyclerView; + +import com.pengxh.androidx.lite.adapter.ViewHolder; + +import java.util.List; + +/** + * RecyclerView普通列表适配器 + */ +public abstract class NormalRecyclerAdapter extends RecyclerView.Adapter { + + private static final String TAG = "NormalRecyclerAdapter"; + private final int xmlResource; + private final List dataRows; + + public NormalRecyclerAdapter(@LayoutRes int xmlResource, List dataRows) { + this.xmlResource = xmlResource; + this.dataRows = dataRows; + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + @NonNull + @Override + public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + return new ViewHolder(LayoutInflater.from(parent.getContext()).inflate(xmlResource, parent, false)); + } + + @Override + public void onBindViewHolder(@NonNull ViewHolder holder, @SuppressLint("RecyclerView") int position) { + convertView(holder, position, dataRows.get(position)); + + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (itemClickedListener == null) { + return; + } + itemClickedListener.onItemClicked(position, dataRows.get(position)); + } + }); + } + + public void refresh(List newRows) { + DiffUtil.Callback diffCallback = new DiffUtil.Callback() { + + @Override + public int getOldListSize() { + return dataRows.size(); + } + + @Override + public int getNewListSize() { + return newRows.size(); + } + + @Override + public boolean areItemsTheSame(int oldItemPosition, int newItemPosition) { + if (dataRows == null || newRows == null) { + return false; + } + + // 检查索引是否在有效范围内 + if (oldItemPosition < 0 || oldItemPosition >= dataRows.size() || + newItemPosition < 0 || newItemPosition >= newRows.size()) { + return false; + } + + // 获取元素并进行比较 + Object oldItem = dataRows.get(oldItemPosition); + Object newItem = newRows.get(newItemPosition); + + // 处理空指针情况 + if (oldItem == null && newItem == null) { + return true; + } + if (oldItem == null || newItem == null) { + return false; + } + + return oldItem.equals(newItem); + } + + @Override + public boolean areContentsTheSame(int oldItemPosition, int newItemPosition) { + return dataRows.get(oldItemPosition) == newRows.get(newItemPosition); + } + }; + + DiffUtil.DiffResult diffResult = DiffUtil.calculateDiff(diffCallback); + + dataRows.clear(); + dataRows.addAll(newRows); + + diffResult.dispatchUpdatesTo(this); + } + + /** + * 加载更多 + */ + public void loadMore(List newRows) { + if (newRows.isEmpty()) { + return; + } + int startPosition = this.dataRows.size(); + this.dataRows.addAll(newRows); + notifyItemRangeInserted(startPosition, newRows.size()); + } + + public abstract void convertView(ViewHolder viewHolder, int position, T item); + + private OnItemClickedListener itemClickedListener; + + public interface OnItemClickedListener { + void onItemClicked(int position, T t); + } + + public void setOnItemClickedListener(OnItemClickedListener listener) { + itemClickedListener = listener; + } +} diff --git a/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java b/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java index 1deb066..80f7b98 100644 --- a/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java @@ -58,13 +58,13 @@ } @SuppressLint("NotifyDataSetChanged") - public void setRefreshData(List dataRows) { + public void refresh(List dataRows) { this.dataRows.clear(); this.dataRows.addAll(dataRows); notifyDataSetChanged(); } - public void setLoadMoreData(List dataRows) { + public void loadMore(List dataRows) { this.dataRows.addAll(dataRows); notifyItemRangeInserted(this.dataRows.size(), dataRows.size()); } diff --git a/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java index 3535c40..bd5e484 100644 --- a/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java @@ -10,6 +10,7 @@ import com.bumptech.glide.Glide; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentHomeBinding; import com.casic.dcms.model.HomePageBean; import com.casic.dcms.model.UserBean; @@ -36,7 +37,6 @@ import com.casic.dcms.view.verify.VerifyCaseActivity; import com.casic.dcms.vm.HomePageViewModel; import com.casic.dcms.vm.UserViewModel; -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.kit.LongKit; diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java index 0d2926f..a9cc331 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java @@ -5,22 +5,26 @@ import android.os.Handler; import android.os.Message; import android.text.TextUtils; +import android.view.View; import androidx.annotation.NonNull; import androidx.annotation.Nullable; +import androidx.cardview.widget.CardView; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; -import com.casic.dcms.adapter.LightResultAdapter; +import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentLightListBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightDetailBean; import com.casic.dcms.model.LightListBean; -import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.vm.LightViewModel; import com.casic.dcms.widgets.LightDetailDialog; +import com.pengxh.androidx.lite.adapter.ViewHolder; import com.pengxh.androidx.lite.base.AndroidxBaseFragment; import com.pengxh.androidx.lite.divider.RecyclerViewItemDivider; +import com.pengxh.androidx.lite.kit.IntKit; import com.pengxh.androidx.lite.kit.StringKit; import com.pengxh.androidx.lite.utils.LoadState; import com.pengxh.androidx.lite.utils.LoadingDialog; @@ -37,7 +41,7 @@ private static final String TAG = "LightOnListFragment"; private final WeakReferenceHandler weakReferenceHandler = new WeakReferenceHandler(this); private LightViewModel lightViewModel; - private LightResultAdapter adapter; + private NormalRecyclerAdapter adapter; private List dataBeans = new ArrayList<>(); private int pageIndex = 1; private boolean isRefresh, isLoadMore = false; @@ -50,7 +54,7 @@ @Override protected void initOnCreate(@Nullable Bundle savedInstanceState) { lightViewModel = new ViewModelProvider(this).get(LightViewModel.class); - getLightList(); + lightViewModel.getLightList(pageIndex); } @Override @@ -67,10 +71,6 @@ }); } - private void getLightList() { - lightViewModel.getLightList(LocaleConstant.PAGE_LIMIT, pageIndex); - } - @Override protected void initEvent() { getBinding().refreshLayout.setOnRefreshListener(new OnRefreshListener() { @@ -79,7 +79,7 @@ isRefresh = true; //刷新之后页码重置 pageIndex = 1; - getLightList(); + lightViewModel.getLightList(pageIndex); } }); getBinding().refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() { @@ -87,7 +87,7 @@ public void onLoadMore(@NonNull final RefreshLayout refreshLayout) { isLoadMore = true; pageIndex++; - getLightList(); + lightViewModel.getLightList(pageIndex); } }); @@ -97,21 +97,20 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题 - dataBeans = dataRows; + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - dataBeans.addAll(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { dataBeans = dataRows; + weakReferenceHandler.sendEmptyMessage(20210623); } - weakReferenceHandler.sendEmptyMessage(20210623); } } }); @@ -138,54 +137,67 @@ @Override public boolean handleMessage(@NonNull Message msg) { if (msg.what == 20210623) { - if (isRefresh || isLoadMore) { - adapter.notifyItemRangeInserted(adapter.getItemCount(), LocaleConstant.PAGE_LIMIT); + //首次加载数据 + if (dataBeans.size() == 0) { + getBinding().emptyView.show("没有路灯数据", null); } else { - //首次加载数据 - if (dataBeans.size() == 0) { - getBinding().emptyView.show("没有路灯数据", null); - } else { - getBinding().emptyView.hide(); - adapter = new LightResultAdapter(requireContext(), dataBeans); - getBinding().recyclerView.addItemDecoration(new RecyclerViewItemDivider(1, Color.LTGRAY)); - getBinding().recyclerView.setAdapter(adapter); - adapter.setOnGridItemClickListener(new LightResultAdapter.OnGridItemClickListener() { - @Override - public void onClick(int position) { - String lampId = dataBeans.get(position).getLampId(); - if (TextUtils.isEmpty(lampId)) { - StringKit.show(requireContext(), "错误,路灯编号为空"); - return; - } + getBinding().emptyView.hide(); + adapter = new NormalRecyclerAdapter(R.layout.item_light_recycleview, dataBeans) { + @Override + public void convertView(ViewHolder viewHolder, int position, LightListBean.DataBean.RowsBean item) { + String statusName = item.getStatusName(); + viewHolder.setText(R.id.lightNameView, item.getLampName()) + .setText(R.id.lightStatusView, "已" + statusName); - lightViewModel.getLightDetail(requireContext(), lampId); + CardView statueTagView = viewHolder.getView(R.id.statueTagView); + if (statusName.equals("灭灯")) { + viewHolder.setImageResource(R.id.lightSwitch, R.drawable.ic_switch_off); + statueTagView.setCardBackgroundColor(IntKit.convertColor(requireContext(), R.color.darkGray)); + } else if (statusName.equals("报警")) { + viewHolder.setImageResource(R.id.lightSwitch, R.drawable.ic_switch_warning); + statueTagView.setCardBackgroundColor(IntKit.convertColor(requireContext(), R.color.warnColor)); + } else { + viewHolder.setImageResource(R.id.lightSwitch, R.drawable.ic_switch_on); + statueTagView.setCardBackgroundColor(IntKit.convertColor(requireContext(), R.color.onLineColor)); } - }); - adapter.setOnSwitchClickListener(new LightResultAdapter.OnSwitchClickListener() { - @Override - public void onClick(int position) { - LightListBean.DataBean.RowsBean rowsBean = dataBeans.get(position); + viewHolder.setOnClickListener(R.id.lightSwitch, new View.OnClickListener() { + @Override + public void onClick(View v) { + List lampIds = new ArrayList<>(); + lampIds.add(Long.parseLong(item.getLampId())); - List lampIds = new ArrayList<>(); - lampIds.add(Long.parseLong(rowsBean.getLampId())); - - String statusName = rowsBean.getStatusName(); - String controlType; - if (statusName.equals("离线")) { - controlType = "1"; - } else { - controlType = "0"; + String statusName = item.getStatusName(); + String controlType; + if (statusName.equals("灭灯")) { + controlType = "1"; + } else { + controlType = "0"; + } + lightViewModel.controlLight(requireContext(), lampIds, controlType); } - lightViewModel.controlLight(requireContext(), lampIds, controlType); + }); + } + }; + getBinding().recyclerView.addItemDecoration(new RecyclerViewItemDivider(1, Color.LTGRAY)); + getBinding().recyclerView.setAdapter(adapter); + adapter.setOnItemClickedListener(new NormalRecyclerAdapter.OnItemClickedListener() { + @Override + public void onItemClicked(int position, LightListBean.DataBean.RowsBean rowsBean) { + String lampId = rowsBean.getLampId(); + if (TextUtils.isEmpty(lampId)) { + StringKit.show(requireContext(), "错误,路灯编号为空"); + return; } - }); - } + + lightViewModel.getLightDetail(requireContext(), lampId); + } + }); } } else if (msg.what == 20210624) { isRefresh = true; pageIndex = 1; - lightViewModel.getLightList(LocaleConstant.PAGE_LIMIT, pageIndex); + lightViewModel.getLightList(pageIndex); } return true; } diff --git a/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java index 64791dd..8f872db 100644 --- a/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java @@ -6,12 +6,12 @@ import androidx.annotation.Nullable; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.bean.NoticeLocaleBean; import com.casic.dcms.databinding.FragmentNoticeBinding; import com.casic.dcms.utils.DataBaseManager; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.CaseDetailActivity; -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.kit.ContextKit; diff --git a/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java b/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java index 5980aaf..93ab96c 100644 --- a/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java @@ -87,14 +87,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/business/PackageTodoFragment.java b/app/src/main/java/com/casic/dcms/fragment/business/PackageTodoFragment.java index 9f28bbe..1fefd3f 100644 --- a/app/src/main/java/com/casic/dcms/fragment/business/PackageTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/business/PackageTodoFragment.java @@ -88,14 +88,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { 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 816fb8f..62db8ed 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 @@ -12,13 +12,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentCheckCaseBinding; import com.casic.dcms.model.CaseCheckModel; import com.casic.dcms.utils.LocaleConstant; 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.kit.ContextKit; @@ -61,14 +61,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { 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 e472cd6..27f60a2 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 @@ -12,13 +12,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentCheckCaseBinding; import com.casic.dcms.model.CaseCheckModel; import com.casic.dcms.utils.LocaleConstant; 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.kit.ContextKit; @@ -62,14 +62,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAdjustFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAdjustFragment.java index 23a4f8e..fdee789 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAdjustFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAdjustFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.AdjustCaseModel; import com.casic.dcms.view.department.DeptAdjustDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -57,14 +57,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAuthorizeFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAuthorizeFragment.java index f5ba0b0..b5d807e 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAuthorizeFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAuthorizeFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.AuthorizeCaseModel; import com.casic.dcms.view.department.DeptAuthorizeDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -57,14 +57,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseDelayedFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseDelayedFragment.java index e16d47d..52c88fd 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseDelayedFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseDelayedFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.DelayedCaseModel; import com.casic.dcms.view.CaseDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -57,14 +57,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseHandledFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseHandledFragment.java index 0acf747..2ce5297 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseHandledFragment.java @@ -12,12 +12,12 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.HandledCaseModel; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.CaseDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -59,14 +59,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCasePostponeFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCasePostponeFragment.java index b2a3047..d8b3396 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCasePostponeFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCasePostponeFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.PostCaseModel; import com.casic.dcms.view.CaseDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -57,14 +57,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseProcessFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseProcessFragment.java index ef78a7d..2c5f4d7 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseProcessFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseProcessFragment.java @@ -12,12 +12,12 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.HandleCaseModel; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.view.department.DeptTodoDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.StringKit; @@ -58,14 +58,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseTodoFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseTodoFragment.java index 2f8cb8a..febcb54 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseTodoFragment.java @@ -13,13 +13,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.TodoCaseModel; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.department.DeptTodoDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.StringKit; @@ -60,14 +60,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/handle/CaseHandledFragment.java b/app/src/main/java/com/casic/dcms/fragment/handle/CaseHandledFragment.java index d61fff7..d8d825f 100644 --- a/app/src/main/java/com/casic/dcms/fragment/handle/CaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/handle/CaseHandledFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentHandleCaseBinding; import com.casic.dcms.model.CaseHandledBean; import com.casic.dcms.view.handle.CaseHandledDetailActivity; 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.kit.ContextKit; @@ -58,14 +58,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/handle/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/fragment/handle/CaseTodoFragment.java index 2196251..26d0942 100644 --- a/app/src/main/java/com/casic/dcms/fragment/handle/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/handle/CaseTodoFragment.java @@ -13,12 +13,12 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentHandleCaseBinding; import com.casic.dcms.model.CaseHandleBean; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.handle.CaseHandleDetailActivity; 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.kit.StringKit; @@ -60,14 +60,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/overtime/CaseHandledFragment.java b/app/src/main/java/com/casic/dcms/fragment/overtime/CaseHandledFragment.java index 5cb44da..3424ebd 100644 --- a/app/src/main/java/com/casic/dcms/fragment/overtime/CaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/overtime/CaseHandledFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentOvertimeCaseBinding; import com.casic.dcms.model.OvertimeCaseBean; import com.casic.dcms.view.CaseTodoHandledDetailActivity; 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.kit.ContextKit; @@ -58,14 +58,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/overtime/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/fragment/overtime/CaseTodoFragment.java index a98bde5..1c2c20d 100644 --- a/app/src/main/java/com/casic/dcms/fragment/overtime/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/overtime/CaseTodoFragment.java @@ -12,11 +12,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentOvertimeCaseBinding; import com.casic.dcms.model.OvertimeCaseBean; import com.casic.dcms.view.CaseTodoDetailActivity; 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.kit.StringKit; @@ -58,14 +58,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/urgent/CaseHandledFragment.java b/app/src/main/java/com/casic/dcms/fragment/urgent/CaseHandledFragment.java index b55651f..2cc0a02 100644 --- a/app/src/main/java/com/casic/dcms/fragment/urgent/CaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/urgent/CaseHandledFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentUrgentCaseBinding; import com.casic.dcms.model.UrgentCaseBean; import com.casic.dcms.view.CaseTodoHandledDetailActivity; 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.kit.ContextKit; @@ -58,14 +58,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/urgent/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/fragment/urgent/CaseTodoFragment.java index 854d6f8..54b773e 100644 --- a/app/src/main/java/com/casic/dcms/fragment/urgent/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/urgent/CaseTodoFragment.java @@ -12,11 +12,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentUrgentCaseBinding; import com.casic.dcms.model.UrgentCaseBean; import com.casic.dcms.view.CaseTodoDetailActivity; 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.kit.StringKit; @@ -58,14 +58,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifiedFragment.java b/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifiedFragment.java index b5a130e..426878b 100644 --- a/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifiedFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifiedFragment.java @@ -12,13 +12,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentVerifyCaseBinding; import com.casic.dcms.model.VerifiedCaseModel; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.verify.VerifiedDetailActivity; 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.kit.ContextKit; @@ -61,14 +61,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifyFragment.java b/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifyFragment.java index 00039fc..d5a91fc 100644 --- a/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifyFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifyFragment.java @@ -12,13 +12,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentVerifyCaseBinding; import com.casic.dcms.model.VerifyCaseModel; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.verify.VerifyDetailActivity; 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.kit.ContextKit; @@ -61,14 +61,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java index b371a7c..ddddaf1 100644 --- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java +++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java @@ -594,8 +594,8 @@ /** * 路灯分页列表 */ - public static Observable getLightListResult(int limit, int offset) { - return api.getLightList(AuthenticationHelper.getToken(), limit, offset); + public static Observable getLightListResult(int offset) { + return api.getLightList(AuthenticationHelper.getToken(), LocaleConstant.PAGE_LIMIT, offset); } /** 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 82ecb71..77fed79 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java @@ -10,11 +10,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.ActivityCaseProcessBinding; import com.casic.dcms.model.CaseProcessBean; import com.casic.dcms.utils.ViewGroupHub; import com.casic.dcms.vm.CommonDataViewModel; -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.utils.Constant; diff --git a/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java b/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java index 1154918..4af8a96 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java @@ -10,11 +10,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.ActivityCaseListBinding; import com.casic.dcms.model.CaseSearchResultBean; import com.casic.dcms.utils.ViewGroupHub; 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.AndroidxBaseActivity; import com.pengxh.androidx.lite.kit.ContextKit; @@ -104,14 +104,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); binding.refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(context, "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); binding.refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java b/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java index efbd88d..2b7b698 100644 --- a/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java +++ b/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java @@ -13,12 +13,12 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.ActivityMaintainRecordBinding; import com.casic.dcms.model.MaintainRecordBean; import com.casic.dcms.utils.ViewGroupHub; import com.casic.dcms.vm.BridgeViewModel; import com.casic.dcms.widgets.RangeDateActionSheet; -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.divider.RecyclerViewItemDivider; @@ -76,14 +76,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); binding.refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(context, "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); binding.refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java b/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java index 53a3c59..8c65f4d 100644 --- a/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java +++ b/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java @@ -14,6 +14,7 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.ActivityPipeBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.AlarmDataBean; @@ -22,7 +23,6 @@ import com.casic.dcms.view.map.WarningOnMapActivity; import com.casic.dcms.vm.AlarmViewModel; import com.casic.dcms.widgets.CancelAlarmDialog; -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.divider.RecyclerViewItemDivider; @@ -109,14 +109,14 @@ SaveKeyValues.putValue("alarmTotal", alarmDataBean.getData().getTotal()); List dataRows = alarmDataBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); binding.refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(context, "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); binding.refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java b/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java index b1cb4df..1492a18 100644 --- a/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java +++ b/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java @@ -14,6 +14,7 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.ActivityWellListBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.WellListBean; @@ -21,7 +22,6 @@ import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.ViewGroupHub; import com.casic.dcms.vm.WellViewModel; -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.divider.RecyclerViewItemDivider; @@ -103,14 +103,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); binding.refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(context, "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); binding.refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java index 35ef2b0..14352aa 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java @@ -11,6 +11,7 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.ActivityCaseResourceBinding; import com.casic.dcms.model.CaseResourceBean; import com.casic.dcms.utils.ChartViewHelper; @@ -21,7 +22,6 @@ import com.casic.dcms.vm.DataAnalysisViewModel; import com.casic.dcms.widgets.RangeDateActionSheet; import com.github.mikephil.charting.data.PieEntry; -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.divider.RecyclerViewItemDivider; diff --git a/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java index 32f3f27..4c5ca87 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java @@ -8,13 +8,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.ActivityCityBaseDataBinding; import com.casic.dcms.model.CityBaseDataBean; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.ViewGroupHub; import com.casic.dcms.vm.DataAnalysisViewModel; -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.utils.LoadState; diff --git a/app/src/main/java/com/casic/dcms/view/statistics/DataAnalysisActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/DataAnalysisActivity.java index 769b6de..f3b24df 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/DataAnalysisActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/DataAnalysisActivity.java @@ -7,11 +7,11 @@ import androidx.annotation.Nullable; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.ActivityCaseAnalysisBinding; import com.casic.dcms.model.DataAnalysisGridModel; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.ViewGroupHub; -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.kit.ContextKit; diff --git a/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java index 3f6adb6..d154820 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java @@ -11,6 +11,7 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.ActivityDeptHandleConditionBinding; import com.casic.dcms.model.DeptHandleConditionBean; import com.casic.dcms.utils.ChartViewHelper; @@ -21,7 +22,6 @@ import com.casic.dcms.vm.DataAnalysisViewModel; import com.casic.dcms.widgets.RangeDateActionSheet; import com.github.mikephil.charting.data.BarEntry; -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.divider.RecyclerViewItemDivider; diff --git a/app/src/main/java/com/casic/dcms/view/statistics/GridAnalysisActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/GridAnalysisActivity.java index ff22d41..9dbcc25 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/GridAnalysisActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/GridAnalysisActivity.java @@ -12,6 +12,7 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.ActivityGridAnalysisBinding; import com.casic.dcms.model.GridAnalysisBean; import com.casic.dcms.utils.ColorHub; @@ -20,7 +21,6 @@ import com.casic.dcms.utils.ViewGroupHub; import com.casic.dcms.vm.DataAnalysisViewModel; import com.casic.dcms.widgets.RangeDateActionSheet; -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.divider.RecyclerViewItemDivider; diff --git a/app/src/main/java/com/casic/dcms/view/statistics/HighEventActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/HighEventActivity.java index c1061c3..6a45023 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/HighEventActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/HighEventActivity.java @@ -11,6 +11,7 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.ActivityHighEventBinding; import com.casic.dcms.model.HighEventBean; import com.casic.dcms.utils.ChartViewHelper; @@ -21,7 +22,6 @@ import com.casic.dcms.vm.DataAnalysisViewModel; import com.casic.dcms.widgets.RangeDateActionSheet; import com.github.mikephil.charting.data.PieEntry; -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.divider.RecyclerViewItemDivider; diff --git a/app/src/main/java/com/casic/dcms/adapter/LightResultAdapter.java b/app/src/main/java/com/casic/dcms/adapter/LightResultAdapter.java deleted file mode 100644 index 405af6e..0000000 --- a/app/src/main/java/com/casic/dcms/adapter/LightResultAdapter.java +++ /dev/null @@ -1,107 +0,0 @@ -package com.casic.dcms.adapter; - -import android.annotation.SuppressLint; -import android.content.Context; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.ImageView; -import android.widget.TextView; - -import androidx.annotation.NonNull; -import androidx.recyclerview.widget.RecyclerView; - -import com.casic.dcms.R; -import com.casic.dcms.model.LightListBean; - -import java.util.List; - -public class LightResultAdapter extends RecyclerView.Adapter { - - private final List dataBeans; - private final LayoutInflater layoutInflater; - - public LightResultAdapter(Context context, List beans) { - this.dataBeans = beans; - this.layoutInflater = LayoutInflater.from(context); - } - - @NonNull - @Override - public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - return new ItemViewHolder(layoutInflater.inflate(R.layout.item_light_recycleview, parent, false)); - } - - @Override - public void onBindViewHolder(@NonNull LightResultAdapter.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); - } - }); - } - if (switchClickListener != null) { - holder.lightSwitch.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - switchClickListener.onClick(position); - } - }); - } - } - - @Override - public int getItemCount() { - return dataBeans.size(); - } - - private OnGridItemClickListener clickListener; - - public interface OnGridItemClickListener { - void onClick(int position); - } - - public void setOnGridItemClickListener(OnGridItemClickListener onGridItemClickListener) { - this.clickListener = onGridItemClickListener; - } - - private OnSwitchClickListener switchClickListener; - - public interface OnSwitchClickListener { - void onClick(int position); - } - - public void setOnSwitchClickListener(OnSwitchClickListener switchClickListener) { - this.switchClickListener = switchClickListener; - } - - static class ItemViewHolder extends RecyclerView.ViewHolder { - - private final TextView lightNameView; - private final TextView lightStatusView; - private final ImageView lightSwitch; - - ItemViewHolder(@NonNull View itemView) { - super(itemView); - lightNameView = itemView.findViewById(R.id.lightNameView); - lightStatusView = itemView.findViewById(R.id.lightStatusView); - lightSwitch = itemView.findViewById(R.id.lightSwitch); - } - - void bindView(LightListBean.DataBean.RowsBean dataBean) { - lightNameView.setText(dataBean.getLampName()); - String statusName = dataBean.getStatusName(); - lightStatusView.setText(statusName); - if (statusName.equals("灭灯")) { - lightSwitch.setBackgroundResource(R.drawable.ic_switch_off); - } else if (statusName.equals("报警")) { - lightSwitch.setBackgroundResource(R.drawable.ic_switch_warning); - } else { - lightSwitch.setBackgroundResource(R.drawable.ic_switch_on); - } - } - } -} diff --git a/app/src/main/java/com/casic/dcms/adapter/NormalRecyclerAdapter.java b/app/src/main/java/com/casic/dcms/adapter/NormalRecyclerAdapter.java new file mode 100644 index 0000000..c80e2d5 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/adapter/NormalRecyclerAdapter.java @@ -0,0 +1,134 @@ +package com.casic.dcms.adapter; + +import android.annotation.SuppressLint; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import androidx.annotation.LayoutRes; +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.DiffUtil; +import androidx.recyclerview.widget.RecyclerView; + +import com.pengxh.androidx.lite.adapter.ViewHolder; + +import java.util.List; + +/** + * RecyclerView普通列表适配器 + */ +public abstract class NormalRecyclerAdapter extends RecyclerView.Adapter { + + private static final String TAG = "NormalRecyclerAdapter"; + private final int xmlResource; + private final List dataRows; + + public NormalRecyclerAdapter(@LayoutRes int xmlResource, List dataRows) { + this.xmlResource = xmlResource; + this.dataRows = dataRows; + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + @NonNull + @Override + public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + return new ViewHolder(LayoutInflater.from(parent.getContext()).inflate(xmlResource, parent, false)); + } + + @Override + public void onBindViewHolder(@NonNull ViewHolder holder, @SuppressLint("RecyclerView") int position) { + convertView(holder, position, dataRows.get(position)); + + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (itemClickedListener == null) { + return; + } + itemClickedListener.onItemClicked(position, dataRows.get(position)); + } + }); + } + + public void refresh(List newRows) { + DiffUtil.Callback diffCallback = new DiffUtil.Callback() { + + @Override + public int getOldListSize() { + return dataRows.size(); + } + + @Override + public int getNewListSize() { + return newRows.size(); + } + + @Override + public boolean areItemsTheSame(int oldItemPosition, int newItemPosition) { + if (dataRows == null || newRows == null) { + return false; + } + + // 检查索引是否在有效范围内 + if (oldItemPosition < 0 || oldItemPosition >= dataRows.size() || + newItemPosition < 0 || newItemPosition >= newRows.size()) { + return false; + } + + // 获取元素并进行比较 + Object oldItem = dataRows.get(oldItemPosition); + Object newItem = newRows.get(newItemPosition); + + // 处理空指针情况 + if (oldItem == null && newItem == null) { + return true; + } + if (oldItem == null || newItem == null) { + return false; + } + + return oldItem.equals(newItem); + } + + @Override + public boolean areContentsTheSame(int oldItemPosition, int newItemPosition) { + return dataRows.get(oldItemPosition) == newRows.get(newItemPosition); + } + }; + + DiffUtil.DiffResult diffResult = DiffUtil.calculateDiff(diffCallback); + + dataRows.clear(); + dataRows.addAll(newRows); + + diffResult.dispatchUpdatesTo(this); + } + + /** + * 加载更多 + */ + public void loadMore(List newRows) { + if (newRows.isEmpty()) { + return; + } + int startPosition = this.dataRows.size(); + this.dataRows.addAll(newRows); + notifyItemRangeInserted(startPosition, newRows.size()); + } + + public abstract void convertView(ViewHolder viewHolder, int position, T item); + + private OnItemClickedListener itemClickedListener; + + public interface OnItemClickedListener { + void onItemClicked(int position, T t); + } + + public void setOnItemClickedListener(OnItemClickedListener listener) { + itemClickedListener = listener; + } +} diff --git a/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java b/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java index 1deb066..80f7b98 100644 --- a/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java @@ -58,13 +58,13 @@ } @SuppressLint("NotifyDataSetChanged") - public void setRefreshData(List dataRows) { + public void refresh(List dataRows) { this.dataRows.clear(); this.dataRows.addAll(dataRows); notifyDataSetChanged(); } - public void setLoadMoreData(List dataRows) { + public void loadMore(List dataRows) { this.dataRows.addAll(dataRows); notifyItemRangeInserted(this.dataRows.size(), dataRows.size()); } diff --git a/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java index 3535c40..bd5e484 100644 --- a/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java @@ -10,6 +10,7 @@ import com.bumptech.glide.Glide; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentHomeBinding; import com.casic.dcms.model.HomePageBean; import com.casic.dcms.model.UserBean; @@ -36,7 +37,6 @@ import com.casic.dcms.view.verify.VerifyCaseActivity; import com.casic.dcms.vm.HomePageViewModel; import com.casic.dcms.vm.UserViewModel; -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.kit.LongKit; diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java index 0d2926f..a9cc331 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java @@ -5,22 +5,26 @@ import android.os.Handler; import android.os.Message; import android.text.TextUtils; +import android.view.View; import androidx.annotation.NonNull; import androidx.annotation.Nullable; +import androidx.cardview.widget.CardView; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; -import com.casic.dcms.adapter.LightResultAdapter; +import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentLightListBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightDetailBean; import com.casic.dcms.model.LightListBean; -import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.vm.LightViewModel; import com.casic.dcms.widgets.LightDetailDialog; +import com.pengxh.androidx.lite.adapter.ViewHolder; import com.pengxh.androidx.lite.base.AndroidxBaseFragment; import com.pengxh.androidx.lite.divider.RecyclerViewItemDivider; +import com.pengxh.androidx.lite.kit.IntKit; import com.pengxh.androidx.lite.kit.StringKit; import com.pengxh.androidx.lite.utils.LoadState; import com.pengxh.androidx.lite.utils.LoadingDialog; @@ -37,7 +41,7 @@ private static final String TAG = "LightOnListFragment"; private final WeakReferenceHandler weakReferenceHandler = new WeakReferenceHandler(this); private LightViewModel lightViewModel; - private LightResultAdapter adapter; + private NormalRecyclerAdapter adapter; private List dataBeans = new ArrayList<>(); private int pageIndex = 1; private boolean isRefresh, isLoadMore = false; @@ -50,7 +54,7 @@ @Override protected void initOnCreate(@Nullable Bundle savedInstanceState) { lightViewModel = new ViewModelProvider(this).get(LightViewModel.class); - getLightList(); + lightViewModel.getLightList(pageIndex); } @Override @@ -67,10 +71,6 @@ }); } - private void getLightList() { - lightViewModel.getLightList(LocaleConstant.PAGE_LIMIT, pageIndex); - } - @Override protected void initEvent() { getBinding().refreshLayout.setOnRefreshListener(new OnRefreshListener() { @@ -79,7 +79,7 @@ isRefresh = true; //刷新之后页码重置 pageIndex = 1; - getLightList(); + lightViewModel.getLightList(pageIndex); } }); getBinding().refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() { @@ -87,7 +87,7 @@ public void onLoadMore(@NonNull final RefreshLayout refreshLayout) { isLoadMore = true; pageIndex++; - getLightList(); + lightViewModel.getLightList(pageIndex); } }); @@ -97,21 +97,20 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题 - dataBeans = dataRows; + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - dataBeans.addAll(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { dataBeans = dataRows; + weakReferenceHandler.sendEmptyMessage(20210623); } - weakReferenceHandler.sendEmptyMessage(20210623); } } }); @@ -138,54 +137,67 @@ @Override public boolean handleMessage(@NonNull Message msg) { if (msg.what == 20210623) { - if (isRefresh || isLoadMore) { - adapter.notifyItemRangeInserted(adapter.getItemCount(), LocaleConstant.PAGE_LIMIT); + //首次加载数据 + if (dataBeans.size() == 0) { + getBinding().emptyView.show("没有路灯数据", null); } else { - //首次加载数据 - if (dataBeans.size() == 0) { - getBinding().emptyView.show("没有路灯数据", null); - } else { - getBinding().emptyView.hide(); - adapter = new LightResultAdapter(requireContext(), dataBeans); - getBinding().recyclerView.addItemDecoration(new RecyclerViewItemDivider(1, Color.LTGRAY)); - getBinding().recyclerView.setAdapter(adapter); - adapter.setOnGridItemClickListener(new LightResultAdapter.OnGridItemClickListener() { - @Override - public void onClick(int position) { - String lampId = dataBeans.get(position).getLampId(); - if (TextUtils.isEmpty(lampId)) { - StringKit.show(requireContext(), "错误,路灯编号为空"); - return; - } + getBinding().emptyView.hide(); + adapter = new NormalRecyclerAdapter(R.layout.item_light_recycleview, dataBeans) { + @Override + public void convertView(ViewHolder viewHolder, int position, LightListBean.DataBean.RowsBean item) { + String statusName = item.getStatusName(); + viewHolder.setText(R.id.lightNameView, item.getLampName()) + .setText(R.id.lightStatusView, "已" + statusName); - lightViewModel.getLightDetail(requireContext(), lampId); + CardView statueTagView = viewHolder.getView(R.id.statueTagView); + if (statusName.equals("灭灯")) { + viewHolder.setImageResource(R.id.lightSwitch, R.drawable.ic_switch_off); + statueTagView.setCardBackgroundColor(IntKit.convertColor(requireContext(), R.color.darkGray)); + } else if (statusName.equals("报警")) { + viewHolder.setImageResource(R.id.lightSwitch, R.drawable.ic_switch_warning); + statueTagView.setCardBackgroundColor(IntKit.convertColor(requireContext(), R.color.warnColor)); + } else { + viewHolder.setImageResource(R.id.lightSwitch, R.drawable.ic_switch_on); + statueTagView.setCardBackgroundColor(IntKit.convertColor(requireContext(), R.color.onLineColor)); } - }); - adapter.setOnSwitchClickListener(new LightResultAdapter.OnSwitchClickListener() { - @Override - public void onClick(int position) { - LightListBean.DataBean.RowsBean rowsBean = dataBeans.get(position); + viewHolder.setOnClickListener(R.id.lightSwitch, new View.OnClickListener() { + @Override + public void onClick(View v) { + List lampIds = new ArrayList<>(); + lampIds.add(Long.parseLong(item.getLampId())); - List lampIds = new ArrayList<>(); - lampIds.add(Long.parseLong(rowsBean.getLampId())); - - String statusName = rowsBean.getStatusName(); - String controlType; - if (statusName.equals("离线")) { - controlType = "1"; - } else { - controlType = "0"; + String statusName = item.getStatusName(); + String controlType; + if (statusName.equals("灭灯")) { + controlType = "1"; + } else { + controlType = "0"; + } + lightViewModel.controlLight(requireContext(), lampIds, controlType); } - lightViewModel.controlLight(requireContext(), lampIds, controlType); + }); + } + }; + getBinding().recyclerView.addItemDecoration(new RecyclerViewItemDivider(1, Color.LTGRAY)); + getBinding().recyclerView.setAdapter(adapter); + adapter.setOnItemClickedListener(new NormalRecyclerAdapter.OnItemClickedListener() { + @Override + public void onItemClicked(int position, LightListBean.DataBean.RowsBean rowsBean) { + String lampId = rowsBean.getLampId(); + if (TextUtils.isEmpty(lampId)) { + StringKit.show(requireContext(), "错误,路灯编号为空"); + return; } - }); - } + + lightViewModel.getLightDetail(requireContext(), lampId); + } + }); } } else if (msg.what == 20210624) { isRefresh = true; pageIndex = 1; - lightViewModel.getLightList(LocaleConstant.PAGE_LIMIT, pageIndex); + lightViewModel.getLightList(pageIndex); } return true; } diff --git a/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java index 64791dd..8f872db 100644 --- a/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java @@ -6,12 +6,12 @@ import androidx.annotation.Nullable; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.bean.NoticeLocaleBean; import com.casic.dcms.databinding.FragmentNoticeBinding; import com.casic.dcms.utils.DataBaseManager; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.CaseDetailActivity; -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.kit.ContextKit; diff --git a/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java b/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java index 5980aaf..93ab96c 100644 --- a/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java @@ -87,14 +87,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/business/PackageTodoFragment.java b/app/src/main/java/com/casic/dcms/fragment/business/PackageTodoFragment.java index 9f28bbe..1fefd3f 100644 --- a/app/src/main/java/com/casic/dcms/fragment/business/PackageTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/business/PackageTodoFragment.java @@ -88,14 +88,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { 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 816fb8f..62db8ed 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 @@ -12,13 +12,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentCheckCaseBinding; import com.casic.dcms.model.CaseCheckModel; import com.casic.dcms.utils.LocaleConstant; 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.kit.ContextKit; @@ -61,14 +61,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { 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 e472cd6..27f60a2 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 @@ -12,13 +12,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentCheckCaseBinding; import com.casic.dcms.model.CaseCheckModel; import com.casic.dcms.utils.LocaleConstant; 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.kit.ContextKit; @@ -62,14 +62,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAdjustFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAdjustFragment.java index 23a4f8e..fdee789 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAdjustFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAdjustFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.AdjustCaseModel; import com.casic.dcms.view.department.DeptAdjustDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -57,14 +57,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAuthorizeFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAuthorizeFragment.java index f5ba0b0..b5d807e 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAuthorizeFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAuthorizeFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.AuthorizeCaseModel; import com.casic.dcms.view.department.DeptAuthorizeDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -57,14 +57,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseDelayedFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseDelayedFragment.java index e16d47d..52c88fd 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseDelayedFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseDelayedFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.DelayedCaseModel; import com.casic.dcms.view.CaseDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -57,14 +57,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseHandledFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseHandledFragment.java index 0acf747..2ce5297 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseHandledFragment.java @@ -12,12 +12,12 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.HandledCaseModel; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.CaseDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -59,14 +59,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCasePostponeFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCasePostponeFragment.java index b2a3047..d8b3396 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCasePostponeFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCasePostponeFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.PostCaseModel; import com.casic.dcms.view.CaseDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -57,14 +57,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseProcessFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseProcessFragment.java index ef78a7d..2c5f4d7 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseProcessFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseProcessFragment.java @@ -12,12 +12,12 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.HandleCaseModel; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.view.department.DeptTodoDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.StringKit; @@ -58,14 +58,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseTodoFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseTodoFragment.java index 2f8cb8a..febcb54 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseTodoFragment.java @@ -13,13 +13,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.TodoCaseModel; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.department.DeptTodoDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.StringKit; @@ -60,14 +60,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/handle/CaseHandledFragment.java b/app/src/main/java/com/casic/dcms/fragment/handle/CaseHandledFragment.java index d61fff7..d8d825f 100644 --- a/app/src/main/java/com/casic/dcms/fragment/handle/CaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/handle/CaseHandledFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentHandleCaseBinding; import com.casic.dcms.model.CaseHandledBean; import com.casic.dcms.view.handle.CaseHandledDetailActivity; 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.kit.ContextKit; @@ -58,14 +58,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/handle/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/fragment/handle/CaseTodoFragment.java index 2196251..26d0942 100644 --- a/app/src/main/java/com/casic/dcms/fragment/handle/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/handle/CaseTodoFragment.java @@ -13,12 +13,12 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentHandleCaseBinding; import com.casic.dcms.model.CaseHandleBean; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.handle.CaseHandleDetailActivity; 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.kit.StringKit; @@ -60,14 +60,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/overtime/CaseHandledFragment.java b/app/src/main/java/com/casic/dcms/fragment/overtime/CaseHandledFragment.java index 5cb44da..3424ebd 100644 --- a/app/src/main/java/com/casic/dcms/fragment/overtime/CaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/overtime/CaseHandledFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentOvertimeCaseBinding; import com.casic.dcms.model.OvertimeCaseBean; import com.casic.dcms.view.CaseTodoHandledDetailActivity; 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.kit.ContextKit; @@ -58,14 +58,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/overtime/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/fragment/overtime/CaseTodoFragment.java index a98bde5..1c2c20d 100644 --- a/app/src/main/java/com/casic/dcms/fragment/overtime/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/overtime/CaseTodoFragment.java @@ -12,11 +12,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentOvertimeCaseBinding; import com.casic.dcms.model.OvertimeCaseBean; import com.casic.dcms.view.CaseTodoDetailActivity; 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.kit.StringKit; @@ -58,14 +58,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/urgent/CaseHandledFragment.java b/app/src/main/java/com/casic/dcms/fragment/urgent/CaseHandledFragment.java index b55651f..2cc0a02 100644 --- a/app/src/main/java/com/casic/dcms/fragment/urgent/CaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/urgent/CaseHandledFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentUrgentCaseBinding; import com.casic.dcms.model.UrgentCaseBean; import com.casic.dcms.view.CaseTodoHandledDetailActivity; 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.kit.ContextKit; @@ -58,14 +58,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/urgent/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/fragment/urgent/CaseTodoFragment.java index 854d6f8..54b773e 100644 --- a/app/src/main/java/com/casic/dcms/fragment/urgent/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/urgent/CaseTodoFragment.java @@ -12,11 +12,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentUrgentCaseBinding; import com.casic.dcms.model.UrgentCaseBean; import com.casic.dcms.view.CaseTodoDetailActivity; 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.kit.StringKit; @@ -58,14 +58,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifiedFragment.java b/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifiedFragment.java index b5a130e..426878b 100644 --- a/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifiedFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifiedFragment.java @@ -12,13 +12,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentVerifyCaseBinding; import com.casic.dcms.model.VerifiedCaseModel; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.verify.VerifiedDetailActivity; 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.kit.ContextKit; @@ -61,14 +61,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifyFragment.java b/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifyFragment.java index 00039fc..d5a91fc 100644 --- a/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifyFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifyFragment.java @@ -12,13 +12,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentVerifyCaseBinding; import com.casic.dcms.model.VerifyCaseModel; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.verify.VerifyDetailActivity; 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.kit.ContextKit; @@ -61,14 +61,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java index b371a7c..ddddaf1 100644 --- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java +++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java @@ -594,8 +594,8 @@ /** * 路灯分页列表 */ - public static Observable getLightListResult(int limit, int offset) { - return api.getLightList(AuthenticationHelper.getToken(), limit, offset); + public static Observable getLightListResult(int offset) { + return api.getLightList(AuthenticationHelper.getToken(), LocaleConstant.PAGE_LIMIT, offset); } /** 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 82ecb71..77fed79 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java @@ -10,11 +10,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.ActivityCaseProcessBinding; import com.casic.dcms.model.CaseProcessBean; import com.casic.dcms.utils.ViewGroupHub; import com.casic.dcms.vm.CommonDataViewModel; -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.utils.Constant; diff --git a/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java b/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java index 1154918..4af8a96 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java @@ -10,11 +10,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.ActivityCaseListBinding; import com.casic.dcms.model.CaseSearchResultBean; import com.casic.dcms.utils.ViewGroupHub; 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.AndroidxBaseActivity; import com.pengxh.androidx.lite.kit.ContextKit; @@ -104,14 +104,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); binding.refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(context, "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); binding.refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java b/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java index efbd88d..2b7b698 100644 --- a/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java +++ b/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java @@ -13,12 +13,12 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.ActivityMaintainRecordBinding; import com.casic.dcms.model.MaintainRecordBean; import com.casic.dcms.utils.ViewGroupHub; import com.casic.dcms.vm.BridgeViewModel; import com.casic.dcms.widgets.RangeDateActionSheet; -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.divider.RecyclerViewItemDivider; @@ -76,14 +76,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); binding.refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(context, "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); binding.refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java b/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java index 53a3c59..8c65f4d 100644 --- a/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java +++ b/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java @@ -14,6 +14,7 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.ActivityPipeBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.AlarmDataBean; @@ -22,7 +23,6 @@ import com.casic.dcms.view.map.WarningOnMapActivity; import com.casic.dcms.vm.AlarmViewModel; import com.casic.dcms.widgets.CancelAlarmDialog; -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.divider.RecyclerViewItemDivider; @@ -109,14 +109,14 @@ SaveKeyValues.putValue("alarmTotal", alarmDataBean.getData().getTotal()); List dataRows = alarmDataBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); binding.refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(context, "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); binding.refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java b/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java index b1cb4df..1492a18 100644 --- a/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java +++ b/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java @@ -14,6 +14,7 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.ActivityWellListBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.WellListBean; @@ -21,7 +22,6 @@ import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.ViewGroupHub; import com.casic.dcms.vm.WellViewModel; -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.divider.RecyclerViewItemDivider; @@ -103,14 +103,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); binding.refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(context, "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); binding.refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java index 35ef2b0..14352aa 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java @@ -11,6 +11,7 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.ActivityCaseResourceBinding; import com.casic.dcms.model.CaseResourceBean; import com.casic.dcms.utils.ChartViewHelper; @@ -21,7 +22,6 @@ import com.casic.dcms.vm.DataAnalysisViewModel; import com.casic.dcms.widgets.RangeDateActionSheet; import com.github.mikephil.charting.data.PieEntry; -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.divider.RecyclerViewItemDivider; diff --git a/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java index 32f3f27..4c5ca87 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java @@ -8,13 +8,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.ActivityCityBaseDataBinding; import com.casic.dcms.model.CityBaseDataBean; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.ViewGroupHub; import com.casic.dcms.vm.DataAnalysisViewModel; -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.utils.LoadState; diff --git a/app/src/main/java/com/casic/dcms/view/statistics/DataAnalysisActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/DataAnalysisActivity.java index 769b6de..f3b24df 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/DataAnalysisActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/DataAnalysisActivity.java @@ -7,11 +7,11 @@ import androidx.annotation.Nullable; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.ActivityCaseAnalysisBinding; import com.casic.dcms.model.DataAnalysisGridModel; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.ViewGroupHub; -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.kit.ContextKit; diff --git a/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java index 3f6adb6..d154820 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java @@ -11,6 +11,7 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.ActivityDeptHandleConditionBinding; import com.casic.dcms.model.DeptHandleConditionBean; import com.casic.dcms.utils.ChartViewHelper; @@ -21,7 +22,6 @@ import com.casic.dcms.vm.DataAnalysisViewModel; import com.casic.dcms.widgets.RangeDateActionSheet; import com.github.mikephil.charting.data.BarEntry; -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.divider.RecyclerViewItemDivider; diff --git a/app/src/main/java/com/casic/dcms/view/statistics/GridAnalysisActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/GridAnalysisActivity.java index ff22d41..9dbcc25 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/GridAnalysisActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/GridAnalysisActivity.java @@ -12,6 +12,7 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.ActivityGridAnalysisBinding; import com.casic.dcms.model.GridAnalysisBean; import com.casic.dcms.utils.ColorHub; @@ -20,7 +21,6 @@ import com.casic.dcms.utils.ViewGroupHub; import com.casic.dcms.vm.DataAnalysisViewModel; import com.casic.dcms.widgets.RangeDateActionSheet; -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.divider.RecyclerViewItemDivider; diff --git a/app/src/main/java/com/casic/dcms/view/statistics/HighEventActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/HighEventActivity.java index c1061c3..6a45023 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/HighEventActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/HighEventActivity.java @@ -11,6 +11,7 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.ActivityHighEventBinding; import com.casic.dcms.model.HighEventBean; import com.casic.dcms.utils.ChartViewHelper; @@ -21,7 +22,6 @@ import com.casic.dcms.vm.DataAnalysisViewModel; import com.casic.dcms.widgets.RangeDateActionSheet; import com.github.mikephil.charting.data.PieEntry; -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.divider.RecyclerViewItemDivider; diff --git a/app/src/main/java/com/casic/dcms/view/statistics/PunishAnalysisActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/PunishAnalysisActivity.java index d6ae3c0..4acf271 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/PunishAnalysisActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/PunishAnalysisActivity.java @@ -11,6 +11,7 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.ActivityPunishAnalysisBinding; import com.casic.dcms.model.PunishRankingBean; import com.casic.dcms.model.PunishTypeStatisticBean; @@ -22,7 +23,6 @@ import com.casic.dcms.vm.DataAnalysisViewModel; import com.casic.dcms.widgets.RangeDateActionSheet; import com.github.mikephil.charting.data.BarEntry; -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.divider.RecyclerViewItemDivider; diff --git a/app/src/main/java/com/casic/dcms/adapter/LightResultAdapter.java b/app/src/main/java/com/casic/dcms/adapter/LightResultAdapter.java deleted file mode 100644 index 405af6e..0000000 --- a/app/src/main/java/com/casic/dcms/adapter/LightResultAdapter.java +++ /dev/null @@ -1,107 +0,0 @@ -package com.casic.dcms.adapter; - -import android.annotation.SuppressLint; -import android.content.Context; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.ImageView; -import android.widget.TextView; - -import androidx.annotation.NonNull; -import androidx.recyclerview.widget.RecyclerView; - -import com.casic.dcms.R; -import com.casic.dcms.model.LightListBean; - -import java.util.List; - -public class LightResultAdapter extends RecyclerView.Adapter { - - private final List dataBeans; - private final LayoutInflater layoutInflater; - - public LightResultAdapter(Context context, List beans) { - this.dataBeans = beans; - this.layoutInflater = LayoutInflater.from(context); - } - - @NonNull - @Override - public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - return new ItemViewHolder(layoutInflater.inflate(R.layout.item_light_recycleview, parent, false)); - } - - @Override - public void onBindViewHolder(@NonNull LightResultAdapter.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); - } - }); - } - if (switchClickListener != null) { - holder.lightSwitch.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - switchClickListener.onClick(position); - } - }); - } - } - - @Override - public int getItemCount() { - return dataBeans.size(); - } - - private OnGridItemClickListener clickListener; - - public interface OnGridItemClickListener { - void onClick(int position); - } - - public void setOnGridItemClickListener(OnGridItemClickListener onGridItemClickListener) { - this.clickListener = onGridItemClickListener; - } - - private OnSwitchClickListener switchClickListener; - - public interface OnSwitchClickListener { - void onClick(int position); - } - - public void setOnSwitchClickListener(OnSwitchClickListener switchClickListener) { - this.switchClickListener = switchClickListener; - } - - static class ItemViewHolder extends RecyclerView.ViewHolder { - - private final TextView lightNameView; - private final TextView lightStatusView; - private final ImageView lightSwitch; - - ItemViewHolder(@NonNull View itemView) { - super(itemView); - lightNameView = itemView.findViewById(R.id.lightNameView); - lightStatusView = itemView.findViewById(R.id.lightStatusView); - lightSwitch = itemView.findViewById(R.id.lightSwitch); - } - - void bindView(LightListBean.DataBean.RowsBean dataBean) { - lightNameView.setText(dataBean.getLampName()); - String statusName = dataBean.getStatusName(); - lightStatusView.setText(statusName); - if (statusName.equals("灭灯")) { - lightSwitch.setBackgroundResource(R.drawable.ic_switch_off); - } else if (statusName.equals("报警")) { - lightSwitch.setBackgroundResource(R.drawable.ic_switch_warning); - } else { - lightSwitch.setBackgroundResource(R.drawable.ic_switch_on); - } - } - } -} diff --git a/app/src/main/java/com/casic/dcms/adapter/NormalRecyclerAdapter.java b/app/src/main/java/com/casic/dcms/adapter/NormalRecyclerAdapter.java new file mode 100644 index 0000000..c80e2d5 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/adapter/NormalRecyclerAdapter.java @@ -0,0 +1,134 @@ +package com.casic.dcms.adapter; + +import android.annotation.SuppressLint; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import androidx.annotation.LayoutRes; +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.DiffUtil; +import androidx.recyclerview.widget.RecyclerView; + +import com.pengxh.androidx.lite.adapter.ViewHolder; + +import java.util.List; + +/** + * RecyclerView普通列表适配器 + */ +public abstract class NormalRecyclerAdapter extends RecyclerView.Adapter { + + private static final String TAG = "NormalRecyclerAdapter"; + private final int xmlResource; + private final List dataRows; + + public NormalRecyclerAdapter(@LayoutRes int xmlResource, List dataRows) { + this.xmlResource = xmlResource; + this.dataRows = dataRows; + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + @NonNull + @Override + public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + return new ViewHolder(LayoutInflater.from(parent.getContext()).inflate(xmlResource, parent, false)); + } + + @Override + public void onBindViewHolder(@NonNull ViewHolder holder, @SuppressLint("RecyclerView") int position) { + convertView(holder, position, dataRows.get(position)); + + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (itemClickedListener == null) { + return; + } + itemClickedListener.onItemClicked(position, dataRows.get(position)); + } + }); + } + + public void refresh(List newRows) { + DiffUtil.Callback diffCallback = new DiffUtil.Callback() { + + @Override + public int getOldListSize() { + return dataRows.size(); + } + + @Override + public int getNewListSize() { + return newRows.size(); + } + + @Override + public boolean areItemsTheSame(int oldItemPosition, int newItemPosition) { + if (dataRows == null || newRows == null) { + return false; + } + + // 检查索引是否在有效范围内 + if (oldItemPosition < 0 || oldItemPosition >= dataRows.size() || + newItemPosition < 0 || newItemPosition >= newRows.size()) { + return false; + } + + // 获取元素并进行比较 + Object oldItem = dataRows.get(oldItemPosition); + Object newItem = newRows.get(newItemPosition); + + // 处理空指针情况 + if (oldItem == null && newItem == null) { + return true; + } + if (oldItem == null || newItem == null) { + return false; + } + + return oldItem.equals(newItem); + } + + @Override + public boolean areContentsTheSame(int oldItemPosition, int newItemPosition) { + return dataRows.get(oldItemPosition) == newRows.get(newItemPosition); + } + }; + + DiffUtil.DiffResult diffResult = DiffUtil.calculateDiff(diffCallback); + + dataRows.clear(); + dataRows.addAll(newRows); + + diffResult.dispatchUpdatesTo(this); + } + + /** + * 加载更多 + */ + public void loadMore(List newRows) { + if (newRows.isEmpty()) { + return; + } + int startPosition = this.dataRows.size(); + this.dataRows.addAll(newRows); + notifyItemRangeInserted(startPosition, newRows.size()); + } + + public abstract void convertView(ViewHolder viewHolder, int position, T item); + + private OnItemClickedListener itemClickedListener; + + public interface OnItemClickedListener { + void onItemClicked(int position, T t); + } + + public void setOnItemClickedListener(OnItemClickedListener listener) { + itemClickedListener = listener; + } +} diff --git a/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java b/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java index 1deb066..80f7b98 100644 --- a/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java @@ -58,13 +58,13 @@ } @SuppressLint("NotifyDataSetChanged") - public void setRefreshData(List dataRows) { + public void refresh(List dataRows) { this.dataRows.clear(); this.dataRows.addAll(dataRows); notifyDataSetChanged(); } - public void setLoadMoreData(List dataRows) { + public void loadMore(List dataRows) { this.dataRows.addAll(dataRows); notifyItemRangeInserted(this.dataRows.size(), dataRows.size()); } diff --git a/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java index 3535c40..bd5e484 100644 --- a/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java @@ -10,6 +10,7 @@ import com.bumptech.glide.Glide; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentHomeBinding; import com.casic.dcms.model.HomePageBean; import com.casic.dcms.model.UserBean; @@ -36,7 +37,6 @@ import com.casic.dcms.view.verify.VerifyCaseActivity; import com.casic.dcms.vm.HomePageViewModel; import com.casic.dcms.vm.UserViewModel; -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.kit.LongKit; diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java index 0d2926f..a9cc331 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java @@ -5,22 +5,26 @@ import android.os.Handler; import android.os.Message; import android.text.TextUtils; +import android.view.View; import androidx.annotation.NonNull; import androidx.annotation.Nullable; +import androidx.cardview.widget.CardView; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; -import com.casic.dcms.adapter.LightResultAdapter; +import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentLightListBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightDetailBean; import com.casic.dcms.model.LightListBean; -import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.vm.LightViewModel; import com.casic.dcms.widgets.LightDetailDialog; +import com.pengxh.androidx.lite.adapter.ViewHolder; import com.pengxh.androidx.lite.base.AndroidxBaseFragment; import com.pengxh.androidx.lite.divider.RecyclerViewItemDivider; +import com.pengxh.androidx.lite.kit.IntKit; import com.pengxh.androidx.lite.kit.StringKit; import com.pengxh.androidx.lite.utils.LoadState; import com.pengxh.androidx.lite.utils.LoadingDialog; @@ -37,7 +41,7 @@ private static final String TAG = "LightOnListFragment"; private final WeakReferenceHandler weakReferenceHandler = new WeakReferenceHandler(this); private LightViewModel lightViewModel; - private LightResultAdapter adapter; + private NormalRecyclerAdapter adapter; private List dataBeans = new ArrayList<>(); private int pageIndex = 1; private boolean isRefresh, isLoadMore = false; @@ -50,7 +54,7 @@ @Override protected void initOnCreate(@Nullable Bundle savedInstanceState) { lightViewModel = new ViewModelProvider(this).get(LightViewModel.class); - getLightList(); + lightViewModel.getLightList(pageIndex); } @Override @@ -67,10 +71,6 @@ }); } - private void getLightList() { - lightViewModel.getLightList(LocaleConstant.PAGE_LIMIT, pageIndex); - } - @Override protected void initEvent() { getBinding().refreshLayout.setOnRefreshListener(new OnRefreshListener() { @@ -79,7 +79,7 @@ isRefresh = true; //刷新之后页码重置 pageIndex = 1; - getLightList(); + lightViewModel.getLightList(pageIndex); } }); getBinding().refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() { @@ -87,7 +87,7 @@ public void onLoadMore(@NonNull final RefreshLayout refreshLayout) { isLoadMore = true; pageIndex++; - getLightList(); + lightViewModel.getLightList(pageIndex); } }); @@ -97,21 +97,20 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题 - dataBeans = dataRows; + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - dataBeans.addAll(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { dataBeans = dataRows; + weakReferenceHandler.sendEmptyMessage(20210623); } - weakReferenceHandler.sendEmptyMessage(20210623); } } }); @@ -138,54 +137,67 @@ @Override public boolean handleMessage(@NonNull Message msg) { if (msg.what == 20210623) { - if (isRefresh || isLoadMore) { - adapter.notifyItemRangeInserted(adapter.getItemCount(), LocaleConstant.PAGE_LIMIT); + //首次加载数据 + if (dataBeans.size() == 0) { + getBinding().emptyView.show("没有路灯数据", null); } else { - //首次加载数据 - if (dataBeans.size() == 0) { - getBinding().emptyView.show("没有路灯数据", null); - } else { - getBinding().emptyView.hide(); - adapter = new LightResultAdapter(requireContext(), dataBeans); - getBinding().recyclerView.addItemDecoration(new RecyclerViewItemDivider(1, Color.LTGRAY)); - getBinding().recyclerView.setAdapter(adapter); - adapter.setOnGridItemClickListener(new LightResultAdapter.OnGridItemClickListener() { - @Override - public void onClick(int position) { - String lampId = dataBeans.get(position).getLampId(); - if (TextUtils.isEmpty(lampId)) { - StringKit.show(requireContext(), "错误,路灯编号为空"); - return; - } + getBinding().emptyView.hide(); + adapter = new NormalRecyclerAdapter(R.layout.item_light_recycleview, dataBeans) { + @Override + public void convertView(ViewHolder viewHolder, int position, LightListBean.DataBean.RowsBean item) { + String statusName = item.getStatusName(); + viewHolder.setText(R.id.lightNameView, item.getLampName()) + .setText(R.id.lightStatusView, "已" + statusName); - lightViewModel.getLightDetail(requireContext(), lampId); + CardView statueTagView = viewHolder.getView(R.id.statueTagView); + if (statusName.equals("灭灯")) { + viewHolder.setImageResource(R.id.lightSwitch, R.drawable.ic_switch_off); + statueTagView.setCardBackgroundColor(IntKit.convertColor(requireContext(), R.color.darkGray)); + } else if (statusName.equals("报警")) { + viewHolder.setImageResource(R.id.lightSwitch, R.drawable.ic_switch_warning); + statueTagView.setCardBackgroundColor(IntKit.convertColor(requireContext(), R.color.warnColor)); + } else { + viewHolder.setImageResource(R.id.lightSwitch, R.drawable.ic_switch_on); + statueTagView.setCardBackgroundColor(IntKit.convertColor(requireContext(), R.color.onLineColor)); } - }); - adapter.setOnSwitchClickListener(new LightResultAdapter.OnSwitchClickListener() { - @Override - public void onClick(int position) { - LightListBean.DataBean.RowsBean rowsBean = dataBeans.get(position); + viewHolder.setOnClickListener(R.id.lightSwitch, new View.OnClickListener() { + @Override + public void onClick(View v) { + List lampIds = new ArrayList<>(); + lampIds.add(Long.parseLong(item.getLampId())); - List lampIds = new ArrayList<>(); - lampIds.add(Long.parseLong(rowsBean.getLampId())); - - String statusName = rowsBean.getStatusName(); - String controlType; - if (statusName.equals("离线")) { - controlType = "1"; - } else { - controlType = "0"; + String statusName = item.getStatusName(); + String controlType; + if (statusName.equals("灭灯")) { + controlType = "1"; + } else { + controlType = "0"; + } + lightViewModel.controlLight(requireContext(), lampIds, controlType); } - lightViewModel.controlLight(requireContext(), lampIds, controlType); + }); + } + }; + getBinding().recyclerView.addItemDecoration(new RecyclerViewItemDivider(1, Color.LTGRAY)); + getBinding().recyclerView.setAdapter(adapter); + adapter.setOnItemClickedListener(new NormalRecyclerAdapter.OnItemClickedListener() { + @Override + public void onItemClicked(int position, LightListBean.DataBean.RowsBean rowsBean) { + String lampId = rowsBean.getLampId(); + if (TextUtils.isEmpty(lampId)) { + StringKit.show(requireContext(), "错误,路灯编号为空"); + return; } - }); - } + + lightViewModel.getLightDetail(requireContext(), lampId); + } + }); } } else if (msg.what == 20210624) { isRefresh = true; pageIndex = 1; - lightViewModel.getLightList(LocaleConstant.PAGE_LIMIT, pageIndex); + lightViewModel.getLightList(pageIndex); } return true; } diff --git a/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java index 64791dd..8f872db 100644 --- a/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java @@ -6,12 +6,12 @@ import androidx.annotation.Nullable; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.bean.NoticeLocaleBean; import com.casic.dcms.databinding.FragmentNoticeBinding; import com.casic.dcms.utils.DataBaseManager; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.CaseDetailActivity; -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.kit.ContextKit; diff --git a/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java b/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java index 5980aaf..93ab96c 100644 --- a/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java @@ -87,14 +87,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/business/PackageTodoFragment.java b/app/src/main/java/com/casic/dcms/fragment/business/PackageTodoFragment.java index 9f28bbe..1fefd3f 100644 --- a/app/src/main/java/com/casic/dcms/fragment/business/PackageTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/business/PackageTodoFragment.java @@ -88,14 +88,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { 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 816fb8f..62db8ed 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 @@ -12,13 +12,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentCheckCaseBinding; import com.casic.dcms.model.CaseCheckModel; import com.casic.dcms.utils.LocaleConstant; 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.kit.ContextKit; @@ -61,14 +61,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { 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 e472cd6..27f60a2 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 @@ -12,13 +12,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentCheckCaseBinding; import com.casic.dcms.model.CaseCheckModel; import com.casic.dcms.utils.LocaleConstant; 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.kit.ContextKit; @@ -62,14 +62,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAdjustFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAdjustFragment.java index 23a4f8e..fdee789 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAdjustFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAdjustFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.AdjustCaseModel; import com.casic.dcms.view.department.DeptAdjustDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -57,14 +57,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAuthorizeFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAuthorizeFragment.java index f5ba0b0..b5d807e 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAuthorizeFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAuthorizeFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.AuthorizeCaseModel; import com.casic.dcms.view.department.DeptAuthorizeDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -57,14 +57,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseDelayedFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseDelayedFragment.java index e16d47d..52c88fd 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseDelayedFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseDelayedFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.DelayedCaseModel; import com.casic.dcms.view.CaseDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -57,14 +57,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseHandledFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseHandledFragment.java index 0acf747..2ce5297 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseHandledFragment.java @@ -12,12 +12,12 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.HandledCaseModel; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.CaseDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -59,14 +59,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCasePostponeFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCasePostponeFragment.java index b2a3047..d8b3396 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCasePostponeFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCasePostponeFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.PostCaseModel; import com.casic.dcms.view.CaseDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -57,14 +57,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseProcessFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseProcessFragment.java index ef78a7d..2c5f4d7 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseProcessFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseProcessFragment.java @@ -12,12 +12,12 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.HandleCaseModel; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.view.department.DeptTodoDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.StringKit; @@ -58,14 +58,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseTodoFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseTodoFragment.java index 2f8cb8a..febcb54 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseTodoFragment.java @@ -13,13 +13,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.TodoCaseModel; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.department.DeptTodoDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.StringKit; @@ -60,14 +60,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/handle/CaseHandledFragment.java b/app/src/main/java/com/casic/dcms/fragment/handle/CaseHandledFragment.java index d61fff7..d8d825f 100644 --- a/app/src/main/java/com/casic/dcms/fragment/handle/CaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/handle/CaseHandledFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentHandleCaseBinding; import com.casic.dcms.model.CaseHandledBean; import com.casic.dcms.view.handle.CaseHandledDetailActivity; 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.kit.ContextKit; @@ -58,14 +58,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/handle/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/fragment/handle/CaseTodoFragment.java index 2196251..26d0942 100644 --- a/app/src/main/java/com/casic/dcms/fragment/handle/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/handle/CaseTodoFragment.java @@ -13,12 +13,12 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentHandleCaseBinding; import com.casic.dcms.model.CaseHandleBean; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.handle.CaseHandleDetailActivity; 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.kit.StringKit; @@ -60,14 +60,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/overtime/CaseHandledFragment.java b/app/src/main/java/com/casic/dcms/fragment/overtime/CaseHandledFragment.java index 5cb44da..3424ebd 100644 --- a/app/src/main/java/com/casic/dcms/fragment/overtime/CaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/overtime/CaseHandledFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentOvertimeCaseBinding; import com.casic.dcms.model.OvertimeCaseBean; import com.casic.dcms.view.CaseTodoHandledDetailActivity; 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.kit.ContextKit; @@ -58,14 +58,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/overtime/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/fragment/overtime/CaseTodoFragment.java index a98bde5..1c2c20d 100644 --- a/app/src/main/java/com/casic/dcms/fragment/overtime/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/overtime/CaseTodoFragment.java @@ -12,11 +12,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentOvertimeCaseBinding; import com.casic.dcms.model.OvertimeCaseBean; import com.casic.dcms.view.CaseTodoDetailActivity; 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.kit.StringKit; @@ -58,14 +58,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/urgent/CaseHandledFragment.java b/app/src/main/java/com/casic/dcms/fragment/urgent/CaseHandledFragment.java index b55651f..2cc0a02 100644 --- a/app/src/main/java/com/casic/dcms/fragment/urgent/CaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/urgent/CaseHandledFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentUrgentCaseBinding; import com.casic.dcms.model.UrgentCaseBean; import com.casic.dcms.view.CaseTodoHandledDetailActivity; 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.kit.ContextKit; @@ -58,14 +58,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/urgent/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/fragment/urgent/CaseTodoFragment.java index 854d6f8..54b773e 100644 --- a/app/src/main/java/com/casic/dcms/fragment/urgent/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/urgent/CaseTodoFragment.java @@ -12,11 +12,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentUrgentCaseBinding; import com.casic.dcms.model.UrgentCaseBean; import com.casic.dcms.view.CaseTodoDetailActivity; 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.kit.StringKit; @@ -58,14 +58,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifiedFragment.java b/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifiedFragment.java index b5a130e..426878b 100644 --- a/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifiedFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifiedFragment.java @@ -12,13 +12,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentVerifyCaseBinding; import com.casic.dcms.model.VerifiedCaseModel; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.verify.VerifiedDetailActivity; 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.kit.ContextKit; @@ -61,14 +61,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifyFragment.java b/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifyFragment.java index 00039fc..d5a91fc 100644 --- a/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifyFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifyFragment.java @@ -12,13 +12,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentVerifyCaseBinding; import com.casic.dcms.model.VerifyCaseModel; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.verify.VerifyDetailActivity; 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.kit.ContextKit; @@ -61,14 +61,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java index b371a7c..ddddaf1 100644 --- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java +++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java @@ -594,8 +594,8 @@ /** * 路灯分页列表 */ - public static Observable getLightListResult(int limit, int offset) { - return api.getLightList(AuthenticationHelper.getToken(), limit, offset); + public static Observable getLightListResult(int offset) { + return api.getLightList(AuthenticationHelper.getToken(), LocaleConstant.PAGE_LIMIT, offset); } /** 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 82ecb71..77fed79 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java @@ -10,11 +10,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.ActivityCaseProcessBinding; import com.casic.dcms.model.CaseProcessBean; import com.casic.dcms.utils.ViewGroupHub; import com.casic.dcms.vm.CommonDataViewModel; -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.utils.Constant; diff --git a/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java b/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java index 1154918..4af8a96 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java @@ -10,11 +10,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.ActivityCaseListBinding; import com.casic.dcms.model.CaseSearchResultBean; import com.casic.dcms.utils.ViewGroupHub; 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.AndroidxBaseActivity; import com.pengxh.androidx.lite.kit.ContextKit; @@ -104,14 +104,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); binding.refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(context, "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); binding.refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java b/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java index efbd88d..2b7b698 100644 --- a/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java +++ b/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java @@ -13,12 +13,12 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.ActivityMaintainRecordBinding; import com.casic.dcms.model.MaintainRecordBean; import com.casic.dcms.utils.ViewGroupHub; import com.casic.dcms.vm.BridgeViewModel; import com.casic.dcms.widgets.RangeDateActionSheet; -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.divider.RecyclerViewItemDivider; @@ -76,14 +76,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); binding.refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(context, "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); binding.refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java b/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java index 53a3c59..8c65f4d 100644 --- a/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java +++ b/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java @@ -14,6 +14,7 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.ActivityPipeBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.AlarmDataBean; @@ -22,7 +23,6 @@ import com.casic.dcms.view.map.WarningOnMapActivity; import com.casic.dcms.vm.AlarmViewModel; import com.casic.dcms.widgets.CancelAlarmDialog; -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.divider.RecyclerViewItemDivider; @@ -109,14 +109,14 @@ SaveKeyValues.putValue("alarmTotal", alarmDataBean.getData().getTotal()); List dataRows = alarmDataBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); binding.refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(context, "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); binding.refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java b/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java index b1cb4df..1492a18 100644 --- a/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java +++ b/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java @@ -14,6 +14,7 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.ActivityWellListBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.WellListBean; @@ -21,7 +22,6 @@ import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.ViewGroupHub; import com.casic.dcms.vm.WellViewModel; -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.divider.RecyclerViewItemDivider; @@ -103,14 +103,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); binding.refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(context, "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); binding.refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java index 35ef2b0..14352aa 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java @@ -11,6 +11,7 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.ActivityCaseResourceBinding; import com.casic.dcms.model.CaseResourceBean; import com.casic.dcms.utils.ChartViewHelper; @@ -21,7 +22,6 @@ import com.casic.dcms.vm.DataAnalysisViewModel; import com.casic.dcms.widgets.RangeDateActionSheet; import com.github.mikephil.charting.data.PieEntry; -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.divider.RecyclerViewItemDivider; diff --git a/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java index 32f3f27..4c5ca87 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java @@ -8,13 +8,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.ActivityCityBaseDataBinding; import com.casic.dcms.model.CityBaseDataBean; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.ViewGroupHub; import com.casic.dcms.vm.DataAnalysisViewModel; -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.utils.LoadState; diff --git a/app/src/main/java/com/casic/dcms/view/statistics/DataAnalysisActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/DataAnalysisActivity.java index 769b6de..f3b24df 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/DataAnalysisActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/DataAnalysisActivity.java @@ -7,11 +7,11 @@ import androidx.annotation.Nullable; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.ActivityCaseAnalysisBinding; import com.casic.dcms.model.DataAnalysisGridModel; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.ViewGroupHub; -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.kit.ContextKit; diff --git a/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java index 3f6adb6..d154820 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java @@ -11,6 +11,7 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.ActivityDeptHandleConditionBinding; import com.casic.dcms.model.DeptHandleConditionBean; import com.casic.dcms.utils.ChartViewHelper; @@ -21,7 +22,6 @@ import com.casic.dcms.vm.DataAnalysisViewModel; import com.casic.dcms.widgets.RangeDateActionSheet; import com.github.mikephil.charting.data.BarEntry; -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.divider.RecyclerViewItemDivider; diff --git a/app/src/main/java/com/casic/dcms/view/statistics/GridAnalysisActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/GridAnalysisActivity.java index ff22d41..9dbcc25 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/GridAnalysisActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/GridAnalysisActivity.java @@ -12,6 +12,7 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.ActivityGridAnalysisBinding; import com.casic.dcms.model.GridAnalysisBean; import com.casic.dcms.utils.ColorHub; @@ -20,7 +21,6 @@ import com.casic.dcms.utils.ViewGroupHub; import com.casic.dcms.vm.DataAnalysisViewModel; import com.casic.dcms.widgets.RangeDateActionSheet; -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.divider.RecyclerViewItemDivider; diff --git a/app/src/main/java/com/casic/dcms/view/statistics/HighEventActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/HighEventActivity.java index c1061c3..6a45023 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/HighEventActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/HighEventActivity.java @@ -11,6 +11,7 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.ActivityHighEventBinding; import com.casic.dcms.model.HighEventBean; import com.casic.dcms.utils.ChartViewHelper; @@ -21,7 +22,6 @@ import com.casic.dcms.vm.DataAnalysisViewModel; import com.casic.dcms.widgets.RangeDateActionSheet; import com.github.mikephil.charting.data.PieEntry; -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.divider.RecyclerViewItemDivider; diff --git a/app/src/main/java/com/casic/dcms/view/statistics/PunishAnalysisActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/PunishAnalysisActivity.java index d6ae3c0..4acf271 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/PunishAnalysisActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/PunishAnalysisActivity.java @@ -11,6 +11,7 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.ActivityPunishAnalysisBinding; import com.casic.dcms.model.PunishRankingBean; import com.casic.dcms.model.PunishTypeStatisticBean; @@ -22,7 +23,6 @@ import com.casic.dcms.vm.DataAnalysisViewModel; import com.casic.dcms.widgets.RangeDateActionSheet; import com.github.mikephil.charting.data.BarEntry; -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.divider.RecyclerViewItemDivider; diff --git a/app/src/main/java/com/casic/dcms/view/toilet/CleaningRecordsActivity.java b/app/src/main/java/com/casic/dcms/view/toilet/CleaningRecordsActivity.java index c67fcdf..9e887d3 100644 --- a/app/src/main/java/com/casic/dcms/view/toilet/CleaningRecordsActivity.java +++ b/app/src/main/java/com/casic/dcms/view/toilet/CleaningRecordsActivity.java @@ -14,6 +14,7 @@ import com.amap.api.services.core.LatLonPoint; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.ActivityCleanRecordsBinding; import com.casic.dcms.model.CleanRecordBean; import com.casic.dcms.utils.LocationHelper; @@ -24,7 +25,6 @@ import com.casic.dcms.view.map.WorkerOnMapActivity; import com.casic.dcms.vm.ToiletViewModel; import com.casic.dcms.widgets.RangeDateActionSheet; -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.kit.ContextKit; @@ -68,14 +68,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); binding.refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(context, "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); binding.refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/adapter/LightResultAdapter.java b/app/src/main/java/com/casic/dcms/adapter/LightResultAdapter.java deleted file mode 100644 index 405af6e..0000000 --- a/app/src/main/java/com/casic/dcms/adapter/LightResultAdapter.java +++ /dev/null @@ -1,107 +0,0 @@ -package com.casic.dcms.adapter; - -import android.annotation.SuppressLint; -import android.content.Context; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.ImageView; -import android.widget.TextView; - -import androidx.annotation.NonNull; -import androidx.recyclerview.widget.RecyclerView; - -import com.casic.dcms.R; -import com.casic.dcms.model.LightListBean; - -import java.util.List; - -public class LightResultAdapter extends RecyclerView.Adapter { - - private final List dataBeans; - private final LayoutInflater layoutInflater; - - public LightResultAdapter(Context context, List beans) { - this.dataBeans = beans; - this.layoutInflater = LayoutInflater.from(context); - } - - @NonNull - @Override - public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - return new ItemViewHolder(layoutInflater.inflate(R.layout.item_light_recycleview, parent, false)); - } - - @Override - public void onBindViewHolder(@NonNull LightResultAdapter.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); - } - }); - } - if (switchClickListener != null) { - holder.lightSwitch.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - switchClickListener.onClick(position); - } - }); - } - } - - @Override - public int getItemCount() { - return dataBeans.size(); - } - - private OnGridItemClickListener clickListener; - - public interface OnGridItemClickListener { - void onClick(int position); - } - - public void setOnGridItemClickListener(OnGridItemClickListener onGridItemClickListener) { - this.clickListener = onGridItemClickListener; - } - - private OnSwitchClickListener switchClickListener; - - public interface OnSwitchClickListener { - void onClick(int position); - } - - public void setOnSwitchClickListener(OnSwitchClickListener switchClickListener) { - this.switchClickListener = switchClickListener; - } - - static class ItemViewHolder extends RecyclerView.ViewHolder { - - private final TextView lightNameView; - private final TextView lightStatusView; - private final ImageView lightSwitch; - - ItemViewHolder(@NonNull View itemView) { - super(itemView); - lightNameView = itemView.findViewById(R.id.lightNameView); - lightStatusView = itemView.findViewById(R.id.lightStatusView); - lightSwitch = itemView.findViewById(R.id.lightSwitch); - } - - void bindView(LightListBean.DataBean.RowsBean dataBean) { - lightNameView.setText(dataBean.getLampName()); - String statusName = dataBean.getStatusName(); - lightStatusView.setText(statusName); - if (statusName.equals("灭灯")) { - lightSwitch.setBackgroundResource(R.drawable.ic_switch_off); - } else if (statusName.equals("报警")) { - lightSwitch.setBackgroundResource(R.drawable.ic_switch_warning); - } else { - lightSwitch.setBackgroundResource(R.drawable.ic_switch_on); - } - } - } -} diff --git a/app/src/main/java/com/casic/dcms/adapter/NormalRecyclerAdapter.java b/app/src/main/java/com/casic/dcms/adapter/NormalRecyclerAdapter.java new file mode 100644 index 0000000..c80e2d5 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/adapter/NormalRecyclerAdapter.java @@ -0,0 +1,134 @@ +package com.casic.dcms.adapter; + +import android.annotation.SuppressLint; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import androidx.annotation.LayoutRes; +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.DiffUtil; +import androidx.recyclerview.widget.RecyclerView; + +import com.pengxh.androidx.lite.adapter.ViewHolder; + +import java.util.List; + +/** + * RecyclerView普通列表适配器 + */ +public abstract class NormalRecyclerAdapter extends RecyclerView.Adapter { + + private static final String TAG = "NormalRecyclerAdapter"; + private final int xmlResource; + private final List dataRows; + + public NormalRecyclerAdapter(@LayoutRes int xmlResource, List dataRows) { + this.xmlResource = xmlResource; + this.dataRows = dataRows; + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + @NonNull + @Override + public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + return new ViewHolder(LayoutInflater.from(parent.getContext()).inflate(xmlResource, parent, false)); + } + + @Override + public void onBindViewHolder(@NonNull ViewHolder holder, @SuppressLint("RecyclerView") int position) { + convertView(holder, position, dataRows.get(position)); + + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (itemClickedListener == null) { + return; + } + itemClickedListener.onItemClicked(position, dataRows.get(position)); + } + }); + } + + public void refresh(List newRows) { + DiffUtil.Callback diffCallback = new DiffUtil.Callback() { + + @Override + public int getOldListSize() { + return dataRows.size(); + } + + @Override + public int getNewListSize() { + return newRows.size(); + } + + @Override + public boolean areItemsTheSame(int oldItemPosition, int newItemPosition) { + if (dataRows == null || newRows == null) { + return false; + } + + // 检查索引是否在有效范围内 + if (oldItemPosition < 0 || oldItemPosition >= dataRows.size() || + newItemPosition < 0 || newItemPosition >= newRows.size()) { + return false; + } + + // 获取元素并进行比较 + Object oldItem = dataRows.get(oldItemPosition); + Object newItem = newRows.get(newItemPosition); + + // 处理空指针情况 + if (oldItem == null && newItem == null) { + return true; + } + if (oldItem == null || newItem == null) { + return false; + } + + return oldItem.equals(newItem); + } + + @Override + public boolean areContentsTheSame(int oldItemPosition, int newItemPosition) { + return dataRows.get(oldItemPosition) == newRows.get(newItemPosition); + } + }; + + DiffUtil.DiffResult diffResult = DiffUtil.calculateDiff(diffCallback); + + dataRows.clear(); + dataRows.addAll(newRows); + + diffResult.dispatchUpdatesTo(this); + } + + /** + * 加载更多 + */ + public void loadMore(List newRows) { + if (newRows.isEmpty()) { + return; + } + int startPosition = this.dataRows.size(); + this.dataRows.addAll(newRows); + notifyItemRangeInserted(startPosition, newRows.size()); + } + + public abstract void convertView(ViewHolder viewHolder, int position, T item); + + private OnItemClickedListener itemClickedListener; + + public interface OnItemClickedListener { + void onItemClicked(int position, T t); + } + + public void setOnItemClickedListener(OnItemClickedListener listener) { + itemClickedListener = listener; + } +} diff --git a/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java b/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java index 1deb066..80f7b98 100644 --- a/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java @@ -58,13 +58,13 @@ } @SuppressLint("NotifyDataSetChanged") - public void setRefreshData(List dataRows) { + public void refresh(List dataRows) { this.dataRows.clear(); this.dataRows.addAll(dataRows); notifyDataSetChanged(); } - public void setLoadMoreData(List dataRows) { + public void loadMore(List dataRows) { this.dataRows.addAll(dataRows); notifyItemRangeInserted(this.dataRows.size(), dataRows.size()); } diff --git a/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java index 3535c40..bd5e484 100644 --- a/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java @@ -10,6 +10,7 @@ import com.bumptech.glide.Glide; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentHomeBinding; import com.casic.dcms.model.HomePageBean; import com.casic.dcms.model.UserBean; @@ -36,7 +37,6 @@ import com.casic.dcms.view.verify.VerifyCaseActivity; import com.casic.dcms.vm.HomePageViewModel; import com.casic.dcms.vm.UserViewModel; -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.kit.LongKit; diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java index 0d2926f..a9cc331 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java @@ -5,22 +5,26 @@ import android.os.Handler; import android.os.Message; import android.text.TextUtils; +import android.view.View; import androidx.annotation.NonNull; import androidx.annotation.Nullable; +import androidx.cardview.widget.CardView; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; -import com.casic.dcms.adapter.LightResultAdapter; +import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentLightListBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightDetailBean; import com.casic.dcms.model.LightListBean; -import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.vm.LightViewModel; import com.casic.dcms.widgets.LightDetailDialog; +import com.pengxh.androidx.lite.adapter.ViewHolder; import com.pengxh.androidx.lite.base.AndroidxBaseFragment; import com.pengxh.androidx.lite.divider.RecyclerViewItemDivider; +import com.pengxh.androidx.lite.kit.IntKit; import com.pengxh.androidx.lite.kit.StringKit; import com.pengxh.androidx.lite.utils.LoadState; import com.pengxh.androidx.lite.utils.LoadingDialog; @@ -37,7 +41,7 @@ private static final String TAG = "LightOnListFragment"; private final WeakReferenceHandler weakReferenceHandler = new WeakReferenceHandler(this); private LightViewModel lightViewModel; - private LightResultAdapter adapter; + private NormalRecyclerAdapter adapter; private List dataBeans = new ArrayList<>(); private int pageIndex = 1; private boolean isRefresh, isLoadMore = false; @@ -50,7 +54,7 @@ @Override protected void initOnCreate(@Nullable Bundle savedInstanceState) { lightViewModel = new ViewModelProvider(this).get(LightViewModel.class); - getLightList(); + lightViewModel.getLightList(pageIndex); } @Override @@ -67,10 +71,6 @@ }); } - private void getLightList() { - lightViewModel.getLightList(LocaleConstant.PAGE_LIMIT, pageIndex); - } - @Override protected void initEvent() { getBinding().refreshLayout.setOnRefreshListener(new OnRefreshListener() { @@ -79,7 +79,7 @@ isRefresh = true; //刷新之后页码重置 pageIndex = 1; - getLightList(); + lightViewModel.getLightList(pageIndex); } }); getBinding().refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() { @@ -87,7 +87,7 @@ public void onLoadMore(@NonNull final RefreshLayout refreshLayout) { isLoadMore = true; pageIndex++; - getLightList(); + lightViewModel.getLightList(pageIndex); } }); @@ -97,21 +97,20 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题 - dataBeans = dataRows; + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - dataBeans.addAll(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { dataBeans = dataRows; + weakReferenceHandler.sendEmptyMessage(20210623); } - weakReferenceHandler.sendEmptyMessage(20210623); } } }); @@ -138,54 +137,67 @@ @Override public boolean handleMessage(@NonNull Message msg) { if (msg.what == 20210623) { - if (isRefresh || isLoadMore) { - adapter.notifyItemRangeInserted(adapter.getItemCount(), LocaleConstant.PAGE_LIMIT); + //首次加载数据 + if (dataBeans.size() == 0) { + getBinding().emptyView.show("没有路灯数据", null); } else { - //首次加载数据 - if (dataBeans.size() == 0) { - getBinding().emptyView.show("没有路灯数据", null); - } else { - getBinding().emptyView.hide(); - adapter = new LightResultAdapter(requireContext(), dataBeans); - getBinding().recyclerView.addItemDecoration(new RecyclerViewItemDivider(1, Color.LTGRAY)); - getBinding().recyclerView.setAdapter(adapter); - adapter.setOnGridItemClickListener(new LightResultAdapter.OnGridItemClickListener() { - @Override - public void onClick(int position) { - String lampId = dataBeans.get(position).getLampId(); - if (TextUtils.isEmpty(lampId)) { - StringKit.show(requireContext(), "错误,路灯编号为空"); - return; - } + getBinding().emptyView.hide(); + adapter = new NormalRecyclerAdapter(R.layout.item_light_recycleview, dataBeans) { + @Override + public void convertView(ViewHolder viewHolder, int position, LightListBean.DataBean.RowsBean item) { + String statusName = item.getStatusName(); + viewHolder.setText(R.id.lightNameView, item.getLampName()) + .setText(R.id.lightStatusView, "已" + statusName); - lightViewModel.getLightDetail(requireContext(), lampId); + CardView statueTagView = viewHolder.getView(R.id.statueTagView); + if (statusName.equals("灭灯")) { + viewHolder.setImageResource(R.id.lightSwitch, R.drawable.ic_switch_off); + statueTagView.setCardBackgroundColor(IntKit.convertColor(requireContext(), R.color.darkGray)); + } else if (statusName.equals("报警")) { + viewHolder.setImageResource(R.id.lightSwitch, R.drawable.ic_switch_warning); + statueTagView.setCardBackgroundColor(IntKit.convertColor(requireContext(), R.color.warnColor)); + } else { + viewHolder.setImageResource(R.id.lightSwitch, R.drawable.ic_switch_on); + statueTagView.setCardBackgroundColor(IntKit.convertColor(requireContext(), R.color.onLineColor)); } - }); - adapter.setOnSwitchClickListener(new LightResultAdapter.OnSwitchClickListener() { - @Override - public void onClick(int position) { - LightListBean.DataBean.RowsBean rowsBean = dataBeans.get(position); + viewHolder.setOnClickListener(R.id.lightSwitch, new View.OnClickListener() { + @Override + public void onClick(View v) { + List lampIds = new ArrayList<>(); + lampIds.add(Long.parseLong(item.getLampId())); - List lampIds = new ArrayList<>(); - lampIds.add(Long.parseLong(rowsBean.getLampId())); - - String statusName = rowsBean.getStatusName(); - String controlType; - if (statusName.equals("离线")) { - controlType = "1"; - } else { - controlType = "0"; + String statusName = item.getStatusName(); + String controlType; + if (statusName.equals("灭灯")) { + controlType = "1"; + } else { + controlType = "0"; + } + lightViewModel.controlLight(requireContext(), lampIds, controlType); } - lightViewModel.controlLight(requireContext(), lampIds, controlType); + }); + } + }; + getBinding().recyclerView.addItemDecoration(new RecyclerViewItemDivider(1, Color.LTGRAY)); + getBinding().recyclerView.setAdapter(adapter); + adapter.setOnItemClickedListener(new NormalRecyclerAdapter.OnItemClickedListener() { + @Override + public void onItemClicked(int position, LightListBean.DataBean.RowsBean rowsBean) { + String lampId = rowsBean.getLampId(); + if (TextUtils.isEmpty(lampId)) { + StringKit.show(requireContext(), "错误,路灯编号为空"); + return; } - }); - } + + lightViewModel.getLightDetail(requireContext(), lampId); + } + }); } } else if (msg.what == 20210624) { isRefresh = true; pageIndex = 1; - lightViewModel.getLightList(LocaleConstant.PAGE_LIMIT, pageIndex); + lightViewModel.getLightList(pageIndex); } return true; } diff --git a/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java index 64791dd..8f872db 100644 --- a/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java @@ -6,12 +6,12 @@ import androidx.annotation.Nullable; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.bean.NoticeLocaleBean; import com.casic.dcms.databinding.FragmentNoticeBinding; import com.casic.dcms.utils.DataBaseManager; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.CaseDetailActivity; -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.kit.ContextKit; diff --git a/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java b/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java index 5980aaf..93ab96c 100644 --- a/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java @@ -87,14 +87,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/business/PackageTodoFragment.java b/app/src/main/java/com/casic/dcms/fragment/business/PackageTodoFragment.java index 9f28bbe..1fefd3f 100644 --- a/app/src/main/java/com/casic/dcms/fragment/business/PackageTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/business/PackageTodoFragment.java @@ -88,14 +88,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { 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 816fb8f..62db8ed 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 @@ -12,13 +12,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentCheckCaseBinding; import com.casic.dcms.model.CaseCheckModel; import com.casic.dcms.utils.LocaleConstant; 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.kit.ContextKit; @@ -61,14 +61,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { 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 e472cd6..27f60a2 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 @@ -12,13 +12,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentCheckCaseBinding; import com.casic.dcms.model.CaseCheckModel; import com.casic.dcms.utils.LocaleConstant; 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.kit.ContextKit; @@ -62,14 +62,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAdjustFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAdjustFragment.java index 23a4f8e..fdee789 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAdjustFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAdjustFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.AdjustCaseModel; import com.casic.dcms.view.department.DeptAdjustDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -57,14 +57,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAuthorizeFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAuthorizeFragment.java index f5ba0b0..b5d807e 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAuthorizeFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAuthorizeFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.AuthorizeCaseModel; import com.casic.dcms.view.department.DeptAuthorizeDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -57,14 +57,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseDelayedFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseDelayedFragment.java index e16d47d..52c88fd 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseDelayedFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseDelayedFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.DelayedCaseModel; import com.casic.dcms.view.CaseDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -57,14 +57,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseHandledFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseHandledFragment.java index 0acf747..2ce5297 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseHandledFragment.java @@ -12,12 +12,12 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.HandledCaseModel; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.CaseDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -59,14 +59,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCasePostponeFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCasePostponeFragment.java index b2a3047..d8b3396 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCasePostponeFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCasePostponeFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.PostCaseModel; import com.casic.dcms.view.CaseDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -57,14 +57,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseProcessFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseProcessFragment.java index ef78a7d..2c5f4d7 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseProcessFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseProcessFragment.java @@ -12,12 +12,12 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.HandleCaseModel; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.view.department.DeptTodoDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.StringKit; @@ -58,14 +58,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseTodoFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseTodoFragment.java index 2f8cb8a..febcb54 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseTodoFragment.java @@ -13,13 +13,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.TodoCaseModel; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.department.DeptTodoDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.StringKit; @@ -60,14 +60,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/handle/CaseHandledFragment.java b/app/src/main/java/com/casic/dcms/fragment/handle/CaseHandledFragment.java index d61fff7..d8d825f 100644 --- a/app/src/main/java/com/casic/dcms/fragment/handle/CaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/handle/CaseHandledFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentHandleCaseBinding; import com.casic.dcms.model.CaseHandledBean; import com.casic.dcms.view.handle.CaseHandledDetailActivity; 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.kit.ContextKit; @@ -58,14 +58,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/handle/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/fragment/handle/CaseTodoFragment.java index 2196251..26d0942 100644 --- a/app/src/main/java/com/casic/dcms/fragment/handle/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/handle/CaseTodoFragment.java @@ -13,12 +13,12 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentHandleCaseBinding; import com.casic.dcms.model.CaseHandleBean; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.handle.CaseHandleDetailActivity; 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.kit.StringKit; @@ -60,14 +60,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/overtime/CaseHandledFragment.java b/app/src/main/java/com/casic/dcms/fragment/overtime/CaseHandledFragment.java index 5cb44da..3424ebd 100644 --- a/app/src/main/java/com/casic/dcms/fragment/overtime/CaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/overtime/CaseHandledFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentOvertimeCaseBinding; import com.casic.dcms.model.OvertimeCaseBean; import com.casic.dcms.view.CaseTodoHandledDetailActivity; 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.kit.ContextKit; @@ -58,14 +58,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/overtime/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/fragment/overtime/CaseTodoFragment.java index a98bde5..1c2c20d 100644 --- a/app/src/main/java/com/casic/dcms/fragment/overtime/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/overtime/CaseTodoFragment.java @@ -12,11 +12,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentOvertimeCaseBinding; import com.casic.dcms.model.OvertimeCaseBean; import com.casic.dcms.view.CaseTodoDetailActivity; 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.kit.StringKit; @@ -58,14 +58,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/urgent/CaseHandledFragment.java b/app/src/main/java/com/casic/dcms/fragment/urgent/CaseHandledFragment.java index b55651f..2cc0a02 100644 --- a/app/src/main/java/com/casic/dcms/fragment/urgent/CaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/urgent/CaseHandledFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentUrgentCaseBinding; import com.casic.dcms.model.UrgentCaseBean; import com.casic.dcms.view.CaseTodoHandledDetailActivity; 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.kit.ContextKit; @@ -58,14 +58,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/urgent/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/fragment/urgent/CaseTodoFragment.java index 854d6f8..54b773e 100644 --- a/app/src/main/java/com/casic/dcms/fragment/urgent/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/urgent/CaseTodoFragment.java @@ -12,11 +12,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentUrgentCaseBinding; import com.casic.dcms.model.UrgentCaseBean; import com.casic.dcms.view.CaseTodoDetailActivity; 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.kit.StringKit; @@ -58,14 +58,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifiedFragment.java b/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifiedFragment.java index b5a130e..426878b 100644 --- a/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifiedFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifiedFragment.java @@ -12,13 +12,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentVerifyCaseBinding; import com.casic.dcms.model.VerifiedCaseModel; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.verify.VerifiedDetailActivity; 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.kit.ContextKit; @@ -61,14 +61,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifyFragment.java b/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifyFragment.java index 00039fc..d5a91fc 100644 --- a/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifyFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifyFragment.java @@ -12,13 +12,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentVerifyCaseBinding; import com.casic.dcms.model.VerifyCaseModel; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.verify.VerifyDetailActivity; 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.kit.ContextKit; @@ -61,14 +61,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java index b371a7c..ddddaf1 100644 --- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java +++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java @@ -594,8 +594,8 @@ /** * 路灯分页列表 */ - public static Observable getLightListResult(int limit, int offset) { - return api.getLightList(AuthenticationHelper.getToken(), limit, offset); + public static Observable getLightListResult(int offset) { + return api.getLightList(AuthenticationHelper.getToken(), LocaleConstant.PAGE_LIMIT, offset); } /** 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 82ecb71..77fed79 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java @@ -10,11 +10,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.ActivityCaseProcessBinding; import com.casic.dcms.model.CaseProcessBean; import com.casic.dcms.utils.ViewGroupHub; import com.casic.dcms.vm.CommonDataViewModel; -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.utils.Constant; diff --git a/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java b/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java index 1154918..4af8a96 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java @@ -10,11 +10,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.ActivityCaseListBinding; import com.casic.dcms.model.CaseSearchResultBean; import com.casic.dcms.utils.ViewGroupHub; 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.AndroidxBaseActivity; import com.pengxh.androidx.lite.kit.ContextKit; @@ -104,14 +104,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); binding.refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(context, "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); binding.refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java b/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java index efbd88d..2b7b698 100644 --- a/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java +++ b/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java @@ -13,12 +13,12 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.ActivityMaintainRecordBinding; import com.casic.dcms.model.MaintainRecordBean; import com.casic.dcms.utils.ViewGroupHub; import com.casic.dcms.vm.BridgeViewModel; import com.casic.dcms.widgets.RangeDateActionSheet; -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.divider.RecyclerViewItemDivider; @@ -76,14 +76,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); binding.refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(context, "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); binding.refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java b/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java index 53a3c59..8c65f4d 100644 --- a/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java +++ b/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java @@ -14,6 +14,7 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.ActivityPipeBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.AlarmDataBean; @@ -22,7 +23,6 @@ import com.casic.dcms.view.map.WarningOnMapActivity; import com.casic.dcms.vm.AlarmViewModel; import com.casic.dcms.widgets.CancelAlarmDialog; -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.divider.RecyclerViewItemDivider; @@ -109,14 +109,14 @@ SaveKeyValues.putValue("alarmTotal", alarmDataBean.getData().getTotal()); List dataRows = alarmDataBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); binding.refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(context, "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); binding.refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java b/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java index b1cb4df..1492a18 100644 --- a/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java +++ b/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java @@ -14,6 +14,7 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.ActivityWellListBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.WellListBean; @@ -21,7 +22,6 @@ import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.ViewGroupHub; import com.casic.dcms.vm.WellViewModel; -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.divider.RecyclerViewItemDivider; @@ -103,14 +103,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); binding.refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(context, "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); binding.refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java index 35ef2b0..14352aa 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java @@ -11,6 +11,7 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.ActivityCaseResourceBinding; import com.casic.dcms.model.CaseResourceBean; import com.casic.dcms.utils.ChartViewHelper; @@ -21,7 +22,6 @@ import com.casic.dcms.vm.DataAnalysisViewModel; import com.casic.dcms.widgets.RangeDateActionSheet; import com.github.mikephil.charting.data.PieEntry; -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.divider.RecyclerViewItemDivider; diff --git a/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java index 32f3f27..4c5ca87 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java @@ -8,13 +8,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.ActivityCityBaseDataBinding; import com.casic.dcms.model.CityBaseDataBean; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.ViewGroupHub; import com.casic.dcms.vm.DataAnalysisViewModel; -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.utils.LoadState; diff --git a/app/src/main/java/com/casic/dcms/view/statistics/DataAnalysisActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/DataAnalysisActivity.java index 769b6de..f3b24df 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/DataAnalysisActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/DataAnalysisActivity.java @@ -7,11 +7,11 @@ import androidx.annotation.Nullable; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.ActivityCaseAnalysisBinding; import com.casic.dcms.model.DataAnalysisGridModel; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.ViewGroupHub; -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.kit.ContextKit; diff --git a/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java index 3f6adb6..d154820 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java @@ -11,6 +11,7 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.ActivityDeptHandleConditionBinding; import com.casic.dcms.model.DeptHandleConditionBean; import com.casic.dcms.utils.ChartViewHelper; @@ -21,7 +22,6 @@ import com.casic.dcms.vm.DataAnalysisViewModel; import com.casic.dcms.widgets.RangeDateActionSheet; import com.github.mikephil.charting.data.BarEntry; -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.divider.RecyclerViewItemDivider; diff --git a/app/src/main/java/com/casic/dcms/view/statistics/GridAnalysisActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/GridAnalysisActivity.java index ff22d41..9dbcc25 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/GridAnalysisActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/GridAnalysisActivity.java @@ -12,6 +12,7 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.ActivityGridAnalysisBinding; import com.casic.dcms.model.GridAnalysisBean; import com.casic.dcms.utils.ColorHub; @@ -20,7 +21,6 @@ import com.casic.dcms.utils.ViewGroupHub; import com.casic.dcms.vm.DataAnalysisViewModel; import com.casic.dcms.widgets.RangeDateActionSheet; -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.divider.RecyclerViewItemDivider; diff --git a/app/src/main/java/com/casic/dcms/view/statistics/HighEventActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/HighEventActivity.java index c1061c3..6a45023 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/HighEventActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/HighEventActivity.java @@ -11,6 +11,7 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.ActivityHighEventBinding; import com.casic.dcms.model.HighEventBean; import com.casic.dcms.utils.ChartViewHelper; @@ -21,7 +22,6 @@ import com.casic.dcms.vm.DataAnalysisViewModel; import com.casic.dcms.widgets.RangeDateActionSheet; import com.github.mikephil.charting.data.PieEntry; -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.divider.RecyclerViewItemDivider; diff --git a/app/src/main/java/com/casic/dcms/view/statistics/PunishAnalysisActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/PunishAnalysisActivity.java index d6ae3c0..4acf271 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/PunishAnalysisActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/PunishAnalysisActivity.java @@ -11,6 +11,7 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.ActivityPunishAnalysisBinding; import com.casic.dcms.model.PunishRankingBean; import com.casic.dcms.model.PunishTypeStatisticBean; @@ -22,7 +23,6 @@ import com.casic.dcms.vm.DataAnalysisViewModel; import com.casic.dcms.widgets.RangeDateActionSheet; import com.github.mikephil.charting.data.BarEntry; -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.divider.RecyclerViewItemDivider; diff --git a/app/src/main/java/com/casic/dcms/view/toilet/CleaningRecordsActivity.java b/app/src/main/java/com/casic/dcms/view/toilet/CleaningRecordsActivity.java index c67fcdf..9e887d3 100644 --- a/app/src/main/java/com/casic/dcms/view/toilet/CleaningRecordsActivity.java +++ b/app/src/main/java/com/casic/dcms/view/toilet/CleaningRecordsActivity.java @@ -14,6 +14,7 @@ import com.amap.api.services.core.LatLonPoint; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.ActivityCleanRecordsBinding; import com.casic.dcms.model.CleanRecordBean; import com.casic.dcms.utils.LocationHelper; @@ -24,7 +25,6 @@ import com.casic.dcms.view.map.WorkerOnMapActivity; import com.casic.dcms.vm.ToiletViewModel; import com.casic.dcms.widgets.RangeDateActionSheet; -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.kit.ContextKit; @@ -68,14 +68,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); binding.refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(context, "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); binding.refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/vm/LightViewModel.java b/app/src/main/java/com/casic/dcms/vm/LightViewModel.java index 8da4f2b..21d704c 100644 --- a/app/src/main/java/com/casic/dcms/vm/LightViewModel.java +++ b/app/src/main/java/com/casic/dcms/vm/LightViewModel.java @@ -31,8 +31,8 @@ public MutableLiveData lightMapModel = new MutableLiveData<>(); public MutableLiveData lightDetailModel = new MutableLiveData<>(); - public void getLightList(int limit, int offset) { - Observable observable = RetrofitServiceManager.getLightListResult(limit, offset); + public void getLightList(int offset) { + Observable observable = RetrofitServiceManager.getLightListResult(offset); ObserverSubscriber.addSubscribe(observable, new ObserverSubscriber.OnObserverCallback() { @Override public void onCompleted() { diff --git a/app/src/main/java/com/casic/dcms/adapter/LightResultAdapter.java b/app/src/main/java/com/casic/dcms/adapter/LightResultAdapter.java deleted file mode 100644 index 405af6e..0000000 --- a/app/src/main/java/com/casic/dcms/adapter/LightResultAdapter.java +++ /dev/null @@ -1,107 +0,0 @@ -package com.casic.dcms.adapter; - -import android.annotation.SuppressLint; -import android.content.Context; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.ImageView; -import android.widget.TextView; - -import androidx.annotation.NonNull; -import androidx.recyclerview.widget.RecyclerView; - -import com.casic.dcms.R; -import com.casic.dcms.model.LightListBean; - -import java.util.List; - -public class LightResultAdapter extends RecyclerView.Adapter { - - private final List dataBeans; - private final LayoutInflater layoutInflater; - - public LightResultAdapter(Context context, List beans) { - this.dataBeans = beans; - this.layoutInflater = LayoutInflater.from(context); - } - - @NonNull - @Override - public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - return new ItemViewHolder(layoutInflater.inflate(R.layout.item_light_recycleview, parent, false)); - } - - @Override - public void onBindViewHolder(@NonNull LightResultAdapter.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); - } - }); - } - if (switchClickListener != null) { - holder.lightSwitch.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - switchClickListener.onClick(position); - } - }); - } - } - - @Override - public int getItemCount() { - return dataBeans.size(); - } - - private OnGridItemClickListener clickListener; - - public interface OnGridItemClickListener { - void onClick(int position); - } - - public void setOnGridItemClickListener(OnGridItemClickListener onGridItemClickListener) { - this.clickListener = onGridItemClickListener; - } - - private OnSwitchClickListener switchClickListener; - - public interface OnSwitchClickListener { - void onClick(int position); - } - - public void setOnSwitchClickListener(OnSwitchClickListener switchClickListener) { - this.switchClickListener = switchClickListener; - } - - static class ItemViewHolder extends RecyclerView.ViewHolder { - - private final TextView lightNameView; - private final TextView lightStatusView; - private final ImageView lightSwitch; - - ItemViewHolder(@NonNull View itemView) { - super(itemView); - lightNameView = itemView.findViewById(R.id.lightNameView); - lightStatusView = itemView.findViewById(R.id.lightStatusView); - lightSwitch = itemView.findViewById(R.id.lightSwitch); - } - - void bindView(LightListBean.DataBean.RowsBean dataBean) { - lightNameView.setText(dataBean.getLampName()); - String statusName = dataBean.getStatusName(); - lightStatusView.setText(statusName); - if (statusName.equals("灭灯")) { - lightSwitch.setBackgroundResource(R.drawable.ic_switch_off); - } else if (statusName.equals("报警")) { - lightSwitch.setBackgroundResource(R.drawable.ic_switch_warning); - } else { - lightSwitch.setBackgroundResource(R.drawable.ic_switch_on); - } - } - } -} diff --git a/app/src/main/java/com/casic/dcms/adapter/NormalRecyclerAdapter.java b/app/src/main/java/com/casic/dcms/adapter/NormalRecyclerAdapter.java new file mode 100644 index 0000000..c80e2d5 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/adapter/NormalRecyclerAdapter.java @@ -0,0 +1,134 @@ +package com.casic.dcms.adapter; + +import android.annotation.SuppressLint; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import androidx.annotation.LayoutRes; +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.DiffUtil; +import androidx.recyclerview.widget.RecyclerView; + +import com.pengxh.androidx.lite.adapter.ViewHolder; + +import java.util.List; + +/** + * RecyclerView普通列表适配器 + */ +public abstract class NormalRecyclerAdapter extends RecyclerView.Adapter { + + private static final String TAG = "NormalRecyclerAdapter"; + private final int xmlResource; + private final List dataRows; + + public NormalRecyclerAdapter(@LayoutRes int xmlResource, List dataRows) { + this.xmlResource = xmlResource; + this.dataRows = dataRows; + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + @NonNull + @Override + public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + return new ViewHolder(LayoutInflater.from(parent.getContext()).inflate(xmlResource, parent, false)); + } + + @Override + public void onBindViewHolder(@NonNull ViewHolder holder, @SuppressLint("RecyclerView") int position) { + convertView(holder, position, dataRows.get(position)); + + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (itemClickedListener == null) { + return; + } + itemClickedListener.onItemClicked(position, dataRows.get(position)); + } + }); + } + + public void refresh(List newRows) { + DiffUtil.Callback diffCallback = new DiffUtil.Callback() { + + @Override + public int getOldListSize() { + return dataRows.size(); + } + + @Override + public int getNewListSize() { + return newRows.size(); + } + + @Override + public boolean areItemsTheSame(int oldItemPosition, int newItemPosition) { + if (dataRows == null || newRows == null) { + return false; + } + + // 检查索引是否在有效范围内 + if (oldItemPosition < 0 || oldItemPosition >= dataRows.size() || + newItemPosition < 0 || newItemPosition >= newRows.size()) { + return false; + } + + // 获取元素并进行比较 + Object oldItem = dataRows.get(oldItemPosition); + Object newItem = newRows.get(newItemPosition); + + // 处理空指针情况 + if (oldItem == null && newItem == null) { + return true; + } + if (oldItem == null || newItem == null) { + return false; + } + + return oldItem.equals(newItem); + } + + @Override + public boolean areContentsTheSame(int oldItemPosition, int newItemPosition) { + return dataRows.get(oldItemPosition) == newRows.get(newItemPosition); + } + }; + + DiffUtil.DiffResult diffResult = DiffUtil.calculateDiff(diffCallback); + + dataRows.clear(); + dataRows.addAll(newRows); + + diffResult.dispatchUpdatesTo(this); + } + + /** + * 加载更多 + */ + public void loadMore(List newRows) { + if (newRows.isEmpty()) { + return; + } + int startPosition = this.dataRows.size(); + this.dataRows.addAll(newRows); + notifyItemRangeInserted(startPosition, newRows.size()); + } + + public abstract void convertView(ViewHolder viewHolder, int position, T item); + + private OnItemClickedListener itemClickedListener; + + public interface OnItemClickedListener { + void onItemClicked(int position, T t); + } + + public void setOnItemClickedListener(OnItemClickedListener listener) { + itemClickedListener = listener; + } +} diff --git a/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java b/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java index 1deb066..80f7b98 100644 --- a/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/PackageCaseListAdapter.java @@ -58,13 +58,13 @@ } @SuppressLint("NotifyDataSetChanged") - public void setRefreshData(List dataRows) { + public void refresh(List dataRows) { this.dataRows.clear(); this.dataRows.addAll(dataRows); notifyDataSetChanged(); } - public void setLoadMoreData(List dataRows) { + public void loadMore(List dataRows) { this.dataRows.addAll(dataRows); notifyItemRangeInserted(this.dataRows.size(), dataRows.size()); } diff --git a/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java index 3535c40..bd5e484 100644 --- a/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java @@ -10,6 +10,7 @@ import com.bumptech.glide.Glide; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentHomeBinding; import com.casic.dcms.model.HomePageBean; import com.casic.dcms.model.UserBean; @@ -36,7 +37,6 @@ import com.casic.dcms.view.verify.VerifyCaseActivity; import com.casic.dcms.vm.HomePageViewModel; import com.casic.dcms.vm.UserViewModel; -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.kit.LongKit; diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java index 0d2926f..a9cc331 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java @@ -5,22 +5,26 @@ import android.os.Handler; import android.os.Message; import android.text.TextUtils; +import android.view.View; import androidx.annotation.NonNull; import androidx.annotation.Nullable; +import androidx.cardview.widget.CardView; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; -import com.casic.dcms.adapter.LightResultAdapter; +import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentLightListBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightDetailBean; import com.casic.dcms.model.LightListBean; -import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.vm.LightViewModel; import com.casic.dcms.widgets.LightDetailDialog; +import com.pengxh.androidx.lite.adapter.ViewHolder; import com.pengxh.androidx.lite.base.AndroidxBaseFragment; import com.pengxh.androidx.lite.divider.RecyclerViewItemDivider; +import com.pengxh.androidx.lite.kit.IntKit; import com.pengxh.androidx.lite.kit.StringKit; import com.pengxh.androidx.lite.utils.LoadState; import com.pengxh.androidx.lite.utils.LoadingDialog; @@ -37,7 +41,7 @@ private static final String TAG = "LightOnListFragment"; private final WeakReferenceHandler weakReferenceHandler = new WeakReferenceHandler(this); private LightViewModel lightViewModel; - private LightResultAdapter adapter; + private NormalRecyclerAdapter adapter; private List dataBeans = new ArrayList<>(); private int pageIndex = 1; private boolean isRefresh, isLoadMore = false; @@ -50,7 +54,7 @@ @Override protected void initOnCreate(@Nullable Bundle savedInstanceState) { lightViewModel = new ViewModelProvider(this).get(LightViewModel.class); - getLightList(); + lightViewModel.getLightList(pageIndex); } @Override @@ -67,10 +71,6 @@ }); } - private void getLightList() { - lightViewModel.getLightList(LocaleConstant.PAGE_LIMIT, pageIndex); - } - @Override protected void initEvent() { getBinding().refreshLayout.setOnRefreshListener(new OnRefreshListener() { @@ -79,7 +79,7 @@ isRefresh = true; //刷新之后页码重置 pageIndex = 1; - getLightList(); + lightViewModel.getLightList(pageIndex); } }); getBinding().refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() { @@ -87,7 +87,7 @@ public void onLoadMore(@NonNull final RefreshLayout refreshLayout) { isLoadMore = true; pageIndex++; - getLightList(); + lightViewModel.getLightList(pageIndex); } }); @@ -97,21 +97,20 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题 - dataBeans = dataRows; + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - dataBeans.addAll(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { dataBeans = dataRows; + weakReferenceHandler.sendEmptyMessage(20210623); } - weakReferenceHandler.sendEmptyMessage(20210623); } } }); @@ -138,54 +137,67 @@ @Override public boolean handleMessage(@NonNull Message msg) { if (msg.what == 20210623) { - if (isRefresh || isLoadMore) { - adapter.notifyItemRangeInserted(adapter.getItemCount(), LocaleConstant.PAGE_LIMIT); + //首次加载数据 + if (dataBeans.size() == 0) { + getBinding().emptyView.show("没有路灯数据", null); } else { - //首次加载数据 - if (dataBeans.size() == 0) { - getBinding().emptyView.show("没有路灯数据", null); - } else { - getBinding().emptyView.hide(); - adapter = new LightResultAdapter(requireContext(), dataBeans); - getBinding().recyclerView.addItemDecoration(new RecyclerViewItemDivider(1, Color.LTGRAY)); - getBinding().recyclerView.setAdapter(adapter); - adapter.setOnGridItemClickListener(new LightResultAdapter.OnGridItemClickListener() { - @Override - public void onClick(int position) { - String lampId = dataBeans.get(position).getLampId(); - if (TextUtils.isEmpty(lampId)) { - StringKit.show(requireContext(), "错误,路灯编号为空"); - return; - } + getBinding().emptyView.hide(); + adapter = new NormalRecyclerAdapter(R.layout.item_light_recycleview, dataBeans) { + @Override + public void convertView(ViewHolder viewHolder, int position, LightListBean.DataBean.RowsBean item) { + String statusName = item.getStatusName(); + viewHolder.setText(R.id.lightNameView, item.getLampName()) + .setText(R.id.lightStatusView, "已" + statusName); - lightViewModel.getLightDetail(requireContext(), lampId); + CardView statueTagView = viewHolder.getView(R.id.statueTagView); + if (statusName.equals("灭灯")) { + viewHolder.setImageResource(R.id.lightSwitch, R.drawable.ic_switch_off); + statueTagView.setCardBackgroundColor(IntKit.convertColor(requireContext(), R.color.darkGray)); + } else if (statusName.equals("报警")) { + viewHolder.setImageResource(R.id.lightSwitch, R.drawable.ic_switch_warning); + statueTagView.setCardBackgroundColor(IntKit.convertColor(requireContext(), R.color.warnColor)); + } else { + viewHolder.setImageResource(R.id.lightSwitch, R.drawable.ic_switch_on); + statueTagView.setCardBackgroundColor(IntKit.convertColor(requireContext(), R.color.onLineColor)); } - }); - adapter.setOnSwitchClickListener(new LightResultAdapter.OnSwitchClickListener() { - @Override - public void onClick(int position) { - LightListBean.DataBean.RowsBean rowsBean = dataBeans.get(position); + viewHolder.setOnClickListener(R.id.lightSwitch, new View.OnClickListener() { + @Override + public void onClick(View v) { + List lampIds = new ArrayList<>(); + lampIds.add(Long.parseLong(item.getLampId())); - List lampIds = new ArrayList<>(); - lampIds.add(Long.parseLong(rowsBean.getLampId())); - - String statusName = rowsBean.getStatusName(); - String controlType; - if (statusName.equals("离线")) { - controlType = "1"; - } else { - controlType = "0"; + String statusName = item.getStatusName(); + String controlType; + if (statusName.equals("灭灯")) { + controlType = "1"; + } else { + controlType = "0"; + } + lightViewModel.controlLight(requireContext(), lampIds, controlType); } - lightViewModel.controlLight(requireContext(), lampIds, controlType); + }); + } + }; + getBinding().recyclerView.addItemDecoration(new RecyclerViewItemDivider(1, Color.LTGRAY)); + getBinding().recyclerView.setAdapter(adapter); + adapter.setOnItemClickedListener(new NormalRecyclerAdapter.OnItemClickedListener() { + @Override + public void onItemClicked(int position, LightListBean.DataBean.RowsBean rowsBean) { + String lampId = rowsBean.getLampId(); + if (TextUtils.isEmpty(lampId)) { + StringKit.show(requireContext(), "错误,路灯编号为空"); + return; } - }); - } + + lightViewModel.getLightDetail(requireContext(), lampId); + } + }); } } else if (msg.what == 20210624) { isRefresh = true; pageIndex = 1; - lightViewModel.getLightList(LocaleConstant.PAGE_LIMIT, pageIndex); + lightViewModel.getLightList(pageIndex); } return true; } diff --git a/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java index 64791dd..8f872db 100644 --- a/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/NoticePageFragment.java @@ -6,12 +6,12 @@ import androidx.annotation.Nullable; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.bean.NoticeLocaleBean; import com.casic.dcms.databinding.FragmentNoticeBinding; import com.casic.dcms.utils.DataBaseManager; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.CaseDetailActivity; -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.kit.ContextKit; diff --git a/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java b/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java index 5980aaf..93ab96c 100644 --- a/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/business/PackageHandledFragment.java @@ -87,14 +87,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/business/PackageTodoFragment.java b/app/src/main/java/com/casic/dcms/fragment/business/PackageTodoFragment.java index 9f28bbe..1fefd3f 100644 --- a/app/src/main/java/com/casic/dcms/fragment/business/PackageTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/business/PackageTodoFragment.java @@ -88,14 +88,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { 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 816fb8f..62db8ed 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 @@ -12,13 +12,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentCheckCaseBinding; import com.casic.dcms.model.CaseCheckModel; import com.casic.dcms.utils.LocaleConstant; 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.kit.ContextKit; @@ -61,14 +61,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { 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 e472cd6..27f60a2 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 @@ -12,13 +12,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentCheckCaseBinding; import com.casic.dcms.model.CaseCheckModel; import com.casic.dcms.utils.LocaleConstant; 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.kit.ContextKit; @@ -62,14 +62,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAdjustFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAdjustFragment.java index 23a4f8e..fdee789 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAdjustFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAdjustFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.AdjustCaseModel; import com.casic.dcms.view.department.DeptAdjustDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -57,14 +57,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAuthorizeFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAuthorizeFragment.java index f5ba0b0..b5d807e 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAuthorizeFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseAuthorizeFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.AuthorizeCaseModel; import com.casic.dcms.view.department.DeptAuthorizeDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -57,14 +57,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseDelayedFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseDelayedFragment.java index e16d47d..52c88fd 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseDelayedFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseDelayedFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.DelayedCaseModel; import com.casic.dcms.view.CaseDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -57,14 +57,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseHandledFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseHandledFragment.java index 0acf747..2ce5297 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseHandledFragment.java @@ -12,12 +12,12 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.HandledCaseModel; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.CaseDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -59,14 +59,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCasePostponeFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCasePostponeFragment.java index b2a3047..d8b3396 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCasePostponeFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCasePostponeFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.PostCaseModel; import com.casic.dcms.view.CaseDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.ContextKit; @@ -57,14 +57,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseProcessFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseProcessFragment.java index ef78a7d..2c5f4d7 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseProcessFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseProcessFragment.java @@ -12,12 +12,12 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.HandleCaseModel; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.view.department.DeptTodoDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.StringKit; @@ -58,14 +58,14 @@ if (resultBean.isSuccess()) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseTodoFragment.java b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseTodoFragment.java index 2f8cb8a..febcb54 100644 --- a/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/department/DeptCaseTodoFragment.java @@ -13,13 +13,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentDeptCaseBinding; import com.casic.dcms.model.dept.TodoCaseModel; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.department.DeptTodoDetailActivity; import com.casic.dcms.vm.DeptCaseViewModel; -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.kit.StringKit; @@ -60,14 +60,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/handle/CaseHandledFragment.java b/app/src/main/java/com/casic/dcms/fragment/handle/CaseHandledFragment.java index d61fff7..d8d825f 100644 --- a/app/src/main/java/com/casic/dcms/fragment/handle/CaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/handle/CaseHandledFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentHandleCaseBinding; import com.casic.dcms.model.CaseHandledBean; import com.casic.dcms.view.handle.CaseHandledDetailActivity; 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.kit.ContextKit; @@ -58,14 +58,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/handle/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/fragment/handle/CaseTodoFragment.java index 2196251..26d0942 100644 --- a/app/src/main/java/com/casic/dcms/fragment/handle/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/handle/CaseTodoFragment.java @@ -13,12 +13,12 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentHandleCaseBinding; import com.casic.dcms.model.CaseHandleBean; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.handle.CaseHandleDetailActivity; 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.kit.StringKit; @@ -60,14 +60,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/overtime/CaseHandledFragment.java b/app/src/main/java/com/casic/dcms/fragment/overtime/CaseHandledFragment.java index 5cb44da..3424ebd 100644 --- a/app/src/main/java/com/casic/dcms/fragment/overtime/CaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/overtime/CaseHandledFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentOvertimeCaseBinding; import com.casic.dcms.model.OvertimeCaseBean; import com.casic.dcms.view.CaseTodoHandledDetailActivity; 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.kit.ContextKit; @@ -58,14 +58,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/overtime/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/fragment/overtime/CaseTodoFragment.java index a98bde5..1c2c20d 100644 --- a/app/src/main/java/com/casic/dcms/fragment/overtime/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/overtime/CaseTodoFragment.java @@ -12,11 +12,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentOvertimeCaseBinding; import com.casic.dcms.model.OvertimeCaseBean; import com.casic.dcms.view.CaseTodoDetailActivity; 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.kit.StringKit; @@ -58,14 +58,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/urgent/CaseHandledFragment.java b/app/src/main/java/com/casic/dcms/fragment/urgent/CaseHandledFragment.java index b55651f..2cc0a02 100644 --- a/app/src/main/java/com/casic/dcms/fragment/urgent/CaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/urgent/CaseHandledFragment.java @@ -11,11 +11,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentUrgentCaseBinding; import com.casic.dcms.model.UrgentCaseBean; import com.casic.dcms.view.CaseTodoHandledDetailActivity; 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.kit.ContextKit; @@ -58,14 +58,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/urgent/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/fragment/urgent/CaseTodoFragment.java index 854d6f8..54b773e 100644 --- a/app/src/main/java/com/casic/dcms/fragment/urgent/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/urgent/CaseTodoFragment.java @@ -12,11 +12,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentUrgentCaseBinding; import com.casic.dcms.model.UrgentCaseBean; import com.casic.dcms.view.CaseTodoDetailActivity; 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.kit.StringKit; @@ -58,14 +58,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifiedFragment.java b/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifiedFragment.java index b5a130e..426878b 100644 --- a/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifiedFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifiedFragment.java @@ -12,13 +12,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentVerifyCaseBinding; import com.casic.dcms.model.VerifiedCaseModel; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.verify.VerifiedDetailActivity; 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.kit.ContextKit; @@ -61,14 +61,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifyFragment.java b/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifyFragment.java index 00039fc..d5a91fc 100644 --- a/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifyFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/verify/CaseVerifyFragment.java @@ -12,13 +12,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.FragmentVerifyCaseBinding; import com.casic.dcms.model.VerifyCaseModel; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.verify.VerifyDetailActivity; 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.kit.ContextKit; @@ -61,14 +61,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); getBinding().refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(requireContext(), "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); getBinding().refreshLayout.finishLoadMore(); isLoadMore = false; diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java index b371a7c..ddddaf1 100644 --- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java +++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java @@ -594,8 +594,8 @@ /** * 路灯分页列表 */ - public static Observable getLightListResult(int limit, int offset) { - return api.getLightList(AuthenticationHelper.getToken(), limit, offset); + public static Observable getLightListResult(int offset) { + return api.getLightList(AuthenticationHelper.getToken(), LocaleConstant.PAGE_LIMIT, offset); } /** 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 82ecb71..77fed79 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java @@ -10,11 +10,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.ActivityCaseProcessBinding; import com.casic.dcms.model.CaseProcessBean; import com.casic.dcms.utils.ViewGroupHub; import com.casic.dcms.vm.CommonDataViewModel; -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.utils.Constant; diff --git a/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java b/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java index 1154918..4af8a96 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java @@ -10,11 +10,11 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.ActivityCaseListBinding; import com.casic.dcms.model.CaseSearchResultBean; import com.casic.dcms.utils.ViewGroupHub; 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.AndroidxBaseActivity; import com.pengxh.androidx.lite.kit.ContextKit; @@ -104,14 +104,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); binding.refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(context, "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); binding.refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java b/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java index efbd88d..2b7b698 100644 --- a/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java +++ b/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java @@ -13,12 +13,12 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.ActivityMaintainRecordBinding; import com.casic.dcms.model.MaintainRecordBean; import com.casic.dcms.utils.ViewGroupHub; import com.casic.dcms.vm.BridgeViewModel; import com.casic.dcms.widgets.RangeDateActionSheet; -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.divider.RecyclerViewItemDivider; @@ -76,14 +76,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); binding.refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(context, "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); binding.refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java b/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java index 53a3c59..8c65f4d 100644 --- a/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java +++ b/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java @@ -14,6 +14,7 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.ActivityPipeBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.AlarmDataBean; @@ -22,7 +23,6 @@ import com.casic.dcms.view.map.WarningOnMapActivity; import com.casic.dcms.vm.AlarmViewModel; import com.casic.dcms.widgets.CancelAlarmDialog; -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.divider.RecyclerViewItemDivider; @@ -109,14 +109,14 @@ SaveKeyValues.putValue("alarmTotal", alarmDataBean.getData().getTotal()); List dataRows = alarmDataBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); binding.refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(context, "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); binding.refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java b/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java index b1cb4df..1492a18 100644 --- a/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java +++ b/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java @@ -14,6 +14,7 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.ActivityWellListBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.WellListBean; @@ -21,7 +22,6 @@ import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.ViewGroupHub; import com.casic.dcms.vm.WellViewModel; -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.divider.RecyclerViewItemDivider; @@ -103,14 +103,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); binding.refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(context, "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); binding.refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java index 35ef2b0..14352aa 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java @@ -11,6 +11,7 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.ActivityCaseResourceBinding; import com.casic.dcms.model.CaseResourceBean; import com.casic.dcms.utils.ChartViewHelper; @@ -21,7 +22,6 @@ import com.casic.dcms.vm.DataAnalysisViewModel; import com.casic.dcms.widgets.RangeDateActionSheet; import com.github.mikephil.charting.data.PieEntry; -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.divider.RecyclerViewItemDivider; diff --git a/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java index 32f3f27..4c5ca87 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java @@ -8,13 +8,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.ActivityCityBaseDataBinding; import com.casic.dcms.model.CityBaseDataBean; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.ViewGroupHub; import com.casic.dcms.vm.DataAnalysisViewModel; -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.utils.LoadState; diff --git a/app/src/main/java/com/casic/dcms/view/statistics/DataAnalysisActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/DataAnalysisActivity.java index 769b6de..f3b24df 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/DataAnalysisActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/DataAnalysisActivity.java @@ -7,11 +7,11 @@ import androidx.annotation.Nullable; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.ActivityCaseAnalysisBinding; import com.casic.dcms.model.DataAnalysisGridModel; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.ViewGroupHub; -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.kit.ContextKit; diff --git a/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java index 3f6adb6..d154820 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java @@ -11,6 +11,7 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.ActivityDeptHandleConditionBinding; import com.casic.dcms.model.DeptHandleConditionBean; import com.casic.dcms.utils.ChartViewHelper; @@ -21,7 +22,6 @@ import com.casic.dcms.vm.DataAnalysisViewModel; import com.casic.dcms.widgets.RangeDateActionSheet; import com.github.mikephil.charting.data.BarEntry; -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.divider.RecyclerViewItemDivider; diff --git a/app/src/main/java/com/casic/dcms/view/statistics/GridAnalysisActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/GridAnalysisActivity.java index ff22d41..9dbcc25 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/GridAnalysisActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/GridAnalysisActivity.java @@ -12,6 +12,7 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.ActivityGridAnalysisBinding; import com.casic.dcms.model.GridAnalysisBean; import com.casic.dcms.utils.ColorHub; @@ -20,7 +21,6 @@ import com.casic.dcms.utils.ViewGroupHub; import com.casic.dcms.vm.DataAnalysisViewModel; import com.casic.dcms.widgets.RangeDateActionSheet; -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.divider.RecyclerViewItemDivider; diff --git a/app/src/main/java/com/casic/dcms/view/statistics/HighEventActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/HighEventActivity.java index c1061c3..6a45023 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/HighEventActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/HighEventActivity.java @@ -11,6 +11,7 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.ActivityHighEventBinding; import com.casic.dcms.model.HighEventBean; import com.casic.dcms.utils.ChartViewHelper; @@ -21,7 +22,6 @@ import com.casic.dcms.vm.DataAnalysisViewModel; import com.casic.dcms.widgets.RangeDateActionSheet; import com.github.mikephil.charting.data.PieEntry; -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.divider.RecyclerViewItemDivider; diff --git a/app/src/main/java/com/casic/dcms/view/statistics/PunishAnalysisActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/PunishAnalysisActivity.java index d6ae3c0..4acf271 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/PunishAnalysisActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/PunishAnalysisActivity.java @@ -11,6 +11,7 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.ActivityPunishAnalysisBinding; import com.casic.dcms.model.PunishRankingBean; import com.casic.dcms.model.PunishTypeStatisticBean; @@ -22,7 +23,6 @@ import com.casic.dcms.vm.DataAnalysisViewModel; import com.casic.dcms.widgets.RangeDateActionSheet; import com.github.mikephil.charting.data.BarEntry; -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.divider.RecyclerViewItemDivider; diff --git a/app/src/main/java/com/casic/dcms/view/toilet/CleaningRecordsActivity.java b/app/src/main/java/com/casic/dcms/view/toilet/CleaningRecordsActivity.java index c67fcdf..9e887d3 100644 --- a/app/src/main/java/com/casic/dcms/view/toilet/CleaningRecordsActivity.java +++ b/app/src/main/java/com/casic/dcms/view/toilet/CleaningRecordsActivity.java @@ -14,6 +14,7 @@ import com.amap.api.services.core.LatLonPoint; import com.casic.dcms.R; +import com.casic.dcms.adapter.NormalRecyclerAdapter; import com.casic.dcms.databinding.ActivityCleanRecordsBinding; import com.casic.dcms.model.CleanRecordBean; import com.casic.dcms.utils.LocationHelper; @@ -24,7 +25,6 @@ import com.casic.dcms.view.map.WorkerOnMapActivity; import com.casic.dcms.vm.ToiletViewModel; import com.casic.dcms.widgets.RangeDateActionSheet; -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.kit.ContextKit; @@ -68,14 +68,14 @@ if (resultBean.getCode() == 200) { List dataRows = resultBean.getData().getRows(); if (isRefresh) { - adapter.setRefreshData(dataRows); + adapter.refresh(dataRows); binding.refreshLayout.finishRefresh(); isRefresh = false; } else if (isLoadMore) { if (dataRows.size() == 0) { StringKit.show(context, "到底了,别拉了"); } - adapter.setLoadMoreData(dataRows); + adapter.loadMore(dataRows); binding.refreshLayout.finishLoadMore(); isLoadMore = false; } else { diff --git a/app/src/main/java/com/casic/dcms/vm/LightViewModel.java b/app/src/main/java/com/casic/dcms/vm/LightViewModel.java index 8da4f2b..21d704c 100644 --- a/app/src/main/java/com/casic/dcms/vm/LightViewModel.java +++ b/app/src/main/java/com/casic/dcms/vm/LightViewModel.java @@ -31,8 +31,8 @@ public MutableLiveData lightMapModel = new MutableLiveData<>(); public MutableLiveData lightDetailModel = new MutableLiveData<>(); - public void getLightList(int limit, int offset) { - Observable observable = RetrofitServiceManager.getLightListResult(limit, offset); + public void getLightList(int offset) { + Observable observable = RetrofitServiceManager.getLightListResult(offset); ObserverSubscriber.addSubscribe(observable, new ObserverSubscriber.OnObserverCallback() { @Override public void onCompleted() { diff --git a/app/src/main/res/layout/item_light_recycleview.xml b/app/src/main/res/layout/item_light_recycleview.xml index b013851..637861f 100644 --- a/app/src/main/res/layout/item_light_recycleview.xml +++ b/app/src/main/res/layout/item_light_recycleview.xml @@ -1,5 +1,6 @@ + android:gravity="center_vertical" + android:orientation="horizontal"> + android:textSize="@dimen/sp_18" /> - + android:layout_marginStart="@dimen/dp_5" + app:cardCornerRadius="@dimen/dp_10"> + + + + android:layout_height="wrap_content" />