diff --git a/.idea/misc.xml b/.idea/misc.xml index 12058ca..4f8b20d 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -28,6 +28,9 @@ + + + @@ -39,6 +42,7 @@ + @@ -81,7 +85,8 @@ - + + diff --git a/.idea/misc.xml b/.idea/misc.xml index 12058ca..4f8b20d 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -28,6 +28,9 @@ + + + @@ -39,6 +42,7 @@ + @@ -81,7 +85,8 @@ - + + diff --git a/app/src/main/java/com/casic/dcms/adapter/AnalysisRecycleAdapter.java b/app/src/main/java/com/casic/dcms/adapter/AnalysisRecycleAdapter.java deleted file mode 100644 index 913bde1..0000000 --- a/app/src/main/java/com/casic/dcms/adapter/AnalysisRecycleAdapter.java +++ /dev/null @@ -1,71 +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.utils.LocaleConstant; - -public class AnalysisRecycleAdapter extends RecyclerView.Adapter { - - private final LayoutInflater layoutInflater; - - public AnalysisRecycleAdapter(Context context) { - this.layoutInflater = LayoutInflater.from(context); - } - - @NonNull - @Override - public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - return new ItemViewHolder(layoutInflater.inflate(R.layout.item_home_recycleview, parent, false)); - } - - @Override - public void onBindViewHolder(@NonNull ItemViewHolder holder, @SuppressLint("RecyclerView") int position) { - holder.imageView.setBackgroundResource(LocaleConstant.ANALYSIS_ICONS.get(position)); - holder.textView.setText(LocaleConstant.ANALYSIS_ITEMS.get(position)); - if (clickListener != null) { - holder.itemView.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - clickListener.onClick(position); - } - }); - } - } - - @Override - public int getItemCount() { - return LocaleConstant.ANALYSIS_ITEMS.size(); - } - - private OnGridItemClickListener clickListener; - - public interface OnGridItemClickListener { - void onClick(int position); - } - - public void setOnGridItemClickListener(OnGridItemClickListener onGridItemClickListener) { - this.clickListener = onGridItemClickListener; - } - - static class ItemViewHolder extends RecyclerView.ViewHolder { - - private final ImageView imageView; - private final TextView textView; - - ItemViewHolder(@NonNull View itemView) { - super(itemView); - imageView = itemView.findViewById(R.id.imageView); - textView = itemView.findViewById(R.id.textView); - } - } -} diff --git a/.idea/misc.xml b/.idea/misc.xml index 12058ca..4f8b20d 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -28,6 +28,9 @@ + + + @@ -39,6 +42,7 @@ + @@ -81,7 +85,8 @@ - + + diff --git a/app/src/main/java/com/casic/dcms/adapter/AnalysisRecycleAdapter.java b/app/src/main/java/com/casic/dcms/adapter/AnalysisRecycleAdapter.java deleted file mode 100644 index 913bde1..0000000 --- a/app/src/main/java/com/casic/dcms/adapter/AnalysisRecycleAdapter.java +++ /dev/null @@ -1,71 +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.utils.LocaleConstant; - -public class AnalysisRecycleAdapter extends RecyclerView.Adapter { - - private final LayoutInflater layoutInflater; - - public AnalysisRecycleAdapter(Context context) { - this.layoutInflater = LayoutInflater.from(context); - } - - @NonNull - @Override - public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - return new ItemViewHolder(layoutInflater.inflate(R.layout.item_home_recycleview, parent, false)); - } - - @Override - public void onBindViewHolder(@NonNull ItemViewHolder holder, @SuppressLint("RecyclerView") int position) { - holder.imageView.setBackgroundResource(LocaleConstant.ANALYSIS_ICONS.get(position)); - holder.textView.setText(LocaleConstant.ANALYSIS_ITEMS.get(position)); - if (clickListener != null) { - holder.itemView.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - clickListener.onClick(position); - } - }); - } - } - - @Override - public int getItemCount() { - return LocaleConstant.ANALYSIS_ITEMS.size(); - } - - private OnGridItemClickListener clickListener; - - public interface OnGridItemClickListener { - void onClick(int position); - } - - public void setOnGridItemClickListener(OnGridItemClickListener onGridItemClickListener) { - this.clickListener = onGridItemClickListener; - } - - static class ItemViewHolder extends RecyclerView.ViewHolder { - - private final ImageView imageView; - private final TextView textView; - - ItemViewHolder(@NonNull View itemView) { - super(itemView); - imageView = itemView.findViewById(R.id.imageView); - textView = itemView.findViewById(R.id.textView); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/adapter/CaseSearchResultAdapter.java b/app/src/main/java/com/casic/dcms/adapter/CaseSearchResultAdapter.java deleted file mode 100644 index 9449f44..0000000 --- a/app/src/main/java/com/casic/dcms/adapter/CaseSearchResultAdapter.java +++ /dev/null @@ -1,94 +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.TextView; - -import androidx.annotation.NonNull; -import androidx.recyclerview.widget.RecyclerView; - -import com.casic.dcms.R; -import com.casic.dcms.model.CaseSearchResultBean; -import com.pengxh.androidx.lite.hub.StringHub; -import com.qmuiteam.qmui.widget.QMUIRadiusImageView; - -import java.util.List; - -public class CaseSearchResultAdapter extends RecyclerView.Adapter { - - private final List dataRows; - private final LayoutInflater layoutInflater; - - public CaseSearchResultAdapter(Context context, List dataRows) { - this.dataRows = dataRows; - this.layoutInflater = LayoutInflater.from(context); - } - - @NonNull - @Override - public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - return new ItemViewHolder(layoutInflater.inflate(R.layout.item_case_rv, parent, false)); - } - - @Override - public void onBindViewHolder(@NonNull ItemViewHolder holder, @SuppressLint("RecyclerView") int position) { - holder.bindView(dataRows.get(position)); - if (clickListener != null) { - holder.itemView.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - clickListener.onClick(position); - } - }); - } - } - - @Override - public int getItemCount() { - return dataRows.size(); - } - - private OnItemClickListener clickListener; - - public interface OnItemClickListener { - void onClick(int position); - } - - public void setOnItemClickListener(OnItemClickListener onItemClickListener) { - this.clickListener = onItemClickListener; - } - - class ItemViewHolder extends RecyclerView.ViewHolder { - - private final QMUIRadiusImageView caseImageView; - private final TextView caseTitleView; - private final TextView casePlaceView; - private final TextView caseTimeView; - - ItemViewHolder(@NonNull View itemView) { - super(itemView); - caseImageView = itemView.findViewById(R.id.caseImageView); - caseTitleView = itemView.findViewById(R.id.caseTitleView); - casePlaceView = itemView.findViewById(R.id.casePlaceView); - caseTimeView = itemView.findViewById(R.id.caseTimeView); - } - - void bindView(CaseSearchResultBean.DataDTO.RowsDTO rowsBean) { - //核实图片 -// String fileIdVerify = rowsBean.getFileIdVerify(); -// if (!TextUtils.isEmpty(fileIdVerify)) { -// String[] split = fileIdVerify.split(","); -// String firstImage = split[0]; -// if (firstImage.endsWith(".jpg") || firstImage.contains(".jpeg") || firstImage.contains(".png")) { -// Glide.with(context).load(StringHelper.appendCompleteURL(firstImage)).into(caseImageView); -// } -// } - caseTitleView.setText(StringHub.filterSpaceOrEnter(rowsBean.getDescription())); - casePlaceView.setText("发生地点:" + StringHub.filterSpaceOrEnter(rowsBean.getFieldintro())); - caseTimeView.setText("上报时间:" + rowsBean.getReportTime()); - } - } -} diff --git a/.idea/misc.xml b/.idea/misc.xml index 12058ca..4f8b20d 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -28,6 +28,9 @@ + + + @@ -39,6 +42,7 @@ + @@ -81,7 +85,8 @@ - + + diff --git a/app/src/main/java/com/casic/dcms/adapter/AnalysisRecycleAdapter.java b/app/src/main/java/com/casic/dcms/adapter/AnalysisRecycleAdapter.java deleted file mode 100644 index 913bde1..0000000 --- a/app/src/main/java/com/casic/dcms/adapter/AnalysisRecycleAdapter.java +++ /dev/null @@ -1,71 +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.utils.LocaleConstant; - -public class AnalysisRecycleAdapter extends RecyclerView.Adapter { - - private final LayoutInflater layoutInflater; - - public AnalysisRecycleAdapter(Context context) { - this.layoutInflater = LayoutInflater.from(context); - } - - @NonNull - @Override - public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - return new ItemViewHolder(layoutInflater.inflate(R.layout.item_home_recycleview, parent, false)); - } - - @Override - public void onBindViewHolder(@NonNull ItemViewHolder holder, @SuppressLint("RecyclerView") int position) { - holder.imageView.setBackgroundResource(LocaleConstant.ANALYSIS_ICONS.get(position)); - holder.textView.setText(LocaleConstant.ANALYSIS_ITEMS.get(position)); - if (clickListener != null) { - holder.itemView.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - clickListener.onClick(position); - } - }); - } - } - - @Override - public int getItemCount() { - return LocaleConstant.ANALYSIS_ITEMS.size(); - } - - private OnGridItemClickListener clickListener; - - public interface OnGridItemClickListener { - void onClick(int position); - } - - public void setOnGridItemClickListener(OnGridItemClickListener onGridItemClickListener) { - this.clickListener = onGridItemClickListener; - } - - static class ItemViewHolder extends RecyclerView.ViewHolder { - - private final ImageView imageView; - private final TextView textView; - - ItemViewHolder(@NonNull View itemView) { - super(itemView); - imageView = itemView.findViewById(R.id.imageView); - textView = itemView.findViewById(R.id.textView); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/adapter/CaseSearchResultAdapter.java b/app/src/main/java/com/casic/dcms/adapter/CaseSearchResultAdapter.java deleted file mode 100644 index 9449f44..0000000 --- a/app/src/main/java/com/casic/dcms/adapter/CaseSearchResultAdapter.java +++ /dev/null @@ -1,94 +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.TextView; - -import androidx.annotation.NonNull; -import androidx.recyclerview.widget.RecyclerView; - -import com.casic.dcms.R; -import com.casic.dcms.model.CaseSearchResultBean; -import com.pengxh.androidx.lite.hub.StringHub; -import com.qmuiteam.qmui.widget.QMUIRadiusImageView; - -import java.util.List; - -public class CaseSearchResultAdapter extends RecyclerView.Adapter { - - private final List dataRows; - private final LayoutInflater layoutInflater; - - public CaseSearchResultAdapter(Context context, List dataRows) { - this.dataRows = dataRows; - this.layoutInflater = LayoutInflater.from(context); - } - - @NonNull - @Override - public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - return new ItemViewHolder(layoutInflater.inflate(R.layout.item_case_rv, parent, false)); - } - - @Override - public void onBindViewHolder(@NonNull ItemViewHolder holder, @SuppressLint("RecyclerView") int position) { - holder.bindView(dataRows.get(position)); - if (clickListener != null) { - holder.itemView.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - clickListener.onClick(position); - } - }); - } - } - - @Override - public int getItemCount() { - return dataRows.size(); - } - - private OnItemClickListener clickListener; - - public interface OnItemClickListener { - void onClick(int position); - } - - public void setOnItemClickListener(OnItemClickListener onItemClickListener) { - this.clickListener = onItemClickListener; - } - - class ItemViewHolder extends RecyclerView.ViewHolder { - - private final QMUIRadiusImageView caseImageView; - private final TextView caseTitleView; - private final TextView casePlaceView; - private final TextView caseTimeView; - - ItemViewHolder(@NonNull View itemView) { - super(itemView); - caseImageView = itemView.findViewById(R.id.caseImageView); - caseTitleView = itemView.findViewById(R.id.caseTitleView); - casePlaceView = itemView.findViewById(R.id.casePlaceView); - caseTimeView = itemView.findViewById(R.id.caseTimeView); - } - - void bindView(CaseSearchResultBean.DataDTO.RowsDTO rowsBean) { - //核实图片 -// String fileIdVerify = rowsBean.getFileIdVerify(); -// if (!TextUtils.isEmpty(fileIdVerify)) { -// String[] split = fileIdVerify.split(","); -// String firstImage = split[0]; -// if (firstImage.endsWith(".jpg") || firstImage.contains(".jpeg") || firstImage.contains(".png")) { -// Glide.with(context).load(StringHelper.appendCompleteURL(firstImage)).into(caseImageView); -// } -// } - caseTitleView.setText(StringHub.filterSpaceOrEnter(rowsBean.getDescription())); - casePlaceView.setText("发生地点:" + StringHub.filterSpaceOrEnter(rowsBean.getFieldintro())); - caseTimeView.setText("上报时间:" + rowsBean.getReportTime()); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/adapter/HomeRecycleAdapter.java b/app/src/main/java/com/casic/dcms/adapter/HomeRecycleAdapter.java deleted file mode 100644 index e6eafa6..0000000 --- a/app/src/main/java/com/casic/dcms/adapter/HomeRecycleAdapter.java +++ /dev/null @@ -1,80 +0,0 @@ -package com.casic.dcms.adapter; - -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.HomePageBean; -import com.casic.dcms.utils.StringHelper; - -import java.util.List; - -public class HomeRecycleAdapter extends RecyclerView.Adapter { - - private final List menuData; - private final LayoutInflater layoutInflater; - - public HomeRecycleAdapter(Context context, List menus) { - this.menuData = menus; - this.layoutInflater = LayoutInflater.from(context); - } - - @NonNull - @Override - public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - return new ItemViewHolder(layoutInflater.inflate(R.layout.item_home_recycleview, parent, false)); - } - - @Override - public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { - String name = menuData.get(position).getName(); - holder.bindView(name); - if (clickListener != null) { - holder.itemView.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - clickListener.onClick(name); - } - }); - } - } - - @Override - public int getItemCount() { - return menuData.size(); - } - - private OnGridItemClickListener clickListener; - - public interface OnGridItemClickListener { - void onClick(String itemName); - } - - public void setOnGridItemClickListener(OnGridItemClickListener onGridItemClickListener) { - this.clickListener = onGridItemClickListener; - } - - static class ItemViewHolder extends RecyclerView.ViewHolder { - - private final ImageView imageView; - private final TextView textView; - - ItemViewHolder(@NonNull View itemView) { - super(itemView); - imageView = itemView.findViewById(R.id.imageView); - textView = itemView.findViewById(R.id.textView); - } - - void bindView(String name) { - imageView.setBackgroundResource(StringHelper.obtainIcon(name)); - textView.setText(name); - } - } -} diff --git a/.idea/misc.xml b/.idea/misc.xml index 12058ca..4f8b20d 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -28,6 +28,9 @@ + + + @@ -39,6 +42,7 @@ + @@ -81,7 +85,8 @@ - + + diff --git a/app/src/main/java/com/casic/dcms/adapter/AnalysisRecycleAdapter.java b/app/src/main/java/com/casic/dcms/adapter/AnalysisRecycleAdapter.java deleted file mode 100644 index 913bde1..0000000 --- a/app/src/main/java/com/casic/dcms/adapter/AnalysisRecycleAdapter.java +++ /dev/null @@ -1,71 +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.utils.LocaleConstant; - -public class AnalysisRecycleAdapter extends RecyclerView.Adapter { - - private final LayoutInflater layoutInflater; - - public AnalysisRecycleAdapter(Context context) { - this.layoutInflater = LayoutInflater.from(context); - } - - @NonNull - @Override - public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - return new ItemViewHolder(layoutInflater.inflate(R.layout.item_home_recycleview, parent, false)); - } - - @Override - public void onBindViewHolder(@NonNull ItemViewHolder holder, @SuppressLint("RecyclerView") int position) { - holder.imageView.setBackgroundResource(LocaleConstant.ANALYSIS_ICONS.get(position)); - holder.textView.setText(LocaleConstant.ANALYSIS_ITEMS.get(position)); - if (clickListener != null) { - holder.itemView.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - clickListener.onClick(position); - } - }); - } - } - - @Override - public int getItemCount() { - return LocaleConstant.ANALYSIS_ITEMS.size(); - } - - private OnGridItemClickListener clickListener; - - public interface OnGridItemClickListener { - void onClick(int position); - } - - public void setOnGridItemClickListener(OnGridItemClickListener onGridItemClickListener) { - this.clickListener = onGridItemClickListener; - } - - static class ItemViewHolder extends RecyclerView.ViewHolder { - - private final ImageView imageView; - private final TextView textView; - - ItemViewHolder(@NonNull View itemView) { - super(itemView); - imageView = itemView.findViewById(R.id.imageView); - textView = itemView.findViewById(R.id.textView); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/adapter/CaseSearchResultAdapter.java b/app/src/main/java/com/casic/dcms/adapter/CaseSearchResultAdapter.java deleted file mode 100644 index 9449f44..0000000 --- a/app/src/main/java/com/casic/dcms/adapter/CaseSearchResultAdapter.java +++ /dev/null @@ -1,94 +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.TextView; - -import androidx.annotation.NonNull; -import androidx.recyclerview.widget.RecyclerView; - -import com.casic.dcms.R; -import com.casic.dcms.model.CaseSearchResultBean; -import com.pengxh.androidx.lite.hub.StringHub; -import com.qmuiteam.qmui.widget.QMUIRadiusImageView; - -import java.util.List; - -public class CaseSearchResultAdapter extends RecyclerView.Adapter { - - private final List dataRows; - private final LayoutInflater layoutInflater; - - public CaseSearchResultAdapter(Context context, List dataRows) { - this.dataRows = dataRows; - this.layoutInflater = LayoutInflater.from(context); - } - - @NonNull - @Override - public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - return new ItemViewHolder(layoutInflater.inflate(R.layout.item_case_rv, parent, false)); - } - - @Override - public void onBindViewHolder(@NonNull ItemViewHolder holder, @SuppressLint("RecyclerView") int position) { - holder.bindView(dataRows.get(position)); - if (clickListener != null) { - holder.itemView.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - clickListener.onClick(position); - } - }); - } - } - - @Override - public int getItemCount() { - return dataRows.size(); - } - - private OnItemClickListener clickListener; - - public interface OnItemClickListener { - void onClick(int position); - } - - public void setOnItemClickListener(OnItemClickListener onItemClickListener) { - this.clickListener = onItemClickListener; - } - - class ItemViewHolder extends RecyclerView.ViewHolder { - - private final QMUIRadiusImageView caseImageView; - private final TextView caseTitleView; - private final TextView casePlaceView; - private final TextView caseTimeView; - - ItemViewHolder(@NonNull View itemView) { - super(itemView); - caseImageView = itemView.findViewById(R.id.caseImageView); - caseTitleView = itemView.findViewById(R.id.caseTitleView); - casePlaceView = itemView.findViewById(R.id.casePlaceView); - caseTimeView = itemView.findViewById(R.id.caseTimeView); - } - - void bindView(CaseSearchResultBean.DataDTO.RowsDTO rowsBean) { - //核实图片 -// String fileIdVerify = rowsBean.getFileIdVerify(); -// if (!TextUtils.isEmpty(fileIdVerify)) { -// String[] split = fileIdVerify.split(","); -// String firstImage = split[0]; -// if (firstImage.endsWith(".jpg") || firstImage.contains(".jpeg") || firstImage.contains(".png")) { -// Glide.with(context).load(StringHelper.appendCompleteURL(firstImage)).into(caseImageView); -// } -// } - caseTitleView.setText(StringHub.filterSpaceOrEnter(rowsBean.getDescription())); - casePlaceView.setText("发生地点:" + StringHub.filterSpaceOrEnter(rowsBean.getFieldintro())); - caseTimeView.setText("上报时间:" + rowsBean.getReportTime()); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/adapter/HomeRecycleAdapter.java b/app/src/main/java/com/casic/dcms/adapter/HomeRecycleAdapter.java deleted file mode 100644 index e6eafa6..0000000 --- a/app/src/main/java/com/casic/dcms/adapter/HomeRecycleAdapter.java +++ /dev/null @@ -1,80 +0,0 @@ -package com.casic.dcms.adapter; - -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.HomePageBean; -import com.casic.dcms.utils.StringHelper; - -import java.util.List; - -public class HomeRecycleAdapter extends RecyclerView.Adapter { - - private final List menuData; - private final LayoutInflater layoutInflater; - - public HomeRecycleAdapter(Context context, List menus) { - this.menuData = menus; - this.layoutInflater = LayoutInflater.from(context); - } - - @NonNull - @Override - public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - return new ItemViewHolder(layoutInflater.inflate(R.layout.item_home_recycleview, parent, false)); - } - - @Override - public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { - String name = menuData.get(position).getName(); - holder.bindView(name); - if (clickListener != null) { - holder.itemView.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - clickListener.onClick(name); - } - }); - } - } - - @Override - public int getItemCount() { - return menuData.size(); - } - - private OnGridItemClickListener clickListener; - - public interface OnGridItemClickListener { - void onClick(String itemName); - } - - public void setOnGridItemClickListener(OnGridItemClickListener onGridItemClickListener) { - this.clickListener = onGridItemClickListener; - } - - static class ItemViewHolder extends RecyclerView.ViewHolder { - - private final ImageView imageView; - private final TextView textView; - - ItemViewHolder(@NonNull View itemView) { - super(itemView); - imageView = itemView.findViewById(R.id.imageView); - textView = itemView.findViewById(R.id.textView); - } - - void bindView(String name) { - imageView.setBackgroundResource(StringHelper.obtainIcon(name)); - textView.setText(name); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/adapter/ProcessLineAdapter.java b/app/src/main/java/com/casic/dcms/adapter/ProcessLineAdapter.java deleted file mode 100644 index 42da4cf..0000000 --- a/app/src/main/java/com/casic/dcms/adapter/ProcessLineAdapter.java +++ /dev/null @@ -1,70 +0,0 @@ -package com.casic.dcms.adapter; - -import android.content.Context; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.TextView; - -import androidx.annotation.NonNull; -import androidx.recyclerview.widget.RecyclerView; - -import com.casic.dcms.R; -import com.casic.dcms.model.CaseProcessBean; - -import org.jetbrains.annotations.NotNull; - -import java.util.List; - -public class ProcessLineAdapter extends RecyclerView.Adapter { - private final List mProcessList; - private final LayoutInflater layoutInflater; - - public ProcessLineAdapter(Context context, List list) { - this.mProcessList = list; - this.layoutInflater = LayoutInflater.from(context); - } - - @NotNull - @Override - public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - return new ViewHolder(layoutInflater.inflate(R.layout.item_case_process, parent, false)); - } - - @Override - public void onBindViewHolder(ViewHolder holder, int position) { - CaseProcessBean.DataBean dataBean = mProcessList.get(position); - String typeName = dataBean.getOperationTypeName(); - holder.operationTypeName.setText(typeName); - holder.handlePersonView.setText(dataBean.getUserName()); - holder.handleTimeView.setText(dataBean.getTime()); - holder.handleResultView.setText(dataBean.getRemarks()); - } - - @Override - public int getItemViewType(int position) { - return super.getItemViewType(position); - } - - @Override - public int getItemCount() { - return mProcessList.size(); - } - - static class ViewHolder extends RecyclerView.ViewHolder { - private final TextView operationTypeName; - private final TextView handlePersonView; - private final TextView handleTimeView; - private final TextView handleResultView; - private final RecyclerView handlePicView; - - public ViewHolder(View view) { - super(view); - operationTypeName = view.findViewById(R.id.operationTypeName); - handlePersonView = view.findViewById(R.id.handlePersonView); - handleTimeView = view.findViewById(R.id.handleTimeView); - handleResultView = view.findViewById(R.id.handleResultView); - handlePicView = view.findViewById(R.id.handlePicView); - } - } -} \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml index 12058ca..4f8b20d 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -28,6 +28,9 @@ + + + @@ -39,6 +42,7 @@ + @@ -81,7 +85,8 @@ - + + diff --git a/app/src/main/java/com/casic/dcms/adapter/AnalysisRecycleAdapter.java b/app/src/main/java/com/casic/dcms/adapter/AnalysisRecycleAdapter.java deleted file mode 100644 index 913bde1..0000000 --- a/app/src/main/java/com/casic/dcms/adapter/AnalysisRecycleAdapter.java +++ /dev/null @@ -1,71 +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.utils.LocaleConstant; - -public class AnalysisRecycleAdapter extends RecyclerView.Adapter { - - private final LayoutInflater layoutInflater; - - public AnalysisRecycleAdapter(Context context) { - this.layoutInflater = LayoutInflater.from(context); - } - - @NonNull - @Override - public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - return new ItemViewHolder(layoutInflater.inflate(R.layout.item_home_recycleview, parent, false)); - } - - @Override - public void onBindViewHolder(@NonNull ItemViewHolder holder, @SuppressLint("RecyclerView") int position) { - holder.imageView.setBackgroundResource(LocaleConstant.ANALYSIS_ICONS.get(position)); - holder.textView.setText(LocaleConstant.ANALYSIS_ITEMS.get(position)); - if (clickListener != null) { - holder.itemView.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - clickListener.onClick(position); - } - }); - } - } - - @Override - public int getItemCount() { - return LocaleConstant.ANALYSIS_ITEMS.size(); - } - - private OnGridItemClickListener clickListener; - - public interface OnGridItemClickListener { - void onClick(int position); - } - - public void setOnGridItemClickListener(OnGridItemClickListener onGridItemClickListener) { - this.clickListener = onGridItemClickListener; - } - - static class ItemViewHolder extends RecyclerView.ViewHolder { - - private final ImageView imageView; - private final TextView textView; - - ItemViewHolder(@NonNull View itemView) { - super(itemView); - imageView = itemView.findViewById(R.id.imageView); - textView = itemView.findViewById(R.id.textView); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/adapter/CaseSearchResultAdapter.java b/app/src/main/java/com/casic/dcms/adapter/CaseSearchResultAdapter.java deleted file mode 100644 index 9449f44..0000000 --- a/app/src/main/java/com/casic/dcms/adapter/CaseSearchResultAdapter.java +++ /dev/null @@ -1,94 +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.TextView; - -import androidx.annotation.NonNull; -import androidx.recyclerview.widget.RecyclerView; - -import com.casic.dcms.R; -import com.casic.dcms.model.CaseSearchResultBean; -import com.pengxh.androidx.lite.hub.StringHub; -import com.qmuiteam.qmui.widget.QMUIRadiusImageView; - -import java.util.List; - -public class CaseSearchResultAdapter extends RecyclerView.Adapter { - - private final List dataRows; - private final LayoutInflater layoutInflater; - - public CaseSearchResultAdapter(Context context, List dataRows) { - this.dataRows = dataRows; - this.layoutInflater = LayoutInflater.from(context); - } - - @NonNull - @Override - public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - return new ItemViewHolder(layoutInflater.inflate(R.layout.item_case_rv, parent, false)); - } - - @Override - public void onBindViewHolder(@NonNull ItemViewHolder holder, @SuppressLint("RecyclerView") int position) { - holder.bindView(dataRows.get(position)); - if (clickListener != null) { - holder.itemView.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - clickListener.onClick(position); - } - }); - } - } - - @Override - public int getItemCount() { - return dataRows.size(); - } - - private OnItemClickListener clickListener; - - public interface OnItemClickListener { - void onClick(int position); - } - - public void setOnItemClickListener(OnItemClickListener onItemClickListener) { - this.clickListener = onItemClickListener; - } - - class ItemViewHolder extends RecyclerView.ViewHolder { - - private final QMUIRadiusImageView caseImageView; - private final TextView caseTitleView; - private final TextView casePlaceView; - private final TextView caseTimeView; - - ItemViewHolder(@NonNull View itemView) { - super(itemView); - caseImageView = itemView.findViewById(R.id.caseImageView); - caseTitleView = itemView.findViewById(R.id.caseTitleView); - casePlaceView = itemView.findViewById(R.id.casePlaceView); - caseTimeView = itemView.findViewById(R.id.caseTimeView); - } - - void bindView(CaseSearchResultBean.DataDTO.RowsDTO rowsBean) { - //核实图片 -// String fileIdVerify = rowsBean.getFileIdVerify(); -// if (!TextUtils.isEmpty(fileIdVerify)) { -// String[] split = fileIdVerify.split(","); -// String firstImage = split[0]; -// if (firstImage.endsWith(".jpg") || firstImage.contains(".jpeg") || firstImage.contains(".png")) { -// Glide.with(context).load(StringHelper.appendCompleteURL(firstImage)).into(caseImageView); -// } -// } - caseTitleView.setText(StringHub.filterSpaceOrEnter(rowsBean.getDescription())); - casePlaceView.setText("发生地点:" + StringHub.filterSpaceOrEnter(rowsBean.getFieldintro())); - caseTimeView.setText("上报时间:" + rowsBean.getReportTime()); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/adapter/HomeRecycleAdapter.java b/app/src/main/java/com/casic/dcms/adapter/HomeRecycleAdapter.java deleted file mode 100644 index e6eafa6..0000000 --- a/app/src/main/java/com/casic/dcms/adapter/HomeRecycleAdapter.java +++ /dev/null @@ -1,80 +0,0 @@ -package com.casic.dcms.adapter; - -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.HomePageBean; -import com.casic.dcms.utils.StringHelper; - -import java.util.List; - -public class HomeRecycleAdapter extends RecyclerView.Adapter { - - private final List menuData; - private final LayoutInflater layoutInflater; - - public HomeRecycleAdapter(Context context, List menus) { - this.menuData = menus; - this.layoutInflater = LayoutInflater.from(context); - } - - @NonNull - @Override - public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - return new ItemViewHolder(layoutInflater.inflate(R.layout.item_home_recycleview, parent, false)); - } - - @Override - public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { - String name = menuData.get(position).getName(); - holder.bindView(name); - if (clickListener != null) { - holder.itemView.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - clickListener.onClick(name); - } - }); - } - } - - @Override - public int getItemCount() { - return menuData.size(); - } - - private OnGridItemClickListener clickListener; - - public interface OnGridItemClickListener { - void onClick(String itemName); - } - - public void setOnGridItemClickListener(OnGridItemClickListener onGridItemClickListener) { - this.clickListener = onGridItemClickListener; - } - - static class ItemViewHolder extends RecyclerView.ViewHolder { - - private final ImageView imageView; - private final TextView textView; - - ItemViewHolder(@NonNull View itemView) { - super(itemView); - imageView = itemView.findViewById(R.id.imageView); - textView = itemView.findViewById(R.id.textView); - } - - void bindView(String name) { - imageView.setBackgroundResource(StringHelper.obtainIcon(name)); - textView.setText(name); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/adapter/ProcessLineAdapter.java b/app/src/main/java/com/casic/dcms/adapter/ProcessLineAdapter.java deleted file mode 100644 index 42da4cf..0000000 --- a/app/src/main/java/com/casic/dcms/adapter/ProcessLineAdapter.java +++ /dev/null @@ -1,70 +0,0 @@ -package com.casic.dcms.adapter; - -import android.content.Context; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.TextView; - -import androidx.annotation.NonNull; -import androidx.recyclerview.widget.RecyclerView; - -import com.casic.dcms.R; -import com.casic.dcms.model.CaseProcessBean; - -import org.jetbrains.annotations.NotNull; - -import java.util.List; - -public class ProcessLineAdapter extends RecyclerView.Adapter { - private final List mProcessList; - private final LayoutInflater layoutInflater; - - public ProcessLineAdapter(Context context, List list) { - this.mProcessList = list; - this.layoutInflater = LayoutInflater.from(context); - } - - @NotNull - @Override - public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - return new ViewHolder(layoutInflater.inflate(R.layout.item_case_process, parent, false)); - } - - @Override - public void onBindViewHolder(ViewHolder holder, int position) { - CaseProcessBean.DataBean dataBean = mProcessList.get(position); - String typeName = dataBean.getOperationTypeName(); - holder.operationTypeName.setText(typeName); - holder.handlePersonView.setText(dataBean.getUserName()); - holder.handleTimeView.setText(dataBean.getTime()); - holder.handleResultView.setText(dataBean.getRemarks()); - } - - @Override - public int getItemViewType(int position) { - return super.getItemViewType(position); - } - - @Override - public int getItemCount() { - return mProcessList.size(); - } - - static class ViewHolder extends RecyclerView.ViewHolder { - private final TextView operationTypeName; - private final TextView handlePersonView; - private final TextView handleTimeView; - private final TextView handleResultView; - private final RecyclerView handlePicView; - - public ViewHolder(View view) { - super(view); - operationTypeName = view.findViewById(R.id.operationTypeName); - handlePersonView = view.findViewById(R.id.handlePersonView); - handleTimeView = view.findViewById(R.id.handleTimeView); - handleResultView = view.findViewById(R.id.handleResultView); - handlePicView = view.findViewById(R.id.handlePicView); - } - } -} \ No newline at end of file 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 3b7a194..6b6b72e 100644 --- a/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java @@ -7,7 +7,6 @@ import com.bumptech.glide.Glide; import com.casic.dcms.R; -import com.casic.dcms.adapter.HomeRecycleAdapter; import com.casic.dcms.databinding.FragmentHomeBinding; import com.casic.dcms.model.HomePageBean; import com.casic.dcms.model.UserBean; @@ -33,6 +32,8 @@ import com.casic.dcms.view.UrgentCaseActivity; import com.casic.dcms.view.VerifyCaseActivity; import com.casic.dcms.vm.HomePageViewModel; +import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; +import com.pengxh.androidx.lite.adapter.ViewHolder; import com.pengxh.androidx.lite.base.AndroidxBaseFragment; import com.pengxh.androidx.lite.hub.LongHub; import com.pengxh.androidx.lite.utils.SaveKeyValues; @@ -95,13 +96,18 @@ @Override public void onChanged(HomePageBean resultBean) { if (resultBean.getCode() == 200) { - HomeRecycleAdapter adapter = new HomeRecycleAdapter(requireContext(), resultBean.getData().getMenus()); - viewBinding.homeRecyclerView.setAdapter(adapter); - adapter.setOnGridItemClickListener(new HomeRecycleAdapter.OnGridItemClickListener() { + NormalRecyclerAdapter recyclerAdapter = new NormalRecyclerAdapter(R.layout.item_home_recycleview, resultBean.getData().getMenus()) { @Override - public void onClick(String itemName) { + public void convertView(ViewHolder viewHolder, int position, HomePageBean.DataBean.MenusBean item) { + viewHolder.setImageResource(R.id.imageView, StringHelper.obtainDrawableIcon(item.getName())).setText(R.id.textView, item.getName()); + } + }; + viewBinding.homeRecyclerView.setAdapter(recyclerAdapter); + recyclerAdapter.setOnItemClickedListener(new NormalRecyclerAdapter.OnItemClickedListener() { + @Override + public void onItemClicked(int position, HomePageBean.DataBean.MenusBean menusBean) { Intent intent = new Intent(); - switch (itemName) { + switch (menusBean.getName()) { case "案卷上报": intent.setClass(requireContext(), CommonCaseUploadActivity.class); break; diff --git a/.idea/misc.xml b/.idea/misc.xml index 12058ca..4f8b20d 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -28,6 +28,9 @@ + + + @@ -39,6 +42,7 @@ + @@ -81,7 +85,8 @@ - + + diff --git a/app/src/main/java/com/casic/dcms/adapter/AnalysisRecycleAdapter.java b/app/src/main/java/com/casic/dcms/adapter/AnalysisRecycleAdapter.java deleted file mode 100644 index 913bde1..0000000 --- a/app/src/main/java/com/casic/dcms/adapter/AnalysisRecycleAdapter.java +++ /dev/null @@ -1,71 +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.utils.LocaleConstant; - -public class AnalysisRecycleAdapter extends RecyclerView.Adapter { - - private final LayoutInflater layoutInflater; - - public AnalysisRecycleAdapter(Context context) { - this.layoutInflater = LayoutInflater.from(context); - } - - @NonNull - @Override - public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - return new ItemViewHolder(layoutInflater.inflate(R.layout.item_home_recycleview, parent, false)); - } - - @Override - public void onBindViewHolder(@NonNull ItemViewHolder holder, @SuppressLint("RecyclerView") int position) { - holder.imageView.setBackgroundResource(LocaleConstant.ANALYSIS_ICONS.get(position)); - holder.textView.setText(LocaleConstant.ANALYSIS_ITEMS.get(position)); - if (clickListener != null) { - holder.itemView.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - clickListener.onClick(position); - } - }); - } - } - - @Override - public int getItemCount() { - return LocaleConstant.ANALYSIS_ITEMS.size(); - } - - private OnGridItemClickListener clickListener; - - public interface OnGridItemClickListener { - void onClick(int position); - } - - public void setOnGridItemClickListener(OnGridItemClickListener onGridItemClickListener) { - this.clickListener = onGridItemClickListener; - } - - static class ItemViewHolder extends RecyclerView.ViewHolder { - - private final ImageView imageView; - private final TextView textView; - - ItemViewHolder(@NonNull View itemView) { - super(itemView); - imageView = itemView.findViewById(R.id.imageView); - textView = itemView.findViewById(R.id.textView); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/adapter/CaseSearchResultAdapter.java b/app/src/main/java/com/casic/dcms/adapter/CaseSearchResultAdapter.java deleted file mode 100644 index 9449f44..0000000 --- a/app/src/main/java/com/casic/dcms/adapter/CaseSearchResultAdapter.java +++ /dev/null @@ -1,94 +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.TextView; - -import androidx.annotation.NonNull; -import androidx.recyclerview.widget.RecyclerView; - -import com.casic.dcms.R; -import com.casic.dcms.model.CaseSearchResultBean; -import com.pengxh.androidx.lite.hub.StringHub; -import com.qmuiteam.qmui.widget.QMUIRadiusImageView; - -import java.util.List; - -public class CaseSearchResultAdapter extends RecyclerView.Adapter { - - private final List dataRows; - private final LayoutInflater layoutInflater; - - public CaseSearchResultAdapter(Context context, List dataRows) { - this.dataRows = dataRows; - this.layoutInflater = LayoutInflater.from(context); - } - - @NonNull - @Override - public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - return new ItemViewHolder(layoutInflater.inflate(R.layout.item_case_rv, parent, false)); - } - - @Override - public void onBindViewHolder(@NonNull ItemViewHolder holder, @SuppressLint("RecyclerView") int position) { - holder.bindView(dataRows.get(position)); - if (clickListener != null) { - holder.itemView.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - clickListener.onClick(position); - } - }); - } - } - - @Override - public int getItemCount() { - return dataRows.size(); - } - - private OnItemClickListener clickListener; - - public interface OnItemClickListener { - void onClick(int position); - } - - public void setOnItemClickListener(OnItemClickListener onItemClickListener) { - this.clickListener = onItemClickListener; - } - - class ItemViewHolder extends RecyclerView.ViewHolder { - - private final QMUIRadiusImageView caseImageView; - private final TextView caseTitleView; - private final TextView casePlaceView; - private final TextView caseTimeView; - - ItemViewHolder(@NonNull View itemView) { - super(itemView); - caseImageView = itemView.findViewById(R.id.caseImageView); - caseTitleView = itemView.findViewById(R.id.caseTitleView); - casePlaceView = itemView.findViewById(R.id.casePlaceView); - caseTimeView = itemView.findViewById(R.id.caseTimeView); - } - - void bindView(CaseSearchResultBean.DataDTO.RowsDTO rowsBean) { - //核实图片 -// String fileIdVerify = rowsBean.getFileIdVerify(); -// if (!TextUtils.isEmpty(fileIdVerify)) { -// String[] split = fileIdVerify.split(","); -// String firstImage = split[0]; -// if (firstImage.endsWith(".jpg") || firstImage.contains(".jpeg") || firstImage.contains(".png")) { -// Glide.with(context).load(StringHelper.appendCompleteURL(firstImage)).into(caseImageView); -// } -// } - caseTitleView.setText(StringHub.filterSpaceOrEnter(rowsBean.getDescription())); - casePlaceView.setText("发生地点:" + StringHub.filterSpaceOrEnter(rowsBean.getFieldintro())); - caseTimeView.setText("上报时间:" + rowsBean.getReportTime()); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/adapter/HomeRecycleAdapter.java b/app/src/main/java/com/casic/dcms/adapter/HomeRecycleAdapter.java deleted file mode 100644 index e6eafa6..0000000 --- a/app/src/main/java/com/casic/dcms/adapter/HomeRecycleAdapter.java +++ /dev/null @@ -1,80 +0,0 @@ -package com.casic.dcms.adapter; - -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.HomePageBean; -import com.casic.dcms.utils.StringHelper; - -import java.util.List; - -public class HomeRecycleAdapter extends RecyclerView.Adapter { - - private final List menuData; - private final LayoutInflater layoutInflater; - - public HomeRecycleAdapter(Context context, List menus) { - this.menuData = menus; - this.layoutInflater = LayoutInflater.from(context); - } - - @NonNull - @Override - public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - return new ItemViewHolder(layoutInflater.inflate(R.layout.item_home_recycleview, parent, false)); - } - - @Override - public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { - String name = menuData.get(position).getName(); - holder.bindView(name); - if (clickListener != null) { - holder.itemView.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - clickListener.onClick(name); - } - }); - } - } - - @Override - public int getItemCount() { - return menuData.size(); - } - - private OnGridItemClickListener clickListener; - - public interface OnGridItemClickListener { - void onClick(String itemName); - } - - public void setOnGridItemClickListener(OnGridItemClickListener onGridItemClickListener) { - this.clickListener = onGridItemClickListener; - } - - static class ItemViewHolder extends RecyclerView.ViewHolder { - - private final ImageView imageView; - private final TextView textView; - - ItemViewHolder(@NonNull View itemView) { - super(itemView); - imageView = itemView.findViewById(R.id.imageView); - textView = itemView.findViewById(R.id.textView); - } - - void bindView(String name) { - imageView.setBackgroundResource(StringHelper.obtainIcon(name)); - textView.setText(name); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/adapter/ProcessLineAdapter.java b/app/src/main/java/com/casic/dcms/adapter/ProcessLineAdapter.java deleted file mode 100644 index 42da4cf..0000000 --- a/app/src/main/java/com/casic/dcms/adapter/ProcessLineAdapter.java +++ /dev/null @@ -1,70 +0,0 @@ -package com.casic.dcms.adapter; - -import android.content.Context; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.TextView; - -import androidx.annotation.NonNull; -import androidx.recyclerview.widget.RecyclerView; - -import com.casic.dcms.R; -import com.casic.dcms.model.CaseProcessBean; - -import org.jetbrains.annotations.NotNull; - -import java.util.List; - -public class ProcessLineAdapter extends RecyclerView.Adapter { - private final List mProcessList; - private final LayoutInflater layoutInflater; - - public ProcessLineAdapter(Context context, List list) { - this.mProcessList = list; - this.layoutInflater = LayoutInflater.from(context); - } - - @NotNull - @Override - public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - return new ViewHolder(layoutInflater.inflate(R.layout.item_case_process, parent, false)); - } - - @Override - public void onBindViewHolder(ViewHolder holder, int position) { - CaseProcessBean.DataBean dataBean = mProcessList.get(position); - String typeName = dataBean.getOperationTypeName(); - holder.operationTypeName.setText(typeName); - holder.handlePersonView.setText(dataBean.getUserName()); - holder.handleTimeView.setText(dataBean.getTime()); - holder.handleResultView.setText(dataBean.getRemarks()); - } - - @Override - public int getItemViewType(int position) { - return super.getItemViewType(position); - } - - @Override - public int getItemCount() { - return mProcessList.size(); - } - - static class ViewHolder extends RecyclerView.ViewHolder { - private final TextView operationTypeName; - private final TextView handlePersonView; - private final TextView handleTimeView; - private final TextView handleResultView; - private final RecyclerView handlePicView; - - public ViewHolder(View view) { - super(view); - operationTypeName = view.findViewById(R.id.operationTypeName); - handlePersonView = view.findViewById(R.id.handlePersonView); - handleTimeView = view.findViewById(R.id.handleTimeView); - handleResultView = view.findViewById(R.id.handleResultView); - handlePicView = view.findViewById(R.id.handlePicView); - } - } -} \ No newline at end of file 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 3b7a194..6b6b72e 100644 --- a/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java @@ -7,7 +7,6 @@ import com.bumptech.glide.Glide; import com.casic.dcms.R; -import com.casic.dcms.adapter.HomeRecycleAdapter; import com.casic.dcms.databinding.FragmentHomeBinding; import com.casic.dcms.model.HomePageBean; import com.casic.dcms.model.UserBean; @@ -33,6 +32,8 @@ import com.casic.dcms.view.UrgentCaseActivity; import com.casic.dcms.view.VerifyCaseActivity; import com.casic.dcms.vm.HomePageViewModel; +import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; +import com.pengxh.androidx.lite.adapter.ViewHolder; import com.pengxh.androidx.lite.base.AndroidxBaseFragment; import com.pengxh.androidx.lite.hub.LongHub; import com.pengxh.androidx.lite.utils.SaveKeyValues; @@ -95,13 +96,18 @@ @Override public void onChanged(HomePageBean resultBean) { if (resultBean.getCode() == 200) { - HomeRecycleAdapter adapter = new HomeRecycleAdapter(requireContext(), resultBean.getData().getMenus()); - viewBinding.homeRecyclerView.setAdapter(adapter); - adapter.setOnGridItemClickListener(new HomeRecycleAdapter.OnGridItemClickListener() { + NormalRecyclerAdapter recyclerAdapter = new NormalRecyclerAdapter(R.layout.item_home_recycleview, resultBean.getData().getMenus()) { @Override - public void onClick(String itemName) { + public void convertView(ViewHolder viewHolder, int position, HomePageBean.DataBean.MenusBean item) { + viewHolder.setImageResource(R.id.imageView, StringHelper.obtainDrawableIcon(item.getName())).setText(R.id.textView, item.getName()); + } + }; + viewBinding.homeRecyclerView.setAdapter(recyclerAdapter); + recyclerAdapter.setOnItemClickedListener(new NormalRecyclerAdapter.OnItemClickedListener() { + @Override + public void onItemClicked(int position, HomePageBean.DataBean.MenusBean menusBean) { Intent intent = new Intent(); - switch (itemName) { + switch (menusBean.getName()) { case "案卷上报": intent.setClass(requireContext(), CommonCaseUploadActivity.class); break; diff --git a/app/src/main/java/com/casic/dcms/model/DataAnalysisGridModel.java b/app/src/main/java/com/casic/dcms/model/DataAnalysisGridModel.java new file mode 100644 index 0000000..3b20a2f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/model/DataAnalysisGridModel.java @@ -0,0 +1,22 @@ +package com.casic.dcms.model; + +public class DataAnalysisGridModel { + private int itemIcon; + private String itemTitle; + + public int getItemIcon() { + return itemIcon; + } + + public void setItemIcon(int itemIcon) { + this.itemIcon = itemIcon; + } + + public String getItemTitle() { + return itemTitle; + } + + public void setItemTitle(String itemTitle) { + this.itemTitle = itemTitle; + } +} diff --git a/.idea/misc.xml b/.idea/misc.xml index 12058ca..4f8b20d 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -28,6 +28,9 @@ + + + @@ -39,6 +42,7 @@ + @@ -81,7 +85,8 @@ - + + diff --git a/app/src/main/java/com/casic/dcms/adapter/AnalysisRecycleAdapter.java b/app/src/main/java/com/casic/dcms/adapter/AnalysisRecycleAdapter.java deleted file mode 100644 index 913bde1..0000000 --- a/app/src/main/java/com/casic/dcms/adapter/AnalysisRecycleAdapter.java +++ /dev/null @@ -1,71 +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.utils.LocaleConstant; - -public class AnalysisRecycleAdapter extends RecyclerView.Adapter { - - private final LayoutInflater layoutInflater; - - public AnalysisRecycleAdapter(Context context) { - this.layoutInflater = LayoutInflater.from(context); - } - - @NonNull - @Override - public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - return new ItemViewHolder(layoutInflater.inflate(R.layout.item_home_recycleview, parent, false)); - } - - @Override - public void onBindViewHolder(@NonNull ItemViewHolder holder, @SuppressLint("RecyclerView") int position) { - holder.imageView.setBackgroundResource(LocaleConstant.ANALYSIS_ICONS.get(position)); - holder.textView.setText(LocaleConstant.ANALYSIS_ITEMS.get(position)); - if (clickListener != null) { - holder.itemView.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - clickListener.onClick(position); - } - }); - } - } - - @Override - public int getItemCount() { - return LocaleConstant.ANALYSIS_ITEMS.size(); - } - - private OnGridItemClickListener clickListener; - - public interface OnGridItemClickListener { - void onClick(int position); - } - - public void setOnGridItemClickListener(OnGridItemClickListener onGridItemClickListener) { - this.clickListener = onGridItemClickListener; - } - - static class ItemViewHolder extends RecyclerView.ViewHolder { - - private final ImageView imageView; - private final TextView textView; - - ItemViewHolder(@NonNull View itemView) { - super(itemView); - imageView = itemView.findViewById(R.id.imageView); - textView = itemView.findViewById(R.id.textView); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/adapter/CaseSearchResultAdapter.java b/app/src/main/java/com/casic/dcms/adapter/CaseSearchResultAdapter.java deleted file mode 100644 index 9449f44..0000000 --- a/app/src/main/java/com/casic/dcms/adapter/CaseSearchResultAdapter.java +++ /dev/null @@ -1,94 +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.TextView; - -import androidx.annotation.NonNull; -import androidx.recyclerview.widget.RecyclerView; - -import com.casic.dcms.R; -import com.casic.dcms.model.CaseSearchResultBean; -import com.pengxh.androidx.lite.hub.StringHub; -import com.qmuiteam.qmui.widget.QMUIRadiusImageView; - -import java.util.List; - -public class CaseSearchResultAdapter extends RecyclerView.Adapter { - - private final List dataRows; - private final LayoutInflater layoutInflater; - - public CaseSearchResultAdapter(Context context, List dataRows) { - this.dataRows = dataRows; - this.layoutInflater = LayoutInflater.from(context); - } - - @NonNull - @Override - public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - return new ItemViewHolder(layoutInflater.inflate(R.layout.item_case_rv, parent, false)); - } - - @Override - public void onBindViewHolder(@NonNull ItemViewHolder holder, @SuppressLint("RecyclerView") int position) { - holder.bindView(dataRows.get(position)); - if (clickListener != null) { - holder.itemView.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - clickListener.onClick(position); - } - }); - } - } - - @Override - public int getItemCount() { - return dataRows.size(); - } - - private OnItemClickListener clickListener; - - public interface OnItemClickListener { - void onClick(int position); - } - - public void setOnItemClickListener(OnItemClickListener onItemClickListener) { - this.clickListener = onItemClickListener; - } - - class ItemViewHolder extends RecyclerView.ViewHolder { - - private final QMUIRadiusImageView caseImageView; - private final TextView caseTitleView; - private final TextView casePlaceView; - private final TextView caseTimeView; - - ItemViewHolder(@NonNull View itemView) { - super(itemView); - caseImageView = itemView.findViewById(R.id.caseImageView); - caseTitleView = itemView.findViewById(R.id.caseTitleView); - casePlaceView = itemView.findViewById(R.id.casePlaceView); - caseTimeView = itemView.findViewById(R.id.caseTimeView); - } - - void bindView(CaseSearchResultBean.DataDTO.RowsDTO rowsBean) { - //核实图片 -// String fileIdVerify = rowsBean.getFileIdVerify(); -// if (!TextUtils.isEmpty(fileIdVerify)) { -// String[] split = fileIdVerify.split(","); -// String firstImage = split[0]; -// if (firstImage.endsWith(".jpg") || firstImage.contains(".jpeg") || firstImage.contains(".png")) { -// Glide.with(context).load(StringHelper.appendCompleteURL(firstImage)).into(caseImageView); -// } -// } - caseTitleView.setText(StringHub.filterSpaceOrEnter(rowsBean.getDescription())); - casePlaceView.setText("发生地点:" + StringHub.filterSpaceOrEnter(rowsBean.getFieldintro())); - caseTimeView.setText("上报时间:" + rowsBean.getReportTime()); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/adapter/HomeRecycleAdapter.java b/app/src/main/java/com/casic/dcms/adapter/HomeRecycleAdapter.java deleted file mode 100644 index e6eafa6..0000000 --- a/app/src/main/java/com/casic/dcms/adapter/HomeRecycleAdapter.java +++ /dev/null @@ -1,80 +0,0 @@ -package com.casic.dcms.adapter; - -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.HomePageBean; -import com.casic.dcms.utils.StringHelper; - -import java.util.List; - -public class HomeRecycleAdapter extends RecyclerView.Adapter { - - private final List menuData; - private final LayoutInflater layoutInflater; - - public HomeRecycleAdapter(Context context, List menus) { - this.menuData = menus; - this.layoutInflater = LayoutInflater.from(context); - } - - @NonNull - @Override - public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - return new ItemViewHolder(layoutInflater.inflate(R.layout.item_home_recycleview, parent, false)); - } - - @Override - public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { - String name = menuData.get(position).getName(); - holder.bindView(name); - if (clickListener != null) { - holder.itemView.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - clickListener.onClick(name); - } - }); - } - } - - @Override - public int getItemCount() { - return menuData.size(); - } - - private OnGridItemClickListener clickListener; - - public interface OnGridItemClickListener { - void onClick(String itemName); - } - - public void setOnGridItemClickListener(OnGridItemClickListener onGridItemClickListener) { - this.clickListener = onGridItemClickListener; - } - - static class ItemViewHolder extends RecyclerView.ViewHolder { - - private final ImageView imageView; - private final TextView textView; - - ItemViewHolder(@NonNull View itemView) { - super(itemView); - imageView = itemView.findViewById(R.id.imageView); - textView = itemView.findViewById(R.id.textView); - } - - void bindView(String name) { - imageView.setBackgroundResource(StringHelper.obtainIcon(name)); - textView.setText(name); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/adapter/ProcessLineAdapter.java b/app/src/main/java/com/casic/dcms/adapter/ProcessLineAdapter.java deleted file mode 100644 index 42da4cf..0000000 --- a/app/src/main/java/com/casic/dcms/adapter/ProcessLineAdapter.java +++ /dev/null @@ -1,70 +0,0 @@ -package com.casic.dcms.adapter; - -import android.content.Context; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.TextView; - -import androidx.annotation.NonNull; -import androidx.recyclerview.widget.RecyclerView; - -import com.casic.dcms.R; -import com.casic.dcms.model.CaseProcessBean; - -import org.jetbrains.annotations.NotNull; - -import java.util.List; - -public class ProcessLineAdapter extends RecyclerView.Adapter { - private final List mProcessList; - private final LayoutInflater layoutInflater; - - public ProcessLineAdapter(Context context, List list) { - this.mProcessList = list; - this.layoutInflater = LayoutInflater.from(context); - } - - @NotNull - @Override - public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - return new ViewHolder(layoutInflater.inflate(R.layout.item_case_process, parent, false)); - } - - @Override - public void onBindViewHolder(ViewHolder holder, int position) { - CaseProcessBean.DataBean dataBean = mProcessList.get(position); - String typeName = dataBean.getOperationTypeName(); - holder.operationTypeName.setText(typeName); - holder.handlePersonView.setText(dataBean.getUserName()); - holder.handleTimeView.setText(dataBean.getTime()); - holder.handleResultView.setText(dataBean.getRemarks()); - } - - @Override - public int getItemViewType(int position) { - return super.getItemViewType(position); - } - - @Override - public int getItemCount() { - return mProcessList.size(); - } - - static class ViewHolder extends RecyclerView.ViewHolder { - private final TextView operationTypeName; - private final TextView handlePersonView; - private final TextView handleTimeView; - private final TextView handleResultView; - private final RecyclerView handlePicView; - - public ViewHolder(View view) { - super(view); - operationTypeName = view.findViewById(R.id.operationTypeName); - handlePersonView = view.findViewById(R.id.handlePersonView); - handleTimeView = view.findViewById(R.id.handleTimeView); - handleResultView = view.findViewById(R.id.handleResultView); - handlePicView = view.findViewById(R.id.handlePicView); - } - } -} \ No newline at end of file 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 3b7a194..6b6b72e 100644 --- a/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java @@ -7,7 +7,6 @@ import com.bumptech.glide.Glide; import com.casic.dcms.R; -import com.casic.dcms.adapter.HomeRecycleAdapter; import com.casic.dcms.databinding.FragmentHomeBinding; import com.casic.dcms.model.HomePageBean; import com.casic.dcms.model.UserBean; @@ -33,6 +32,8 @@ import com.casic.dcms.view.UrgentCaseActivity; import com.casic.dcms.view.VerifyCaseActivity; import com.casic.dcms.vm.HomePageViewModel; +import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; +import com.pengxh.androidx.lite.adapter.ViewHolder; import com.pengxh.androidx.lite.base.AndroidxBaseFragment; import com.pengxh.androidx.lite.hub.LongHub; import com.pengxh.androidx.lite.utils.SaveKeyValues; @@ -95,13 +96,18 @@ @Override public void onChanged(HomePageBean resultBean) { if (resultBean.getCode() == 200) { - HomeRecycleAdapter adapter = new HomeRecycleAdapter(requireContext(), resultBean.getData().getMenus()); - viewBinding.homeRecyclerView.setAdapter(adapter); - adapter.setOnGridItemClickListener(new HomeRecycleAdapter.OnGridItemClickListener() { + NormalRecyclerAdapter recyclerAdapter = new NormalRecyclerAdapter(R.layout.item_home_recycleview, resultBean.getData().getMenus()) { @Override - public void onClick(String itemName) { + public void convertView(ViewHolder viewHolder, int position, HomePageBean.DataBean.MenusBean item) { + viewHolder.setImageResource(R.id.imageView, StringHelper.obtainDrawableIcon(item.getName())).setText(R.id.textView, item.getName()); + } + }; + viewBinding.homeRecyclerView.setAdapter(recyclerAdapter); + recyclerAdapter.setOnItemClickedListener(new NormalRecyclerAdapter.OnItemClickedListener() { + @Override + public void onItemClicked(int position, HomePageBean.DataBean.MenusBean menusBean) { Intent intent = new Intent(); - switch (itemName) { + switch (menusBean.getName()) { case "案卷上报": intent.setClass(requireContext(), CommonCaseUploadActivity.class); break; diff --git a/app/src/main/java/com/casic/dcms/model/DataAnalysisGridModel.java b/app/src/main/java/com/casic/dcms/model/DataAnalysisGridModel.java new file mode 100644 index 0000000..3b20a2f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/model/DataAnalysisGridModel.java @@ -0,0 +1,22 @@ +package com.casic.dcms.model; + +public class DataAnalysisGridModel { + private int itemIcon; + private String itemTitle; + + public int getItemIcon() { + return itemIcon; + } + + public void setItemIcon(int itemIcon) { + this.itemIcon = itemIcon; + } + + public String getItemTitle() { + return itemTitle; + } + + public void setItemTitle(String itemTitle) { + this.itemTitle = itemTitle; + } +} diff --git a/app/src/main/java/com/casic/dcms/utils/DataBaseManager.java b/app/src/main/java/com/casic/dcms/utils/DataBaseManager.java index 0a39218..57f0df8 100644 --- a/app/src/main/java/com/casic/dcms/utils/DataBaseManager.java +++ b/app/src/main/java/com/casic/dcms/utils/DataBaseManager.java @@ -127,7 +127,7 @@ toiletListBeanDao.deleteAll(); } - public void saveToiletList(ToiletListModel.DataBean dataBean) { + public void saveToilets(ToiletListModel.DataBean dataBean) { ToiletListBean bean = new ToiletListBean(); bean.setArea(dataBean.getArea()); bean.setCode(dataBean.getCode()); @@ -149,7 +149,7 @@ toiletListBeanDao.save(bean); } - public List getToiletList() { + public List getToilets() { List result = new ArrayList<>(); List listBeans = toiletListBeanDao.loadAll(); for (ToiletListBean toiletBean : listBeans) { diff --git a/.idea/misc.xml b/.idea/misc.xml index 12058ca..4f8b20d 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -28,6 +28,9 @@ + + + @@ -39,6 +42,7 @@ + @@ -81,7 +85,8 @@ - + + diff --git a/app/src/main/java/com/casic/dcms/adapter/AnalysisRecycleAdapter.java b/app/src/main/java/com/casic/dcms/adapter/AnalysisRecycleAdapter.java deleted file mode 100644 index 913bde1..0000000 --- a/app/src/main/java/com/casic/dcms/adapter/AnalysisRecycleAdapter.java +++ /dev/null @@ -1,71 +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.utils.LocaleConstant; - -public class AnalysisRecycleAdapter extends RecyclerView.Adapter { - - private final LayoutInflater layoutInflater; - - public AnalysisRecycleAdapter(Context context) { - this.layoutInflater = LayoutInflater.from(context); - } - - @NonNull - @Override - public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - return new ItemViewHolder(layoutInflater.inflate(R.layout.item_home_recycleview, parent, false)); - } - - @Override - public void onBindViewHolder(@NonNull ItemViewHolder holder, @SuppressLint("RecyclerView") int position) { - holder.imageView.setBackgroundResource(LocaleConstant.ANALYSIS_ICONS.get(position)); - holder.textView.setText(LocaleConstant.ANALYSIS_ITEMS.get(position)); - if (clickListener != null) { - holder.itemView.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - clickListener.onClick(position); - } - }); - } - } - - @Override - public int getItemCount() { - return LocaleConstant.ANALYSIS_ITEMS.size(); - } - - private OnGridItemClickListener clickListener; - - public interface OnGridItemClickListener { - void onClick(int position); - } - - public void setOnGridItemClickListener(OnGridItemClickListener onGridItemClickListener) { - this.clickListener = onGridItemClickListener; - } - - static class ItemViewHolder extends RecyclerView.ViewHolder { - - private final ImageView imageView; - private final TextView textView; - - ItemViewHolder(@NonNull View itemView) { - super(itemView); - imageView = itemView.findViewById(R.id.imageView); - textView = itemView.findViewById(R.id.textView); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/adapter/CaseSearchResultAdapter.java b/app/src/main/java/com/casic/dcms/adapter/CaseSearchResultAdapter.java deleted file mode 100644 index 9449f44..0000000 --- a/app/src/main/java/com/casic/dcms/adapter/CaseSearchResultAdapter.java +++ /dev/null @@ -1,94 +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.TextView; - -import androidx.annotation.NonNull; -import androidx.recyclerview.widget.RecyclerView; - -import com.casic.dcms.R; -import com.casic.dcms.model.CaseSearchResultBean; -import com.pengxh.androidx.lite.hub.StringHub; -import com.qmuiteam.qmui.widget.QMUIRadiusImageView; - -import java.util.List; - -public class CaseSearchResultAdapter extends RecyclerView.Adapter { - - private final List dataRows; - private final LayoutInflater layoutInflater; - - public CaseSearchResultAdapter(Context context, List dataRows) { - this.dataRows = dataRows; - this.layoutInflater = LayoutInflater.from(context); - } - - @NonNull - @Override - public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - return new ItemViewHolder(layoutInflater.inflate(R.layout.item_case_rv, parent, false)); - } - - @Override - public void onBindViewHolder(@NonNull ItemViewHolder holder, @SuppressLint("RecyclerView") int position) { - holder.bindView(dataRows.get(position)); - if (clickListener != null) { - holder.itemView.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - clickListener.onClick(position); - } - }); - } - } - - @Override - public int getItemCount() { - return dataRows.size(); - } - - private OnItemClickListener clickListener; - - public interface OnItemClickListener { - void onClick(int position); - } - - public void setOnItemClickListener(OnItemClickListener onItemClickListener) { - this.clickListener = onItemClickListener; - } - - class ItemViewHolder extends RecyclerView.ViewHolder { - - private final QMUIRadiusImageView caseImageView; - private final TextView caseTitleView; - private final TextView casePlaceView; - private final TextView caseTimeView; - - ItemViewHolder(@NonNull View itemView) { - super(itemView); - caseImageView = itemView.findViewById(R.id.caseImageView); - caseTitleView = itemView.findViewById(R.id.caseTitleView); - casePlaceView = itemView.findViewById(R.id.casePlaceView); - caseTimeView = itemView.findViewById(R.id.caseTimeView); - } - - void bindView(CaseSearchResultBean.DataDTO.RowsDTO rowsBean) { - //核实图片 -// String fileIdVerify = rowsBean.getFileIdVerify(); -// if (!TextUtils.isEmpty(fileIdVerify)) { -// String[] split = fileIdVerify.split(","); -// String firstImage = split[0]; -// if (firstImage.endsWith(".jpg") || firstImage.contains(".jpeg") || firstImage.contains(".png")) { -// Glide.with(context).load(StringHelper.appendCompleteURL(firstImage)).into(caseImageView); -// } -// } - caseTitleView.setText(StringHub.filterSpaceOrEnter(rowsBean.getDescription())); - casePlaceView.setText("发生地点:" + StringHub.filterSpaceOrEnter(rowsBean.getFieldintro())); - caseTimeView.setText("上报时间:" + rowsBean.getReportTime()); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/adapter/HomeRecycleAdapter.java b/app/src/main/java/com/casic/dcms/adapter/HomeRecycleAdapter.java deleted file mode 100644 index e6eafa6..0000000 --- a/app/src/main/java/com/casic/dcms/adapter/HomeRecycleAdapter.java +++ /dev/null @@ -1,80 +0,0 @@ -package com.casic.dcms.adapter; - -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.HomePageBean; -import com.casic.dcms.utils.StringHelper; - -import java.util.List; - -public class HomeRecycleAdapter extends RecyclerView.Adapter { - - private final List menuData; - private final LayoutInflater layoutInflater; - - public HomeRecycleAdapter(Context context, List menus) { - this.menuData = menus; - this.layoutInflater = LayoutInflater.from(context); - } - - @NonNull - @Override - public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - return new ItemViewHolder(layoutInflater.inflate(R.layout.item_home_recycleview, parent, false)); - } - - @Override - public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { - String name = menuData.get(position).getName(); - holder.bindView(name); - if (clickListener != null) { - holder.itemView.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - clickListener.onClick(name); - } - }); - } - } - - @Override - public int getItemCount() { - return menuData.size(); - } - - private OnGridItemClickListener clickListener; - - public interface OnGridItemClickListener { - void onClick(String itemName); - } - - public void setOnGridItemClickListener(OnGridItemClickListener onGridItemClickListener) { - this.clickListener = onGridItemClickListener; - } - - static class ItemViewHolder extends RecyclerView.ViewHolder { - - private final ImageView imageView; - private final TextView textView; - - ItemViewHolder(@NonNull View itemView) { - super(itemView); - imageView = itemView.findViewById(R.id.imageView); - textView = itemView.findViewById(R.id.textView); - } - - void bindView(String name) { - imageView.setBackgroundResource(StringHelper.obtainIcon(name)); - textView.setText(name); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/adapter/ProcessLineAdapter.java b/app/src/main/java/com/casic/dcms/adapter/ProcessLineAdapter.java deleted file mode 100644 index 42da4cf..0000000 --- a/app/src/main/java/com/casic/dcms/adapter/ProcessLineAdapter.java +++ /dev/null @@ -1,70 +0,0 @@ -package com.casic.dcms.adapter; - -import android.content.Context; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.TextView; - -import androidx.annotation.NonNull; -import androidx.recyclerview.widget.RecyclerView; - -import com.casic.dcms.R; -import com.casic.dcms.model.CaseProcessBean; - -import org.jetbrains.annotations.NotNull; - -import java.util.List; - -public class ProcessLineAdapter extends RecyclerView.Adapter { - private final List mProcessList; - private final LayoutInflater layoutInflater; - - public ProcessLineAdapter(Context context, List list) { - this.mProcessList = list; - this.layoutInflater = LayoutInflater.from(context); - } - - @NotNull - @Override - public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - return new ViewHolder(layoutInflater.inflate(R.layout.item_case_process, parent, false)); - } - - @Override - public void onBindViewHolder(ViewHolder holder, int position) { - CaseProcessBean.DataBean dataBean = mProcessList.get(position); - String typeName = dataBean.getOperationTypeName(); - holder.operationTypeName.setText(typeName); - holder.handlePersonView.setText(dataBean.getUserName()); - holder.handleTimeView.setText(dataBean.getTime()); - holder.handleResultView.setText(dataBean.getRemarks()); - } - - @Override - public int getItemViewType(int position) { - return super.getItemViewType(position); - } - - @Override - public int getItemCount() { - return mProcessList.size(); - } - - static class ViewHolder extends RecyclerView.ViewHolder { - private final TextView operationTypeName; - private final TextView handlePersonView; - private final TextView handleTimeView; - private final TextView handleResultView; - private final RecyclerView handlePicView; - - public ViewHolder(View view) { - super(view); - operationTypeName = view.findViewById(R.id.operationTypeName); - handlePersonView = view.findViewById(R.id.handlePersonView); - handleTimeView = view.findViewById(R.id.handleTimeView); - handleResultView = view.findViewById(R.id.handleResultView); - handlePicView = view.findViewById(R.id.handlePicView); - } - } -} \ No newline at end of file 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 3b7a194..6b6b72e 100644 --- a/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java @@ -7,7 +7,6 @@ import com.bumptech.glide.Glide; import com.casic.dcms.R; -import com.casic.dcms.adapter.HomeRecycleAdapter; import com.casic.dcms.databinding.FragmentHomeBinding; import com.casic.dcms.model.HomePageBean; import com.casic.dcms.model.UserBean; @@ -33,6 +32,8 @@ import com.casic.dcms.view.UrgentCaseActivity; import com.casic.dcms.view.VerifyCaseActivity; import com.casic.dcms.vm.HomePageViewModel; +import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; +import com.pengxh.androidx.lite.adapter.ViewHolder; import com.pengxh.androidx.lite.base.AndroidxBaseFragment; import com.pengxh.androidx.lite.hub.LongHub; import com.pengxh.androidx.lite.utils.SaveKeyValues; @@ -95,13 +96,18 @@ @Override public void onChanged(HomePageBean resultBean) { if (resultBean.getCode() == 200) { - HomeRecycleAdapter adapter = new HomeRecycleAdapter(requireContext(), resultBean.getData().getMenus()); - viewBinding.homeRecyclerView.setAdapter(adapter); - adapter.setOnGridItemClickListener(new HomeRecycleAdapter.OnGridItemClickListener() { + NormalRecyclerAdapter recyclerAdapter = new NormalRecyclerAdapter(R.layout.item_home_recycleview, resultBean.getData().getMenus()) { @Override - public void onClick(String itemName) { + public void convertView(ViewHolder viewHolder, int position, HomePageBean.DataBean.MenusBean item) { + viewHolder.setImageResource(R.id.imageView, StringHelper.obtainDrawableIcon(item.getName())).setText(R.id.textView, item.getName()); + } + }; + viewBinding.homeRecyclerView.setAdapter(recyclerAdapter); + recyclerAdapter.setOnItemClickedListener(new NormalRecyclerAdapter.OnItemClickedListener() { + @Override + public void onItemClicked(int position, HomePageBean.DataBean.MenusBean menusBean) { Intent intent = new Intent(); - switch (itemName) { + switch (menusBean.getName()) { case "案卷上报": intent.setClass(requireContext(), CommonCaseUploadActivity.class); break; diff --git a/app/src/main/java/com/casic/dcms/model/DataAnalysisGridModel.java b/app/src/main/java/com/casic/dcms/model/DataAnalysisGridModel.java new file mode 100644 index 0000000..3b20a2f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/model/DataAnalysisGridModel.java @@ -0,0 +1,22 @@ +package com.casic.dcms.model; + +public class DataAnalysisGridModel { + private int itemIcon; + private String itemTitle; + + public int getItemIcon() { + return itemIcon; + } + + public void setItemIcon(int itemIcon) { + this.itemIcon = itemIcon; + } + + public String getItemTitle() { + return itemTitle; + } + + public void setItemTitle(String itemTitle) { + this.itemTitle = itemTitle; + } +} diff --git a/app/src/main/java/com/casic/dcms/utils/DataBaseManager.java b/app/src/main/java/com/casic/dcms/utils/DataBaseManager.java index 0a39218..57f0df8 100644 --- a/app/src/main/java/com/casic/dcms/utils/DataBaseManager.java +++ b/app/src/main/java/com/casic/dcms/utils/DataBaseManager.java @@ -127,7 +127,7 @@ toiletListBeanDao.deleteAll(); } - public void saveToiletList(ToiletListModel.DataBean dataBean) { + public void saveToilets(ToiletListModel.DataBean dataBean) { ToiletListBean bean = new ToiletListBean(); bean.setArea(dataBean.getArea()); bean.setCode(dataBean.getCode()); @@ -149,7 +149,7 @@ toiletListBeanDao.save(bean); } - public List getToiletList() { + public List getToilets() { List result = new ArrayList<>(); List listBeans = toiletListBeanDao.loadAll(); for (ToiletListBean toiletBean : listBeans) { diff --git a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java b/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java index 7cb867d..fb0c033 100644 --- a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java +++ b/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java @@ -1,25 +1,12 @@ package com.casic.dcms.utils; -import android.util.Log; - import com.casic.dcms.utils.callback.IHttpRequestListener; +import com.pengxh.androidx.lite.callback.OnHttpRequestListener; +import com.pengxh.androidx.lite.hub.RequestHub; import com.pengxh.androidx.lite.utils.SaveKeyValues; -import org.jetbrains.annotations.NotNull; - -import java.io.IOException; -import java.util.concurrent.TimeUnit; - -import okhttp3.OkHttpClient; import okhttp3.Request; import okhttp3.Response; -import okhttp3.ResponseBody; -import okhttp3.logging.HttpLoggingInterceptor; -import rx.Emitter; -import rx.Observable; -import rx.Observer; -import rx.android.schedulers.AndroidSchedulers; -import rx.schedulers.Schedulers; public class HttpRequestHelper { private static final String TAG = "HttpRequestHelper"; @@ -27,93 +14,39 @@ public static void doRequest(String function, String requestValue, IHttpRequestListener listener) { String ip = (String) SaveKeyValues.getValue(LocaleConstant.IP_KEY, "http://111.198.10.15:11409"); // String ip = (String) SaveKeyValues.getValue(Constant.IP_KEY, "http://223.82.47.232:11401"); - Observable.create(emitter -> { - HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor(new HttpLoggingInterceptor.Logger() { - @Override - public void log(@NotNull String message) { - Log.d(TAG, "log: " + message); - } - }); - interceptor.setLevel(HttpLoggingInterceptor.Level.BODY); - - OkHttpClient client = new OkHttpClient.Builder() - .addInterceptor(interceptor) - .readTimeout(LocaleConstant.HTTP_TIMEOUT, TimeUnit.SECONDS) - .connectTimeout(LocaleConstant.HTTP_TIMEOUT, TimeUnit.SECONDS) - .writeTimeout(LocaleConstant.HTTP_TIMEOUT, TimeUnit.SECONDS) - .build(); - - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(ip + function + requestValue) - .get() - .build();//创建Request 对象 - try { - Response response = client.newCall(request).execute(); - emitter.onNext(response.body()); - } catch (IOException e) { - emitter.onError(e); - } - }, Emitter.BackpressureMode.BUFFER).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + Request request = new Request.Builder() + .addHeader("token", AuthenticationHelper.getToken()) + .url(ip + function + requestValue) + .get() + .build();//创建Request 对象 + RequestHub.doRequest(request, new OnHttpRequestListener() { @Override - public void onCompleted() { - + public void onSuccess(Response response) { + listener.onSuccess(response.body()); } @Override - public void onError(Throwable e) { - listener.onFailure(e); - } - - @Override - public void onNext(ResponseBody responseBody) { - listener.onSuccess(responseBody); + public void onFailure(Throwable throwable) { + listener.onFailure(throwable); } }); } public static void doRequest(String url, IHttpRequestListener listener) { - Observable.create(emitter -> { - HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor(new HttpLoggingInterceptor.Logger() { - @Override - public void log(@NotNull String message) { - Log.d(TAG, "log: " + message); - } - }); - interceptor.setLevel(HttpLoggingInterceptor.Level.BODY); - - OkHttpClient client = new OkHttpClient.Builder() - .addInterceptor(interceptor) - .readTimeout(LocaleConstant.HTTP_TIMEOUT, TimeUnit.SECONDS) - .connectTimeout(LocaleConstant.HTTP_TIMEOUT, TimeUnit.SECONDS) - .writeTimeout(LocaleConstant.HTTP_TIMEOUT, TimeUnit.SECONDS) - .build(); - - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(url) - .get() - .build();//创建Request 对象 - try { - Response response = client.newCall(request).execute(); - emitter.onNext(response.body()); - } catch (IOException e) { - emitter.onError(e); - } - }, Emitter.BackpressureMode.BUFFER).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + Request request = new Request.Builder() + .addHeader("token", AuthenticationHelper.getToken()) + .url(url) + .get() + .build();//创建Request 对象 + RequestHub.doRequest(request, new OnHttpRequestListener() { @Override - public void onCompleted() { - + public void onSuccess(Response response) { + listener.onSuccess(response.body()); } @Override - public void onError(Throwable e) { - listener.onFailure(e); - } - - @Override - public void onNext(ResponseBody responseBody) { - listener.onSuccess(responseBody); + public void onFailure(Throwable throwable) { + listener.onFailure(throwable); } }); } diff --git a/.idea/misc.xml b/.idea/misc.xml index 12058ca..4f8b20d 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -28,6 +28,9 @@ + + + @@ -39,6 +42,7 @@ + @@ -81,7 +85,8 @@ - + + diff --git a/app/src/main/java/com/casic/dcms/adapter/AnalysisRecycleAdapter.java b/app/src/main/java/com/casic/dcms/adapter/AnalysisRecycleAdapter.java deleted file mode 100644 index 913bde1..0000000 --- a/app/src/main/java/com/casic/dcms/adapter/AnalysisRecycleAdapter.java +++ /dev/null @@ -1,71 +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.utils.LocaleConstant; - -public class AnalysisRecycleAdapter extends RecyclerView.Adapter { - - private final LayoutInflater layoutInflater; - - public AnalysisRecycleAdapter(Context context) { - this.layoutInflater = LayoutInflater.from(context); - } - - @NonNull - @Override - public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - return new ItemViewHolder(layoutInflater.inflate(R.layout.item_home_recycleview, parent, false)); - } - - @Override - public void onBindViewHolder(@NonNull ItemViewHolder holder, @SuppressLint("RecyclerView") int position) { - holder.imageView.setBackgroundResource(LocaleConstant.ANALYSIS_ICONS.get(position)); - holder.textView.setText(LocaleConstant.ANALYSIS_ITEMS.get(position)); - if (clickListener != null) { - holder.itemView.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - clickListener.onClick(position); - } - }); - } - } - - @Override - public int getItemCount() { - return LocaleConstant.ANALYSIS_ITEMS.size(); - } - - private OnGridItemClickListener clickListener; - - public interface OnGridItemClickListener { - void onClick(int position); - } - - public void setOnGridItemClickListener(OnGridItemClickListener onGridItemClickListener) { - this.clickListener = onGridItemClickListener; - } - - static class ItemViewHolder extends RecyclerView.ViewHolder { - - private final ImageView imageView; - private final TextView textView; - - ItemViewHolder(@NonNull View itemView) { - super(itemView); - imageView = itemView.findViewById(R.id.imageView); - textView = itemView.findViewById(R.id.textView); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/adapter/CaseSearchResultAdapter.java b/app/src/main/java/com/casic/dcms/adapter/CaseSearchResultAdapter.java deleted file mode 100644 index 9449f44..0000000 --- a/app/src/main/java/com/casic/dcms/adapter/CaseSearchResultAdapter.java +++ /dev/null @@ -1,94 +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.TextView; - -import androidx.annotation.NonNull; -import androidx.recyclerview.widget.RecyclerView; - -import com.casic.dcms.R; -import com.casic.dcms.model.CaseSearchResultBean; -import com.pengxh.androidx.lite.hub.StringHub; -import com.qmuiteam.qmui.widget.QMUIRadiusImageView; - -import java.util.List; - -public class CaseSearchResultAdapter extends RecyclerView.Adapter { - - private final List dataRows; - private final LayoutInflater layoutInflater; - - public CaseSearchResultAdapter(Context context, List dataRows) { - this.dataRows = dataRows; - this.layoutInflater = LayoutInflater.from(context); - } - - @NonNull - @Override - public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - return new ItemViewHolder(layoutInflater.inflate(R.layout.item_case_rv, parent, false)); - } - - @Override - public void onBindViewHolder(@NonNull ItemViewHolder holder, @SuppressLint("RecyclerView") int position) { - holder.bindView(dataRows.get(position)); - if (clickListener != null) { - holder.itemView.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - clickListener.onClick(position); - } - }); - } - } - - @Override - public int getItemCount() { - return dataRows.size(); - } - - private OnItemClickListener clickListener; - - public interface OnItemClickListener { - void onClick(int position); - } - - public void setOnItemClickListener(OnItemClickListener onItemClickListener) { - this.clickListener = onItemClickListener; - } - - class ItemViewHolder extends RecyclerView.ViewHolder { - - private final QMUIRadiusImageView caseImageView; - private final TextView caseTitleView; - private final TextView casePlaceView; - private final TextView caseTimeView; - - ItemViewHolder(@NonNull View itemView) { - super(itemView); - caseImageView = itemView.findViewById(R.id.caseImageView); - caseTitleView = itemView.findViewById(R.id.caseTitleView); - casePlaceView = itemView.findViewById(R.id.casePlaceView); - caseTimeView = itemView.findViewById(R.id.caseTimeView); - } - - void bindView(CaseSearchResultBean.DataDTO.RowsDTO rowsBean) { - //核实图片 -// String fileIdVerify = rowsBean.getFileIdVerify(); -// if (!TextUtils.isEmpty(fileIdVerify)) { -// String[] split = fileIdVerify.split(","); -// String firstImage = split[0]; -// if (firstImage.endsWith(".jpg") || firstImage.contains(".jpeg") || firstImage.contains(".png")) { -// Glide.with(context).load(StringHelper.appendCompleteURL(firstImage)).into(caseImageView); -// } -// } - caseTitleView.setText(StringHub.filterSpaceOrEnter(rowsBean.getDescription())); - casePlaceView.setText("发生地点:" + StringHub.filterSpaceOrEnter(rowsBean.getFieldintro())); - caseTimeView.setText("上报时间:" + rowsBean.getReportTime()); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/adapter/HomeRecycleAdapter.java b/app/src/main/java/com/casic/dcms/adapter/HomeRecycleAdapter.java deleted file mode 100644 index e6eafa6..0000000 --- a/app/src/main/java/com/casic/dcms/adapter/HomeRecycleAdapter.java +++ /dev/null @@ -1,80 +0,0 @@ -package com.casic.dcms.adapter; - -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.HomePageBean; -import com.casic.dcms.utils.StringHelper; - -import java.util.List; - -public class HomeRecycleAdapter extends RecyclerView.Adapter { - - private final List menuData; - private final LayoutInflater layoutInflater; - - public HomeRecycleAdapter(Context context, List menus) { - this.menuData = menus; - this.layoutInflater = LayoutInflater.from(context); - } - - @NonNull - @Override - public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - return new ItemViewHolder(layoutInflater.inflate(R.layout.item_home_recycleview, parent, false)); - } - - @Override - public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { - String name = menuData.get(position).getName(); - holder.bindView(name); - if (clickListener != null) { - holder.itemView.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - clickListener.onClick(name); - } - }); - } - } - - @Override - public int getItemCount() { - return menuData.size(); - } - - private OnGridItemClickListener clickListener; - - public interface OnGridItemClickListener { - void onClick(String itemName); - } - - public void setOnGridItemClickListener(OnGridItemClickListener onGridItemClickListener) { - this.clickListener = onGridItemClickListener; - } - - static class ItemViewHolder extends RecyclerView.ViewHolder { - - private final ImageView imageView; - private final TextView textView; - - ItemViewHolder(@NonNull View itemView) { - super(itemView); - imageView = itemView.findViewById(R.id.imageView); - textView = itemView.findViewById(R.id.textView); - } - - void bindView(String name) { - imageView.setBackgroundResource(StringHelper.obtainIcon(name)); - textView.setText(name); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/adapter/ProcessLineAdapter.java b/app/src/main/java/com/casic/dcms/adapter/ProcessLineAdapter.java deleted file mode 100644 index 42da4cf..0000000 --- a/app/src/main/java/com/casic/dcms/adapter/ProcessLineAdapter.java +++ /dev/null @@ -1,70 +0,0 @@ -package com.casic.dcms.adapter; - -import android.content.Context; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.TextView; - -import androidx.annotation.NonNull; -import androidx.recyclerview.widget.RecyclerView; - -import com.casic.dcms.R; -import com.casic.dcms.model.CaseProcessBean; - -import org.jetbrains.annotations.NotNull; - -import java.util.List; - -public class ProcessLineAdapter extends RecyclerView.Adapter { - private final List mProcessList; - private final LayoutInflater layoutInflater; - - public ProcessLineAdapter(Context context, List list) { - this.mProcessList = list; - this.layoutInflater = LayoutInflater.from(context); - } - - @NotNull - @Override - public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - return new ViewHolder(layoutInflater.inflate(R.layout.item_case_process, parent, false)); - } - - @Override - public void onBindViewHolder(ViewHolder holder, int position) { - CaseProcessBean.DataBean dataBean = mProcessList.get(position); - String typeName = dataBean.getOperationTypeName(); - holder.operationTypeName.setText(typeName); - holder.handlePersonView.setText(dataBean.getUserName()); - holder.handleTimeView.setText(dataBean.getTime()); - holder.handleResultView.setText(dataBean.getRemarks()); - } - - @Override - public int getItemViewType(int position) { - return super.getItemViewType(position); - } - - @Override - public int getItemCount() { - return mProcessList.size(); - } - - static class ViewHolder extends RecyclerView.ViewHolder { - private final TextView operationTypeName; - private final TextView handlePersonView; - private final TextView handleTimeView; - private final TextView handleResultView; - private final RecyclerView handlePicView; - - public ViewHolder(View view) { - super(view); - operationTypeName = view.findViewById(R.id.operationTypeName); - handlePersonView = view.findViewById(R.id.handlePersonView); - handleTimeView = view.findViewById(R.id.handleTimeView); - handleResultView = view.findViewById(R.id.handleResultView); - handlePicView = view.findViewById(R.id.handlePicView); - } - } -} \ No newline at end of file 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 3b7a194..6b6b72e 100644 --- a/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java @@ -7,7 +7,6 @@ import com.bumptech.glide.Glide; import com.casic.dcms.R; -import com.casic.dcms.adapter.HomeRecycleAdapter; import com.casic.dcms.databinding.FragmentHomeBinding; import com.casic.dcms.model.HomePageBean; import com.casic.dcms.model.UserBean; @@ -33,6 +32,8 @@ import com.casic.dcms.view.UrgentCaseActivity; import com.casic.dcms.view.VerifyCaseActivity; import com.casic.dcms.vm.HomePageViewModel; +import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; +import com.pengxh.androidx.lite.adapter.ViewHolder; import com.pengxh.androidx.lite.base.AndroidxBaseFragment; import com.pengxh.androidx.lite.hub.LongHub; import com.pengxh.androidx.lite.utils.SaveKeyValues; @@ -95,13 +96,18 @@ @Override public void onChanged(HomePageBean resultBean) { if (resultBean.getCode() == 200) { - HomeRecycleAdapter adapter = new HomeRecycleAdapter(requireContext(), resultBean.getData().getMenus()); - viewBinding.homeRecyclerView.setAdapter(adapter); - adapter.setOnGridItemClickListener(new HomeRecycleAdapter.OnGridItemClickListener() { + NormalRecyclerAdapter recyclerAdapter = new NormalRecyclerAdapter(R.layout.item_home_recycleview, resultBean.getData().getMenus()) { @Override - public void onClick(String itemName) { + public void convertView(ViewHolder viewHolder, int position, HomePageBean.DataBean.MenusBean item) { + viewHolder.setImageResource(R.id.imageView, StringHelper.obtainDrawableIcon(item.getName())).setText(R.id.textView, item.getName()); + } + }; + viewBinding.homeRecyclerView.setAdapter(recyclerAdapter); + recyclerAdapter.setOnItemClickedListener(new NormalRecyclerAdapter.OnItemClickedListener() { + @Override + public void onItemClicked(int position, HomePageBean.DataBean.MenusBean menusBean) { Intent intent = new Intent(); - switch (itemName) { + switch (menusBean.getName()) { case "案卷上报": intent.setClass(requireContext(), CommonCaseUploadActivity.class); break; diff --git a/app/src/main/java/com/casic/dcms/model/DataAnalysisGridModel.java b/app/src/main/java/com/casic/dcms/model/DataAnalysisGridModel.java new file mode 100644 index 0000000..3b20a2f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/model/DataAnalysisGridModel.java @@ -0,0 +1,22 @@ +package com.casic.dcms.model; + +public class DataAnalysisGridModel { + private int itemIcon; + private String itemTitle; + + public int getItemIcon() { + return itemIcon; + } + + public void setItemIcon(int itemIcon) { + this.itemIcon = itemIcon; + } + + public String getItemTitle() { + return itemTitle; + } + + public void setItemTitle(String itemTitle) { + this.itemTitle = itemTitle; + } +} diff --git a/app/src/main/java/com/casic/dcms/utils/DataBaseManager.java b/app/src/main/java/com/casic/dcms/utils/DataBaseManager.java index 0a39218..57f0df8 100644 --- a/app/src/main/java/com/casic/dcms/utils/DataBaseManager.java +++ b/app/src/main/java/com/casic/dcms/utils/DataBaseManager.java @@ -127,7 +127,7 @@ toiletListBeanDao.deleteAll(); } - public void saveToiletList(ToiletListModel.DataBean dataBean) { + public void saveToilets(ToiletListModel.DataBean dataBean) { ToiletListBean bean = new ToiletListBean(); bean.setArea(dataBean.getArea()); bean.setCode(dataBean.getCode()); @@ -149,7 +149,7 @@ toiletListBeanDao.save(bean); } - public List getToiletList() { + public List getToilets() { List result = new ArrayList<>(); List listBeans = toiletListBeanDao.loadAll(); for (ToiletListBean toiletBean : listBeans) { diff --git a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java b/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java index 7cb867d..fb0c033 100644 --- a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java +++ b/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java @@ -1,25 +1,12 @@ package com.casic.dcms.utils; -import android.util.Log; - import com.casic.dcms.utils.callback.IHttpRequestListener; +import com.pengxh.androidx.lite.callback.OnHttpRequestListener; +import com.pengxh.androidx.lite.hub.RequestHub; import com.pengxh.androidx.lite.utils.SaveKeyValues; -import org.jetbrains.annotations.NotNull; - -import java.io.IOException; -import java.util.concurrent.TimeUnit; - -import okhttp3.OkHttpClient; import okhttp3.Request; import okhttp3.Response; -import okhttp3.ResponseBody; -import okhttp3.logging.HttpLoggingInterceptor; -import rx.Emitter; -import rx.Observable; -import rx.Observer; -import rx.android.schedulers.AndroidSchedulers; -import rx.schedulers.Schedulers; public class HttpRequestHelper { private static final String TAG = "HttpRequestHelper"; @@ -27,93 +14,39 @@ public static void doRequest(String function, String requestValue, IHttpRequestListener listener) { String ip = (String) SaveKeyValues.getValue(LocaleConstant.IP_KEY, "http://111.198.10.15:11409"); // String ip = (String) SaveKeyValues.getValue(Constant.IP_KEY, "http://223.82.47.232:11401"); - Observable.create(emitter -> { - HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor(new HttpLoggingInterceptor.Logger() { - @Override - public void log(@NotNull String message) { - Log.d(TAG, "log: " + message); - } - }); - interceptor.setLevel(HttpLoggingInterceptor.Level.BODY); - - OkHttpClient client = new OkHttpClient.Builder() - .addInterceptor(interceptor) - .readTimeout(LocaleConstant.HTTP_TIMEOUT, TimeUnit.SECONDS) - .connectTimeout(LocaleConstant.HTTP_TIMEOUT, TimeUnit.SECONDS) - .writeTimeout(LocaleConstant.HTTP_TIMEOUT, TimeUnit.SECONDS) - .build(); - - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(ip + function + requestValue) - .get() - .build();//创建Request 对象 - try { - Response response = client.newCall(request).execute(); - emitter.onNext(response.body()); - } catch (IOException e) { - emitter.onError(e); - } - }, Emitter.BackpressureMode.BUFFER).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + Request request = new Request.Builder() + .addHeader("token", AuthenticationHelper.getToken()) + .url(ip + function + requestValue) + .get() + .build();//创建Request 对象 + RequestHub.doRequest(request, new OnHttpRequestListener() { @Override - public void onCompleted() { - + public void onSuccess(Response response) { + listener.onSuccess(response.body()); } @Override - public void onError(Throwable e) { - listener.onFailure(e); - } - - @Override - public void onNext(ResponseBody responseBody) { - listener.onSuccess(responseBody); + public void onFailure(Throwable throwable) { + listener.onFailure(throwable); } }); } public static void doRequest(String url, IHttpRequestListener listener) { - Observable.create(emitter -> { - HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor(new HttpLoggingInterceptor.Logger() { - @Override - public void log(@NotNull String message) { - Log.d(TAG, "log: " + message); - } - }); - interceptor.setLevel(HttpLoggingInterceptor.Level.BODY); - - OkHttpClient client = new OkHttpClient.Builder() - .addInterceptor(interceptor) - .readTimeout(LocaleConstant.HTTP_TIMEOUT, TimeUnit.SECONDS) - .connectTimeout(LocaleConstant.HTTP_TIMEOUT, TimeUnit.SECONDS) - .writeTimeout(LocaleConstant.HTTP_TIMEOUT, TimeUnit.SECONDS) - .build(); - - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(url) - .get() - .build();//创建Request 对象 - try { - Response response = client.newCall(request).execute(); - emitter.onNext(response.body()); - } catch (IOException e) { - emitter.onError(e); - } - }, Emitter.BackpressureMode.BUFFER).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + Request request = new Request.Builder() + .addHeader("token", AuthenticationHelper.getToken()) + .url(url) + .get() + .build();//创建Request 对象 + RequestHub.doRequest(request, new OnHttpRequestListener() { @Override - public void onCompleted() { - + public void onSuccess(Response response) { + listener.onSuccess(response.body()); } @Override - public void onError(Throwable e) { - listener.onFailure(e); - } - - @Override - public void onNext(ResponseBody responseBody) { - listener.onSuccess(responseBody); + public void onFailure(Throwable throwable) { + listener.onFailure(throwable); } }); } diff --git a/app/src/main/java/com/casic/dcms/utils/StringHelper.java b/app/src/main/java/com/casic/dcms/utils/StringHelper.java index c625bb4..1a097cc 100644 --- a/app/src/main/java/com/casic/dcms/utils/StringHelper.java +++ b/app/src/main/java/com/casic/dcms/utils/StringHelper.java @@ -264,8 +264,20 @@ return R.drawable.ic_dtck; case "公厕保洁": return R.drawable.ic_toilet; + case "三包处置": + return R.drawable.ic_sanbao; + case "商铺变更": + return R.drawable.ic_shangpu; + case "部门处置": + return R.drawable.ic_dept; + case "路桥养护": + return R.drawable.ic_bridge; + case "管网管理": + return R.drawable.ic_pipe; + case "路灯管理": + return R.drawable.ic_streetlight; default: - return 0; + return R.drawable.ic_default_icon; } } } diff --git a/.idea/misc.xml b/.idea/misc.xml index 12058ca..4f8b20d 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -28,6 +28,9 @@ + + + @@ -39,6 +42,7 @@ + @@ -81,7 +85,8 @@ - + + diff --git a/app/src/main/java/com/casic/dcms/adapter/AnalysisRecycleAdapter.java b/app/src/main/java/com/casic/dcms/adapter/AnalysisRecycleAdapter.java deleted file mode 100644 index 913bde1..0000000 --- a/app/src/main/java/com/casic/dcms/adapter/AnalysisRecycleAdapter.java +++ /dev/null @@ -1,71 +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.utils.LocaleConstant; - -public class AnalysisRecycleAdapter extends RecyclerView.Adapter { - - private final LayoutInflater layoutInflater; - - public AnalysisRecycleAdapter(Context context) { - this.layoutInflater = LayoutInflater.from(context); - } - - @NonNull - @Override - public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - return new ItemViewHolder(layoutInflater.inflate(R.layout.item_home_recycleview, parent, false)); - } - - @Override - public void onBindViewHolder(@NonNull ItemViewHolder holder, @SuppressLint("RecyclerView") int position) { - holder.imageView.setBackgroundResource(LocaleConstant.ANALYSIS_ICONS.get(position)); - holder.textView.setText(LocaleConstant.ANALYSIS_ITEMS.get(position)); - if (clickListener != null) { - holder.itemView.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - clickListener.onClick(position); - } - }); - } - } - - @Override - public int getItemCount() { - return LocaleConstant.ANALYSIS_ITEMS.size(); - } - - private OnGridItemClickListener clickListener; - - public interface OnGridItemClickListener { - void onClick(int position); - } - - public void setOnGridItemClickListener(OnGridItemClickListener onGridItemClickListener) { - this.clickListener = onGridItemClickListener; - } - - static class ItemViewHolder extends RecyclerView.ViewHolder { - - private final ImageView imageView; - private final TextView textView; - - ItemViewHolder(@NonNull View itemView) { - super(itemView); - imageView = itemView.findViewById(R.id.imageView); - textView = itemView.findViewById(R.id.textView); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/adapter/CaseSearchResultAdapter.java b/app/src/main/java/com/casic/dcms/adapter/CaseSearchResultAdapter.java deleted file mode 100644 index 9449f44..0000000 --- a/app/src/main/java/com/casic/dcms/adapter/CaseSearchResultAdapter.java +++ /dev/null @@ -1,94 +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.TextView; - -import androidx.annotation.NonNull; -import androidx.recyclerview.widget.RecyclerView; - -import com.casic.dcms.R; -import com.casic.dcms.model.CaseSearchResultBean; -import com.pengxh.androidx.lite.hub.StringHub; -import com.qmuiteam.qmui.widget.QMUIRadiusImageView; - -import java.util.List; - -public class CaseSearchResultAdapter extends RecyclerView.Adapter { - - private final List dataRows; - private final LayoutInflater layoutInflater; - - public CaseSearchResultAdapter(Context context, List dataRows) { - this.dataRows = dataRows; - this.layoutInflater = LayoutInflater.from(context); - } - - @NonNull - @Override - public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - return new ItemViewHolder(layoutInflater.inflate(R.layout.item_case_rv, parent, false)); - } - - @Override - public void onBindViewHolder(@NonNull ItemViewHolder holder, @SuppressLint("RecyclerView") int position) { - holder.bindView(dataRows.get(position)); - if (clickListener != null) { - holder.itemView.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - clickListener.onClick(position); - } - }); - } - } - - @Override - public int getItemCount() { - return dataRows.size(); - } - - private OnItemClickListener clickListener; - - public interface OnItemClickListener { - void onClick(int position); - } - - public void setOnItemClickListener(OnItemClickListener onItemClickListener) { - this.clickListener = onItemClickListener; - } - - class ItemViewHolder extends RecyclerView.ViewHolder { - - private final QMUIRadiusImageView caseImageView; - private final TextView caseTitleView; - private final TextView casePlaceView; - private final TextView caseTimeView; - - ItemViewHolder(@NonNull View itemView) { - super(itemView); - caseImageView = itemView.findViewById(R.id.caseImageView); - caseTitleView = itemView.findViewById(R.id.caseTitleView); - casePlaceView = itemView.findViewById(R.id.casePlaceView); - caseTimeView = itemView.findViewById(R.id.caseTimeView); - } - - void bindView(CaseSearchResultBean.DataDTO.RowsDTO rowsBean) { - //核实图片 -// String fileIdVerify = rowsBean.getFileIdVerify(); -// if (!TextUtils.isEmpty(fileIdVerify)) { -// String[] split = fileIdVerify.split(","); -// String firstImage = split[0]; -// if (firstImage.endsWith(".jpg") || firstImage.contains(".jpeg") || firstImage.contains(".png")) { -// Glide.with(context).load(StringHelper.appendCompleteURL(firstImage)).into(caseImageView); -// } -// } - caseTitleView.setText(StringHub.filterSpaceOrEnter(rowsBean.getDescription())); - casePlaceView.setText("发生地点:" + StringHub.filterSpaceOrEnter(rowsBean.getFieldintro())); - caseTimeView.setText("上报时间:" + rowsBean.getReportTime()); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/adapter/HomeRecycleAdapter.java b/app/src/main/java/com/casic/dcms/adapter/HomeRecycleAdapter.java deleted file mode 100644 index e6eafa6..0000000 --- a/app/src/main/java/com/casic/dcms/adapter/HomeRecycleAdapter.java +++ /dev/null @@ -1,80 +0,0 @@ -package com.casic.dcms.adapter; - -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.HomePageBean; -import com.casic.dcms.utils.StringHelper; - -import java.util.List; - -public class HomeRecycleAdapter extends RecyclerView.Adapter { - - private final List menuData; - private final LayoutInflater layoutInflater; - - public HomeRecycleAdapter(Context context, List menus) { - this.menuData = menus; - this.layoutInflater = LayoutInflater.from(context); - } - - @NonNull - @Override - public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - return new ItemViewHolder(layoutInflater.inflate(R.layout.item_home_recycleview, parent, false)); - } - - @Override - public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { - String name = menuData.get(position).getName(); - holder.bindView(name); - if (clickListener != null) { - holder.itemView.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - clickListener.onClick(name); - } - }); - } - } - - @Override - public int getItemCount() { - return menuData.size(); - } - - private OnGridItemClickListener clickListener; - - public interface OnGridItemClickListener { - void onClick(String itemName); - } - - public void setOnGridItemClickListener(OnGridItemClickListener onGridItemClickListener) { - this.clickListener = onGridItemClickListener; - } - - static class ItemViewHolder extends RecyclerView.ViewHolder { - - private final ImageView imageView; - private final TextView textView; - - ItemViewHolder(@NonNull View itemView) { - super(itemView); - imageView = itemView.findViewById(R.id.imageView); - textView = itemView.findViewById(R.id.textView); - } - - void bindView(String name) { - imageView.setBackgroundResource(StringHelper.obtainIcon(name)); - textView.setText(name); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/adapter/ProcessLineAdapter.java b/app/src/main/java/com/casic/dcms/adapter/ProcessLineAdapter.java deleted file mode 100644 index 42da4cf..0000000 --- a/app/src/main/java/com/casic/dcms/adapter/ProcessLineAdapter.java +++ /dev/null @@ -1,70 +0,0 @@ -package com.casic.dcms.adapter; - -import android.content.Context; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.TextView; - -import androidx.annotation.NonNull; -import androidx.recyclerview.widget.RecyclerView; - -import com.casic.dcms.R; -import com.casic.dcms.model.CaseProcessBean; - -import org.jetbrains.annotations.NotNull; - -import java.util.List; - -public class ProcessLineAdapter extends RecyclerView.Adapter { - private final List mProcessList; - private final LayoutInflater layoutInflater; - - public ProcessLineAdapter(Context context, List list) { - this.mProcessList = list; - this.layoutInflater = LayoutInflater.from(context); - } - - @NotNull - @Override - public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - return new ViewHolder(layoutInflater.inflate(R.layout.item_case_process, parent, false)); - } - - @Override - public void onBindViewHolder(ViewHolder holder, int position) { - CaseProcessBean.DataBean dataBean = mProcessList.get(position); - String typeName = dataBean.getOperationTypeName(); - holder.operationTypeName.setText(typeName); - holder.handlePersonView.setText(dataBean.getUserName()); - holder.handleTimeView.setText(dataBean.getTime()); - holder.handleResultView.setText(dataBean.getRemarks()); - } - - @Override - public int getItemViewType(int position) { - return super.getItemViewType(position); - } - - @Override - public int getItemCount() { - return mProcessList.size(); - } - - static class ViewHolder extends RecyclerView.ViewHolder { - private final TextView operationTypeName; - private final TextView handlePersonView; - private final TextView handleTimeView; - private final TextView handleResultView; - private final RecyclerView handlePicView; - - public ViewHolder(View view) { - super(view); - operationTypeName = view.findViewById(R.id.operationTypeName); - handlePersonView = view.findViewById(R.id.handlePersonView); - handleTimeView = view.findViewById(R.id.handleTimeView); - handleResultView = view.findViewById(R.id.handleResultView); - handlePicView = view.findViewById(R.id.handlePicView); - } - } -} \ No newline at end of file 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 3b7a194..6b6b72e 100644 --- a/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java @@ -7,7 +7,6 @@ import com.bumptech.glide.Glide; import com.casic.dcms.R; -import com.casic.dcms.adapter.HomeRecycleAdapter; import com.casic.dcms.databinding.FragmentHomeBinding; import com.casic.dcms.model.HomePageBean; import com.casic.dcms.model.UserBean; @@ -33,6 +32,8 @@ import com.casic.dcms.view.UrgentCaseActivity; import com.casic.dcms.view.VerifyCaseActivity; import com.casic.dcms.vm.HomePageViewModel; +import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; +import com.pengxh.androidx.lite.adapter.ViewHolder; import com.pengxh.androidx.lite.base.AndroidxBaseFragment; import com.pengxh.androidx.lite.hub.LongHub; import com.pengxh.androidx.lite.utils.SaveKeyValues; @@ -95,13 +96,18 @@ @Override public void onChanged(HomePageBean resultBean) { if (resultBean.getCode() == 200) { - HomeRecycleAdapter adapter = new HomeRecycleAdapter(requireContext(), resultBean.getData().getMenus()); - viewBinding.homeRecyclerView.setAdapter(adapter); - adapter.setOnGridItemClickListener(new HomeRecycleAdapter.OnGridItemClickListener() { + NormalRecyclerAdapter recyclerAdapter = new NormalRecyclerAdapter(R.layout.item_home_recycleview, resultBean.getData().getMenus()) { @Override - public void onClick(String itemName) { + public void convertView(ViewHolder viewHolder, int position, HomePageBean.DataBean.MenusBean item) { + viewHolder.setImageResource(R.id.imageView, StringHelper.obtainDrawableIcon(item.getName())).setText(R.id.textView, item.getName()); + } + }; + viewBinding.homeRecyclerView.setAdapter(recyclerAdapter); + recyclerAdapter.setOnItemClickedListener(new NormalRecyclerAdapter.OnItemClickedListener() { + @Override + public void onItemClicked(int position, HomePageBean.DataBean.MenusBean menusBean) { Intent intent = new Intent(); - switch (itemName) { + switch (menusBean.getName()) { case "案卷上报": intent.setClass(requireContext(), CommonCaseUploadActivity.class); break; diff --git a/app/src/main/java/com/casic/dcms/model/DataAnalysisGridModel.java b/app/src/main/java/com/casic/dcms/model/DataAnalysisGridModel.java new file mode 100644 index 0000000..3b20a2f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/model/DataAnalysisGridModel.java @@ -0,0 +1,22 @@ +package com.casic.dcms.model; + +public class DataAnalysisGridModel { + private int itemIcon; + private String itemTitle; + + public int getItemIcon() { + return itemIcon; + } + + public void setItemIcon(int itemIcon) { + this.itemIcon = itemIcon; + } + + public String getItemTitle() { + return itemTitle; + } + + public void setItemTitle(String itemTitle) { + this.itemTitle = itemTitle; + } +} diff --git a/app/src/main/java/com/casic/dcms/utils/DataBaseManager.java b/app/src/main/java/com/casic/dcms/utils/DataBaseManager.java index 0a39218..57f0df8 100644 --- a/app/src/main/java/com/casic/dcms/utils/DataBaseManager.java +++ b/app/src/main/java/com/casic/dcms/utils/DataBaseManager.java @@ -127,7 +127,7 @@ toiletListBeanDao.deleteAll(); } - public void saveToiletList(ToiletListModel.DataBean dataBean) { + public void saveToilets(ToiletListModel.DataBean dataBean) { ToiletListBean bean = new ToiletListBean(); bean.setArea(dataBean.getArea()); bean.setCode(dataBean.getCode()); @@ -149,7 +149,7 @@ toiletListBeanDao.save(bean); } - public List getToiletList() { + public List getToilets() { List result = new ArrayList<>(); List listBeans = toiletListBeanDao.loadAll(); for (ToiletListBean toiletBean : listBeans) { diff --git a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java b/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java index 7cb867d..fb0c033 100644 --- a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java +++ b/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java @@ -1,25 +1,12 @@ package com.casic.dcms.utils; -import android.util.Log; - import com.casic.dcms.utils.callback.IHttpRequestListener; +import com.pengxh.androidx.lite.callback.OnHttpRequestListener; +import com.pengxh.androidx.lite.hub.RequestHub; import com.pengxh.androidx.lite.utils.SaveKeyValues; -import org.jetbrains.annotations.NotNull; - -import java.io.IOException; -import java.util.concurrent.TimeUnit; - -import okhttp3.OkHttpClient; import okhttp3.Request; import okhttp3.Response; -import okhttp3.ResponseBody; -import okhttp3.logging.HttpLoggingInterceptor; -import rx.Emitter; -import rx.Observable; -import rx.Observer; -import rx.android.schedulers.AndroidSchedulers; -import rx.schedulers.Schedulers; public class HttpRequestHelper { private static final String TAG = "HttpRequestHelper"; @@ -27,93 +14,39 @@ public static void doRequest(String function, String requestValue, IHttpRequestListener listener) { String ip = (String) SaveKeyValues.getValue(LocaleConstant.IP_KEY, "http://111.198.10.15:11409"); // String ip = (String) SaveKeyValues.getValue(Constant.IP_KEY, "http://223.82.47.232:11401"); - Observable.create(emitter -> { - HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor(new HttpLoggingInterceptor.Logger() { - @Override - public void log(@NotNull String message) { - Log.d(TAG, "log: " + message); - } - }); - interceptor.setLevel(HttpLoggingInterceptor.Level.BODY); - - OkHttpClient client = new OkHttpClient.Builder() - .addInterceptor(interceptor) - .readTimeout(LocaleConstant.HTTP_TIMEOUT, TimeUnit.SECONDS) - .connectTimeout(LocaleConstant.HTTP_TIMEOUT, TimeUnit.SECONDS) - .writeTimeout(LocaleConstant.HTTP_TIMEOUT, TimeUnit.SECONDS) - .build(); - - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(ip + function + requestValue) - .get() - .build();//创建Request 对象 - try { - Response response = client.newCall(request).execute(); - emitter.onNext(response.body()); - } catch (IOException e) { - emitter.onError(e); - } - }, Emitter.BackpressureMode.BUFFER).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + Request request = new Request.Builder() + .addHeader("token", AuthenticationHelper.getToken()) + .url(ip + function + requestValue) + .get() + .build();//创建Request 对象 + RequestHub.doRequest(request, new OnHttpRequestListener() { @Override - public void onCompleted() { - + public void onSuccess(Response response) { + listener.onSuccess(response.body()); } @Override - public void onError(Throwable e) { - listener.onFailure(e); - } - - @Override - public void onNext(ResponseBody responseBody) { - listener.onSuccess(responseBody); + public void onFailure(Throwable throwable) { + listener.onFailure(throwable); } }); } public static void doRequest(String url, IHttpRequestListener listener) { - Observable.create(emitter -> { - HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor(new HttpLoggingInterceptor.Logger() { - @Override - public void log(@NotNull String message) { - Log.d(TAG, "log: " + message); - } - }); - interceptor.setLevel(HttpLoggingInterceptor.Level.BODY); - - OkHttpClient client = new OkHttpClient.Builder() - .addInterceptor(interceptor) - .readTimeout(LocaleConstant.HTTP_TIMEOUT, TimeUnit.SECONDS) - .connectTimeout(LocaleConstant.HTTP_TIMEOUT, TimeUnit.SECONDS) - .writeTimeout(LocaleConstant.HTTP_TIMEOUT, TimeUnit.SECONDS) - .build(); - - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(url) - .get() - .build();//创建Request 对象 - try { - Response response = client.newCall(request).execute(); - emitter.onNext(response.body()); - } catch (IOException e) { - emitter.onError(e); - } - }, Emitter.BackpressureMode.BUFFER).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + Request request = new Request.Builder() + .addHeader("token", AuthenticationHelper.getToken()) + .url(url) + .get() + .build();//创建Request 对象 + RequestHub.doRequest(request, new OnHttpRequestListener() { @Override - public void onCompleted() { - + public void onSuccess(Response response) { + listener.onSuccess(response.body()); } @Override - public void onError(Throwable e) { - listener.onFailure(e); - } - - @Override - public void onNext(ResponseBody responseBody) { - listener.onSuccess(responseBody); + public void onFailure(Throwable throwable) { + listener.onFailure(throwable); } }); } diff --git a/app/src/main/java/com/casic/dcms/utils/StringHelper.java b/app/src/main/java/com/casic/dcms/utils/StringHelper.java index c625bb4..1a097cc 100644 --- a/app/src/main/java/com/casic/dcms/utils/StringHelper.java +++ b/app/src/main/java/com/casic/dcms/utils/StringHelper.java @@ -264,8 +264,20 @@ return R.drawable.ic_dtck; case "公厕保洁": return R.drawable.ic_toilet; + case "三包处置": + return R.drawable.ic_sanbao; + case "商铺变更": + return R.drawable.ic_shangpu; + case "部门处置": + return R.drawable.ic_dept; + case "路桥养护": + return R.drawable.ic_bridge; + case "管网管理": + return R.drawable.ic_pipe; + case "路灯管理": + return R.drawable.ic_streetlight; default: - return 0; + return R.drawable.ic_default_icon; } } } diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java index b1a3c67..6d3574d 100644 --- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java +++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java @@ -39,9 +39,7 @@ * token添加到Header */ @GET("/user/info") - Observable getUserData( - @Header("token") String token - ); + Observable getUserData(@Header("token") String token); /** * 获取地图地址 @@ -49,9 +47,7 @@ * token添加到Header */ @GET("/map/server/listPage") - Observable getMapConfig( - @Header("token") String token - ); + Observable getMapConfig(@Header("token") String token); /** * 大类列表查询 @@ -132,9 +128,7 @@ * 退出登录 */ @GET("/user/logout") - Observable loginOut( - @Header("token") String token - ); + Observable loginOut(@Header("token") String token); /** * 修改密码 @@ -152,10 +146,7 @@ * 获取部门树 */ @GET("/dept/tree") - Observable getDeptTree( - @Header("token") String token, - @Query("pid") String pid - ); + Observable getDeptTree(@Header("token") String token, @Query("pid") String pid); /** * 获取通讯录 @@ -193,9 +184,7 @@ * 获取案件状态 */ @GET("/dict/code/caseState") - Observable getCaseStatus( - @Header("token") String token - ); + Observable getCaseStatus(@Header("token") String token); /** * 获取案件列表 @@ -223,10 +212,7 @@ * http://111.198.10.15:11409/case/detail/1372735305680994306 */ @GET("/case/detail/{id}") - Observable obtainCaseDetail( - @Header("token") String token, - @Path("id") String id - ); + Observable obtainCaseDetail(@Header("token") String token, @Path("id") String id); /** * 获取案件流转记录 @@ -241,9 +227,7 @@ * 更新版本 */ @POST("/app/checkVersion") - Observable updateVersion( - @Header("token") String token - ); + Observable updateVersion(@Header("token") String token); /** * 获取核实待办案卷 @@ -407,9 +391,7 @@ * 获取常见语句 */ @GET("/dict/code/commonApproval") - Observable obtainCommonSentence( - @Header("token") String token - ); + Observable obtainCommonSentence(@Header("token") String token); /** * 案卷处理 @@ -532,9 +514,7 @@ * http://111.198.10.15:11409/sanitation/toilet/list */ @GET("/sanitation/toilet/list") - Observable getToiletList( - @Header("token") String token - ); + Observable getToilets(@Header("token") String token); /** * 公厕打扫签到 @@ -789,9 +769,7 @@ * http://111.198.10.15:11409/lampCr/overview/lampList */ @GET("/lightCr/overview/lampList") - Observable obtainLightList( - @Header("token") String token - ); + Observable obtainLightList(@Header("token") String token); /** * 路灯详情 diff --git a/.idea/misc.xml b/.idea/misc.xml index 12058ca..4f8b20d 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -28,6 +28,9 @@ + + + @@ -39,6 +42,7 @@ + @@ -81,7 +85,8 @@ - + + diff --git a/app/src/main/java/com/casic/dcms/adapter/AnalysisRecycleAdapter.java b/app/src/main/java/com/casic/dcms/adapter/AnalysisRecycleAdapter.java deleted file mode 100644 index 913bde1..0000000 --- a/app/src/main/java/com/casic/dcms/adapter/AnalysisRecycleAdapter.java +++ /dev/null @@ -1,71 +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.utils.LocaleConstant; - -public class AnalysisRecycleAdapter extends RecyclerView.Adapter { - - private final LayoutInflater layoutInflater; - - public AnalysisRecycleAdapter(Context context) { - this.layoutInflater = LayoutInflater.from(context); - } - - @NonNull - @Override - public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - return new ItemViewHolder(layoutInflater.inflate(R.layout.item_home_recycleview, parent, false)); - } - - @Override - public void onBindViewHolder(@NonNull ItemViewHolder holder, @SuppressLint("RecyclerView") int position) { - holder.imageView.setBackgroundResource(LocaleConstant.ANALYSIS_ICONS.get(position)); - holder.textView.setText(LocaleConstant.ANALYSIS_ITEMS.get(position)); - if (clickListener != null) { - holder.itemView.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - clickListener.onClick(position); - } - }); - } - } - - @Override - public int getItemCount() { - return LocaleConstant.ANALYSIS_ITEMS.size(); - } - - private OnGridItemClickListener clickListener; - - public interface OnGridItemClickListener { - void onClick(int position); - } - - public void setOnGridItemClickListener(OnGridItemClickListener onGridItemClickListener) { - this.clickListener = onGridItemClickListener; - } - - static class ItemViewHolder extends RecyclerView.ViewHolder { - - private final ImageView imageView; - private final TextView textView; - - ItemViewHolder(@NonNull View itemView) { - super(itemView); - imageView = itemView.findViewById(R.id.imageView); - textView = itemView.findViewById(R.id.textView); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/adapter/CaseSearchResultAdapter.java b/app/src/main/java/com/casic/dcms/adapter/CaseSearchResultAdapter.java deleted file mode 100644 index 9449f44..0000000 --- a/app/src/main/java/com/casic/dcms/adapter/CaseSearchResultAdapter.java +++ /dev/null @@ -1,94 +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.TextView; - -import androidx.annotation.NonNull; -import androidx.recyclerview.widget.RecyclerView; - -import com.casic.dcms.R; -import com.casic.dcms.model.CaseSearchResultBean; -import com.pengxh.androidx.lite.hub.StringHub; -import com.qmuiteam.qmui.widget.QMUIRadiusImageView; - -import java.util.List; - -public class CaseSearchResultAdapter extends RecyclerView.Adapter { - - private final List dataRows; - private final LayoutInflater layoutInflater; - - public CaseSearchResultAdapter(Context context, List dataRows) { - this.dataRows = dataRows; - this.layoutInflater = LayoutInflater.from(context); - } - - @NonNull - @Override - public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - return new ItemViewHolder(layoutInflater.inflate(R.layout.item_case_rv, parent, false)); - } - - @Override - public void onBindViewHolder(@NonNull ItemViewHolder holder, @SuppressLint("RecyclerView") int position) { - holder.bindView(dataRows.get(position)); - if (clickListener != null) { - holder.itemView.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - clickListener.onClick(position); - } - }); - } - } - - @Override - public int getItemCount() { - return dataRows.size(); - } - - private OnItemClickListener clickListener; - - public interface OnItemClickListener { - void onClick(int position); - } - - public void setOnItemClickListener(OnItemClickListener onItemClickListener) { - this.clickListener = onItemClickListener; - } - - class ItemViewHolder extends RecyclerView.ViewHolder { - - private final QMUIRadiusImageView caseImageView; - private final TextView caseTitleView; - private final TextView casePlaceView; - private final TextView caseTimeView; - - ItemViewHolder(@NonNull View itemView) { - super(itemView); - caseImageView = itemView.findViewById(R.id.caseImageView); - caseTitleView = itemView.findViewById(R.id.caseTitleView); - casePlaceView = itemView.findViewById(R.id.casePlaceView); - caseTimeView = itemView.findViewById(R.id.caseTimeView); - } - - void bindView(CaseSearchResultBean.DataDTO.RowsDTO rowsBean) { - //核实图片 -// String fileIdVerify = rowsBean.getFileIdVerify(); -// if (!TextUtils.isEmpty(fileIdVerify)) { -// String[] split = fileIdVerify.split(","); -// String firstImage = split[0]; -// if (firstImage.endsWith(".jpg") || firstImage.contains(".jpeg") || firstImage.contains(".png")) { -// Glide.with(context).load(StringHelper.appendCompleteURL(firstImage)).into(caseImageView); -// } -// } - caseTitleView.setText(StringHub.filterSpaceOrEnter(rowsBean.getDescription())); - casePlaceView.setText("发生地点:" + StringHub.filterSpaceOrEnter(rowsBean.getFieldintro())); - caseTimeView.setText("上报时间:" + rowsBean.getReportTime()); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/adapter/HomeRecycleAdapter.java b/app/src/main/java/com/casic/dcms/adapter/HomeRecycleAdapter.java deleted file mode 100644 index e6eafa6..0000000 --- a/app/src/main/java/com/casic/dcms/adapter/HomeRecycleAdapter.java +++ /dev/null @@ -1,80 +0,0 @@ -package com.casic.dcms.adapter; - -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.HomePageBean; -import com.casic.dcms.utils.StringHelper; - -import java.util.List; - -public class HomeRecycleAdapter extends RecyclerView.Adapter { - - private final List menuData; - private final LayoutInflater layoutInflater; - - public HomeRecycleAdapter(Context context, List menus) { - this.menuData = menus; - this.layoutInflater = LayoutInflater.from(context); - } - - @NonNull - @Override - public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - return new ItemViewHolder(layoutInflater.inflate(R.layout.item_home_recycleview, parent, false)); - } - - @Override - public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { - String name = menuData.get(position).getName(); - holder.bindView(name); - if (clickListener != null) { - holder.itemView.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - clickListener.onClick(name); - } - }); - } - } - - @Override - public int getItemCount() { - return menuData.size(); - } - - private OnGridItemClickListener clickListener; - - public interface OnGridItemClickListener { - void onClick(String itemName); - } - - public void setOnGridItemClickListener(OnGridItemClickListener onGridItemClickListener) { - this.clickListener = onGridItemClickListener; - } - - static class ItemViewHolder extends RecyclerView.ViewHolder { - - private final ImageView imageView; - private final TextView textView; - - ItemViewHolder(@NonNull View itemView) { - super(itemView); - imageView = itemView.findViewById(R.id.imageView); - textView = itemView.findViewById(R.id.textView); - } - - void bindView(String name) { - imageView.setBackgroundResource(StringHelper.obtainIcon(name)); - textView.setText(name); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/adapter/ProcessLineAdapter.java b/app/src/main/java/com/casic/dcms/adapter/ProcessLineAdapter.java deleted file mode 100644 index 42da4cf..0000000 --- a/app/src/main/java/com/casic/dcms/adapter/ProcessLineAdapter.java +++ /dev/null @@ -1,70 +0,0 @@ -package com.casic.dcms.adapter; - -import android.content.Context; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.TextView; - -import androidx.annotation.NonNull; -import androidx.recyclerview.widget.RecyclerView; - -import com.casic.dcms.R; -import com.casic.dcms.model.CaseProcessBean; - -import org.jetbrains.annotations.NotNull; - -import java.util.List; - -public class ProcessLineAdapter extends RecyclerView.Adapter { - private final List mProcessList; - private final LayoutInflater layoutInflater; - - public ProcessLineAdapter(Context context, List list) { - this.mProcessList = list; - this.layoutInflater = LayoutInflater.from(context); - } - - @NotNull - @Override - public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - return new ViewHolder(layoutInflater.inflate(R.layout.item_case_process, parent, false)); - } - - @Override - public void onBindViewHolder(ViewHolder holder, int position) { - CaseProcessBean.DataBean dataBean = mProcessList.get(position); - String typeName = dataBean.getOperationTypeName(); - holder.operationTypeName.setText(typeName); - holder.handlePersonView.setText(dataBean.getUserName()); - holder.handleTimeView.setText(dataBean.getTime()); - holder.handleResultView.setText(dataBean.getRemarks()); - } - - @Override - public int getItemViewType(int position) { - return super.getItemViewType(position); - } - - @Override - public int getItemCount() { - return mProcessList.size(); - } - - static class ViewHolder extends RecyclerView.ViewHolder { - private final TextView operationTypeName; - private final TextView handlePersonView; - private final TextView handleTimeView; - private final TextView handleResultView; - private final RecyclerView handlePicView; - - public ViewHolder(View view) { - super(view); - operationTypeName = view.findViewById(R.id.operationTypeName); - handlePersonView = view.findViewById(R.id.handlePersonView); - handleTimeView = view.findViewById(R.id.handleTimeView); - handleResultView = view.findViewById(R.id.handleResultView); - handlePicView = view.findViewById(R.id.handlePicView); - } - } -} \ No newline at end of file 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 3b7a194..6b6b72e 100644 --- a/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java @@ -7,7 +7,6 @@ import com.bumptech.glide.Glide; import com.casic.dcms.R; -import com.casic.dcms.adapter.HomeRecycleAdapter; import com.casic.dcms.databinding.FragmentHomeBinding; import com.casic.dcms.model.HomePageBean; import com.casic.dcms.model.UserBean; @@ -33,6 +32,8 @@ import com.casic.dcms.view.UrgentCaseActivity; import com.casic.dcms.view.VerifyCaseActivity; import com.casic.dcms.vm.HomePageViewModel; +import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; +import com.pengxh.androidx.lite.adapter.ViewHolder; import com.pengxh.androidx.lite.base.AndroidxBaseFragment; import com.pengxh.androidx.lite.hub.LongHub; import com.pengxh.androidx.lite.utils.SaveKeyValues; @@ -95,13 +96,18 @@ @Override public void onChanged(HomePageBean resultBean) { if (resultBean.getCode() == 200) { - HomeRecycleAdapter adapter = new HomeRecycleAdapter(requireContext(), resultBean.getData().getMenus()); - viewBinding.homeRecyclerView.setAdapter(adapter); - adapter.setOnGridItemClickListener(new HomeRecycleAdapter.OnGridItemClickListener() { + NormalRecyclerAdapter recyclerAdapter = new NormalRecyclerAdapter(R.layout.item_home_recycleview, resultBean.getData().getMenus()) { @Override - public void onClick(String itemName) { + public void convertView(ViewHolder viewHolder, int position, HomePageBean.DataBean.MenusBean item) { + viewHolder.setImageResource(R.id.imageView, StringHelper.obtainDrawableIcon(item.getName())).setText(R.id.textView, item.getName()); + } + }; + viewBinding.homeRecyclerView.setAdapter(recyclerAdapter); + recyclerAdapter.setOnItemClickedListener(new NormalRecyclerAdapter.OnItemClickedListener() { + @Override + public void onItemClicked(int position, HomePageBean.DataBean.MenusBean menusBean) { Intent intent = new Intent(); - switch (itemName) { + switch (menusBean.getName()) { case "案卷上报": intent.setClass(requireContext(), CommonCaseUploadActivity.class); break; diff --git a/app/src/main/java/com/casic/dcms/model/DataAnalysisGridModel.java b/app/src/main/java/com/casic/dcms/model/DataAnalysisGridModel.java new file mode 100644 index 0000000..3b20a2f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/model/DataAnalysisGridModel.java @@ -0,0 +1,22 @@ +package com.casic.dcms.model; + +public class DataAnalysisGridModel { + private int itemIcon; + private String itemTitle; + + public int getItemIcon() { + return itemIcon; + } + + public void setItemIcon(int itemIcon) { + this.itemIcon = itemIcon; + } + + public String getItemTitle() { + return itemTitle; + } + + public void setItemTitle(String itemTitle) { + this.itemTitle = itemTitle; + } +} diff --git a/app/src/main/java/com/casic/dcms/utils/DataBaseManager.java b/app/src/main/java/com/casic/dcms/utils/DataBaseManager.java index 0a39218..57f0df8 100644 --- a/app/src/main/java/com/casic/dcms/utils/DataBaseManager.java +++ b/app/src/main/java/com/casic/dcms/utils/DataBaseManager.java @@ -127,7 +127,7 @@ toiletListBeanDao.deleteAll(); } - public void saveToiletList(ToiletListModel.DataBean dataBean) { + public void saveToilets(ToiletListModel.DataBean dataBean) { ToiletListBean bean = new ToiletListBean(); bean.setArea(dataBean.getArea()); bean.setCode(dataBean.getCode()); @@ -149,7 +149,7 @@ toiletListBeanDao.save(bean); } - public List getToiletList() { + public List getToilets() { List result = new ArrayList<>(); List listBeans = toiletListBeanDao.loadAll(); for (ToiletListBean toiletBean : listBeans) { diff --git a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java b/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java index 7cb867d..fb0c033 100644 --- a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java +++ b/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java @@ -1,25 +1,12 @@ package com.casic.dcms.utils; -import android.util.Log; - import com.casic.dcms.utils.callback.IHttpRequestListener; +import com.pengxh.androidx.lite.callback.OnHttpRequestListener; +import com.pengxh.androidx.lite.hub.RequestHub; import com.pengxh.androidx.lite.utils.SaveKeyValues; -import org.jetbrains.annotations.NotNull; - -import java.io.IOException; -import java.util.concurrent.TimeUnit; - -import okhttp3.OkHttpClient; import okhttp3.Request; import okhttp3.Response; -import okhttp3.ResponseBody; -import okhttp3.logging.HttpLoggingInterceptor; -import rx.Emitter; -import rx.Observable; -import rx.Observer; -import rx.android.schedulers.AndroidSchedulers; -import rx.schedulers.Schedulers; public class HttpRequestHelper { private static final String TAG = "HttpRequestHelper"; @@ -27,93 +14,39 @@ public static void doRequest(String function, String requestValue, IHttpRequestListener listener) { String ip = (String) SaveKeyValues.getValue(LocaleConstant.IP_KEY, "http://111.198.10.15:11409"); // String ip = (String) SaveKeyValues.getValue(Constant.IP_KEY, "http://223.82.47.232:11401"); - Observable.create(emitter -> { - HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor(new HttpLoggingInterceptor.Logger() { - @Override - public void log(@NotNull String message) { - Log.d(TAG, "log: " + message); - } - }); - interceptor.setLevel(HttpLoggingInterceptor.Level.BODY); - - OkHttpClient client = new OkHttpClient.Builder() - .addInterceptor(interceptor) - .readTimeout(LocaleConstant.HTTP_TIMEOUT, TimeUnit.SECONDS) - .connectTimeout(LocaleConstant.HTTP_TIMEOUT, TimeUnit.SECONDS) - .writeTimeout(LocaleConstant.HTTP_TIMEOUT, TimeUnit.SECONDS) - .build(); - - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(ip + function + requestValue) - .get() - .build();//创建Request 对象 - try { - Response response = client.newCall(request).execute(); - emitter.onNext(response.body()); - } catch (IOException e) { - emitter.onError(e); - } - }, Emitter.BackpressureMode.BUFFER).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + Request request = new Request.Builder() + .addHeader("token", AuthenticationHelper.getToken()) + .url(ip + function + requestValue) + .get() + .build();//创建Request 对象 + RequestHub.doRequest(request, new OnHttpRequestListener() { @Override - public void onCompleted() { - + public void onSuccess(Response response) { + listener.onSuccess(response.body()); } @Override - public void onError(Throwable e) { - listener.onFailure(e); - } - - @Override - public void onNext(ResponseBody responseBody) { - listener.onSuccess(responseBody); + public void onFailure(Throwable throwable) { + listener.onFailure(throwable); } }); } public static void doRequest(String url, IHttpRequestListener listener) { - Observable.create(emitter -> { - HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor(new HttpLoggingInterceptor.Logger() { - @Override - public void log(@NotNull String message) { - Log.d(TAG, "log: " + message); - } - }); - interceptor.setLevel(HttpLoggingInterceptor.Level.BODY); - - OkHttpClient client = new OkHttpClient.Builder() - .addInterceptor(interceptor) - .readTimeout(LocaleConstant.HTTP_TIMEOUT, TimeUnit.SECONDS) - .connectTimeout(LocaleConstant.HTTP_TIMEOUT, TimeUnit.SECONDS) - .writeTimeout(LocaleConstant.HTTP_TIMEOUT, TimeUnit.SECONDS) - .build(); - - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(url) - .get() - .build();//创建Request 对象 - try { - Response response = client.newCall(request).execute(); - emitter.onNext(response.body()); - } catch (IOException e) { - emitter.onError(e); - } - }, Emitter.BackpressureMode.BUFFER).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + Request request = new Request.Builder() + .addHeader("token", AuthenticationHelper.getToken()) + .url(url) + .get() + .build();//创建Request 对象 + RequestHub.doRequest(request, new OnHttpRequestListener() { @Override - public void onCompleted() { - + public void onSuccess(Response response) { + listener.onSuccess(response.body()); } @Override - public void onError(Throwable e) { - listener.onFailure(e); - } - - @Override - public void onNext(ResponseBody responseBody) { - listener.onSuccess(responseBody); + public void onFailure(Throwable throwable) { + listener.onFailure(throwable); } }); } diff --git a/app/src/main/java/com/casic/dcms/utils/StringHelper.java b/app/src/main/java/com/casic/dcms/utils/StringHelper.java index c625bb4..1a097cc 100644 --- a/app/src/main/java/com/casic/dcms/utils/StringHelper.java +++ b/app/src/main/java/com/casic/dcms/utils/StringHelper.java @@ -264,8 +264,20 @@ return R.drawable.ic_dtck; case "公厕保洁": return R.drawable.ic_toilet; + case "三包处置": + return R.drawable.ic_sanbao; + case "商铺变更": + return R.drawable.ic_shangpu; + case "部门处置": + return R.drawable.ic_dept; + case "路桥养护": + return R.drawable.ic_bridge; + case "管网管理": + return R.drawable.ic_pipe; + case "路灯管理": + return R.drawable.ic_streetlight; default: - return 0; + return R.drawable.ic_default_icon; } } } diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java index b1a3c67..6d3574d 100644 --- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java +++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java @@ -39,9 +39,7 @@ * token添加到Header */ @GET("/user/info") - Observable getUserData( - @Header("token") String token - ); + Observable getUserData(@Header("token") String token); /** * 获取地图地址 @@ -49,9 +47,7 @@ * token添加到Header */ @GET("/map/server/listPage") - Observable getMapConfig( - @Header("token") String token - ); + Observable getMapConfig(@Header("token") String token); /** * 大类列表查询 @@ -132,9 +128,7 @@ * 退出登录 */ @GET("/user/logout") - Observable loginOut( - @Header("token") String token - ); + Observable loginOut(@Header("token") String token); /** * 修改密码 @@ -152,10 +146,7 @@ * 获取部门树 */ @GET("/dept/tree") - Observable getDeptTree( - @Header("token") String token, - @Query("pid") String pid - ); + Observable getDeptTree(@Header("token") String token, @Query("pid") String pid); /** * 获取通讯录 @@ -193,9 +184,7 @@ * 获取案件状态 */ @GET("/dict/code/caseState") - Observable getCaseStatus( - @Header("token") String token - ); + Observable getCaseStatus(@Header("token") String token); /** * 获取案件列表 @@ -223,10 +212,7 @@ * http://111.198.10.15:11409/case/detail/1372735305680994306 */ @GET("/case/detail/{id}") - Observable obtainCaseDetail( - @Header("token") String token, - @Path("id") String id - ); + Observable obtainCaseDetail(@Header("token") String token, @Path("id") String id); /** * 获取案件流转记录 @@ -241,9 +227,7 @@ * 更新版本 */ @POST("/app/checkVersion") - Observable updateVersion( - @Header("token") String token - ); + Observable updateVersion(@Header("token") String token); /** * 获取核实待办案卷 @@ -407,9 +391,7 @@ * 获取常见语句 */ @GET("/dict/code/commonApproval") - Observable obtainCommonSentence( - @Header("token") String token - ); + Observable obtainCommonSentence(@Header("token") String token); /** * 案卷处理 @@ -532,9 +514,7 @@ * http://111.198.10.15:11409/sanitation/toilet/list */ @GET("/sanitation/toilet/list") - Observable getToiletList( - @Header("token") String token - ); + Observable getToilets(@Header("token") String token); /** * 公厕打扫签到 @@ -789,9 +769,7 @@ * http://111.198.10.15:11409/lampCr/overview/lampList */ @GET("/lightCr/overview/lampList") - Observable obtainLightList( - @Header("token") String token - ); + Observable obtainLightList(@Header("token") String token); /** * 路灯详情 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 5c31b0a..8876060 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 @@ -411,8 +411,8 @@ /** * 公厕列表 */ - public static Observable getToiletList() { - return api.getToiletList(AuthenticationHelper.getToken()); + public static Observable getToilets() { + return api.getToilets(AuthenticationHelper.getToken()); } /** diff --git a/.idea/misc.xml b/.idea/misc.xml index 12058ca..4f8b20d 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -28,6 +28,9 @@ + + + @@ -39,6 +42,7 @@ + @@ -81,7 +85,8 @@ - + + diff --git a/app/src/main/java/com/casic/dcms/adapter/AnalysisRecycleAdapter.java b/app/src/main/java/com/casic/dcms/adapter/AnalysisRecycleAdapter.java deleted file mode 100644 index 913bde1..0000000 --- a/app/src/main/java/com/casic/dcms/adapter/AnalysisRecycleAdapter.java +++ /dev/null @@ -1,71 +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.utils.LocaleConstant; - -public class AnalysisRecycleAdapter extends RecyclerView.Adapter { - - private final LayoutInflater layoutInflater; - - public AnalysisRecycleAdapter(Context context) { - this.layoutInflater = LayoutInflater.from(context); - } - - @NonNull - @Override - public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - return new ItemViewHolder(layoutInflater.inflate(R.layout.item_home_recycleview, parent, false)); - } - - @Override - public void onBindViewHolder(@NonNull ItemViewHolder holder, @SuppressLint("RecyclerView") int position) { - holder.imageView.setBackgroundResource(LocaleConstant.ANALYSIS_ICONS.get(position)); - holder.textView.setText(LocaleConstant.ANALYSIS_ITEMS.get(position)); - if (clickListener != null) { - holder.itemView.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - clickListener.onClick(position); - } - }); - } - } - - @Override - public int getItemCount() { - return LocaleConstant.ANALYSIS_ITEMS.size(); - } - - private OnGridItemClickListener clickListener; - - public interface OnGridItemClickListener { - void onClick(int position); - } - - public void setOnGridItemClickListener(OnGridItemClickListener onGridItemClickListener) { - this.clickListener = onGridItemClickListener; - } - - static class ItemViewHolder extends RecyclerView.ViewHolder { - - private final ImageView imageView; - private final TextView textView; - - ItemViewHolder(@NonNull View itemView) { - super(itemView); - imageView = itemView.findViewById(R.id.imageView); - textView = itemView.findViewById(R.id.textView); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/adapter/CaseSearchResultAdapter.java b/app/src/main/java/com/casic/dcms/adapter/CaseSearchResultAdapter.java deleted file mode 100644 index 9449f44..0000000 --- a/app/src/main/java/com/casic/dcms/adapter/CaseSearchResultAdapter.java +++ /dev/null @@ -1,94 +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.TextView; - -import androidx.annotation.NonNull; -import androidx.recyclerview.widget.RecyclerView; - -import com.casic.dcms.R; -import com.casic.dcms.model.CaseSearchResultBean; -import com.pengxh.androidx.lite.hub.StringHub; -import com.qmuiteam.qmui.widget.QMUIRadiusImageView; - -import java.util.List; - -public class CaseSearchResultAdapter extends RecyclerView.Adapter { - - private final List dataRows; - private final LayoutInflater layoutInflater; - - public CaseSearchResultAdapter(Context context, List dataRows) { - this.dataRows = dataRows; - this.layoutInflater = LayoutInflater.from(context); - } - - @NonNull - @Override - public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - return new ItemViewHolder(layoutInflater.inflate(R.layout.item_case_rv, parent, false)); - } - - @Override - public void onBindViewHolder(@NonNull ItemViewHolder holder, @SuppressLint("RecyclerView") int position) { - holder.bindView(dataRows.get(position)); - if (clickListener != null) { - holder.itemView.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - clickListener.onClick(position); - } - }); - } - } - - @Override - public int getItemCount() { - return dataRows.size(); - } - - private OnItemClickListener clickListener; - - public interface OnItemClickListener { - void onClick(int position); - } - - public void setOnItemClickListener(OnItemClickListener onItemClickListener) { - this.clickListener = onItemClickListener; - } - - class ItemViewHolder extends RecyclerView.ViewHolder { - - private final QMUIRadiusImageView caseImageView; - private final TextView caseTitleView; - private final TextView casePlaceView; - private final TextView caseTimeView; - - ItemViewHolder(@NonNull View itemView) { - super(itemView); - caseImageView = itemView.findViewById(R.id.caseImageView); - caseTitleView = itemView.findViewById(R.id.caseTitleView); - casePlaceView = itemView.findViewById(R.id.casePlaceView); - caseTimeView = itemView.findViewById(R.id.caseTimeView); - } - - void bindView(CaseSearchResultBean.DataDTO.RowsDTO rowsBean) { - //核实图片 -// String fileIdVerify = rowsBean.getFileIdVerify(); -// if (!TextUtils.isEmpty(fileIdVerify)) { -// String[] split = fileIdVerify.split(","); -// String firstImage = split[0]; -// if (firstImage.endsWith(".jpg") || firstImage.contains(".jpeg") || firstImage.contains(".png")) { -// Glide.with(context).load(StringHelper.appendCompleteURL(firstImage)).into(caseImageView); -// } -// } - caseTitleView.setText(StringHub.filterSpaceOrEnter(rowsBean.getDescription())); - casePlaceView.setText("发生地点:" + StringHub.filterSpaceOrEnter(rowsBean.getFieldintro())); - caseTimeView.setText("上报时间:" + rowsBean.getReportTime()); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/adapter/HomeRecycleAdapter.java b/app/src/main/java/com/casic/dcms/adapter/HomeRecycleAdapter.java deleted file mode 100644 index e6eafa6..0000000 --- a/app/src/main/java/com/casic/dcms/adapter/HomeRecycleAdapter.java +++ /dev/null @@ -1,80 +0,0 @@ -package com.casic.dcms.adapter; - -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.HomePageBean; -import com.casic.dcms.utils.StringHelper; - -import java.util.List; - -public class HomeRecycleAdapter extends RecyclerView.Adapter { - - private final List menuData; - private final LayoutInflater layoutInflater; - - public HomeRecycleAdapter(Context context, List menus) { - this.menuData = menus; - this.layoutInflater = LayoutInflater.from(context); - } - - @NonNull - @Override - public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - return new ItemViewHolder(layoutInflater.inflate(R.layout.item_home_recycleview, parent, false)); - } - - @Override - public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { - String name = menuData.get(position).getName(); - holder.bindView(name); - if (clickListener != null) { - holder.itemView.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - clickListener.onClick(name); - } - }); - } - } - - @Override - public int getItemCount() { - return menuData.size(); - } - - private OnGridItemClickListener clickListener; - - public interface OnGridItemClickListener { - void onClick(String itemName); - } - - public void setOnGridItemClickListener(OnGridItemClickListener onGridItemClickListener) { - this.clickListener = onGridItemClickListener; - } - - static class ItemViewHolder extends RecyclerView.ViewHolder { - - private final ImageView imageView; - private final TextView textView; - - ItemViewHolder(@NonNull View itemView) { - super(itemView); - imageView = itemView.findViewById(R.id.imageView); - textView = itemView.findViewById(R.id.textView); - } - - void bindView(String name) { - imageView.setBackgroundResource(StringHelper.obtainIcon(name)); - textView.setText(name); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/adapter/ProcessLineAdapter.java b/app/src/main/java/com/casic/dcms/adapter/ProcessLineAdapter.java deleted file mode 100644 index 42da4cf..0000000 --- a/app/src/main/java/com/casic/dcms/adapter/ProcessLineAdapter.java +++ /dev/null @@ -1,70 +0,0 @@ -package com.casic.dcms.adapter; - -import android.content.Context; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.TextView; - -import androidx.annotation.NonNull; -import androidx.recyclerview.widget.RecyclerView; - -import com.casic.dcms.R; -import com.casic.dcms.model.CaseProcessBean; - -import org.jetbrains.annotations.NotNull; - -import java.util.List; - -public class ProcessLineAdapter extends RecyclerView.Adapter { - private final List mProcessList; - private final LayoutInflater layoutInflater; - - public ProcessLineAdapter(Context context, List list) { - this.mProcessList = list; - this.layoutInflater = LayoutInflater.from(context); - } - - @NotNull - @Override - public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - return new ViewHolder(layoutInflater.inflate(R.layout.item_case_process, parent, false)); - } - - @Override - public void onBindViewHolder(ViewHolder holder, int position) { - CaseProcessBean.DataBean dataBean = mProcessList.get(position); - String typeName = dataBean.getOperationTypeName(); - holder.operationTypeName.setText(typeName); - holder.handlePersonView.setText(dataBean.getUserName()); - holder.handleTimeView.setText(dataBean.getTime()); - holder.handleResultView.setText(dataBean.getRemarks()); - } - - @Override - public int getItemViewType(int position) { - return super.getItemViewType(position); - } - - @Override - public int getItemCount() { - return mProcessList.size(); - } - - static class ViewHolder extends RecyclerView.ViewHolder { - private final TextView operationTypeName; - private final TextView handlePersonView; - private final TextView handleTimeView; - private final TextView handleResultView; - private final RecyclerView handlePicView; - - public ViewHolder(View view) { - super(view); - operationTypeName = view.findViewById(R.id.operationTypeName); - handlePersonView = view.findViewById(R.id.handlePersonView); - handleTimeView = view.findViewById(R.id.handleTimeView); - handleResultView = view.findViewById(R.id.handleResultView); - handlePicView = view.findViewById(R.id.handlePicView); - } - } -} \ No newline at end of file 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 3b7a194..6b6b72e 100644 --- a/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java @@ -7,7 +7,6 @@ import com.bumptech.glide.Glide; import com.casic.dcms.R; -import com.casic.dcms.adapter.HomeRecycleAdapter; import com.casic.dcms.databinding.FragmentHomeBinding; import com.casic.dcms.model.HomePageBean; import com.casic.dcms.model.UserBean; @@ -33,6 +32,8 @@ import com.casic.dcms.view.UrgentCaseActivity; import com.casic.dcms.view.VerifyCaseActivity; import com.casic.dcms.vm.HomePageViewModel; +import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; +import com.pengxh.androidx.lite.adapter.ViewHolder; import com.pengxh.androidx.lite.base.AndroidxBaseFragment; import com.pengxh.androidx.lite.hub.LongHub; import com.pengxh.androidx.lite.utils.SaveKeyValues; @@ -95,13 +96,18 @@ @Override public void onChanged(HomePageBean resultBean) { if (resultBean.getCode() == 200) { - HomeRecycleAdapter adapter = new HomeRecycleAdapter(requireContext(), resultBean.getData().getMenus()); - viewBinding.homeRecyclerView.setAdapter(adapter); - adapter.setOnGridItemClickListener(new HomeRecycleAdapter.OnGridItemClickListener() { + NormalRecyclerAdapter recyclerAdapter = new NormalRecyclerAdapter(R.layout.item_home_recycleview, resultBean.getData().getMenus()) { @Override - public void onClick(String itemName) { + public void convertView(ViewHolder viewHolder, int position, HomePageBean.DataBean.MenusBean item) { + viewHolder.setImageResource(R.id.imageView, StringHelper.obtainDrawableIcon(item.getName())).setText(R.id.textView, item.getName()); + } + }; + viewBinding.homeRecyclerView.setAdapter(recyclerAdapter); + recyclerAdapter.setOnItemClickedListener(new NormalRecyclerAdapter.OnItemClickedListener() { + @Override + public void onItemClicked(int position, HomePageBean.DataBean.MenusBean menusBean) { Intent intent = new Intent(); - switch (itemName) { + switch (menusBean.getName()) { case "案卷上报": intent.setClass(requireContext(), CommonCaseUploadActivity.class); break; diff --git a/app/src/main/java/com/casic/dcms/model/DataAnalysisGridModel.java b/app/src/main/java/com/casic/dcms/model/DataAnalysisGridModel.java new file mode 100644 index 0000000..3b20a2f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/model/DataAnalysisGridModel.java @@ -0,0 +1,22 @@ +package com.casic.dcms.model; + +public class DataAnalysisGridModel { + private int itemIcon; + private String itemTitle; + + public int getItemIcon() { + return itemIcon; + } + + public void setItemIcon(int itemIcon) { + this.itemIcon = itemIcon; + } + + public String getItemTitle() { + return itemTitle; + } + + public void setItemTitle(String itemTitle) { + this.itemTitle = itemTitle; + } +} diff --git a/app/src/main/java/com/casic/dcms/utils/DataBaseManager.java b/app/src/main/java/com/casic/dcms/utils/DataBaseManager.java index 0a39218..57f0df8 100644 --- a/app/src/main/java/com/casic/dcms/utils/DataBaseManager.java +++ b/app/src/main/java/com/casic/dcms/utils/DataBaseManager.java @@ -127,7 +127,7 @@ toiletListBeanDao.deleteAll(); } - public void saveToiletList(ToiletListModel.DataBean dataBean) { + public void saveToilets(ToiletListModel.DataBean dataBean) { ToiletListBean bean = new ToiletListBean(); bean.setArea(dataBean.getArea()); bean.setCode(dataBean.getCode()); @@ -149,7 +149,7 @@ toiletListBeanDao.save(bean); } - public List getToiletList() { + public List getToilets() { List result = new ArrayList<>(); List listBeans = toiletListBeanDao.loadAll(); for (ToiletListBean toiletBean : listBeans) { diff --git a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java b/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java index 7cb867d..fb0c033 100644 --- a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java +++ b/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java @@ -1,25 +1,12 @@ package com.casic.dcms.utils; -import android.util.Log; - import com.casic.dcms.utils.callback.IHttpRequestListener; +import com.pengxh.androidx.lite.callback.OnHttpRequestListener; +import com.pengxh.androidx.lite.hub.RequestHub; import com.pengxh.androidx.lite.utils.SaveKeyValues; -import org.jetbrains.annotations.NotNull; - -import java.io.IOException; -import java.util.concurrent.TimeUnit; - -import okhttp3.OkHttpClient; import okhttp3.Request; import okhttp3.Response; -import okhttp3.ResponseBody; -import okhttp3.logging.HttpLoggingInterceptor; -import rx.Emitter; -import rx.Observable; -import rx.Observer; -import rx.android.schedulers.AndroidSchedulers; -import rx.schedulers.Schedulers; public class HttpRequestHelper { private static final String TAG = "HttpRequestHelper"; @@ -27,93 +14,39 @@ public static void doRequest(String function, String requestValue, IHttpRequestListener listener) { String ip = (String) SaveKeyValues.getValue(LocaleConstant.IP_KEY, "http://111.198.10.15:11409"); // String ip = (String) SaveKeyValues.getValue(Constant.IP_KEY, "http://223.82.47.232:11401"); - Observable.create(emitter -> { - HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor(new HttpLoggingInterceptor.Logger() { - @Override - public void log(@NotNull String message) { - Log.d(TAG, "log: " + message); - } - }); - interceptor.setLevel(HttpLoggingInterceptor.Level.BODY); - - OkHttpClient client = new OkHttpClient.Builder() - .addInterceptor(interceptor) - .readTimeout(LocaleConstant.HTTP_TIMEOUT, TimeUnit.SECONDS) - .connectTimeout(LocaleConstant.HTTP_TIMEOUT, TimeUnit.SECONDS) - .writeTimeout(LocaleConstant.HTTP_TIMEOUT, TimeUnit.SECONDS) - .build(); - - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(ip + function + requestValue) - .get() - .build();//创建Request 对象 - try { - Response response = client.newCall(request).execute(); - emitter.onNext(response.body()); - } catch (IOException e) { - emitter.onError(e); - } - }, Emitter.BackpressureMode.BUFFER).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + Request request = new Request.Builder() + .addHeader("token", AuthenticationHelper.getToken()) + .url(ip + function + requestValue) + .get() + .build();//创建Request 对象 + RequestHub.doRequest(request, new OnHttpRequestListener() { @Override - public void onCompleted() { - + public void onSuccess(Response response) { + listener.onSuccess(response.body()); } @Override - public void onError(Throwable e) { - listener.onFailure(e); - } - - @Override - public void onNext(ResponseBody responseBody) { - listener.onSuccess(responseBody); + public void onFailure(Throwable throwable) { + listener.onFailure(throwable); } }); } public static void doRequest(String url, IHttpRequestListener listener) { - Observable.create(emitter -> { - HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor(new HttpLoggingInterceptor.Logger() { - @Override - public void log(@NotNull String message) { - Log.d(TAG, "log: " + message); - } - }); - interceptor.setLevel(HttpLoggingInterceptor.Level.BODY); - - OkHttpClient client = new OkHttpClient.Builder() - .addInterceptor(interceptor) - .readTimeout(LocaleConstant.HTTP_TIMEOUT, TimeUnit.SECONDS) - .connectTimeout(LocaleConstant.HTTP_TIMEOUT, TimeUnit.SECONDS) - .writeTimeout(LocaleConstant.HTTP_TIMEOUT, TimeUnit.SECONDS) - .build(); - - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(url) - .get() - .build();//创建Request 对象 - try { - Response response = client.newCall(request).execute(); - emitter.onNext(response.body()); - } catch (IOException e) { - emitter.onError(e); - } - }, Emitter.BackpressureMode.BUFFER).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + Request request = new Request.Builder() + .addHeader("token", AuthenticationHelper.getToken()) + .url(url) + .get() + .build();//创建Request 对象 + RequestHub.doRequest(request, new OnHttpRequestListener() { @Override - public void onCompleted() { - + public void onSuccess(Response response) { + listener.onSuccess(response.body()); } @Override - public void onError(Throwable e) { - listener.onFailure(e); - } - - @Override - public void onNext(ResponseBody responseBody) { - listener.onSuccess(responseBody); + public void onFailure(Throwable throwable) { + listener.onFailure(throwable); } }); } diff --git a/app/src/main/java/com/casic/dcms/utils/StringHelper.java b/app/src/main/java/com/casic/dcms/utils/StringHelper.java index c625bb4..1a097cc 100644 --- a/app/src/main/java/com/casic/dcms/utils/StringHelper.java +++ b/app/src/main/java/com/casic/dcms/utils/StringHelper.java @@ -264,8 +264,20 @@ return R.drawable.ic_dtck; case "公厕保洁": return R.drawable.ic_toilet; + case "三包处置": + return R.drawable.ic_sanbao; + case "商铺变更": + return R.drawable.ic_shangpu; + case "部门处置": + return R.drawable.ic_dept; + case "路桥养护": + return R.drawable.ic_bridge; + case "管网管理": + return R.drawable.ic_pipe; + case "路灯管理": + return R.drawable.ic_streetlight; default: - return 0; + return R.drawable.ic_default_icon; } } } diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java index b1a3c67..6d3574d 100644 --- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java +++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java @@ -39,9 +39,7 @@ * token添加到Header */ @GET("/user/info") - Observable getUserData( - @Header("token") String token - ); + Observable getUserData(@Header("token") String token); /** * 获取地图地址 @@ -49,9 +47,7 @@ * token添加到Header */ @GET("/map/server/listPage") - Observable getMapConfig( - @Header("token") String token - ); + Observable getMapConfig(@Header("token") String token); /** * 大类列表查询 @@ -132,9 +128,7 @@ * 退出登录 */ @GET("/user/logout") - Observable loginOut( - @Header("token") String token - ); + Observable loginOut(@Header("token") String token); /** * 修改密码 @@ -152,10 +146,7 @@ * 获取部门树 */ @GET("/dept/tree") - Observable getDeptTree( - @Header("token") String token, - @Query("pid") String pid - ); + Observable getDeptTree(@Header("token") String token, @Query("pid") String pid); /** * 获取通讯录 @@ -193,9 +184,7 @@ * 获取案件状态 */ @GET("/dict/code/caseState") - Observable getCaseStatus( - @Header("token") String token - ); + Observable getCaseStatus(@Header("token") String token); /** * 获取案件列表 @@ -223,10 +212,7 @@ * http://111.198.10.15:11409/case/detail/1372735305680994306 */ @GET("/case/detail/{id}") - Observable obtainCaseDetail( - @Header("token") String token, - @Path("id") String id - ); + Observable obtainCaseDetail(@Header("token") String token, @Path("id") String id); /** * 获取案件流转记录 @@ -241,9 +227,7 @@ * 更新版本 */ @POST("/app/checkVersion") - Observable updateVersion( - @Header("token") String token - ); + Observable updateVersion(@Header("token") String token); /** * 获取核实待办案卷 @@ -407,9 +391,7 @@ * 获取常见语句 */ @GET("/dict/code/commonApproval") - Observable obtainCommonSentence( - @Header("token") String token - ); + Observable obtainCommonSentence(@Header("token") String token); /** * 案卷处理 @@ -532,9 +514,7 @@ * http://111.198.10.15:11409/sanitation/toilet/list */ @GET("/sanitation/toilet/list") - Observable getToiletList( - @Header("token") String token - ); + Observable getToilets(@Header("token") String token); /** * 公厕打扫签到 @@ -789,9 +769,7 @@ * http://111.198.10.15:11409/lampCr/overview/lampList */ @GET("/lightCr/overview/lampList") - Observable obtainLightList( - @Header("token") String token - ); + Observable obtainLightList(@Header("token") String token); /** * 路灯详情 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 5c31b0a..8876060 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 @@ -411,8 +411,8 @@ /** * 公厕列表 */ - public static Observable getToiletList() { - return api.getToiletList(AuthenticationHelper.getToken()); + public static Observable getToilets() { + return api.getToilets(AuthenticationHelper.getToken()); } /** 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 e709752..d7bf511 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java @@ -1,25 +1,23 @@ package com.casic.dcms.view; import android.content.Context; -import android.graphics.Rect; +import android.graphics.Color; +import android.view.View; -import androidx.annotation.Nullable; import androidx.core.content.ContextCompat; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; -import com.casic.dcms.adapter.ProcessLineAdapter; import com.casic.dcms.databinding.ActivityCaseProcessBinding; import com.casic.dcms.model.CaseProcessBean; -import com.casic.dcms.utils.TimeLineDecoration; -import com.casic.dcms.utils.TimeLineDecoration.TimeLineAdapter; import com.casic.dcms.vm.CommonDataViewModel; import com.gyf.immersionbar.ImmersionBar; +import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; +import com.pengxh.androidx.lite.adapter.ViewHolder; import com.pengxh.androidx.lite.base.AndroidxBaseActivity; import com.pengxh.androidx.lite.utils.Constant; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; -import com.qmuiteam.qmui.util.QMUIDisplayHelper; import java.util.ArrayList; import java.util.List; @@ -62,36 +60,33 @@ for (int i = 0; i < size; i++) { dataBeans.add(i, resultBean.getData().get(size - 1 - i)); } - ProcessLineAdapter adapter = new ProcessLineAdapter(context, dataBeans); - TimeLineDecoration decoration = new TimeLineDecoration(context) - .setLineColor(R.color.lightGray) - .setLineWidth(1f) - .setLeftDistance(QMUIDisplayHelper.dp2px(context, 9)) - .setMarkerColor(R.color.lightGray) - .setMarkerRadius(10f) - .setBeginMarkerRadius(10f) - .setBeginMarker(R.drawable.begin_marker) - .setCallback(new TimeLineAdapter() { - @Nullable - @Override - public Rect getRect(int position) { - return new Rect(QMUIDisplayHelper.dp2px(context, 30), - QMUIDisplayHelper.dp2px(context, 10), 0, 0); - } + NormalRecyclerAdapter recyclerAdapter = new NormalRecyclerAdapter(R.layout.item_case_process, dataBeans) { + @Override + public void convertView(ViewHolder viewHolder, int position, CaseProcessBean.DataBean item) { + if (position == 0) { + //最后一项 + viewHolder.setBackgroundColor(R.id.dotView, Color.BLACK); + viewHolder.setTextColor(R.id.operatorNameView, Color.BLACK) + .setTextColor(R.id.statusView, Color.BLACK) + .setTextColor(R.id.operateTimeView, Color.BLACK) + .setTextColor(R.id.remarkView, Color.BLACK); - @Override - public int getTimeLineType(int position) { - if (position == 0) { - return TimeLineDecoration.BEGIN; - } else if (position == adapter.getItemCount() - 1) { - return TimeLineDecoration.END_FULL; - } else { - return TimeLineDecoration.NORMAL; - } - } - }); - viewBinding.processRecyclerView.addItemDecoration(decoration); - viewBinding.processRecyclerView.setAdapter(adapter); + viewHolder.setVisibility(R.id.topLineView, View.INVISIBLE); + viewHolder.setImageResource(R.id.tagImageView, R.drawable.ic_dot_red); + } else if (position == size - 1) { + viewHolder.setVisibility(R.id.bottomLineView, View.INVISIBLE); + viewHolder.setImageResource(R.id.tagImageView, R.drawable.ic_dot_gray); + } else { + viewHolder.setImageResource(R.id.tagImageView, R.drawable.ic_dot); + } + + viewHolder.setText(R.id.statusView, item.getOperationTypeName()) + .setText(R.id.operatorNameView, item.getUserName()) + .setText(R.id.remarkView, item.getRemarks()) + .setText(R.id.operateTimeView, item.getTime()); + } + }; + viewBinding.processRecyclerView.setAdapter(recyclerAdapter); } } }); diff --git a/.idea/misc.xml b/.idea/misc.xml index 12058ca..4f8b20d 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -28,6 +28,9 @@ + + + @@ -39,6 +42,7 @@ + @@ -81,7 +85,8 @@ - + + diff --git a/app/src/main/java/com/casic/dcms/adapter/AnalysisRecycleAdapter.java b/app/src/main/java/com/casic/dcms/adapter/AnalysisRecycleAdapter.java deleted file mode 100644 index 913bde1..0000000 --- a/app/src/main/java/com/casic/dcms/adapter/AnalysisRecycleAdapter.java +++ /dev/null @@ -1,71 +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.utils.LocaleConstant; - -public class AnalysisRecycleAdapter extends RecyclerView.Adapter { - - private final LayoutInflater layoutInflater; - - public AnalysisRecycleAdapter(Context context) { - this.layoutInflater = LayoutInflater.from(context); - } - - @NonNull - @Override - public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - return new ItemViewHolder(layoutInflater.inflate(R.layout.item_home_recycleview, parent, false)); - } - - @Override - public void onBindViewHolder(@NonNull ItemViewHolder holder, @SuppressLint("RecyclerView") int position) { - holder.imageView.setBackgroundResource(LocaleConstant.ANALYSIS_ICONS.get(position)); - holder.textView.setText(LocaleConstant.ANALYSIS_ITEMS.get(position)); - if (clickListener != null) { - holder.itemView.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - clickListener.onClick(position); - } - }); - } - } - - @Override - public int getItemCount() { - return LocaleConstant.ANALYSIS_ITEMS.size(); - } - - private OnGridItemClickListener clickListener; - - public interface OnGridItemClickListener { - void onClick(int position); - } - - public void setOnGridItemClickListener(OnGridItemClickListener onGridItemClickListener) { - this.clickListener = onGridItemClickListener; - } - - static class ItemViewHolder extends RecyclerView.ViewHolder { - - private final ImageView imageView; - private final TextView textView; - - ItemViewHolder(@NonNull View itemView) { - super(itemView); - imageView = itemView.findViewById(R.id.imageView); - textView = itemView.findViewById(R.id.textView); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/adapter/CaseSearchResultAdapter.java b/app/src/main/java/com/casic/dcms/adapter/CaseSearchResultAdapter.java deleted file mode 100644 index 9449f44..0000000 --- a/app/src/main/java/com/casic/dcms/adapter/CaseSearchResultAdapter.java +++ /dev/null @@ -1,94 +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.TextView; - -import androidx.annotation.NonNull; -import androidx.recyclerview.widget.RecyclerView; - -import com.casic.dcms.R; -import com.casic.dcms.model.CaseSearchResultBean; -import com.pengxh.androidx.lite.hub.StringHub; -import com.qmuiteam.qmui.widget.QMUIRadiusImageView; - -import java.util.List; - -public class CaseSearchResultAdapter extends RecyclerView.Adapter { - - private final List dataRows; - private final LayoutInflater layoutInflater; - - public CaseSearchResultAdapter(Context context, List dataRows) { - this.dataRows = dataRows; - this.layoutInflater = LayoutInflater.from(context); - } - - @NonNull - @Override - public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - return new ItemViewHolder(layoutInflater.inflate(R.layout.item_case_rv, parent, false)); - } - - @Override - public void onBindViewHolder(@NonNull ItemViewHolder holder, @SuppressLint("RecyclerView") int position) { - holder.bindView(dataRows.get(position)); - if (clickListener != null) { - holder.itemView.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - clickListener.onClick(position); - } - }); - } - } - - @Override - public int getItemCount() { - return dataRows.size(); - } - - private OnItemClickListener clickListener; - - public interface OnItemClickListener { - void onClick(int position); - } - - public void setOnItemClickListener(OnItemClickListener onItemClickListener) { - this.clickListener = onItemClickListener; - } - - class ItemViewHolder extends RecyclerView.ViewHolder { - - private final QMUIRadiusImageView caseImageView; - private final TextView caseTitleView; - private final TextView casePlaceView; - private final TextView caseTimeView; - - ItemViewHolder(@NonNull View itemView) { - super(itemView); - caseImageView = itemView.findViewById(R.id.caseImageView); - caseTitleView = itemView.findViewById(R.id.caseTitleView); - casePlaceView = itemView.findViewById(R.id.casePlaceView); - caseTimeView = itemView.findViewById(R.id.caseTimeView); - } - - void bindView(CaseSearchResultBean.DataDTO.RowsDTO rowsBean) { - //核实图片 -// String fileIdVerify = rowsBean.getFileIdVerify(); -// if (!TextUtils.isEmpty(fileIdVerify)) { -// String[] split = fileIdVerify.split(","); -// String firstImage = split[0]; -// if (firstImage.endsWith(".jpg") || firstImage.contains(".jpeg") || firstImage.contains(".png")) { -// Glide.with(context).load(StringHelper.appendCompleteURL(firstImage)).into(caseImageView); -// } -// } - caseTitleView.setText(StringHub.filterSpaceOrEnter(rowsBean.getDescription())); - casePlaceView.setText("发生地点:" + StringHub.filterSpaceOrEnter(rowsBean.getFieldintro())); - caseTimeView.setText("上报时间:" + rowsBean.getReportTime()); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/adapter/HomeRecycleAdapter.java b/app/src/main/java/com/casic/dcms/adapter/HomeRecycleAdapter.java deleted file mode 100644 index e6eafa6..0000000 --- a/app/src/main/java/com/casic/dcms/adapter/HomeRecycleAdapter.java +++ /dev/null @@ -1,80 +0,0 @@ -package com.casic.dcms.adapter; - -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.HomePageBean; -import com.casic.dcms.utils.StringHelper; - -import java.util.List; - -public class HomeRecycleAdapter extends RecyclerView.Adapter { - - private final List menuData; - private final LayoutInflater layoutInflater; - - public HomeRecycleAdapter(Context context, List menus) { - this.menuData = menus; - this.layoutInflater = LayoutInflater.from(context); - } - - @NonNull - @Override - public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - return new ItemViewHolder(layoutInflater.inflate(R.layout.item_home_recycleview, parent, false)); - } - - @Override - public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { - String name = menuData.get(position).getName(); - holder.bindView(name); - if (clickListener != null) { - holder.itemView.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - clickListener.onClick(name); - } - }); - } - } - - @Override - public int getItemCount() { - return menuData.size(); - } - - private OnGridItemClickListener clickListener; - - public interface OnGridItemClickListener { - void onClick(String itemName); - } - - public void setOnGridItemClickListener(OnGridItemClickListener onGridItemClickListener) { - this.clickListener = onGridItemClickListener; - } - - static class ItemViewHolder extends RecyclerView.ViewHolder { - - private final ImageView imageView; - private final TextView textView; - - ItemViewHolder(@NonNull View itemView) { - super(itemView); - imageView = itemView.findViewById(R.id.imageView); - textView = itemView.findViewById(R.id.textView); - } - - void bindView(String name) { - imageView.setBackgroundResource(StringHelper.obtainIcon(name)); - textView.setText(name); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/adapter/ProcessLineAdapter.java b/app/src/main/java/com/casic/dcms/adapter/ProcessLineAdapter.java deleted file mode 100644 index 42da4cf..0000000 --- a/app/src/main/java/com/casic/dcms/adapter/ProcessLineAdapter.java +++ /dev/null @@ -1,70 +0,0 @@ -package com.casic.dcms.adapter; - -import android.content.Context; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.TextView; - -import androidx.annotation.NonNull; -import androidx.recyclerview.widget.RecyclerView; - -import com.casic.dcms.R; -import com.casic.dcms.model.CaseProcessBean; - -import org.jetbrains.annotations.NotNull; - -import java.util.List; - -public class ProcessLineAdapter extends RecyclerView.Adapter { - private final List mProcessList; - private final LayoutInflater layoutInflater; - - public ProcessLineAdapter(Context context, List list) { - this.mProcessList = list; - this.layoutInflater = LayoutInflater.from(context); - } - - @NotNull - @Override - public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - return new ViewHolder(layoutInflater.inflate(R.layout.item_case_process, parent, false)); - } - - @Override - public void onBindViewHolder(ViewHolder holder, int position) { - CaseProcessBean.DataBean dataBean = mProcessList.get(position); - String typeName = dataBean.getOperationTypeName(); - holder.operationTypeName.setText(typeName); - holder.handlePersonView.setText(dataBean.getUserName()); - holder.handleTimeView.setText(dataBean.getTime()); - holder.handleResultView.setText(dataBean.getRemarks()); - } - - @Override - public int getItemViewType(int position) { - return super.getItemViewType(position); - } - - @Override - public int getItemCount() { - return mProcessList.size(); - } - - static class ViewHolder extends RecyclerView.ViewHolder { - private final TextView operationTypeName; - private final TextView handlePersonView; - private final TextView handleTimeView; - private final TextView handleResultView; - private final RecyclerView handlePicView; - - public ViewHolder(View view) { - super(view); - operationTypeName = view.findViewById(R.id.operationTypeName); - handlePersonView = view.findViewById(R.id.handlePersonView); - handleTimeView = view.findViewById(R.id.handleTimeView); - handleResultView = view.findViewById(R.id.handleResultView); - handlePicView = view.findViewById(R.id.handlePicView); - } - } -} \ No newline at end of file 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 3b7a194..6b6b72e 100644 --- a/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java @@ -7,7 +7,6 @@ import com.bumptech.glide.Glide; import com.casic.dcms.R; -import com.casic.dcms.adapter.HomeRecycleAdapter; import com.casic.dcms.databinding.FragmentHomeBinding; import com.casic.dcms.model.HomePageBean; import com.casic.dcms.model.UserBean; @@ -33,6 +32,8 @@ import com.casic.dcms.view.UrgentCaseActivity; import com.casic.dcms.view.VerifyCaseActivity; import com.casic.dcms.vm.HomePageViewModel; +import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; +import com.pengxh.androidx.lite.adapter.ViewHolder; import com.pengxh.androidx.lite.base.AndroidxBaseFragment; import com.pengxh.androidx.lite.hub.LongHub; import com.pengxh.androidx.lite.utils.SaveKeyValues; @@ -95,13 +96,18 @@ @Override public void onChanged(HomePageBean resultBean) { if (resultBean.getCode() == 200) { - HomeRecycleAdapter adapter = new HomeRecycleAdapter(requireContext(), resultBean.getData().getMenus()); - viewBinding.homeRecyclerView.setAdapter(adapter); - adapter.setOnGridItemClickListener(new HomeRecycleAdapter.OnGridItemClickListener() { + NormalRecyclerAdapter recyclerAdapter = new NormalRecyclerAdapter(R.layout.item_home_recycleview, resultBean.getData().getMenus()) { @Override - public void onClick(String itemName) { + public void convertView(ViewHolder viewHolder, int position, HomePageBean.DataBean.MenusBean item) { + viewHolder.setImageResource(R.id.imageView, StringHelper.obtainDrawableIcon(item.getName())).setText(R.id.textView, item.getName()); + } + }; + viewBinding.homeRecyclerView.setAdapter(recyclerAdapter); + recyclerAdapter.setOnItemClickedListener(new NormalRecyclerAdapter.OnItemClickedListener() { + @Override + public void onItemClicked(int position, HomePageBean.DataBean.MenusBean menusBean) { Intent intent = new Intent(); - switch (itemName) { + switch (menusBean.getName()) { case "案卷上报": intent.setClass(requireContext(), CommonCaseUploadActivity.class); break; diff --git a/app/src/main/java/com/casic/dcms/model/DataAnalysisGridModel.java b/app/src/main/java/com/casic/dcms/model/DataAnalysisGridModel.java new file mode 100644 index 0000000..3b20a2f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/model/DataAnalysisGridModel.java @@ -0,0 +1,22 @@ +package com.casic.dcms.model; + +public class DataAnalysisGridModel { + private int itemIcon; + private String itemTitle; + + public int getItemIcon() { + return itemIcon; + } + + public void setItemIcon(int itemIcon) { + this.itemIcon = itemIcon; + } + + public String getItemTitle() { + return itemTitle; + } + + public void setItemTitle(String itemTitle) { + this.itemTitle = itemTitle; + } +} diff --git a/app/src/main/java/com/casic/dcms/utils/DataBaseManager.java b/app/src/main/java/com/casic/dcms/utils/DataBaseManager.java index 0a39218..57f0df8 100644 --- a/app/src/main/java/com/casic/dcms/utils/DataBaseManager.java +++ b/app/src/main/java/com/casic/dcms/utils/DataBaseManager.java @@ -127,7 +127,7 @@ toiletListBeanDao.deleteAll(); } - public void saveToiletList(ToiletListModel.DataBean dataBean) { + public void saveToilets(ToiletListModel.DataBean dataBean) { ToiletListBean bean = new ToiletListBean(); bean.setArea(dataBean.getArea()); bean.setCode(dataBean.getCode()); @@ -149,7 +149,7 @@ toiletListBeanDao.save(bean); } - public List getToiletList() { + public List getToilets() { List result = new ArrayList<>(); List listBeans = toiletListBeanDao.loadAll(); for (ToiletListBean toiletBean : listBeans) { diff --git a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java b/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java index 7cb867d..fb0c033 100644 --- a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java +++ b/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java @@ -1,25 +1,12 @@ package com.casic.dcms.utils; -import android.util.Log; - import com.casic.dcms.utils.callback.IHttpRequestListener; +import com.pengxh.androidx.lite.callback.OnHttpRequestListener; +import com.pengxh.androidx.lite.hub.RequestHub; import com.pengxh.androidx.lite.utils.SaveKeyValues; -import org.jetbrains.annotations.NotNull; - -import java.io.IOException; -import java.util.concurrent.TimeUnit; - -import okhttp3.OkHttpClient; import okhttp3.Request; import okhttp3.Response; -import okhttp3.ResponseBody; -import okhttp3.logging.HttpLoggingInterceptor; -import rx.Emitter; -import rx.Observable; -import rx.Observer; -import rx.android.schedulers.AndroidSchedulers; -import rx.schedulers.Schedulers; public class HttpRequestHelper { private static final String TAG = "HttpRequestHelper"; @@ -27,93 +14,39 @@ public static void doRequest(String function, String requestValue, IHttpRequestListener listener) { String ip = (String) SaveKeyValues.getValue(LocaleConstant.IP_KEY, "http://111.198.10.15:11409"); // String ip = (String) SaveKeyValues.getValue(Constant.IP_KEY, "http://223.82.47.232:11401"); - Observable.create(emitter -> { - HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor(new HttpLoggingInterceptor.Logger() { - @Override - public void log(@NotNull String message) { - Log.d(TAG, "log: " + message); - } - }); - interceptor.setLevel(HttpLoggingInterceptor.Level.BODY); - - OkHttpClient client = new OkHttpClient.Builder() - .addInterceptor(interceptor) - .readTimeout(LocaleConstant.HTTP_TIMEOUT, TimeUnit.SECONDS) - .connectTimeout(LocaleConstant.HTTP_TIMEOUT, TimeUnit.SECONDS) - .writeTimeout(LocaleConstant.HTTP_TIMEOUT, TimeUnit.SECONDS) - .build(); - - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(ip + function + requestValue) - .get() - .build();//创建Request 对象 - try { - Response response = client.newCall(request).execute(); - emitter.onNext(response.body()); - } catch (IOException e) { - emitter.onError(e); - } - }, Emitter.BackpressureMode.BUFFER).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + Request request = new Request.Builder() + .addHeader("token", AuthenticationHelper.getToken()) + .url(ip + function + requestValue) + .get() + .build();//创建Request 对象 + RequestHub.doRequest(request, new OnHttpRequestListener() { @Override - public void onCompleted() { - + public void onSuccess(Response response) { + listener.onSuccess(response.body()); } @Override - public void onError(Throwable e) { - listener.onFailure(e); - } - - @Override - public void onNext(ResponseBody responseBody) { - listener.onSuccess(responseBody); + public void onFailure(Throwable throwable) { + listener.onFailure(throwable); } }); } public static void doRequest(String url, IHttpRequestListener listener) { - Observable.create(emitter -> { - HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor(new HttpLoggingInterceptor.Logger() { - @Override - public void log(@NotNull String message) { - Log.d(TAG, "log: " + message); - } - }); - interceptor.setLevel(HttpLoggingInterceptor.Level.BODY); - - OkHttpClient client = new OkHttpClient.Builder() - .addInterceptor(interceptor) - .readTimeout(LocaleConstant.HTTP_TIMEOUT, TimeUnit.SECONDS) - .connectTimeout(LocaleConstant.HTTP_TIMEOUT, TimeUnit.SECONDS) - .writeTimeout(LocaleConstant.HTTP_TIMEOUT, TimeUnit.SECONDS) - .build(); - - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(url) - .get() - .build();//创建Request 对象 - try { - Response response = client.newCall(request).execute(); - emitter.onNext(response.body()); - } catch (IOException e) { - emitter.onError(e); - } - }, Emitter.BackpressureMode.BUFFER).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + Request request = new Request.Builder() + .addHeader("token", AuthenticationHelper.getToken()) + .url(url) + .get() + .build();//创建Request 对象 + RequestHub.doRequest(request, new OnHttpRequestListener() { @Override - public void onCompleted() { - + public void onSuccess(Response response) { + listener.onSuccess(response.body()); } @Override - public void onError(Throwable e) { - listener.onFailure(e); - } - - @Override - public void onNext(ResponseBody responseBody) { - listener.onSuccess(responseBody); + public void onFailure(Throwable throwable) { + listener.onFailure(throwable); } }); } diff --git a/app/src/main/java/com/casic/dcms/utils/StringHelper.java b/app/src/main/java/com/casic/dcms/utils/StringHelper.java index c625bb4..1a097cc 100644 --- a/app/src/main/java/com/casic/dcms/utils/StringHelper.java +++ b/app/src/main/java/com/casic/dcms/utils/StringHelper.java @@ -264,8 +264,20 @@ return R.drawable.ic_dtck; case "公厕保洁": return R.drawable.ic_toilet; + case "三包处置": + return R.drawable.ic_sanbao; + case "商铺变更": + return R.drawable.ic_shangpu; + case "部门处置": + return R.drawable.ic_dept; + case "路桥养护": + return R.drawable.ic_bridge; + case "管网管理": + return R.drawable.ic_pipe; + case "路灯管理": + return R.drawable.ic_streetlight; default: - return 0; + return R.drawable.ic_default_icon; } } } diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java index b1a3c67..6d3574d 100644 --- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java +++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java @@ -39,9 +39,7 @@ * token添加到Header */ @GET("/user/info") - Observable getUserData( - @Header("token") String token - ); + Observable getUserData(@Header("token") String token); /** * 获取地图地址 @@ -49,9 +47,7 @@ * token添加到Header */ @GET("/map/server/listPage") - Observable getMapConfig( - @Header("token") String token - ); + Observable getMapConfig(@Header("token") String token); /** * 大类列表查询 @@ -132,9 +128,7 @@ * 退出登录 */ @GET("/user/logout") - Observable loginOut( - @Header("token") String token - ); + Observable loginOut(@Header("token") String token); /** * 修改密码 @@ -152,10 +146,7 @@ * 获取部门树 */ @GET("/dept/tree") - Observable getDeptTree( - @Header("token") String token, - @Query("pid") String pid - ); + Observable getDeptTree(@Header("token") String token, @Query("pid") String pid); /** * 获取通讯录 @@ -193,9 +184,7 @@ * 获取案件状态 */ @GET("/dict/code/caseState") - Observable getCaseStatus( - @Header("token") String token - ); + Observable getCaseStatus(@Header("token") String token); /** * 获取案件列表 @@ -223,10 +212,7 @@ * http://111.198.10.15:11409/case/detail/1372735305680994306 */ @GET("/case/detail/{id}") - Observable obtainCaseDetail( - @Header("token") String token, - @Path("id") String id - ); + Observable obtainCaseDetail(@Header("token") String token, @Path("id") String id); /** * 获取案件流转记录 @@ -241,9 +227,7 @@ * 更新版本 */ @POST("/app/checkVersion") - Observable updateVersion( - @Header("token") String token - ); + Observable updateVersion(@Header("token") String token); /** * 获取核实待办案卷 @@ -407,9 +391,7 @@ * 获取常见语句 */ @GET("/dict/code/commonApproval") - Observable obtainCommonSentence( - @Header("token") String token - ); + Observable obtainCommonSentence(@Header("token") String token); /** * 案卷处理 @@ -532,9 +514,7 @@ * http://111.198.10.15:11409/sanitation/toilet/list */ @GET("/sanitation/toilet/list") - Observable getToiletList( - @Header("token") String token - ); + Observable getToilets(@Header("token") String token); /** * 公厕打扫签到 @@ -789,9 +769,7 @@ * http://111.198.10.15:11409/lampCr/overview/lampList */ @GET("/lightCr/overview/lampList") - Observable obtainLightList( - @Header("token") String token - ); + Observable obtainLightList(@Header("token") String token); /** * 路灯详情 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 5c31b0a..8876060 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 @@ -411,8 +411,8 @@ /** * 公厕列表 */ - public static Observable getToiletList() { - return api.getToiletList(AuthenticationHelper.getToken()); + public static Observable getToilets() { + return api.getToilets(AuthenticationHelper.getToken()); } /** 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 e709752..d7bf511 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java @@ -1,25 +1,23 @@ package com.casic.dcms.view; import android.content.Context; -import android.graphics.Rect; +import android.graphics.Color; +import android.view.View; -import androidx.annotation.Nullable; import androidx.core.content.ContextCompat; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; -import com.casic.dcms.adapter.ProcessLineAdapter; import com.casic.dcms.databinding.ActivityCaseProcessBinding; import com.casic.dcms.model.CaseProcessBean; -import com.casic.dcms.utils.TimeLineDecoration; -import com.casic.dcms.utils.TimeLineDecoration.TimeLineAdapter; import com.casic.dcms.vm.CommonDataViewModel; import com.gyf.immersionbar.ImmersionBar; +import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; +import com.pengxh.androidx.lite.adapter.ViewHolder; import com.pengxh.androidx.lite.base.AndroidxBaseActivity; import com.pengxh.androidx.lite.utils.Constant; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; -import com.qmuiteam.qmui.util.QMUIDisplayHelper; import java.util.ArrayList; import java.util.List; @@ -62,36 +60,33 @@ for (int i = 0; i < size; i++) { dataBeans.add(i, resultBean.getData().get(size - 1 - i)); } - ProcessLineAdapter adapter = new ProcessLineAdapter(context, dataBeans); - TimeLineDecoration decoration = new TimeLineDecoration(context) - .setLineColor(R.color.lightGray) - .setLineWidth(1f) - .setLeftDistance(QMUIDisplayHelper.dp2px(context, 9)) - .setMarkerColor(R.color.lightGray) - .setMarkerRadius(10f) - .setBeginMarkerRadius(10f) - .setBeginMarker(R.drawable.begin_marker) - .setCallback(new TimeLineAdapter() { - @Nullable - @Override - public Rect getRect(int position) { - return new Rect(QMUIDisplayHelper.dp2px(context, 30), - QMUIDisplayHelper.dp2px(context, 10), 0, 0); - } + NormalRecyclerAdapter recyclerAdapter = new NormalRecyclerAdapter(R.layout.item_case_process, dataBeans) { + @Override + public void convertView(ViewHolder viewHolder, int position, CaseProcessBean.DataBean item) { + if (position == 0) { + //最后一项 + viewHolder.setBackgroundColor(R.id.dotView, Color.BLACK); + viewHolder.setTextColor(R.id.operatorNameView, Color.BLACK) + .setTextColor(R.id.statusView, Color.BLACK) + .setTextColor(R.id.operateTimeView, Color.BLACK) + .setTextColor(R.id.remarkView, Color.BLACK); - @Override - public int getTimeLineType(int position) { - if (position == 0) { - return TimeLineDecoration.BEGIN; - } else if (position == adapter.getItemCount() - 1) { - return TimeLineDecoration.END_FULL; - } else { - return TimeLineDecoration.NORMAL; - } - } - }); - viewBinding.processRecyclerView.addItemDecoration(decoration); - viewBinding.processRecyclerView.setAdapter(adapter); + viewHolder.setVisibility(R.id.topLineView, View.INVISIBLE); + viewHolder.setImageResource(R.id.tagImageView, R.drawable.ic_dot_red); + } else if (position == size - 1) { + viewHolder.setVisibility(R.id.bottomLineView, View.INVISIBLE); + viewHolder.setImageResource(R.id.tagImageView, R.drawable.ic_dot_gray); + } else { + viewHolder.setImageResource(R.id.tagImageView, R.drawable.ic_dot); + } + + viewHolder.setText(R.id.statusView, item.getOperationTypeName()) + .setText(R.id.operatorNameView, item.getUserName()) + .setText(R.id.remarkView, item.getRemarks()) + .setText(R.id.operateTimeView, item.getTime()); + } + }; + viewBinding.processRecyclerView.setAdapter(recyclerAdapter); } } }); 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 6c8b259..0a65da1 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java @@ -10,12 +10,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; -import com.casic.dcms.adapter.CaseSearchResultAdapter; import com.casic.dcms.databinding.ActivityCaseListBinding; import com.casic.dcms.model.CaseSearchResultBean; import com.casic.dcms.utils.DialogHelper; import com.casic.dcms.vm.CaseViewModel; import com.gyf.immersionbar.ImmersionBar; +import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; +import com.pengxh.androidx.lite.adapter.ViewHolder; import com.pengxh.androidx.lite.base.AndroidxBaseActivity; import com.pengxh.androidx.lite.hub.ContextHub; import com.pengxh.androidx.lite.hub.StringHub; @@ -34,7 +35,7 @@ private final Context context = this; private WeakReferenceHandler weakReferenceHandler; private CaseViewModel caseViewModel; - private CaseSearchResultAdapter adapter; + private NormalRecyclerAdapter adapter; private String typeCode; private String typeDetailCode; private String caseState; @@ -157,16 +158,29 @@ }); } else { viewBinding.emptyView.hide(); - adapter = new CaseSearchResultAdapter(context, dataBeans); - viewBinding.caseRecyclerView.setAdapter(adapter); - adapter.setOnItemClickListener(new CaseSearchResultAdapter.OnItemClickListener() { + adapter = new NormalRecyclerAdapter(R.layout.item_case_rv, dataBeans) { + @Override - public void onClick(int position) { - ContextHub.navigatePageTo( - context, - CaseDetailActivity.class, - dataBeans.get(position).getId() - ); + public void convertView(ViewHolder viewHolder, int position, CaseSearchResultBean.DataDTO.RowsDTO item) { + //核实图片 +// String fileIdVerify = rowsBean.getFileIdVerify(); +// if (!TextUtils.isEmpty(fileIdVerify)) { +// String[] split = fileIdVerify.split(","); +// String firstImage = split[0]; +// if (firstImage.endsWith(".jpg") || firstImage.contains(".jpeg") || firstImage.contains(".png")) { +// Glide.with(context).load(StringHelper.appendCompleteURL(firstImage)).into(caseImageView); +// } +// } + viewHolder.setText(R.id.caseTitleView, StringHub.filterSpaceOrEnter(item.getDescription())) + .setText(R.id.casePlaceView, "发生地点:" + StringHub.filterSpaceOrEnter(item.getFieldintro())) + .setText(R.id.caseTimeView, "上报时间:" + item.getReportTime()); + } + }; + viewBinding.caseRecyclerView.setAdapter(adapter); + adapter.setOnItemClickedListener(new NormalRecyclerAdapter.OnItemClickedListener() { + @Override + public void onItemClicked(int position, CaseSearchResultBean.DataDTO.RowsDTO rowsDTO) { + ContextHub.navigatePageTo(context, CaseDetailActivity.class, rowsDTO.getId()); } }); } diff --git a/.idea/misc.xml b/.idea/misc.xml index 12058ca..4f8b20d 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -28,6 +28,9 @@ + + + @@ -39,6 +42,7 @@ + @@ -81,7 +85,8 @@ - + + diff --git a/app/src/main/java/com/casic/dcms/adapter/AnalysisRecycleAdapter.java b/app/src/main/java/com/casic/dcms/adapter/AnalysisRecycleAdapter.java deleted file mode 100644 index 913bde1..0000000 --- a/app/src/main/java/com/casic/dcms/adapter/AnalysisRecycleAdapter.java +++ /dev/null @@ -1,71 +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.utils.LocaleConstant; - -public class AnalysisRecycleAdapter extends RecyclerView.Adapter { - - private final LayoutInflater layoutInflater; - - public AnalysisRecycleAdapter(Context context) { - this.layoutInflater = LayoutInflater.from(context); - } - - @NonNull - @Override - public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - return new ItemViewHolder(layoutInflater.inflate(R.layout.item_home_recycleview, parent, false)); - } - - @Override - public void onBindViewHolder(@NonNull ItemViewHolder holder, @SuppressLint("RecyclerView") int position) { - holder.imageView.setBackgroundResource(LocaleConstant.ANALYSIS_ICONS.get(position)); - holder.textView.setText(LocaleConstant.ANALYSIS_ITEMS.get(position)); - if (clickListener != null) { - holder.itemView.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - clickListener.onClick(position); - } - }); - } - } - - @Override - public int getItemCount() { - return LocaleConstant.ANALYSIS_ITEMS.size(); - } - - private OnGridItemClickListener clickListener; - - public interface OnGridItemClickListener { - void onClick(int position); - } - - public void setOnGridItemClickListener(OnGridItemClickListener onGridItemClickListener) { - this.clickListener = onGridItemClickListener; - } - - static class ItemViewHolder extends RecyclerView.ViewHolder { - - private final ImageView imageView; - private final TextView textView; - - ItemViewHolder(@NonNull View itemView) { - super(itemView); - imageView = itemView.findViewById(R.id.imageView); - textView = itemView.findViewById(R.id.textView); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/adapter/CaseSearchResultAdapter.java b/app/src/main/java/com/casic/dcms/adapter/CaseSearchResultAdapter.java deleted file mode 100644 index 9449f44..0000000 --- a/app/src/main/java/com/casic/dcms/adapter/CaseSearchResultAdapter.java +++ /dev/null @@ -1,94 +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.TextView; - -import androidx.annotation.NonNull; -import androidx.recyclerview.widget.RecyclerView; - -import com.casic.dcms.R; -import com.casic.dcms.model.CaseSearchResultBean; -import com.pengxh.androidx.lite.hub.StringHub; -import com.qmuiteam.qmui.widget.QMUIRadiusImageView; - -import java.util.List; - -public class CaseSearchResultAdapter extends RecyclerView.Adapter { - - private final List dataRows; - private final LayoutInflater layoutInflater; - - public CaseSearchResultAdapter(Context context, List dataRows) { - this.dataRows = dataRows; - this.layoutInflater = LayoutInflater.from(context); - } - - @NonNull - @Override - public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - return new ItemViewHolder(layoutInflater.inflate(R.layout.item_case_rv, parent, false)); - } - - @Override - public void onBindViewHolder(@NonNull ItemViewHolder holder, @SuppressLint("RecyclerView") int position) { - holder.bindView(dataRows.get(position)); - if (clickListener != null) { - holder.itemView.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - clickListener.onClick(position); - } - }); - } - } - - @Override - public int getItemCount() { - return dataRows.size(); - } - - private OnItemClickListener clickListener; - - public interface OnItemClickListener { - void onClick(int position); - } - - public void setOnItemClickListener(OnItemClickListener onItemClickListener) { - this.clickListener = onItemClickListener; - } - - class ItemViewHolder extends RecyclerView.ViewHolder { - - private final QMUIRadiusImageView caseImageView; - private final TextView caseTitleView; - private final TextView casePlaceView; - private final TextView caseTimeView; - - ItemViewHolder(@NonNull View itemView) { - super(itemView); - caseImageView = itemView.findViewById(R.id.caseImageView); - caseTitleView = itemView.findViewById(R.id.caseTitleView); - casePlaceView = itemView.findViewById(R.id.casePlaceView); - caseTimeView = itemView.findViewById(R.id.caseTimeView); - } - - void bindView(CaseSearchResultBean.DataDTO.RowsDTO rowsBean) { - //核实图片 -// String fileIdVerify = rowsBean.getFileIdVerify(); -// if (!TextUtils.isEmpty(fileIdVerify)) { -// String[] split = fileIdVerify.split(","); -// String firstImage = split[0]; -// if (firstImage.endsWith(".jpg") || firstImage.contains(".jpeg") || firstImage.contains(".png")) { -// Glide.with(context).load(StringHelper.appendCompleteURL(firstImage)).into(caseImageView); -// } -// } - caseTitleView.setText(StringHub.filterSpaceOrEnter(rowsBean.getDescription())); - casePlaceView.setText("发生地点:" + StringHub.filterSpaceOrEnter(rowsBean.getFieldintro())); - caseTimeView.setText("上报时间:" + rowsBean.getReportTime()); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/adapter/HomeRecycleAdapter.java b/app/src/main/java/com/casic/dcms/adapter/HomeRecycleAdapter.java deleted file mode 100644 index e6eafa6..0000000 --- a/app/src/main/java/com/casic/dcms/adapter/HomeRecycleAdapter.java +++ /dev/null @@ -1,80 +0,0 @@ -package com.casic.dcms.adapter; - -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.HomePageBean; -import com.casic.dcms.utils.StringHelper; - -import java.util.List; - -public class HomeRecycleAdapter extends RecyclerView.Adapter { - - private final List menuData; - private final LayoutInflater layoutInflater; - - public HomeRecycleAdapter(Context context, List menus) { - this.menuData = menus; - this.layoutInflater = LayoutInflater.from(context); - } - - @NonNull - @Override - public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - return new ItemViewHolder(layoutInflater.inflate(R.layout.item_home_recycleview, parent, false)); - } - - @Override - public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { - String name = menuData.get(position).getName(); - holder.bindView(name); - if (clickListener != null) { - holder.itemView.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - clickListener.onClick(name); - } - }); - } - } - - @Override - public int getItemCount() { - return menuData.size(); - } - - private OnGridItemClickListener clickListener; - - public interface OnGridItemClickListener { - void onClick(String itemName); - } - - public void setOnGridItemClickListener(OnGridItemClickListener onGridItemClickListener) { - this.clickListener = onGridItemClickListener; - } - - static class ItemViewHolder extends RecyclerView.ViewHolder { - - private final ImageView imageView; - private final TextView textView; - - ItemViewHolder(@NonNull View itemView) { - super(itemView); - imageView = itemView.findViewById(R.id.imageView); - textView = itemView.findViewById(R.id.textView); - } - - void bindView(String name) { - imageView.setBackgroundResource(StringHelper.obtainIcon(name)); - textView.setText(name); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/adapter/ProcessLineAdapter.java b/app/src/main/java/com/casic/dcms/adapter/ProcessLineAdapter.java deleted file mode 100644 index 42da4cf..0000000 --- a/app/src/main/java/com/casic/dcms/adapter/ProcessLineAdapter.java +++ /dev/null @@ -1,70 +0,0 @@ -package com.casic.dcms.adapter; - -import android.content.Context; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.TextView; - -import androidx.annotation.NonNull; -import androidx.recyclerview.widget.RecyclerView; - -import com.casic.dcms.R; -import com.casic.dcms.model.CaseProcessBean; - -import org.jetbrains.annotations.NotNull; - -import java.util.List; - -public class ProcessLineAdapter extends RecyclerView.Adapter { - private final List mProcessList; - private final LayoutInflater layoutInflater; - - public ProcessLineAdapter(Context context, List list) { - this.mProcessList = list; - this.layoutInflater = LayoutInflater.from(context); - } - - @NotNull - @Override - public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - return new ViewHolder(layoutInflater.inflate(R.layout.item_case_process, parent, false)); - } - - @Override - public void onBindViewHolder(ViewHolder holder, int position) { - CaseProcessBean.DataBean dataBean = mProcessList.get(position); - String typeName = dataBean.getOperationTypeName(); - holder.operationTypeName.setText(typeName); - holder.handlePersonView.setText(dataBean.getUserName()); - holder.handleTimeView.setText(dataBean.getTime()); - holder.handleResultView.setText(dataBean.getRemarks()); - } - - @Override - public int getItemViewType(int position) { - return super.getItemViewType(position); - } - - @Override - public int getItemCount() { - return mProcessList.size(); - } - - static class ViewHolder extends RecyclerView.ViewHolder { - private final TextView operationTypeName; - private final TextView handlePersonView; - private final TextView handleTimeView; - private final TextView handleResultView; - private final RecyclerView handlePicView; - - public ViewHolder(View view) { - super(view); - operationTypeName = view.findViewById(R.id.operationTypeName); - handlePersonView = view.findViewById(R.id.handlePersonView); - handleTimeView = view.findViewById(R.id.handleTimeView); - handleResultView = view.findViewById(R.id.handleResultView); - handlePicView = view.findViewById(R.id.handlePicView); - } - } -} \ No newline at end of file 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 3b7a194..6b6b72e 100644 --- a/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java @@ -7,7 +7,6 @@ import com.bumptech.glide.Glide; import com.casic.dcms.R; -import com.casic.dcms.adapter.HomeRecycleAdapter; import com.casic.dcms.databinding.FragmentHomeBinding; import com.casic.dcms.model.HomePageBean; import com.casic.dcms.model.UserBean; @@ -33,6 +32,8 @@ import com.casic.dcms.view.UrgentCaseActivity; import com.casic.dcms.view.VerifyCaseActivity; import com.casic.dcms.vm.HomePageViewModel; +import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; +import com.pengxh.androidx.lite.adapter.ViewHolder; import com.pengxh.androidx.lite.base.AndroidxBaseFragment; import com.pengxh.androidx.lite.hub.LongHub; import com.pengxh.androidx.lite.utils.SaveKeyValues; @@ -95,13 +96,18 @@ @Override public void onChanged(HomePageBean resultBean) { if (resultBean.getCode() == 200) { - HomeRecycleAdapter adapter = new HomeRecycleAdapter(requireContext(), resultBean.getData().getMenus()); - viewBinding.homeRecyclerView.setAdapter(adapter); - adapter.setOnGridItemClickListener(new HomeRecycleAdapter.OnGridItemClickListener() { + NormalRecyclerAdapter recyclerAdapter = new NormalRecyclerAdapter(R.layout.item_home_recycleview, resultBean.getData().getMenus()) { @Override - public void onClick(String itemName) { + public void convertView(ViewHolder viewHolder, int position, HomePageBean.DataBean.MenusBean item) { + viewHolder.setImageResource(R.id.imageView, StringHelper.obtainDrawableIcon(item.getName())).setText(R.id.textView, item.getName()); + } + }; + viewBinding.homeRecyclerView.setAdapter(recyclerAdapter); + recyclerAdapter.setOnItemClickedListener(new NormalRecyclerAdapter.OnItemClickedListener() { + @Override + public void onItemClicked(int position, HomePageBean.DataBean.MenusBean menusBean) { Intent intent = new Intent(); - switch (itemName) { + switch (menusBean.getName()) { case "案卷上报": intent.setClass(requireContext(), CommonCaseUploadActivity.class); break; diff --git a/app/src/main/java/com/casic/dcms/model/DataAnalysisGridModel.java b/app/src/main/java/com/casic/dcms/model/DataAnalysisGridModel.java new file mode 100644 index 0000000..3b20a2f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/model/DataAnalysisGridModel.java @@ -0,0 +1,22 @@ +package com.casic.dcms.model; + +public class DataAnalysisGridModel { + private int itemIcon; + private String itemTitle; + + public int getItemIcon() { + return itemIcon; + } + + public void setItemIcon(int itemIcon) { + this.itemIcon = itemIcon; + } + + public String getItemTitle() { + return itemTitle; + } + + public void setItemTitle(String itemTitle) { + this.itemTitle = itemTitle; + } +} diff --git a/app/src/main/java/com/casic/dcms/utils/DataBaseManager.java b/app/src/main/java/com/casic/dcms/utils/DataBaseManager.java index 0a39218..57f0df8 100644 --- a/app/src/main/java/com/casic/dcms/utils/DataBaseManager.java +++ b/app/src/main/java/com/casic/dcms/utils/DataBaseManager.java @@ -127,7 +127,7 @@ toiletListBeanDao.deleteAll(); } - public void saveToiletList(ToiletListModel.DataBean dataBean) { + public void saveToilets(ToiletListModel.DataBean dataBean) { ToiletListBean bean = new ToiletListBean(); bean.setArea(dataBean.getArea()); bean.setCode(dataBean.getCode()); @@ -149,7 +149,7 @@ toiletListBeanDao.save(bean); } - public List getToiletList() { + public List getToilets() { List result = new ArrayList<>(); List listBeans = toiletListBeanDao.loadAll(); for (ToiletListBean toiletBean : listBeans) { diff --git a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java b/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java index 7cb867d..fb0c033 100644 --- a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java +++ b/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java @@ -1,25 +1,12 @@ package com.casic.dcms.utils; -import android.util.Log; - import com.casic.dcms.utils.callback.IHttpRequestListener; +import com.pengxh.androidx.lite.callback.OnHttpRequestListener; +import com.pengxh.androidx.lite.hub.RequestHub; import com.pengxh.androidx.lite.utils.SaveKeyValues; -import org.jetbrains.annotations.NotNull; - -import java.io.IOException; -import java.util.concurrent.TimeUnit; - -import okhttp3.OkHttpClient; import okhttp3.Request; import okhttp3.Response; -import okhttp3.ResponseBody; -import okhttp3.logging.HttpLoggingInterceptor; -import rx.Emitter; -import rx.Observable; -import rx.Observer; -import rx.android.schedulers.AndroidSchedulers; -import rx.schedulers.Schedulers; public class HttpRequestHelper { private static final String TAG = "HttpRequestHelper"; @@ -27,93 +14,39 @@ public static void doRequest(String function, String requestValue, IHttpRequestListener listener) { String ip = (String) SaveKeyValues.getValue(LocaleConstant.IP_KEY, "http://111.198.10.15:11409"); // String ip = (String) SaveKeyValues.getValue(Constant.IP_KEY, "http://223.82.47.232:11401"); - Observable.create(emitter -> { - HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor(new HttpLoggingInterceptor.Logger() { - @Override - public void log(@NotNull String message) { - Log.d(TAG, "log: " + message); - } - }); - interceptor.setLevel(HttpLoggingInterceptor.Level.BODY); - - OkHttpClient client = new OkHttpClient.Builder() - .addInterceptor(interceptor) - .readTimeout(LocaleConstant.HTTP_TIMEOUT, TimeUnit.SECONDS) - .connectTimeout(LocaleConstant.HTTP_TIMEOUT, TimeUnit.SECONDS) - .writeTimeout(LocaleConstant.HTTP_TIMEOUT, TimeUnit.SECONDS) - .build(); - - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(ip + function + requestValue) - .get() - .build();//创建Request 对象 - try { - Response response = client.newCall(request).execute(); - emitter.onNext(response.body()); - } catch (IOException e) { - emitter.onError(e); - } - }, Emitter.BackpressureMode.BUFFER).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + Request request = new Request.Builder() + .addHeader("token", AuthenticationHelper.getToken()) + .url(ip + function + requestValue) + .get() + .build();//创建Request 对象 + RequestHub.doRequest(request, new OnHttpRequestListener() { @Override - public void onCompleted() { - + public void onSuccess(Response response) { + listener.onSuccess(response.body()); } @Override - public void onError(Throwable e) { - listener.onFailure(e); - } - - @Override - public void onNext(ResponseBody responseBody) { - listener.onSuccess(responseBody); + public void onFailure(Throwable throwable) { + listener.onFailure(throwable); } }); } public static void doRequest(String url, IHttpRequestListener listener) { - Observable.create(emitter -> { - HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor(new HttpLoggingInterceptor.Logger() { - @Override - public void log(@NotNull String message) { - Log.d(TAG, "log: " + message); - } - }); - interceptor.setLevel(HttpLoggingInterceptor.Level.BODY); - - OkHttpClient client = new OkHttpClient.Builder() - .addInterceptor(interceptor) - .readTimeout(LocaleConstant.HTTP_TIMEOUT, TimeUnit.SECONDS) - .connectTimeout(LocaleConstant.HTTP_TIMEOUT, TimeUnit.SECONDS) - .writeTimeout(LocaleConstant.HTTP_TIMEOUT, TimeUnit.SECONDS) - .build(); - - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(url) - .get() - .build();//创建Request 对象 - try { - Response response = client.newCall(request).execute(); - emitter.onNext(response.body()); - } catch (IOException e) { - emitter.onError(e); - } - }, Emitter.BackpressureMode.BUFFER).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + Request request = new Request.Builder() + .addHeader("token", AuthenticationHelper.getToken()) + .url(url) + .get() + .build();//创建Request 对象 + RequestHub.doRequest(request, new OnHttpRequestListener() { @Override - public void onCompleted() { - + public void onSuccess(Response response) { + listener.onSuccess(response.body()); } @Override - public void onError(Throwable e) { - listener.onFailure(e); - } - - @Override - public void onNext(ResponseBody responseBody) { - listener.onSuccess(responseBody); + public void onFailure(Throwable throwable) { + listener.onFailure(throwable); } }); } diff --git a/app/src/main/java/com/casic/dcms/utils/StringHelper.java b/app/src/main/java/com/casic/dcms/utils/StringHelper.java index c625bb4..1a097cc 100644 --- a/app/src/main/java/com/casic/dcms/utils/StringHelper.java +++ b/app/src/main/java/com/casic/dcms/utils/StringHelper.java @@ -264,8 +264,20 @@ return R.drawable.ic_dtck; case "公厕保洁": return R.drawable.ic_toilet; + case "三包处置": + return R.drawable.ic_sanbao; + case "商铺变更": + return R.drawable.ic_shangpu; + case "部门处置": + return R.drawable.ic_dept; + case "路桥养护": + return R.drawable.ic_bridge; + case "管网管理": + return R.drawable.ic_pipe; + case "路灯管理": + return R.drawable.ic_streetlight; default: - return 0; + return R.drawable.ic_default_icon; } } } diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java index b1a3c67..6d3574d 100644 --- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java +++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java @@ -39,9 +39,7 @@ * token添加到Header */ @GET("/user/info") - Observable getUserData( - @Header("token") String token - ); + Observable getUserData(@Header("token") String token); /** * 获取地图地址 @@ -49,9 +47,7 @@ * token添加到Header */ @GET("/map/server/listPage") - Observable getMapConfig( - @Header("token") String token - ); + Observable getMapConfig(@Header("token") String token); /** * 大类列表查询 @@ -132,9 +128,7 @@ * 退出登录 */ @GET("/user/logout") - Observable loginOut( - @Header("token") String token - ); + Observable loginOut(@Header("token") String token); /** * 修改密码 @@ -152,10 +146,7 @@ * 获取部门树 */ @GET("/dept/tree") - Observable getDeptTree( - @Header("token") String token, - @Query("pid") String pid - ); + Observable getDeptTree(@Header("token") String token, @Query("pid") String pid); /** * 获取通讯录 @@ -193,9 +184,7 @@ * 获取案件状态 */ @GET("/dict/code/caseState") - Observable getCaseStatus( - @Header("token") String token - ); + Observable getCaseStatus(@Header("token") String token); /** * 获取案件列表 @@ -223,10 +212,7 @@ * http://111.198.10.15:11409/case/detail/1372735305680994306 */ @GET("/case/detail/{id}") - Observable obtainCaseDetail( - @Header("token") String token, - @Path("id") String id - ); + Observable obtainCaseDetail(@Header("token") String token, @Path("id") String id); /** * 获取案件流转记录 @@ -241,9 +227,7 @@ * 更新版本 */ @POST("/app/checkVersion") - Observable updateVersion( - @Header("token") String token - ); + Observable updateVersion(@Header("token") String token); /** * 获取核实待办案卷 @@ -407,9 +391,7 @@ * 获取常见语句 */ @GET("/dict/code/commonApproval") - Observable obtainCommonSentence( - @Header("token") String token - ); + Observable obtainCommonSentence(@Header("token") String token); /** * 案卷处理 @@ -532,9 +514,7 @@ * http://111.198.10.15:11409/sanitation/toilet/list */ @GET("/sanitation/toilet/list") - Observable getToiletList( - @Header("token") String token - ); + Observable getToilets(@Header("token") String token); /** * 公厕打扫签到 @@ -789,9 +769,7 @@ * http://111.198.10.15:11409/lampCr/overview/lampList */ @GET("/lightCr/overview/lampList") - Observable obtainLightList( - @Header("token") String token - ); + Observable obtainLightList(@Header("token") String token); /** * 路灯详情 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 5c31b0a..8876060 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 @@ -411,8 +411,8 @@ /** * 公厕列表 */ - public static Observable getToiletList() { - return api.getToiletList(AuthenticationHelper.getToken()); + public static Observable getToilets() { + return api.getToilets(AuthenticationHelper.getToken()); } /** 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 e709752..d7bf511 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java @@ -1,25 +1,23 @@ package com.casic.dcms.view; import android.content.Context; -import android.graphics.Rect; +import android.graphics.Color; +import android.view.View; -import androidx.annotation.Nullable; import androidx.core.content.ContextCompat; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; -import com.casic.dcms.adapter.ProcessLineAdapter; import com.casic.dcms.databinding.ActivityCaseProcessBinding; import com.casic.dcms.model.CaseProcessBean; -import com.casic.dcms.utils.TimeLineDecoration; -import com.casic.dcms.utils.TimeLineDecoration.TimeLineAdapter; import com.casic.dcms.vm.CommonDataViewModel; import com.gyf.immersionbar.ImmersionBar; +import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; +import com.pengxh.androidx.lite.adapter.ViewHolder; import com.pengxh.androidx.lite.base.AndroidxBaseActivity; import com.pengxh.androidx.lite.utils.Constant; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; -import com.qmuiteam.qmui.util.QMUIDisplayHelper; import java.util.ArrayList; import java.util.List; @@ -62,36 +60,33 @@ for (int i = 0; i < size; i++) { dataBeans.add(i, resultBean.getData().get(size - 1 - i)); } - ProcessLineAdapter adapter = new ProcessLineAdapter(context, dataBeans); - TimeLineDecoration decoration = new TimeLineDecoration(context) - .setLineColor(R.color.lightGray) - .setLineWidth(1f) - .setLeftDistance(QMUIDisplayHelper.dp2px(context, 9)) - .setMarkerColor(R.color.lightGray) - .setMarkerRadius(10f) - .setBeginMarkerRadius(10f) - .setBeginMarker(R.drawable.begin_marker) - .setCallback(new TimeLineAdapter() { - @Nullable - @Override - public Rect getRect(int position) { - return new Rect(QMUIDisplayHelper.dp2px(context, 30), - QMUIDisplayHelper.dp2px(context, 10), 0, 0); - } + NormalRecyclerAdapter recyclerAdapter = new NormalRecyclerAdapter(R.layout.item_case_process, dataBeans) { + @Override + public void convertView(ViewHolder viewHolder, int position, CaseProcessBean.DataBean item) { + if (position == 0) { + //最后一项 + viewHolder.setBackgroundColor(R.id.dotView, Color.BLACK); + viewHolder.setTextColor(R.id.operatorNameView, Color.BLACK) + .setTextColor(R.id.statusView, Color.BLACK) + .setTextColor(R.id.operateTimeView, Color.BLACK) + .setTextColor(R.id.remarkView, Color.BLACK); - @Override - public int getTimeLineType(int position) { - if (position == 0) { - return TimeLineDecoration.BEGIN; - } else if (position == adapter.getItemCount() - 1) { - return TimeLineDecoration.END_FULL; - } else { - return TimeLineDecoration.NORMAL; - } - } - }); - viewBinding.processRecyclerView.addItemDecoration(decoration); - viewBinding.processRecyclerView.setAdapter(adapter); + viewHolder.setVisibility(R.id.topLineView, View.INVISIBLE); + viewHolder.setImageResource(R.id.tagImageView, R.drawable.ic_dot_red); + } else if (position == size - 1) { + viewHolder.setVisibility(R.id.bottomLineView, View.INVISIBLE); + viewHolder.setImageResource(R.id.tagImageView, R.drawable.ic_dot_gray); + } else { + viewHolder.setImageResource(R.id.tagImageView, R.drawable.ic_dot); + } + + viewHolder.setText(R.id.statusView, item.getOperationTypeName()) + .setText(R.id.operatorNameView, item.getUserName()) + .setText(R.id.remarkView, item.getRemarks()) + .setText(R.id.operateTimeView, item.getTime()); + } + }; + viewBinding.processRecyclerView.setAdapter(recyclerAdapter); } } }); 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 6c8b259..0a65da1 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java @@ -10,12 +10,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; -import com.casic.dcms.adapter.CaseSearchResultAdapter; import com.casic.dcms.databinding.ActivityCaseListBinding; import com.casic.dcms.model.CaseSearchResultBean; import com.casic.dcms.utils.DialogHelper; import com.casic.dcms.vm.CaseViewModel; import com.gyf.immersionbar.ImmersionBar; +import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; +import com.pengxh.androidx.lite.adapter.ViewHolder; import com.pengxh.androidx.lite.base.AndroidxBaseActivity; import com.pengxh.androidx.lite.hub.ContextHub; import com.pengxh.androidx.lite.hub.StringHub; @@ -34,7 +35,7 @@ private final Context context = this; private WeakReferenceHandler weakReferenceHandler; private CaseViewModel caseViewModel; - private CaseSearchResultAdapter adapter; + private NormalRecyclerAdapter adapter; private String typeCode; private String typeDetailCode; private String caseState; @@ -157,16 +158,29 @@ }); } else { viewBinding.emptyView.hide(); - adapter = new CaseSearchResultAdapter(context, dataBeans); - viewBinding.caseRecyclerView.setAdapter(adapter); - adapter.setOnItemClickListener(new CaseSearchResultAdapter.OnItemClickListener() { + adapter = new NormalRecyclerAdapter(R.layout.item_case_rv, dataBeans) { + @Override - public void onClick(int position) { - ContextHub.navigatePageTo( - context, - CaseDetailActivity.class, - dataBeans.get(position).getId() - ); + public void convertView(ViewHolder viewHolder, int position, CaseSearchResultBean.DataDTO.RowsDTO item) { + //核实图片 +// String fileIdVerify = rowsBean.getFileIdVerify(); +// if (!TextUtils.isEmpty(fileIdVerify)) { +// String[] split = fileIdVerify.split(","); +// String firstImage = split[0]; +// if (firstImage.endsWith(".jpg") || firstImage.contains(".jpeg") || firstImage.contains(".png")) { +// Glide.with(context).load(StringHelper.appendCompleteURL(firstImage)).into(caseImageView); +// } +// } + viewHolder.setText(R.id.caseTitleView, StringHub.filterSpaceOrEnter(item.getDescription())) + .setText(R.id.casePlaceView, "发生地点:" + StringHub.filterSpaceOrEnter(item.getFieldintro())) + .setText(R.id.caseTimeView, "上报时间:" + item.getReportTime()); + } + }; + viewBinding.caseRecyclerView.setAdapter(adapter); + adapter.setOnItemClickedListener(new NormalRecyclerAdapter.OnItemClickedListener() { + @Override + public void onItemClicked(int position, CaseSearchResultBean.DataDTO.RowsDTO rowsDTO) { + ContextHub.navigatePageTo(context, CaseDetailActivity.class, rowsDTO.getId()); } }); } diff --git a/app/src/main/java/com/casic/dcms/view/DataAnalysisActivity.java b/app/src/main/java/com/casic/dcms/view/DataAnalysisActivity.java index c3bff07..29d576b 100644 --- a/app/src/main/java/com/casic/dcms/view/DataAnalysisActivity.java +++ b/app/src/main/java/com/casic/dcms/view/DataAnalysisActivity.java @@ -6,13 +6,18 @@ import androidx.core.content.ContextCompat; import com.casic.dcms.R; -import com.casic.dcms.adapter.AnalysisRecycleAdapter; import com.casic.dcms.databinding.ActivityCaseAnalysisBinding; +import com.casic.dcms.model.DataAnalysisGridModel; +import com.casic.dcms.utils.LocaleConstant; import com.gyf.immersionbar.ImmersionBar; +import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; +import com.pengxh.androidx.lite.adapter.ViewHolder; import com.pengxh.androidx.lite.base.AndroidxBaseActivity; import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import java.util.ArrayList; + /** * @author : Pengxh * @time : 2021/4/15 16:03 @@ -38,11 +43,25 @@ @Override protected void initData() { - AnalysisRecycleAdapter adapter = new AnalysisRecycleAdapter(this); - viewBinding.analysisRecyclerView.setAdapter(adapter); - adapter.setOnGridItemClickListener(new AnalysisRecycleAdapter.OnGridItemClickListener() { + ArrayList models = new ArrayList<>(); + for (int i = 0; i < 6; i++) { + DataAnalysisGridModel model = new DataAnalysisGridModel(); + model.setItemIcon(LocaleConstant.ANALYSIS_ICONS.get(i)); + model.setItemTitle(LocaleConstant.ANALYSIS_ITEMS.get(i)); + models.add(model); + } + + NormalRecyclerAdapter adapter = new NormalRecyclerAdapter(R.layout.item_home_recycleview, models) { + @Override - public void onClick(int position) { + public void convertView(ViewHolder viewHolder, int position, DataAnalysisGridModel item) { + viewHolder.setImageResource(R.id.imageView, item.getItemIcon()).setText(R.id.textView, item.getItemTitle()); + } + }; + viewBinding.analysisRecyclerView.setAdapter(adapter); + adapter.setOnItemClickedListener(new NormalRecyclerAdapter.OnItemClickedListener() { + @Override + public void onItemClicked(int position, DataAnalysisGridModel dataAnalysisGridModel) { Intent intent = new Intent(); switch (position) { case 0: diff --git a/.idea/misc.xml b/.idea/misc.xml index 12058ca..4f8b20d 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -28,6 +28,9 @@ + + + @@ -39,6 +42,7 @@ + @@ -81,7 +85,8 @@ - + + diff --git a/app/src/main/java/com/casic/dcms/adapter/AnalysisRecycleAdapter.java b/app/src/main/java/com/casic/dcms/adapter/AnalysisRecycleAdapter.java deleted file mode 100644 index 913bde1..0000000 --- a/app/src/main/java/com/casic/dcms/adapter/AnalysisRecycleAdapter.java +++ /dev/null @@ -1,71 +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.utils.LocaleConstant; - -public class AnalysisRecycleAdapter extends RecyclerView.Adapter { - - private final LayoutInflater layoutInflater; - - public AnalysisRecycleAdapter(Context context) { - this.layoutInflater = LayoutInflater.from(context); - } - - @NonNull - @Override - public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - return new ItemViewHolder(layoutInflater.inflate(R.layout.item_home_recycleview, parent, false)); - } - - @Override - public void onBindViewHolder(@NonNull ItemViewHolder holder, @SuppressLint("RecyclerView") int position) { - holder.imageView.setBackgroundResource(LocaleConstant.ANALYSIS_ICONS.get(position)); - holder.textView.setText(LocaleConstant.ANALYSIS_ITEMS.get(position)); - if (clickListener != null) { - holder.itemView.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - clickListener.onClick(position); - } - }); - } - } - - @Override - public int getItemCount() { - return LocaleConstant.ANALYSIS_ITEMS.size(); - } - - private OnGridItemClickListener clickListener; - - public interface OnGridItemClickListener { - void onClick(int position); - } - - public void setOnGridItemClickListener(OnGridItemClickListener onGridItemClickListener) { - this.clickListener = onGridItemClickListener; - } - - static class ItemViewHolder extends RecyclerView.ViewHolder { - - private final ImageView imageView; - private final TextView textView; - - ItemViewHolder(@NonNull View itemView) { - super(itemView); - imageView = itemView.findViewById(R.id.imageView); - textView = itemView.findViewById(R.id.textView); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/adapter/CaseSearchResultAdapter.java b/app/src/main/java/com/casic/dcms/adapter/CaseSearchResultAdapter.java deleted file mode 100644 index 9449f44..0000000 --- a/app/src/main/java/com/casic/dcms/adapter/CaseSearchResultAdapter.java +++ /dev/null @@ -1,94 +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.TextView; - -import androidx.annotation.NonNull; -import androidx.recyclerview.widget.RecyclerView; - -import com.casic.dcms.R; -import com.casic.dcms.model.CaseSearchResultBean; -import com.pengxh.androidx.lite.hub.StringHub; -import com.qmuiteam.qmui.widget.QMUIRadiusImageView; - -import java.util.List; - -public class CaseSearchResultAdapter extends RecyclerView.Adapter { - - private final List dataRows; - private final LayoutInflater layoutInflater; - - public CaseSearchResultAdapter(Context context, List dataRows) { - this.dataRows = dataRows; - this.layoutInflater = LayoutInflater.from(context); - } - - @NonNull - @Override - public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - return new ItemViewHolder(layoutInflater.inflate(R.layout.item_case_rv, parent, false)); - } - - @Override - public void onBindViewHolder(@NonNull ItemViewHolder holder, @SuppressLint("RecyclerView") int position) { - holder.bindView(dataRows.get(position)); - if (clickListener != null) { - holder.itemView.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - clickListener.onClick(position); - } - }); - } - } - - @Override - public int getItemCount() { - return dataRows.size(); - } - - private OnItemClickListener clickListener; - - public interface OnItemClickListener { - void onClick(int position); - } - - public void setOnItemClickListener(OnItemClickListener onItemClickListener) { - this.clickListener = onItemClickListener; - } - - class ItemViewHolder extends RecyclerView.ViewHolder { - - private final QMUIRadiusImageView caseImageView; - private final TextView caseTitleView; - private final TextView casePlaceView; - private final TextView caseTimeView; - - ItemViewHolder(@NonNull View itemView) { - super(itemView); - caseImageView = itemView.findViewById(R.id.caseImageView); - caseTitleView = itemView.findViewById(R.id.caseTitleView); - casePlaceView = itemView.findViewById(R.id.casePlaceView); - caseTimeView = itemView.findViewById(R.id.caseTimeView); - } - - void bindView(CaseSearchResultBean.DataDTO.RowsDTO rowsBean) { - //核实图片 -// String fileIdVerify = rowsBean.getFileIdVerify(); -// if (!TextUtils.isEmpty(fileIdVerify)) { -// String[] split = fileIdVerify.split(","); -// String firstImage = split[0]; -// if (firstImage.endsWith(".jpg") || firstImage.contains(".jpeg") || firstImage.contains(".png")) { -// Glide.with(context).load(StringHelper.appendCompleteURL(firstImage)).into(caseImageView); -// } -// } - caseTitleView.setText(StringHub.filterSpaceOrEnter(rowsBean.getDescription())); - casePlaceView.setText("发生地点:" + StringHub.filterSpaceOrEnter(rowsBean.getFieldintro())); - caseTimeView.setText("上报时间:" + rowsBean.getReportTime()); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/adapter/HomeRecycleAdapter.java b/app/src/main/java/com/casic/dcms/adapter/HomeRecycleAdapter.java deleted file mode 100644 index e6eafa6..0000000 --- a/app/src/main/java/com/casic/dcms/adapter/HomeRecycleAdapter.java +++ /dev/null @@ -1,80 +0,0 @@ -package com.casic.dcms.adapter; - -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.HomePageBean; -import com.casic.dcms.utils.StringHelper; - -import java.util.List; - -public class HomeRecycleAdapter extends RecyclerView.Adapter { - - private final List menuData; - private final LayoutInflater layoutInflater; - - public HomeRecycleAdapter(Context context, List menus) { - this.menuData = menus; - this.layoutInflater = LayoutInflater.from(context); - } - - @NonNull - @Override - public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - return new ItemViewHolder(layoutInflater.inflate(R.layout.item_home_recycleview, parent, false)); - } - - @Override - public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { - String name = menuData.get(position).getName(); - holder.bindView(name); - if (clickListener != null) { - holder.itemView.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - clickListener.onClick(name); - } - }); - } - } - - @Override - public int getItemCount() { - return menuData.size(); - } - - private OnGridItemClickListener clickListener; - - public interface OnGridItemClickListener { - void onClick(String itemName); - } - - public void setOnGridItemClickListener(OnGridItemClickListener onGridItemClickListener) { - this.clickListener = onGridItemClickListener; - } - - static class ItemViewHolder extends RecyclerView.ViewHolder { - - private final ImageView imageView; - private final TextView textView; - - ItemViewHolder(@NonNull View itemView) { - super(itemView); - imageView = itemView.findViewById(R.id.imageView); - textView = itemView.findViewById(R.id.textView); - } - - void bindView(String name) { - imageView.setBackgroundResource(StringHelper.obtainIcon(name)); - textView.setText(name); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/adapter/ProcessLineAdapter.java b/app/src/main/java/com/casic/dcms/adapter/ProcessLineAdapter.java deleted file mode 100644 index 42da4cf..0000000 --- a/app/src/main/java/com/casic/dcms/adapter/ProcessLineAdapter.java +++ /dev/null @@ -1,70 +0,0 @@ -package com.casic.dcms.adapter; - -import android.content.Context; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.TextView; - -import androidx.annotation.NonNull; -import androidx.recyclerview.widget.RecyclerView; - -import com.casic.dcms.R; -import com.casic.dcms.model.CaseProcessBean; - -import org.jetbrains.annotations.NotNull; - -import java.util.List; - -public class ProcessLineAdapter extends RecyclerView.Adapter { - private final List mProcessList; - private final LayoutInflater layoutInflater; - - public ProcessLineAdapter(Context context, List list) { - this.mProcessList = list; - this.layoutInflater = LayoutInflater.from(context); - } - - @NotNull - @Override - public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - return new ViewHolder(layoutInflater.inflate(R.layout.item_case_process, parent, false)); - } - - @Override - public void onBindViewHolder(ViewHolder holder, int position) { - CaseProcessBean.DataBean dataBean = mProcessList.get(position); - String typeName = dataBean.getOperationTypeName(); - holder.operationTypeName.setText(typeName); - holder.handlePersonView.setText(dataBean.getUserName()); - holder.handleTimeView.setText(dataBean.getTime()); - holder.handleResultView.setText(dataBean.getRemarks()); - } - - @Override - public int getItemViewType(int position) { - return super.getItemViewType(position); - } - - @Override - public int getItemCount() { - return mProcessList.size(); - } - - static class ViewHolder extends RecyclerView.ViewHolder { - private final TextView operationTypeName; - private final TextView handlePersonView; - private final TextView handleTimeView; - private final TextView handleResultView; - private final RecyclerView handlePicView; - - public ViewHolder(View view) { - super(view); - operationTypeName = view.findViewById(R.id.operationTypeName); - handlePersonView = view.findViewById(R.id.handlePersonView); - handleTimeView = view.findViewById(R.id.handleTimeView); - handleResultView = view.findViewById(R.id.handleResultView); - handlePicView = view.findViewById(R.id.handlePicView); - } - } -} \ No newline at end of file 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 3b7a194..6b6b72e 100644 --- a/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java @@ -7,7 +7,6 @@ import com.bumptech.glide.Glide; import com.casic.dcms.R; -import com.casic.dcms.adapter.HomeRecycleAdapter; import com.casic.dcms.databinding.FragmentHomeBinding; import com.casic.dcms.model.HomePageBean; import com.casic.dcms.model.UserBean; @@ -33,6 +32,8 @@ import com.casic.dcms.view.UrgentCaseActivity; import com.casic.dcms.view.VerifyCaseActivity; import com.casic.dcms.vm.HomePageViewModel; +import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; +import com.pengxh.androidx.lite.adapter.ViewHolder; import com.pengxh.androidx.lite.base.AndroidxBaseFragment; import com.pengxh.androidx.lite.hub.LongHub; import com.pengxh.androidx.lite.utils.SaveKeyValues; @@ -95,13 +96,18 @@ @Override public void onChanged(HomePageBean resultBean) { if (resultBean.getCode() == 200) { - HomeRecycleAdapter adapter = new HomeRecycleAdapter(requireContext(), resultBean.getData().getMenus()); - viewBinding.homeRecyclerView.setAdapter(adapter); - adapter.setOnGridItemClickListener(new HomeRecycleAdapter.OnGridItemClickListener() { + NormalRecyclerAdapter recyclerAdapter = new NormalRecyclerAdapter(R.layout.item_home_recycleview, resultBean.getData().getMenus()) { @Override - public void onClick(String itemName) { + public void convertView(ViewHolder viewHolder, int position, HomePageBean.DataBean.MenusBean item) { + viewHolder.setImageResource(R.id.imageView, StringHelper.obtainDrawableIcon(item.getName())).setText(R.id.textView, item.getName()); + } + }; + viewBinding.homeRecyclerView.setAdapter(recyclerAdapter); + recyclerAdapter.setOnItemClickedListener(new NormalRecyclerAdapter.OnItemClickedListener() { + @Override + public void onItemClicked(int position, HomePageBean.DataBean.MenusBean menusBean) { Intent intent = new Intent(); - switch (itemName) { + switch (menusBean.getName()) { case "案卷上报": intent.setClass(requireContext(), CommonCaseUploadActivity.class); break; diff --git a/app/src/main/java/com/casic/dcms/model/DataAnalysisGridModel.java b/app/src/main/java/com/casic/dcms/model/DataAnalysisGridModel.java new file mode 100644 index 0000000..3b20a2f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/model/DataAnalysisGridModel.java @@ -0,0 +1,22 @@ +package com.casic.dcms.model; + +public class DataAnalysisGridModel { + private int itemIcon; + private String itemTitle; + + public int getItemIcon() { + return itemIcon; + } + + public void setItemIcon(int itemIcon) { + this.itemIcon = itemIcon; + } + + public String getItemTitle() { + return itemTitle; + } + + public void setItemTitle(String itemTitle) { + this.itemTitle = itemTitle; + } +} diff --git a/app/src/main/java/com/casic/dcms/utils/DataBaseManager.java b/app/src/main/java/com/casic/dcms/utils/DataBaseManager.java index 0a39218..57f0df8 100644 --- a/app/src/main/java/com/casic/dcms/utils/DataBaseManager.java +++ b/app/src/main/java/com/casic/dcms/utils/DataBaseManager.java @@ -127,7 +127,7 @@ toiletListBeanDao.deleteAll(); } - public void saveToiletList(ToiletListModel.DataBean dataBean) { + public void saveToilets(ToiletListModel.DataBean dataBean) { ToiletListBean bean = new ToiletListBean(); bean.setArea(dataBean.getArea()); bean.setCode(dataBean.getCode()); @@ -149,7 +149,7 @@ toiletListBeanDao.save(bean); } - public List getToiletList() { + public List getToilets() { List result = new ArrayList<>(); List listBeans = toiletListBeanDao.loadAll(); for (ToiletListBean toiletBean : listBeans) { diff --git a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java b/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java index 7cb867d..fb0c033 100644 --- a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java +++ b/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java @@ -1,25 +1,12 @@ package com.casic.dcms.utils; -import android.util.Log; - import com.casic.dcms.utils.callback.IHttpRequestListener; +import com.pengxh.androidx.lite.callback.OnHttpRequestListener; +import com.pengxh.androidx.lite.hub.RequestHub; import com.pengxh.androidx.lite.utils.SaveKeyValues; -import org.jetbrains.annotations.NotNull; - -import java.io.IOException; -import java.util.concurrent.TimeUnit; - -import okhttp3.OkHttpClient; import okhttp3.Request; import okhttp3.Response; -import okhttp3.ResponseBody; -import okhttp3.logging.HttpLoggingInterceptor; -import rx.Emitter; -import rx.Observable; -import rx.Observer; -import rx.android.schedulers.AndroidSchedulers; -import rx.schedulers.Schedulers; public class HttpRequestHelper { private static final String TAG = "HttpRequestHelper"; @@ -27,93 +14,39 @@ public static void doRequest(String function, String requestValue, IHttpRequestListener listener) { String ip = (String) SaveKeyValues.getValue(LocaleConstant.IP_KEY, "http://111.198.10.15:11409"); // String ip = (String) SaveKeyValues.getValue(Constant.IP_KEY, "http://223.82.47.232:11401"); - Observable.create(emitter -> { - HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor(new HttpLoggingInterceptor.Logger() { - @Override - public void log(@NotNull String message) { - Log.d(TAG, "log: " + message); - } - }); - interceptor.setLevel(HttpLoggingInterceptor.Level.BODY); - - OkHttpClient client = new OkHttpClient.Builder() - .addInterceptor(interceptor) - .readTimeout(LocaleConstant.HTTP_TIMEOUT, TimeUnit.SECONDS) - .connectTimeout(LocaleConstant.HTTP_TIMEOUT, TimeUnit.SECONDS) - .writeTimeout(LocaleConstant.HTTP_TIMEOUT, TimeUnit.SECONDS) - .build(); - - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(ip + function + requestValue) - .get() - .build();//创建Request 对象 - try { - Response response = client.newCall(request).execute(); - emitter.onNext(response.body()); - } catch (IOException e) { - emitter.onError(e); - } - }, Emitter.BackpressureMode.BUFFER).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + Request request = new Request.Builder() + .addHeader("token", AuthenticationHelper.getToken()) + .url(ip + function + requestValue) + .get() + .build();//创建Request 对象 + RequestHub.doRequest(request, new OnHttpRequestListener() { @Override - public void onCompleted() { - + public void onSuccess(Response response) { + listener.onSuccess(response.body()); } @Override - public void onError(Throwable e) { - listener.onFailure(e); - } - - @Override - public void onNext(ResponseBody responseBody) { - listener.onSuccess(responseBody); + public void onFailure(Throwable throwable) { + listener.onFailure(throwable); } }); } public static void doRequest(String url, IHttpRequestListener listener) { - Observable.create(emitter -> { - HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor(new HttpLoggingInterceptor.Logger() { - @Override - public void log(@NotNull String message) { - Log.d(TAG, "log: " + message); - } - }); - interceptor.setLevel(HttpLoggingInterceptor.Level.BODY); - - OkHttpClient client = new OkHttpClient.Builder() - .addInterceptor(interceptor) - .readTimeout(LocaleConstant.HTTP_TIMEOUT, TimeUnit.SECONDS) - .connectTimeout(LocaleConstant.HTTP_TIMEOUT, TimeUnit.SECONDS) - .writeTimeout(LocaleConstant.HTTP_TIMEOUT, TimeUnit.SECONDS) - .build(); - - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(url) - .get() - .build();//创建Request 对象 - try { - Response response = client.newCall(request).execute(); - emitter.onNext(response.body()); - } catch (IOException e) { - emitter.onError(e); - } - }, Emitter.BackpressureMode.BUFFER).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + Request request = new Request.Builder() + .addHeader("token", AuthenticationHelper.getToken()) + .url(url) + .get() + .build();//创建Request 对象 + RequestHub.doRequest(request, new OnHttpRequestListener() { @Override - public void onCompleted() { - + public void onSuccess(Response response) { + listener.onSuccess(response.body()); } @Override - public void onError(Throwable e) { - listener.onFailure(e); - } - - @Override - public void onNext(ResponseBody responseBody) { - listener.onSuccess(responseBody); + public void onFailure(Throwable throwable) { + listener.onFailure(throwable); } }); } diff --git a/app/src/main/java/com/casic/dcms/utils/StringHelper.java b/app/src/main/java/com/casic/dcms/utils/StringHelper.java index c625bb4..1a097cc 100644 --- a/app/src/main/java/com/casic/dcms/utils/StringHelper.java +++ b/app/src/main/java/com/casic/dcms/utils/StringHelper.java @@ -264,8 +264,20 @@ return R.drawable.ic_dtck; case "公厕保洁": return R.drawable.ic_toilet; + case "三包处置": + return R.drawable.ic_sanbao; + case "商铺变更": + return R.drawable.ic_shangpu; + case "部门处置": + return R.drawable.ic_dept; + case "路桥养护": + return R.drawable.ic_bridge; + case "管网管理": + return R.drawable.ic_pipe; + case "路灯管理": + return R.drawable.ic_streetlight; default: - return 0; + return R.drawable.ic_default_icon; } } } diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java index b1a3c67..6d3574d 100644 --- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java +++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java @@ -39,9 +39,7 @@ * token添加到Header */ @GET("/user/info") - Observable getUserData( - @Header("token") String token - ); + Observable getUserData(@Header("token") String token); /** * 获取地图地址 @@ -49,9 +47,7 @@ * token添加到Header */ @GET("/map/server/listPage") - Observable getMapConfig( - @Header("token") String token - ); + Observable getMapConfig(@Header("token") String token); /** * 大类列表查询 @@ -132,9 +128,7 @@ * 退出登录 */ @GET("/user/logout") - Observable loginOut( - @Header("token") String token - ); + Observable loginOut(@Header("token") String token); /** * 修改密码 @@ -152,10 +146,7 @@ * 获取部门树 */ @GET("/dept/tree") - Observable getDeptTree( - @Header("token") String token, - @Query("pid") String pid - ); + Observable getDeptTree(@Header("token") String token, @Query("pid") String pid); /** * 获取通讯录 @@ -193,9 +184,7 @@ * 获取案件状态 */ @GET("/dict/code/caseState") - Observable getCaseStatus( - @Header("token") String token - ); + Observable getCaseStatus(@Header("token") String token); /** * 获取案件列表 @@ -223,10 +212,7 @@ * http://111.198.10.15:11409/case/detail/1372735305680994306 */ @GET("/case/detail/{id}") - Observable obtainCaseDetail( - @Header("token") String token, - @Path("id") String id - ); + Observable obtainCaseDetail(@Header("token") String token, @Path("id") String id); /** * 获取案件流转记录 @@ -241,9 +227,7 @@ * 更新版本 */ @POST("/app/checkVersion") - Observable updateVersion( - @Header("token") String token - ); + Observable updateVersion(@Header("token") String token); /** * 获取核实待办案卷 @@ -407,9 +391,7 @@ * 获取常见语句 */ @GET("/dict/code/commonApproval") - Observable obtainCommonSentence( - @Header("token") String token - ); + Observable obtainCommonSentence(@Header("token") String token); /** * 案卷处理 @@ -532,9 +514,7 @@ * http://111.198.10.15:11409/sanitation/toilet/list */ @GET("/sanitation/toilet/list") - Observable getToiletList( - @Header("token") String token - ); + Observable getToilets(@Header("token") String token); /** * 公厕打扫签到 @@ -789,9 +769,7 @@ * http://111.198.10.15:11409/lampCr/overview/lampList */ @GET("/lightCr/overview/lampList") - Observable obtainLightList( - @Header("token") String token - ); + Observable obtainLightList(@Header("token") String token); /** * 路灯详情 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 5c31b0a..8876060 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 @@ -411,8 +411,8 @@ /** * 公厕列表 */ - public static Observable getToiletList() { - return api.getToiletList(AuthenticationHelper.getToken()); + public static Observable getToilets() { + return api.getToilets(AuthenticationHelper.getToken()); } /** 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 e709752..d7bf511 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java @@ -1,25 +1,23 @@ package com.casic.dcms.view; import android.content.Context; -import android.graphics.Rect; +import android.graphics.Color; +import android.view.View; -import androidx.annotation.Nullable; import androidx.core.content.ContextCompat; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; -import com.casic.dcms.adapter.ProcessLineAdapter; import com.casic.dcms.databinding.ActivityCaseProcessBinding; import com.casic.dcms.model.CaseProcessBean; -import com.casic.dcms.utils.TimeLineDecoration; -import com.casic.dcms.utils.TimeLineDecoration.TimeLineAdapter; import com.casic.dcms.vm.CommonDataViewModel; import com.gyf.immersionbar.ImmersionBar; +import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; +import com.pengxh.androidx.lite.adapter.ViewHolder; import com.pengxh.androidx.lite.base.AndroidxBaseActivity; import com.pengxh.androidx.lite.utils.Constant; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; -import com.qmuiteam.qmui.util.QMUIDisplayHelper; import java.util.ArrayList; import java.util.List; @@ -62,36 +60,33 @@ for (int i = 0; i < size; i++) { dataBeans.add(i, resultBean.getData().get(size - 1 - i)); } - ProcessLineAdapter adapter = new ProcessLineAdapter(context, dataBeans); - TimeLineDecoration decoration = new TimeLineDecoration(context) - .setLineColor(R.color.lightGray) - .setLineWidth(1f) - .setLeftDistance(QMUIDisplayHelper.dp2px(context, 9)) - .setMarkerColor(R.color.lightGray) - .setMarkerRadius(10f) - .setBeginMarkerRadius(10f) - .setBeginMarker(R.drawable.begin_marker) - .setCallback(new TimeLineAdapter() { - @Nullable - @Override - public Rect getRect(int position) { - return new Rect(QMUIDisplayHelper.dp2px(context, 30), - QMUIDisplayHelper.dp2px(context, 10), 0, 0); - } + NormalRecyclerAdapter recyclerAdapter = new NormalRecyclerAdapter(R.layout.item_case_process, dataBeans) { + @Override + public void convertView(ViewHolder viewHolder, int position, CaseProcessBean.DataBean item) { + if (position == 0) { + //最后一项 + viewHolder.setBackgroundColor(R.id.dotView, Color.BLACK); + viewHolder.setTextColor(R.id.operatorNameView, Color.BLACK) + .setTextColor(R.id.statusView, Color.BLACK) + .setTextColor(R.id.operateTimeView, Color.BLACK) + .setTextColor(R.id.remarkView, Color.BLACK); - @Override - public int getTimeLineType(int position) { - if (position == 0) { - return TimeLineDecoration.BEGIN; - } else if (position == adapter.getItemCount() - 1) { - return TimeLineDecoration.END_FULL; - } else { - return TimeLineDecoration.NORMAL; - } - } - }); - viewBinding.processRecyclerView.addItemDecoration(decoration); - viewBinding.processRecyclerView.setAdapter(adapter); + viewHolder.setVisibility(R.id.topLineView, View.INVISIBLE); + viewHolder.setImageResource(R.id.tagImageView, R.drawable.ic_dot_red); + } else if (position == size - 1) { + viewHolder.setVisibility(R.id.bottomLineView, View.INVISIBLE); + viewHolder.setImageResource(R.id.tagImageView, R.drawable.ic_dot_gray); + } else { + viewHolder.setImageResource(R.id.tagImageView, R.drawable.ic_dot); + } + + viewHolder.setText(R.id.statusView, item.getOperationTypeName()) + .setText(R.id.operatorNameView, item.getUserName()) + .setText(R.id.remarkView, item.getRemarks()) + .setText(R.id.operateTimeView, item.getTime()); + } + }; + viewBinding.processRecyclerView.setAdapter(recyclerAdapter); } } }); 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 6c8b259..0a65da1 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java @@ -10,12 +10,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; -import com.casic.dcms.adapter.CaseSearchResultAdapter; import com.casic.dcms.databinding.ActivityCaseListBinding; import com.casic.dcms.model.CaseSearchResultBean; import com.casic.dcms.utils.DialogHelper; import com.casic.dcms.vm.CaseViewModel; import com.gyf.immersionbar.ImmersionBar; +import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; +import com.pengxh.androidx.lite.adapter.ViewHolder; import com.pengxh.androidx.lite.base.AndroidxBaseActivity; import com.pengxh.androidx.lite.hub.ContextHub; import com.pengxh.androidx.lite.hub.StringHub; @@ -34,7 +35,7 @@ private final Context context = this; private WeakReferenceHandler weakReferenceHandler; private CaseViewModel caseViewModel; - private CaseSearchResultAdapter adapter; + private NormalRecyclerAdapter adapter; private String typeCode; private String typeDetailCode; private String caseState; @@ -157,16 +158,29 @@ }); } else { viewBinding.emptyView.hide(); - adapter = new CaseSearchResultAdapter(context, dataBeans); - viewBinding.caseRecyclerView.setAdapter(adapter); - adapter.setOnItemClickListener(new CaseSearchResultAdapter.OnItemClickListener() { + adapter = new NormalRecyclerAdapter(R.layout.item_case_rv, dataBeans) { + @Override - public void onClick(int position) { - ContextHub.navigatePageTo( - context, - CaseDetailActivity.class, - dataBeans.get(position).getId() - ); + public void convertView(ViewHolder viewHolder, int position, CaseSearchResultBean.DataDTO.RowsDTO item) { + //核实图片 +// String fileIdVerify = rowsBean.getFileIdVerify(); +// if (!TextUtils.isEmpty(fileIdVerify)) { +// String[] split = fileIdVerify.split(","); +// String firstImage = split[0]; +// if (firstImage.endsWith(".jpg") || firstImage.contains(".jpeg") || firstImage.contains(".png")) { +// Glide.with(context).load(StringHelper.appendCompleteURL(firstImage)).into(caseImageView); +// } +// } + viewHolder.setText(R.id.caseTitleView, StringHub.filterSpaceOrEnter(item.getDescription())) + .setText(R.id.casePlaceView, "发生地点:" + StringHub.filterSpaceOrEnter(item.getFieldintro())) + .setText(R.id.caseTimeView, "上报时间:" + item.getReportTime()); + } + }; + viewBinding.caseRecyclerView.setAdapter(adapter); + adapter.setOnItemClickedListener(new NormalRecyclerAdapter.OnItemClickedListener() { + @Override + public void onItemClicked(int position, CaseSearchResultBean.DataDTO.RowsDTO rowsDTO) { + ContextHub.navigatePageTo(context, CaseDetailActivity.class, rowsDTO.getId()); } }); } diff --git a/app/src/main/java/com/casic/dcms/view/DataAnalysisActivity.java b/app/src/main/java/com/casic/dcms/view/DataAnalysisActivity.java index c3bff07..29d576b 100644 --- a/app/src/main/java/com/casic/dcms/view/DataAnalysisActivity.java +++ b/app/src/main/java/com/casic/dcms/view/DataAnalysisActivity.java @@ -6,13 +6,18 @@ import androidx.core.content.ContextCompat; import com.casic.dcms.R; -import com.casic.dcms.adapter.AnalysisRecycleAdapter; import com.casic.dcms.databinding.ActivityCaseAnalysisBinding; +import com.casic.dcms.model.DataAnalysisGridModel; +import com.casic.dcms.utils.LocaleConstant; import com.gyf.immersionbar.ImmersionBar; +import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; +import com.pengxh.androidx.lite.adapter.ViewHolder; import com.pengxh.androidx.lite.base.AndroidxBaseActivity; import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import java.util.ArrayList; + /** * @author : Pengxh * @time : 2021/4/15 16:03 @@ -38,11 +43,25 @@ @Override protected void initData() { - AnalysisRecycleAdapter adapter = new AnalysisRecycleAdapter(this); - viewBinding.analysisRecyclerView.setAdapter(adapter); - adapter.setOnGridItemClickListener(new AnalysisRecycleAdapter.OnGridItemClickListener() { + ArrayList models = new ArrayList<>(); + for (int i = 0; i < 6; i++) { + DataAnalysisGridModel model = new DataAnalysisGridModel(); + model.setItemIcon(LocaleConstant.ANALYSIS_ICONS.get(i)); + model.setItemTitle(LocaleConstant.ANALYSIS_ITEMS.get(i)); + models.add(model); + } + + NormalRecyclerAdapter adapter = new NormalRecyclerAdapter(R.layout.item_home_recycleview, models) { + @Override - public void onClick(int position) { + public void convertView(ViewHolder viewHolder, int position, DataAnalysisGridModel item) { + viewHolder.setImageResource(R.id.imageView, item.getItemIcon()).setText(R.id.textView, item.getItemTitle()); + } + }; + viewBinding.analysisRecyclerView.setAdapter(adapter); + adapter.setOnItemClickedListener(new NormalRecyclerAdapter.OnItemClickedListener() { + @Override + public void onItemClicked(int position, DataAnalysisGridModel dataAnalysisGridModel) { Intent intent = new Intent(); switch (position) { case 0: diff --git a/app/src/main/java/com/casic/dcms/view/MainActivity.java b/app/src/main/java/com/casic/dcms/view/MainActivity.java index cf8662f..376e943 100644 --- a/app/src/main/java/com/casic/dcms/view/MainActivity.java +++ b/app/src/main/java/com/casic/dcms/view/MainActivity.java @@ -3,6 +3,7 @@ import android.content.Intent; import android.os.Build; import android.os.Handler; +import android.os.Message; import android.view.KeyEvent; import android.view.MenuItem; import android.view.View; @@ -40,7 +41,6 @@ import com.google.android.material.navigation.NavigationBarView; import com.google.gson.Gson; import com.gyf.immersionbar.ImmersionBar; -import com.igexin.sdk.PushManager; import com.pengxh.androidx.lite.base.AndroidxBaseActivity; import com.pengxh.androidx.lite.hub.ContextHub; import com.pengxh.androidx.lite.hub.StringHub; @@ -64,8 +64,6 @@ private String imei = ""; private UploadViewModel positionViewModel; private PushViewModel pushViewModel; - private MapConfigViewModel mapConfigViewModel; - private ToiletViewModel toiletViewModel; private long clickTime = 0; @Override @@ -82,6 +80,26 @@ } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == LocaleConstant.PUSH_REGISTER) { + pushViewModel.registerPush((String) msg.obj); + } else if (msg.what == LocaleConstant.MESSAGE_NUMBER) { + updateMessageNumber(); + } else if (msg.what == LocaleConstant.UPDATE_LOCATION) { + AMapLocation aMapLocation = (AMapLocation) msg.obj; + try { + double[] gcjToWgs = LocationHelper.gcjToWgs(aMapLocation.getLongitude(), aMapLocation.getLatitude()); + positionViewModel.uploadPosition(imei, String.valueOf(gcjToWgs[1]), String.valueOf(gcjToWgs[0])); + } catch (NullPointerException e) { + e.printStackTrace(); + } + } + return true; + } + }; + @Override protected void initData() { //配置页面 @@ -89,29 +107,14 @@ pageViews.add(new PhonePageFragment()); pageViews.add(new NoticePageFragment()); pageViews.add(new MinePageFragment()); + MainPageAdapter mainPageAdapter = new MainPageAdapter(getSupportFragmentManager(), pageViews); + viewBinding.mainViewPager.setOffscreenPageLimit(pageViews.size()); + viewBinding.mainViewPager.setAdapter(mainPageAdapter); - //个推初始化 - PushManager.getInstance().initialize(this); weakReferenceHandler = new WeakReferenceHandler(callback); dataBaseManager = DataBaseManager.getInstance(); - positionViewModel = new ViewModelProvider(this).get(UploadViewModel.class); - pushViewModel = new ViewModelProvider(this).get(PushViewModel.class); - mapConfigViewModel = new ViewModelProvider(this).get(MapConfigViewModel.class); - toiletViewModel = new ViewModelProvider(this).get(ToiletViewModel.class); - - //获取配置项 - obtainProjectConfig(); - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { - startForegroundService(new Intent(this, UpdateLocationService.class)); - } else { - startService(new Intent(this, UpdateLocationService.class)); - } - } - - private void obtainProjectConfig() { - imei = ContextHub.getSimCardSerialNumber(this); - //地图配置项 + MapConfigViewModel mapConfigViewModel = new ViewModelProvider(this).get(MapConfigViewModel.class); mapConfigViewModel.obtainMapConfig(); mapConfigViewModel.mapConfigModel.observe(this, new Observer() { @Override @@ -125,65 +128,34 @@ } }); - //公厕数据 - toiletViewModel.obtainToiletList(); + ToiletViewModel toiletViewModel = new ViewModelProvider(this).get(ToiletViewModel.class); + toiletViewModel.getToilets(); toiletViewModel.toiletListModel.observe(this, new Observer() { @Override public void onChanged(ToiletListModel resultBean) { if (resultBean.getCode() == 200) { dataBaseManager.deleteAllToiletList(); for (ToiletListModel.DataBean dataBean : resultBean.getData()) { - dataBaseManager.saveToiletList(dataBean); + dataBaseManager.saveToilets(dataBean); } } } }); - //公厕图层ID - HttpRequestHelper.doRequest(LocaleConstant.LAYER_CONFIG, new IHttpRequestListener() { - @Override - public void onSuccess(ResponseBody resultBean) { - try { - String resultStr = resultBean.string(); - List partsLayer = gson.fromJson(resultStr, LayerConfigBean.class).getPartsLayer(); - List childrenBeans = partsLayer.get(2).getChildren(); - StringHelper.saveToiletLayerId(String.valueOf(childrenBeans.get(0).getLayer())); - } catch (IOException e) { - e.printStackTrace(); - } - } + positionViewModel = new ViewModelProvider(this).get(UploadViewModel.class); + pushViewModel = new ViewModelProvider(this).get(PushViewModel.class); - @Override - public void onFailure(Throwable throwable) { - - } - }); - - //桥梁数据 TODO-待调试 - HttpRequestHelper.doRequest(LocaleConstant.PROJECT_CONFIG, new IHttpRequestListener() { - @Override - public void onSuccess(ResponseBody resultBean) { - try { - String resultStr = resultBean.string(); - List bridges = gson.fromJson(resultStr, BridgeConfigBean.class).getBridges(); - StringHelper.saveBridgeList(gson.toJson(bridges)); - } catch (IOException e) { - e.printStackTrace(); - } - } - - @Override - public void onFailure(Throwable throwable) { - - } - }); + //获取配置项 + obtainProjectConfig(); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { + startForegroundService(new Intent(this, UpdateLocationService.class)); + } else { + startService(new Intent(this, UpdateLocationService.class)); + } } @Override protected void initEvent() { - MainPageAdapter mainPageAdapter = new MainPageAdapter(getSupportFragmentManager(), pageViews); - viewBinding.mainViewPager.setOffscreenPageLimit(pageViews.size()); - viewBinding.mainViewPager.setAdapter(mainPageAdapter); viewBinding.bottomNavigation.setOnItemSelectedListener(new NavigationBarView.OnItemSelectedListener() { @Override public boolean onNavigationItemSelected(@NonNull MenuItem item) { @@ -228,27 +200,53 @@ }); } - private final Handler.Callback callback = msg -> { - if (msg.what == LocaleConstant.PUSH_REGISTER) { - pushViewModel.registerPush((String) msg.obj); - } else if (msg.what == LocaleConstant.MESSAGE_NUMBER) { - updateMessageNumber(); - } else if (msg.what == LocaleConstant.UPDATE_LOCATION) { - AMapLocation aMapLocation = (AMapLocation) msg.obj; - try { - double[] gcjToWgs = LocationHelper.gcjToWgs(aMapLocation.getLongitude(), aMapLocation.getLatitude()); - positionViewModel.uploadPosition(imei, String.valueOf(gcjToWgs[1]), String.valueOf(gcjToWgs[0])); - } catch (NullPointerException e) { - e.printStackTrace(); + private void obtainProjectConfig() { + imei = ContextHub.getSimCardSerialNumber(this); + + //公厕图层ID + HttpRequestHelper.doRequest(LocaleConstant.LAYER_CONFIG, new IHttpRequestListener() { + @Override + public void onSuccess(ResponseBody resultBean) { + try { + String resultStr = resultBean.string(); + List partsLayer = gson.fromJson(resultStr, LayerConfigBean.class).getPartsLayer(); + List childrenBeans = partsLayer.get(2).getChildren(); + StringHelper.saveToiletLayerId(String.valueOf(childrenBeans.get(0).getLayer())); + } catch (IOException e) { + e.printStackTrace(); + } } - } - return true; - }; + + @Override + public void onFailure(Throwable throwable) { + + } + }); + + //桥梁数据 TODO-待调试 + HttpRequestHelper.doRequest(LocaleConstant.PROJECT_CONFIG, new IHttpRequestListener() { + @Override + public void onSuccess(ResponseBody resultBean) { + try { + String resultStr = resultBean.string(); + List bridges = gson.fromJson(resultStr, BridgeConfigBean.class).getBridges(); + StringHelper.saveBridgeList(gson.toJson(bridges)); + } catch (IOException e) { + e.printStackTrace(); + } + } + + @Override + public void onFailure(Throwable throwable) { + + } + }); + } @Override protected void onResume() { - updateMessageNumber(); super.onResume(); + updateMessageNumber(); } private void updateMessageNumber() { diff --git a/.idea/misc.xml b/.idea/misc.xml index 12058ca..4f8b20d 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -28,6 +28,9 @@ + + + @@ -39,6 +42,7 @@ + @@ -81,7 +85,8 @@ - + + diff --git a/app/src/main/java/com/casic/dcms/adapter/AnalysisRecycleAdapter.java b/app/src/main/java/com/casic/dcms/adapter/AnalysisRecycleAdapter.java deleted file mode 100644 index 913bde1..0000000 --- a/app/src/main/java/com/casic/dcms/adapter/AnalysisRecycleAdapter.java +++ /dev/null @@ -1,71 +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.utils.LocaleConstant; - -public class AnalysisRecycleAdapter extends RecyclerView.Adapter { - - private final LayoutInflater layoutInflater; - - public AnalysisRecycleAdapter(Context context) { - this.layoutInflater = LayoutInflater.from(context); - } - - @NonNull - @Override - public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - return new ItemViewHolder(layoutInflater.inflate(R.layout.item_home_recycleview, parent, false)); - } - - @Override - public void onBindViewHolder(@NonNull ItemViewHolder holder, @SuppressLint("RecyclerView") int position) { - holder.imageView.setBackgroundResource(LocaleConstant.ANALYSIS_ICONS.get(position)); - holder.textView.setText(LocaleConstant.ANALYSIS_ITEMS.get(position)); - if (clickListener != null) { - holder.itemView.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - clickListener.onClick(position); - } - }); - } - } - - @Override - public int getItemCount() { - return LocaleConstant.ANALYSIS_ITEMS.size(); - } - - private OnGridItemClickListener clickListener; - - public interface OnGridItemClickListener { - void onClick(int position); - } - - public void setOnGridItemClickListener(OnGridItemClickListener onGridItemClickListener) { - this.clickListener = onGridItemClickListener; - } - - static class ItemViewHolder extends RecyclerView.ViewHolder { - - private final ImageView imageView; - private final TextView textView; - - ItemViewHolder(@NonNull View itemView) { - super(itemView); - imageView = itemView.findViewById(R.id.imageView); - textView = itemView.findViewById(R.id.textView); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/adapter/CaseSearchResultAdapter.java b/app/src/main/java/com/casic/dcms/adapter/CaseSearchResultAdapter.java deleted file mode 100644 index 9449f44..0000000 --- a/app/src/main/java/com/casic/dcms/adapter/CaseSearchResultAdapter.java +++ /dev/null @@ -1,94 +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.TextView; - -import androidx.annotation.NonNull; -import androidx.recyclerview.widget.RecyclerView; - -import com.casic.dcms.R; -import com.casic.dcms.model.CaseSearchResultBean; -import com.pengxh.androidx.lite.hub.StringHub; -import com.qmuiteam.qmui.widget.QMUIRadiusImageView; - -import java.util.List; - -public class CaseSearchResultAdapter extends RecyclerView.Adapter { - - private final List dataRows; - private final LayoutInflater layoutInflater; - - public CaseSearchResultAdapter(Context context, List dataRows) { - this.dataRows = dataRows; - this.layoutInflater = LayoutInflater.from(context); - } - - @NonNull - @Override - public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - return new ItemViewHolder(layoutInflater.inflate(R.layout.item_case_rv, parent, false)); - } - - @Override - public void onBindViewHolder(@NonNull ItemViewHolder holder, @SuppressLint("RecyclerView") int position) { - holder.bindView(dataRows.get(position)); - if (clickListener != null) { - holder.itemView.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - clickListener.onClick(position); - } - }); - } - } - - @Override - public int getItemCount() { - return dataRows.size(); - } - - private OnItemClickListener clickListener; - - public interface OnItemClickListener { - void onClick(int position); - } - - public void setOnItemClickListener(OnItemClickListener onItemClickListener) { - this.clickListener = onItemClickListener; - } - - class ItemViewHolder extends RecyclerView.ViewHolder { - - private final QMUIRadiusImageView caseImageView; - private final TextView caseTitleView; - private final TextView casePlaceView; - private final TextView caseTimeView; - - ItemViewHolder(@NonNull View itemView) { - super(itemView); - caseImageView = itemView.findViewById(R.id.caseImageView); - caseTitleView = itemView.findViewById(R.id.caseTitleView); - casePlaceView = itemView.findViewById(R.id.casePlaceView); - caseTimeView = itemView.findViewById(R.id.caseTimeView); - } - - void bindView(CaseSearchResultBean.DataDTO.RowsDTO rowsBean) { - //核实图片 -// String fileIdVerify = rowsBean.getFileIdVerify(); -// if (!TextUtils.isEmpty(fileIdVerify)) { -// String[] split = fileIdVerify.split(","); -// String firstImage = split[0]; -// if (firstImage.endsWith(".jpg") || firstImage.contains(".jpeg") || firstImage.contains(".png")) { -// Glide.with(context).load(StringHelper.appendCompleteURL(firstImage)).into(caseImageView); -// } -// } - caseTitleView.setText(StringHub.filterSpaceOrEnter(rowsBean.getDescription())); - casePlaceView.setText("发生地点:" + StringHub.filterSpaceOrEnter(rowsBean.getFieldintro())); - caseTimeView.setText("上报时间:" + rowsBean.getReportTime()); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/adapter/HomeRecycleAdapter.java b/app/src/main/java/com/casic/dcms/adapter/HomeRecycleAdapter.java deleted file mode 100644 index e6eafa6..0000000 --- a/app/src/main/java/com/casic/dcms/adapter/HomeRecycleAdapter.java +++ /dev/null @@ -1,80 +0,0 @@ -package com.casic.dcms.adapter; - -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.HomePageBean; -import com.casic.dcms.utils.StringHelper; - -import java.util.List; - -public class HomeRecycleAdapter extends RecyclerView.Adapter { - - private final List menuData; - private final LayoutInflater layoutInflater; - - public HomeRecycleAdapter(Context context, List menus) { - this.menuData = menus; - this.layoutInflater = LayoutInflater.from(context); - } - - @NonNull - @Override - public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - return new ItemViewHolder(layoutInflater.inflate(R.layout.item_home_recycleview, parent, false)); - } - - @Override - public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { - String name = menuData.get(position).getName(); - holder.bindView(name); - if (clickListener != null) { - holder.itemView.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - clickListener.onClick(name); - } - }); - } - } - - @Override - public int getItemCount() { - return menuData.size(); - } - - private OnGridItemClickListener clickListener; - - public interface OnGridItemClickListener { - void onClick(String itemName); - } - - public void setOnGridItemClickListener(OnGridItemClickListener onGridItemClickListener) { - this.clickListener = onGridItemClickListener; - } - - static class ItemViewHolder extends RecyclerView.ViewHolder { - - private final ImageView imageView; - private final TextView textView; - - ItemViewHolder(@NonNull View itemView) { - super(itemView); - imageView = itemView.findViewById(R.id.imageView); - textView = itemView.findViewById(R.id.textView); - } - - void bindView(String name) { - imageView.setBackgroundResource(StringHelper.obtainIcon(name)); - textView.setText(name); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/adapter/ProcessLineAdapter.java b/app/src/main/java/com/casic/dcms/adapter/ProcessLineAdapter.java deleted file mode 100644 index 42da4cf..0000000 --- a/app/src/main/java/com/casic/dcms/adapter/ProcessLineAdapter.java +++ /dev/null @@ -1,70 +0,0 @@ -package com.casic.dcms.adapter; - -import android.content.Context; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.TextView; - -import androidx.annotation.NonNull; -import androidx.recyclerview.widget.RecyclerView; - -import com.casic.dcms.R; -import com.casic.dcms.model.CaseProcessBean; - -import org.jetbrains.annotations.NotNull; - -import java.util.List; - -public class ProcessLineAdapter extends RecyclerView.Adapter { - private final List mProcessList; - private final LayoutInflater layoutInflater; - - public ProcessLineAdapter(Context context, List list) { - this.mProcessList = list; - this.layoutInflater = LayoutInflater.from(context); - } - - @NotNull - @Override - public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - return new ViewHolder(layoutInflater.inflate(R.layout.item_case_process, parent, false)); - } - - @Override - public void onBindViewHolder(ViewHolder holder, int position) { - CaseProcessBean.DataBean dataBean = mProcessList.get(position); - String typeName = dataBean.getOperationTypeName(); - holder.operationTypeName.setText(typeName); - holder.handlePersonView.setText(dataBean.getUserName()); - holder.handleTimeView.setText(dataBean.getTime()); - holder.handleResultView.setText(dataBean.getRemarks()); - } - - @Override - public int getItemViewType(int position) { - return super.getItemViewType(position); - } - - @Override - public int getItemCount() { - return mProcessList.size(); - } - - static class ViewHolder extends RecyclerView.ViewHolder { - private final TextView operationTypeName; - private final TextView handlePersonView; - private final TextView handleTimeView; - private final TextView handleResultView; - private final RecyclerView handlePicView; - - public ViewHolder(View view) { - super(view); - operationTypeName = view.findViewById(R.id.operationTypeName); - handlePersonView = view.findViewById(R.id.handlePersonView); - handleTimeView = view.findViewById(R.id.handleTimeView); - handleResultView = view.findViewById(R.id.handleResultView); - handlePicView = view.findViewById(R.id.handlePicView); - } - } -} \ No newline at end of file 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 3b7a194..6b6b72e 100644 --- a/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java @@ -7,7 +7,6 @@ import com.bumptech.glide.Glide; import com.casic.dcms.R; -import com.casic.dcms.adapter.HomeRecycleAdapter; import com.casic.dcms.databinding.FragmentHomeBinding; import com.casic.dcms.model.HomePageBean; import com.casic.dcms.model.UserBean; @@ -33,6 +32,8 @@ import com.casic.dcms.view.UrgentCaseActivity; import com.casic.dcms.view.VerifyCaseActivity; import com.casic.dcms.vm.HomePageViewModel; +import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; +import com.pengxh.androidx.lite.adapter.ViewHolder; import com.pengxh.androidx.lite.base.AndroidxBaseFragment; import com.pengxh.androidx.lite.hub.LongHub; import com.pengxh.androidx.lite.utils.SaveKeyValues; @@ -95,13 +96,18 @@ @Override public void onChanged(HomePageBean resultBean) { if (resultBean.getCode() == 200) { - HomeRecycleAdapter adapter = new HomeRecycleAdapter(requireContext(), resultBean.getData().getMenus()); - viewBinding.homeRecyclerView.setAdapter(adapter); - adapter.setOnGridItemClickListener(new HomeRecycleAdapter.OnGridItemClickListener() { + NormalRecyclerAdapter recyclerAdapter = new NormalRecyclerAdapter(R.layout.item_home_recycleview, resultBean.getData().getMenus()) { @Override - public void onClick(String itemName) { + public void convertView(ViewHolder viewHolder, int position, HomePageBean.DataBean.MenusBean item) { + viewHolder.setImageResource(R.id.imageView, StringHelper.obtainDrawableIcon(item.getName())).setText(R.id.textView, item.getName()); + } + }; + viewBinding.homeRecyclerView.setAdapter(recyclerAdapter); + recyclerAdapter.setOnItemClickedListener(new NormalRecyclerAdapter.OnItemClickedListener() { + @Override + public void onItemClicked(int position, HomePageBean.DataBean.MenusBean menusBean) { Intent intent = new Intent(); - switch (itemName) { + switch (menusBean.getName()) { case "案卷上报": intent.setClass(requireContext(), CommonCaseUploadActivity.class); break; diff --git a/app/src/main/java/com/casic/dcms/model/DataAnalysisGridModel.java b/app/src/main/java/com/casic/dcms/model/DataAnalysisGridModel.java new file mode 100644 index 0000000..3b20a2f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/model/DataAnalysisGridModel.java @@ -0,0 +1,22 @@ +package com.casic.dcms.model; + +public class DataAnalysisGridModel { + private int itemIcon; + private String itemTitle; + + public int getItemIcon() { + return itemIcon; + } + + public void setItemIcon(int itemIcon) { + this.itemIcon = itemIcon; + } + + public String getItemTitle() { + return itemTitle; + } + + public void setItemTitle(String itemTitle) { + this.itemTitle = itemTitle; + } +} diff --git a/app/src/main/java/com/casic/dcms/utils/DataBaseManager.java b/app/src/main/java/com/casic/dcms/utils/DataBaseManager.java index 0a39218..57f0df8 100644 --- a/app/src/main/java/com/casic/dcms/utils/DataBaseManager.java +++ b/app/src/main/java/com/casic/dcms/utils/DataBaseManager.java @@ -127,7 +127,7 @@ toiletListBeanDao.deleteAll(); } - public void saveToiletList(ToiletListModel.DataBean dataBean) { + public void saveToilets(ToiletListModel.DataBean dataBean) { ToiletListBean bean = new ToiletListBean(); bean.setArea(dataBean.getArea()); bean.setCode(dataBean.getCode()); @@ -149,7 +149,7 @@ toiletListBeanDao.save(bean); } - public List getToiletList() { + public List getToilets() { List result = new ArrayList<>(); List listBeans = toiletListBeanDao.loadAll(); for (ToiletListBean toiletBean : listBeans) { diff --git a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java b/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java index 7cb867d..fb0c033 100644 --- a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java +++ b/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java @@ -1,25 +1,12 @@ package com.casic.dcms.utils; -import android.util.Log; - import com.casic.dcms.utils.callback.IHttpRequestListener; +import com.pengxh.androidx.lite.callback.OnHttpRequestListener; +import com.pengxh.androidx.lite.hub.RequestHub; import com.pengxh.androidx.lite.utils.SaveKeyValues; -import org.jetbrains.annotations.NotNull; - -import java.io.IOException; -import java.util.concurrent.TimeUnit; - -import okhttp3.OkHttpClient; import okhttp3.Request; import okhttp3.Response; -import okhttp3.ResponseBody; -import okhttp3.logging.HttpLoggingInterceptor; -import rx.Emitter; -import rx.Observable; -import rx.Observer; -import rx.android.schedulers.AndroidSchedulers; -import rx.schedulers.Schedulers; public class HttpRequestHelper { private static final String TAG = "HttpRequestHelper"; @@ -27,93 +14,39 @@ public static void doRequest(String function, String requestValue, IHttpRequestListener listener) { String ip = (String) SaveKeyValues.getValue(LocaleConstant.IP_KEY, "http://111.198.10.15:11409"); // String ip = (String) SaveKeyValues.getValue(Constant.IP_KEY, "http://223.82.47.232:11401"); - Observable.create(emitter -> { - HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor(new HttpLoggingInterceptor.Logger() { - @Override - public void log(@NotNull String message) { - Log.d(TAG, "log: " + message); - } - }); - interceptor.setLevel(HttpLoggingInterceptor.Level.BODY); - - OkHttpClient client = new OkHttpClient.Builder() - .addInterceptor(interceptor) - .readTimeout(LocaleConstant.HTTP_TIMEOUT, TimeUnit.SECONDS) - .connectTimeout(LocaleConstant.HTTP_TIMEOUT, TimeUnit.SECONDS) - .writeTimeout(LocaleConstant.HTTP_TIMEOUT, TimeUnit.SECONDS) - .build(); - - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(ip + function + requestValue) - .get() - .build();//创建Request 对象 - try { - Response response = client.newCall(request).execute(); - emitter.onNext(response.body()); - } catch (IOException e) { - emitter.onError(e); - } - }, Emitter.BackpressureMode.BUFFER).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + Request request = new Request.Builder() + .addHeader("token", AuthenticationHelper.getToken()) + .url(ip + function + requestValue) + .get() + .build();//创建Request 对象 + RequestHub.doRequest(request, new OnHttpRequestListener() { @Override - public void onCompleted() { - + public void onSuccess(Response response) { + listener.onSuccess(response.body()); } @Override - public void onError(Throwable e) { - listener.onFailure(e); - } - - @Override - public void onNext(ResponseBody responseBody) { - listener.onSuccess(responseBody); + public void onFailure(Throwable throwable) { + listener.onFailure(throwable); } }); } public static void doRequest(String url, IHttpRequestListener listener) { - Observable.create(emitter -> { - HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor(new HttpLoggingInterceptor.Logger() { - @Override - public void log(@NotNull String message) { - Log.d(TAG, "log: " + message); - } - }); - interceptor.setLevel(HttpLoggingInterceptor.Level.BODY); - - OkHttpClient client = new OkHttpClient.Builder() - .addInterceptor(interceptor) - .readTimeout(LocaleConstant.HTTP_TIMEOUT, TimeUnit.SECONDS) - .connectTimeout(LocaleConstant.HTTP_TIMEOUT, TimeUnit.SECONDS) - .writeTimeout(LocaleConstant.HTTP_TIMEOUT, TimeUnit.SECONDS) - .build(); - - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(url) - .get() - .build();//创建Request 对象 - try { - Response response = client.newCall(request).execute(); - emitter.onNext(response.body()); - } catch (IOException e) { - emitter.onError(e); - } - }, Emitter.BackpressureMode.BUFFER).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + Request request = new Request.Builder() + .addHeader("token", AuthenticationHelper.getToken()) + .url(url) + .get() + .build();//创建Request 对象 + RequestHub.doRequest(request, new OnHttpRequestListener() { @Override - public void onCompleted() { - + public void onSuccess(Response response) { + listener.onSuccess(response.body()); } @Override - public void onError(Throwable e) { - listener.onFailure(e); - } - - @Override - public void onNext(ResponseBody responseBody) { - listener.onSuccess(responseBody); + public void onFailure(Throwable throwable) { + listener.onFailure(throwable); } }); } diff --git a/app/src/main/java/com/casic/dcms/utils/StringHelper.java b/app/src/main/java/com/casic/dcms/utils/StringHelper.java index c625bb4..1a097cc 100644 --- a/app/src/main/java/com/casic/dcms/utils/StringHelper.java +++ b/app/src/main/java/com/casic/dcms/utils/StringHelper.java @@ -264,8 +264,20 @@ return R.drawable.ic_dtck; case "公厕保洁": return R.drawable.ic_toilet; + case "三包处置": + return R.drawable.ic_sanbao; + case "商铺变更": + return R.drawable.ic_shangpu; + case "部门处置": + return R.drawable.ic_dept; + case "路桥养护": + return R.drawable.ic_bridge; + case "管网管理": + return R.drawable.ic_pipe; + case "路灯管理": + return R.drawable.ic_streetlight; default: - return 0; + return R.drawable.ic_default_icon; } } } diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java index b1a3c67..6d3574d 100644 --- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java +++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java @@ -39,9 +39,7 @@ * token添加到Header */ @GET("/user/info") - Observable getUserData( - @Header("token") String token - ); + Observable getUserData(@Header("token") String token); /** * 获取地图地址 @@ -49,9 +47,7 @@ * token添加到Header */ @GET("/map/server/listPage") - Observable getMapConfig( - @Header("token") String token - ); + Observable getMapConfig(@Header("token") String token); /** * 大类列表查询 @@ -132,9 +128,7 @@ * 退出登录 */ @GET("/user/logout") - Observable loginOut( - @Header("token") String token - ); + Observable loginOut(@Header("token") String token); /** * 修改密码 @@ -152,10 +146,7 @@ * 获取部门树 */ @GET("/dept/tree") - Observable getDeptTree( - @Header("token") String token, - @Query("pid") String pid - ); + Observable getDeptTree(@Header("token") String token, @Query("pid") String pid); /** * 获取通讯录 @@ -193,9 +184,7 @@ * 获取案件状态 */ @GET("/dict/code/caseState") - Observable getCaseStatus( - @Header("token") String token - ); + Observable getCaseStatus(@Header("token") String token); /** * 获取案件列表 @@ -223,10 +212,7 @@ * http://111.198.10.15:11409/case/detail/1372735305680994306 */ @GET("/case/detail/{id}") - Observable obtainCaseDetail( - @Header("token") String token, - @Path("id") String id - ); + Observable obtainCaseDetail(@Header("token") String token, @Path("id") String id); /** * 获取案件流转记录 @@ -241,9 +227,7 @@ * 更新版本 */ @POST("/app/checkVersion") - Observable updateVersion( - @Header("token") String token - ); + Observable updateVersion(@Header("token") String token); /** * 获取核实待办案卷 @@ -407,9 +391,7 @@ * 获取常见语句 */ @GET("/dict/code/commonApproval") - Observable obtainCommonSentence( - @Header("token") String token - ); + Observable obtainCommonSentence(@Header("token") String token); /** * 案卷处理 @@ -532,9 +514,7 @@ * http://111.198.10.15:11409/sanitation/toilet/list */ @GET("/sanitation/toilet/list") - Observable getToiletList( - @Header("token") String token - ); + Observable getToilets(@Header("token") String token); /** * 公厕打扫签到 @@ -789,9 +769,7 @@ * http://111.198.10.15:11409/lampCr/overview/lampList */ @GET("/lightCr/overview/lampList") - Observable obtainLightList( - @Header("token") String token - ); + Observable obtainLightList(@Header("token") String token); /** * 路灯详情 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 5c31b0a..8876060 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 @@ -411,8 +411,8 @@ /** * 公厕列表 */ - public static Observable getToiletList() { - return api.getToiletList(AuthenticationHelper.getToken()); + public static Observable getToilets() { + return api.getToilets(AuthenticationHelper.getToken()); } /** 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 e709752..d7bf511 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java @@ -1,25 +1,23 @@ package com.casic.dcms.view; import android.content.Context; -import android.graphics.Rect; +import android.graphics.Color; +import android.view.View; -import androidx.annotation.Nullable; import androidx.core.content.ContextCompat; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; -import com.casic.dcms.adapter.ProcessLineAdapter; import com.casic.dcms.databinding.ActivityCaseProcessBinding; import com.casic.dcms.model.CaseProcessBean; -import com.casic.dcms.utils.TimeLineDecoration; -import com.casic.dcms.utils.TimeLineDecoration.TimeLineAdapter; import com.casic.dcms.vm.CommonDataViewModel; import com.gyf.immersionbar.ImmersionBar; +import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; +import com.pengxh.androidx.lite.adapter.ViewHolder; import com.pengxh.androidx.lite.base.AndroidxBaseActivity; import com.pengxh.androidx.lite.utils.Constant; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; -import com.qmuiteam.qmui.util.QMUIDisplayHelper; import java.util.ArrayList; import java.util.List; @@ -62,36 +60,33 @@ for (int i = 0; i < size; i++) { dataBeans.add(i, resultBean.getData().get(size - 1 - i)); } - ProcessLineAdapter adapter = new ProcessLineAdapter(context, dataBeans); - TimeLineDecoration decoration = new TimeLineDecoration(context) - .setLineColor(R.color.lightGray) - .setLineWidth(1f) - .setLeftDistance(QMUIDisplayHelper.dp2px(context, 9)) - .setMarkerColor(R.color.lightGray) - .setMarkerRadius(10f) - .setBeginMarkerRadius(10f) - .setBeginMarker(R.drawable.begin_marker) - .setCallback(new TimeLineAdapter() { - @Nullable - @Override - public Rect getRect(int position) { - return new Rect(QMUIDisplayHelper.dp2px(context, 30), - QMUIDisplayHelper.dp2px(context, 10), 0, 0); - } + NormalRecyclerAdapter recyclerAdapter = new NormalRecyclerAdapter(R.layout.item_case_process, dataBeans) { + @Override + public void convertView(ViewHolder viewHolder, int position, CaseProcessBean.DataBean item) { + if (position == 0) { + //最后一项 + viewHolder.setBackgroundColor(R.id.dotView, Color.BLACK); + viewHolder.setTextColor(R.id.operatorNameView, Color.BLACK) + .setTextColor(R.id.statusView, Color.BLACK) + .setTextColor(R.id.operateTimeView, Color.BLACK) + .setTextColor(R.id.remarkView, Color.BLACK); - @Override - public int getTimeLineType(int position) { - if (position == 0) { - return TimeLineDecoration.BEGIN; - } else if (position == adapter.getItemCount() - 1) { - return TimeLineDecoration.END_FULL; - } else { - return TimeLineDecoration.NORMAL; - } - } - }); - viewBinding.processRecyclerView.addItemDecoration(decoration); - viewBinding.processRecyclerView.setAdapter(adapter); + viewHolder.setVisibility(R.id.topLineView, View.INVISIBLE); + viewHolder.setImageResource(R.id.tagImageView, R.drawable.ic_dot_red); + } else if (position == size - 1) { + viewHolder.setVisibility(R.id.bottomLineView, View.INVISIBLE); + viewHolder.setImageResource(R.id.tagImageView, R.drawable.ic_dot_gray); + } else { + viewHolder.setImageResource(R.id.tagImageView, R.drawable.ic_dot); + } + + viewHolder.setText(R.id.statusView, item.getOperationTypeName()) + .setText(R.id.operatorNameView, item.getUserName()) + .setText(R.id.remarkView, item.getRemarks()) + .setText(R.id.operateTimeView, item.getTime()); + } + }; + viewBinding.processRecyclerView.setAdapter(recyclerAdapter); } } }); 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 6c8b259..0a65da1 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java @@ -10,12 +10,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; -import com.casic.dcms.adapter.CaseSearchResultAdapter; import com.casic.dcms.databinding.ActivityCaseListBinding; import com.casic.dcms.model.CaseSearchResultBean; import com.casic.dcms.utils.DialogHelper; import com.casic.dcms.vm.CaseViewModel; import com.gyf.immersionbar.ImmersionBar; +import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; +import com.pengxh.androidx.lite.adapter.ViewHolder; import com.pengxh.androidx.lite.base.AndroidxBaseActivity; import com.pengxh.androidx.lite.hub.ContextHub; import com.pengxh.androidx.lite.hub.StringHub; @@ -34,7 +35,7 @@ private final Context context = this; private WeakReferenceHandler weakReferenceHandler; private CaseViewModel caseViewModel; - private CaseSearchResultAdapter adapter; + private NormalRecyclerAdapter adapter; private String typeCode; private String typeDetailCode; private String caseState; @@ -157,16 +158,29 @@ }); } else { viewBinding.emptyView.hide(); - adapter = new CaseSearchResultAdapter(context, dataBeans); - viewBinding.caseRecyclerView.setAdapter(adapter); - adapter.setOnItemClickListener(new CaseSearchResultAdapter.OnItemClickListener() { + adapter = new NormalRecyclerAdapter(R.layout.item_case_rv, dataBeans) { + @Override - public void onClick(int position) { - ContextHub.navigatePageTo( - context, - CaseDetailActivity.class, - dataBeans.get(position).getId() - ); + public void convertView(ViewHolder viewHolder, int position, CaseSearchResultBean.DataDTO.RowsDTO item) { + //核实图片 +// String fileIdVerify = rowsBean.getFileIdVerify(); +// if (!TextUtils.isEmpty(fileIdVerify)) { +// String[] split = fileIdVerify.split(","); +// String firstImage = split[0]; +// if (firstImage.endsWith(".jpg") || firstImage.contains(".jpeg") || firstImage.contains(".png")) { +// Glide.with(context).load(StringHelper.appendCompleteURL(firstImage)).into(caseImageView); +// } +// } + viewHolder.setText(R.id.caseTitleView, StringHub.filterSpaceOrEnter(item.getDescription())) + .setText(R.id.casePlaceView, "发生地点:" + StringHub.filterSpaceOrEnter(item.getFieldintro())) + .setText(R.id.caseTimeView, "上报时间:" + item.getReportTime()); + } + }; + viewBinding.caseRecyclerView.setAdapter(adapter); + adapter.setOnItemClickedListener(new NormalRecyclerAdapter.OnItemClickedListener() { + @Override + public void onItemClicked(int position, CaseSearchResultBean.DataDTO.RowsDTO rowsDTO) { + ContextHub.navigatePageTo(context, CaseDetailActivity.class, rowsDTO.getId()); } }); } diff --git a/app/src/main/java/com/casic/dcms/view/DataAnalysisActivity.java b/app/src/main/java/com/casic/dcms/view/DataAnalysisActivity.java index c3bff07..29d576b 100644 --- a/app/src/main/java/com/casic/dcms/view/DataAnalysisActivity.java +++ b/app/src/main/java/com/casic/dcms/view/DataAnalysisActivity.java @@ -6,13 +6,18 @@ import androidx.core.content.ContextCompat; import com.casic.dcms.R; -import com.casic.dcms.adapter.AnalysisRecycleAdapter; import com.casic.dcms.databinding.ActivityCaseAnalysisBinding; +import com.casic.dcms.model.DataAnalysisGridModel; +import com.casic.dcms.utils.LocaleConstant; import com.gyf.immersionbar.ImmersionBar; +import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; +import com.pengxh.androidx.lite.adapter.ViewHolder; import com.pengxh.androidx.lite.base.AndroidxBaseActivity; import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import java.util.ArrayList; + /** * @author : Pengxh * @time : 2021/4/15 16:03 @@ -38,11 +43,25 @@ @Override protected void initData() { - AnalysisRecycleAdapter adapter = new AnalysisRecycleAdapter(this); - viewBinding.analysisRecyclerView.setAdapter(adapter); - adapter.setOnGridItemClickListener(new AnalysisRecycleAdapter.OnGridItemClickListener() { + ArrayList models = new ArrayList<>(); + for (int i = 0; i < 6; i++) { + DataAnalysisGridModel model = new DataAnalysisGridModel(); + model.setItemIcon(LocaleConstant.ANALYSIS_ICONS.get(i)); + model.setItemTitle(LocaleConstant.ANALYSIS_ITEMS.get(i)); + models.add(model); + } + + NormalRecyclerAdapter adapter = new NormalRecyclerAdapter(R.layout.item_home_recycleview, models) { + @Override - public void onClick(int position) { + public void convertView(ViewHolder viewHolder, int position, DataAnalysisGridModel item) { + viewHolder.setImageResource(R.id.imageView, item.getItemIcon()).setText(R.id.textView, item.getItemTitle()); + } + }; + viewBinding.analysisRecyclerView.setAdapter(adapter); + adapter.setOnItemClickedListener(new NormalRecyclerAdapter.OnItemClickedListener() { + @Override + public void onItemClicked(int position, DataAnalysisGridModel dataAnalysisGridModel) { Intent intent = new Intent(); switch (position) { case 0: diff --git a/app/src/main/java/com/casic/dcms/view/MainActivity.java b/app/src/main/java/com/casic/dcms/view/MainActivity.java index cf8662f..376e943 100644 --- a/app/src/main/java/com/casic/dcms/view/MainActivity.java +++ b/app/src/main/java/com/casic/dcms/view/MainActivity.java @@ -3,6 +3,7 @@ import android.content.Intent; import android.os.Build; import android.os.Handler; +import android.os.Message; import android.view.KeyEvent; import android.view.MenuItem; import android.view.View; @@ -40,7 +41,6 @@ import com.google.android.material.navigation.NavigationBarView; import com.google.gson.Gson; import com.gyf.immersionbar.ImmersionBar; -import com.igexin.sdk.PushManager; import com.pengxh.androidx.lite.base.AndroidxBaseActivity; import com.pengxh.androidx.lite.hub.ContextHub; import com.pengxh.androidx.lite.hub.StringHub; @@ -64,8 +64,6 @@ private String imei = ""; private UploadViewModel positionViewModel; private PushViewModel pushViewModel; - private MapConfigViewModel mapConfigViewModel; - private ToiletViewModel toiletViewModel; private long clickTime = 0; @Override @@ -82,6 +80,26 @@ } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == LocaleConstant.PUSH_REGISTER) { + pushViewModel.registerPush((String) msg.obj); + } else if (msg.what == LocaleConstant.MESSAGE_NUMBER) { + updateMessageNumber(); + } else if (msg.what == LocaleConstant.UPDATE_LOCATION) { + AMapLocation aMapLocation = (AMapLocation) msg.obj; + try { + double[] gcjToWgs = LocationHelper.gcjToWgs(aMapLocation.getLongitude(), aMapLocation.getLatitude()); + positionViewModel.uploadPosition(imei, String.valueOf(gcjToWgs[1]), String.valueOf(gcjToWgs[0])); + } catch (NullPointerException e) { + e.printStackTrace(); + } + } + return true; + } + }; + @Override protected void initData() { //配置页面 @@ -89,29 +107,14 @@ pageViews.add(new PhonePageFragment()); pageViews.add(new NoticePageFragment()); pageViews.add(new MinePageFragment()); + MainPageAdapter mainPageAdapter = new MainPageAdapter(getSupportFragmentManager(), pageViews); + viewBinding.mainViewPager.setOffscreenPageLimit(pageViews.size()); + viewBinding.mainViewPager.setAdapter(mainPageAdapter); - //个推初始化 - PushManager.getInstance().initialize(this); weakReferenceHandler = new WeakReferenceHandler(callback); dataBaseManager = DataBaseManager.getInstance(); - positionViewModel = new ViewModelProvider(this).get(UploadViewModel.class); - pushViewModel = new ViewModelProvider(this).get(PushViewModel.class); - mapConfigViewModel = new ViewModelProvider(this).get(MapConfigViewModel.class); - toiletViewModel = new ViewModelProvider(this).get(ToiletViewModel.class); - - //获取配置项 - obtainProjectConfig(); - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { - startForegroundService(new Intent(this, UpdateLocationService.class)); - } else { - startService(new Intent(this, UpdateLocationService.class)); - } - } - - private void obtainProjectConfig() { - imei = ContextHub.getSimCardSerialNumber(this); - //地图配置项 + MapConfigViewModel mapConfigViewModel = new ViewModelProvider(this).get(MapConfigViewModel.class); mapConfigViewModel.obtainMapConfig(); mapConfigViewModel.mapConfigModel.observe(this, new Observer() { @Override @@ -125,65 +128,34 @@ } }); - //公厕数据 - toiletViewModel.obtainToiletList(); + ToiletViewModel toiletViewModel = new ViewModelProvider(this).get(ToiletViewModel.class); + toiletViewModel.getToilets(); toiletViewModel.toiletListModel.observe(this, new Observer() { @Override public void onChanged(ToiletListModel resultBean) { if (resultBean.getCode() == 200) { dataBaseManager.deleteAllToiletList(); for (ToiletListModel.DataBean dataBean : resultBean.getData()) { - dataBaseManager.saveToiletList(dataBean); + dataBaseManager.saveToilets(dataBean); } } } }); - //公厕图层ID - HttpRequestHelper.doRequest(LocaleConstant.LAYER_CONFIG, new IHttpRequestListener() { - @Override - public void onSuccess(ResponseBody resultBean) { - try { - String resultStr = resultBean.string(); - List partsLayer = gson.fromJson(resultStr, LayerConfigBean.class).getPartsLayer(); - List childrenBeans = partsLayer.get(2).getChildren(); - StringHelper.saveToiletLayerId(String.valueOf(childrenBeans.get(0).getLayer())); - } catch (IOException e) { - e.printStackTrace(); - } - } + positionViewModel = new ViewModelProvider(this).get(UploadViewModel.class); + pushViewModel = new ViewModelProvider(this).get(PushViewModel.class); - @Override - public void onFailure(Throwable throwable) { - - } - }); - - //桥梁数据 TODO-待调试 - HttpRequestHelper.doRequest(LocaleConstant.PROJECT_CONFIG, new IHttpRequestListener() { - @Override - public void onSuccess(ResponseBody resultBean) { - try { - String resultStr = resultBean.string(); - List bridges = gson.fromJson(resultStr, BridgeConfigBean.class).getBridges(); - StringHelper.saveBridgeList(gson.toJson(bridges)); - } catch (IOException e) { - e.printStackTrace(); - } - } - - @Override - public void onFailure(Throwable throwable) { - - } - }); + //获取配置项 + obtainProjectConfig(); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { + startForegroundService(new Intent(this, UpdateLocationService.class)); + } else { + startService(new Intent(this, UpdateLocationService.class)); + } } @Override protected void initEvent() { - MainPageAdapter mainPageAdapter = new MainPageAdapter(getSupportFragmentManager(), pageViews); - viewBinding.mainViewPager.setOffscreenPageLimit(pageViews.size()); - viewBinding.mainViewPager.setAdapter(mainPageAdapter); viewBinding.bottomNavigation.setOnItemSelectedListener(new NavigationBarView.OnItemSelectedListener() { @Override public boolean onNavigationItemSelected(@NonNull MenuItem item) { @@ -228,27 +200,53 @@ }); } - private final Handler.Callback callback = msg -> { - if (msg.what == LocaleConstant.PUSH_REGISTER) { - pushViewModel.registerPush((String) msg.obj); - } else if (msg.what == LocaleConstant.MESSAGE_NUMBER) { - updateMessageNumber(); - } else if (msg.what == LocaleConstant.UPDATE_LOCATION) { - AMapLocation aMapLocation = (AMapLocation) msg.obj; - try { - double[] gcjToWgs = LocationHelper.gcjToWgs(aMapLocation.getLongitude(), aMapLocation.getLatitude()); - positionViewModel.uploadPosition(imei, String.valueOf(gcjToWgs[1]), String.valueOf(gcjToWgs[0])); - } catch (NullPointerException e) { - e.printStackTrace(); + private void obtainProjectConfig() { + imei = ContextHub.getSimCardSerialNumber(this); + + //公厕图层ID + HttpRequestHelper.doRequest(LocaleConstant.LAYER_CONFIG, new IHttpRequestListener() { + @Override + public void onSuccess(ResponseBody resultBean) { + try { + String resultStr = resultBean.string(); + List partsLayer = gson.fromJson(resultStr, LayerConfigBean.class).getPartsLayer(); + List childrenBeans = partsLayer.get(2).getChildren(); + StringHelper.saveToiletLayerId(String.valueOf(childrenBeans.get(0).getLayer())); + } catch (IOException e) { + e.printStackTrace(); + } } - } - return true; - }; + + @Override + public void onFailure(Throwable throwable) { + + } + }); + + //桥梁数据 TODO-待调试 + HttpRequestHelper.doRequest(LocaleConstant.PROJECT_CONFIG, new IHttpRequestListener() { + @Override + public void onSuccess(ResponseBody resultBean) { + try { + String resultStr = resultBean.string(); + List bridges = gson.fromJson(resultStr, BridgeConfigBean.class).getBridges(); + StringHelper.saveBridgeList(gson.toJson(bridges)); + } catch (IOException e) { + e.printStackTrace(); + } + } + + @Override + public void onFailure(Throwable throwable) { + + } + }); + } @Override protected void onResume() { - updateMessageNumber(); super.onResume(); + updateMessageNumber(); } private void updateMessageNumber() { diff --git a/app/src/main/java/com/casic/dcms/view/PublicToiletActivity.java b/app/src/main/java/com/casic/dcms/view/PublicToiletActivity.java index d3e3ced..0a75439 100644 --- a/app/src/main/java/com/casic/dcms/view/PublicToiletActivity.java +++ b/app/src/main/java/com/casic/dcms/view/PublicToiletActivity.java @@ -153,7 +153,7 @@ viewBinding.obtainToiletIdLayout.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - List toiletBeanList = DataBaseManager.getInstance().getToiletList(); + List toiletBeanList = DataBaseManager.getInstance().getToilets(); if (toiletBeanList.size() == 0) { StringHub.show(context, "获取公厕数据失败,请联系管理员"); return; diff --git a/.idea/misc.xml b/.idea/misc.xml index 12058ca..4f8b20d 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -28,6 +28,9 @@ + + + @@ -39,6 +42,7 @@ + @@ -81,7 +85,8 @@ - + + diff --git a/app/src/main/java/com/casic/dcms/adapter/AnalysisRecycleAdapter.java b/app/src/main/java/com/casic/dcms/adapter/AnalysisRecycleAdapter.java deleted file mode 100644 index 913bde1..0000000 --- a/app/src/main/java/com/casic/dcms/adapter/AnalysisRecycleAdapter.java +++ /dev/null @@ -1,71 +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.utils.LocaleConstant; - -public class AnalysisRecycleAdapter extends RecyclerView.Adapter { - - private final LayoutInflater layoutInflater; - - public AnalysisRecycleAdapter(Context context) { - this.layoutInflater = LayoutInflater.from(context); - } - - @NonNull - @Override - public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - return new ItemViewHolder(layoutInflater.inflate(R.layout.item_home_recycleview, parent, false)); - } - - @Override - public void onBindViewHolder(@NonNull ItemViewHolder holder, @SuppressLint("RecyclerView") int position) { - holder.imageView.setBackgroundResource(LocaleConstant.ANALYSIS_ICONS.get(position)); - holder.textView.setText(LocaleConstant.ANALYSIS_ITEMS.get(position)); - if (clickListener != null) { - holder.itemView.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - clickListener.onClick(position); - } - }); - } - } - - @Override - public int getItemCount() { - return LocaleConstant.ANALYSIS_ITEMS.size(); - } - - private OnGridItemClickListener clickListener; - - public interface OnGridItemClickListener { - void onClick(int position); - } - - public void setOnGridItemClickListener(OnGridItemClickListener onGridItemClickListener) { - this.clickListener = onGridItemClickListener; - } - - static class ItemViewHolder extends RecyclerView.ViewHolder { - - private final ImageView imageView; - private final TextView textView; - - ItemViewHolder(@NonNull View itemView) { - super(itemView); - imageView = itemView.findViewById(R.id.imageView); - textView = itemView.findViewById(R.id.textView); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/adapter/CaseSearchResultAdapter.java b/app/src/main/java/com/casic/dcms/adapter/CaseSearchResultAdapter.java deleted file mode 100644 index 9449f44..0000000 --- a/app/src/main/java/com/casic/dcms/adapter/CaseSearchResultAdapter.java +++ /dev/null @@ -1,94 +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.TextView; - -import androidx.annotation.NonNull; -import androidx.recyclerview.widget.RecyclerView; - -import com.casic.dcms.R; -import com.casic.dcms.model.CaseSearchResultBean; -import com.pengxh.androidx.lite.hub.StringHub; -import com.qmuiteam.qmui.widget.QMUIRadiusImageView; - -import java.util.List; - -public class CaseSearchResultAdapter extends RecyclerView.Adapter { - - private final List dataRows; - private final LayoutInflater layoutInflater; - - public CaseSearchResultAdapter(Context context, List dataRows) { - this.dataRows = dataRows; - this.layoutInflater = LayoutInflater.from(context); - } - - @NonNull - @Override - public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - return new ItemViewHolder(layoutInflater.inflate(R.layout.item_case_rv, parent, false)); - } - - @Override - public void onBindViewHolder(@NonNull ItemViewHolder holder, @SuppressLint("RecyclerView") int position) { - holder.bindView(dataRows.get(position)); - if (clickListener != null) { - holder.itemView.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - clickListener.onClick(position); - } - }); - } - } - - @Override - public int getItemCount() { - return dataRows.size(); - } - - private OnItemClickListener clickListener; - - public interface OnItemClickListener { - void onClick(int position); - } - - public void setOnItemClickListener(OnItemClickListener onItemClickListener) { - this.clickListener = onItemClickListener; - } - - class ItemViewHolder extends RecyclerView.ViewHolder { - - private final QMUIRadiusImageView caseImageView; - private final TextView caseTitleView; - private final TextView casePlaceView; - private final TextView caseTimeView; - - ItemViewHolder(@NonNull View itemView) { - super(itemView); - caseImageView = itemView.findViewById(R.id.caseImageView); - caseTitleView = itemView.findViewById(R.id.caseTitleView); - casePlaceView = itemView.findViewById(R.id.casePlaceView); - caseTimeView = itemView.findViewById(R.id.caseTimeView); - } - - void bindView(CaseSearchResultBean.DataDTO.RowsDTO rowsBean) { - //核实图片 -// String fileIdVerify = rowsBean.getFileIdVerify(); -// if (!TextUtils.isEmpty(fileIdVerify)) { -// String[] split = fileIdVerify.split(","); -// String firstImage = split[0]; -// if (firstImage.endsWith(".jpg") || firstImage.contains(".jpeg") || firstImage.contains(".png")) { -// Glide.with(context).load(StringHelper.appendCompleteURL(firstImage)).into(caseImageView); -// } -// } - caseTitleView.setText(StringHub.filterSpaceOrEnter(rowsBean.getDescription())); - casePlaceView.setText("发生地点:" + StringHub.filterSpaceOrEnter(rowsBean.getFieldintro())); - caseTimeView.setText("上报时间:" + rowsBean.getReportTime()); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/adapter/HomeRecycleAdapter.java b/app/src/main/java/com/casic/dcms/adapter/HomeRecycleAdapter.java deleted file mode 100644 index e6eafa6..0000000 --- a/app/src/main/java/com/casic/dcms/adapter/HomeRecycleAdapter.java +++ /dev/null @@ -1,80 +0,0 @@ -package com.casic.dcms.adapter; - -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.HomePageBean; -import com.casic.dcms.utils.StringHelper; - -import java.util.List; - -public class HomeRecycleAdapter extends RecyclerView.Adapter { - - private final List menuData; - private final LayoutInflater layoutInflater; - - public HomeRecycleAdapter(Context context, List menus) { - this.menuData = menus; - this.layoutInflater = LayoutInflater.from(context); - } - - @NonNull - @Override - public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - return new ItemViewHolder(layoutInflater.inflate(R.layout.item_home_recycleview, parent, false)); - } - - @Override - public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { - String name = menuData.get(position).getName(); - holder.bindView(name); - if (clickListener != null) { - holder.itemView.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - clickListener.onClick(name); - } - }); - } - } - - @Override - public int getItemCount() { - return menuData.size(); - } - - private OnGridItemClickListener clickListener; - - public interface OnGridItemClickListener { - void onClick(String itemName); - } - - public void setOnGridItemClickListener(OnGridItemClickListener onGridItemClickListener) { - this.clickListener = onGridItemClickListener; - } - - static class ItemViewHolder extends RecyclerView.ViewHolder { - - private final ImageView imageView; - private final TextView textView; - - ItemViewHolder(@NonNull View itemView) { - super(itemView); - imageView = itemView.findViewById(R.id.imageView); - textView = itemView.findViewById(R.id.textView); - } - - void bindView(String name) { - imageView.setBackgroundResource(StringHelper.obtainIcon(name)); - textView.setText(name); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/adapter/ProcessLineAdapter.java b/app/src/main/java/com/casic/dcms/adapter/ProcessLineAdapter.java deleted file mode 100644 index 42da4cf..0000000 --- a/app/src/main/java/com/casic/dcms/adapter/ProcessLineAdapter.java +++ /dev/null @@ -1,70 +0,0 @@ -package com.casic.dcms.adapter; - -import android.content.Context; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.TextView; - -import androidx.annotation.NonNull; -import androidx.recyclerview.widget.RecyclerView; - -import com.casic.dcms.R; -import com.casic.dcms.model.CaseProcessBean; - -import org.jetbrains.annotations.NotNull; - -import java.util.List; - -public class ProcessLineAdapter extends RecyclerView.Adapter { - private final List mProcessList; - private final LayoutInflater layoutInflater; - - public ProcessLineAdapter(Context context, List list) { - this.mProcessList = list; - this.layoutInflater = LayoutInflater.from(context); - } - - @NotNull - @Override - public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - return new ViewHolder(layoutInflater.inflate(R.layout.item_case_process, parent, false)); - } - - @Override - public void onBindViewHolder(ViewHolder holder, int position) { - CaseProcessBean.DataBean dataBean = mProcessList.get(position); - String typeName = dataBean.getOperationTypeName(); - holder.operationTypeName.setText(typeName); - holder.handlePersonView.setText(dataBean.getUserName()); - holder.handleTimeView.setText(dataBean.getTime()); - holder.handleResultView.setText(dataBean.getRemarks()); - } - - @Override - public int getItemViewType(int position) { - return super.getItemViewType(position); - } - - @Override - public int getItemCount() { - return mProcessList.size(); - } - - static class ViewHolder extends RecyclerView.ViewHolder { - private final TextView operationTypeName; - private final TextView handlePersonView; - private final TextView handleTimeView; - private final TextView handleResultView; - private final RecyclerView handlePicView; - - public ViewHolder(View view) { - super(view); - operationTypeName = view.findViewById(R.id.operationTypeName); - handlePersonView = view.findViewById(R.id.handlePersonView); - handleTimeView = view.findViewById(R.id.handleTimeView); - handleResultView = view.findViewById(R.id.handleResultView); - handlePicView = view.findViewById(R.id.handlePicView); - } - } -} \ No newline at end of file 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 3b7a194..6b6b72e 100644 --- a/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java @@ -7,7 +7,6 @@ import com.bumptech.glide.Glide; import com.casic.dcms.R; -import com.casic.dcms.adapter.HomeRecycleAdapter; import com.casic.dcms.databinding.FragmentHomeBinding; import com.casic.dcms.model.HomePageBean; import com.casic.dcms.model.UserBean; @@ -33,6 +32,8 @@ import com.casic.dcms.view.UrgentCaseActivity; import com.casic.dcms.view.VerifyCaseActivity; import com.casic.dcms.vm.HomePageViewModel; +import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; +import com.pengxh.androidx.lite.adapter.ViewHolder; import com.pengxh.androidx.lite.base.AndroidxBaseFragment; import com.pengxh.androidx.lite.hub.LongHub; import com.pengxh.androidx.lite.utils.SaveKeyValues; @@ -95,13 +96,18 @@ @Override public void onChanged(HomePageBean resultBean) { if (resultBean.getCode() == 200) { - HomeRecycleAdapter adapter = new HomeRecycleAdapter(requireContext(), resultBean.getData().getMenus()); - viewBinding.homeRecyclerView.setAdapter(adapter); - adapter.setOnGridItemClickListener(new HomeRecycleAdapter.OnGridItemClickListener() { + NormalRecyclerAdapter recyclerAdapter = new NormalRecyclerAdapter(R.layout.item_home_recycleview, resultBean.getData().getMenus()) { @Override - public void onClick(String itemName) { + public void convertView(ViewHolder viewHolder, int position, HomePageBean.DataBean.MenusBean item) { + viewHolder.setImageResource(R.id.imageView, StringHelper.obtainDrawableIcon(item.getName())).setText(R.id.textView, item.getName()); + } + }; + viewBinding.homeRecyclerView.setAdapter(recyclerAdapter); + recyclerAdapter.setOnItemClickedListener(new NormalRecyclerAdapter.OnItemClickedListener() { + @Override + public void onItemClicked(int position, HomePageBean.DataBean.MenusBean menusBean) { Intent intent = new Intent(); - switch (itemName) { + switch (menusBean.getName()) { case "案卷上报": intent.setClass(requireContext(), CommonCaseUploadActivity.class); break; diff --git a/app/src/main/java/com/casic/dcms/model/DataAnalysisGridModel.java b/app/src/main/java/com/casic/dcms/model/DataAnalysisGridModel.java new file mode 100644 index 0000000..3b20a2f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/model/DataAnalysisGridModel.java @@ -0,0 +1,22 @@ +package com.casic.dcms.model; + +public class DataAnalysisGridModel { + private int itemIcon; + private String itemTitle; + + public int getItemIcon() { + return itemIcon; + } + + public void setItemIcon(int itemIcon) { + this.itemIcon = itemIcon; + } + + public String getItemTitle() { + return itemTitle; + } + + public void setItemTitle(String itemTitle) { + this.itemTitle = itemTitle; + } +} diff --git a/app/src/main/java/com/casic/dcms/utils/DataBaseManager.java b/app/src/main/java/com/casic/dcms/utils/DataBaseManager.java index 0a39218..57f0df8 100644 --- a/app/src/main/java/com/casic/dcms/utils/DataBaseManager.java +++ b/app/src/main/java/com/casic/dcms/utils/DataBaseManager.java @@ -127,7 +127,7 @@ toiletListBeanDao.deleteAll(); } - public void saveToiletList(ToiletListModel.DataBean dataBean) { + public void saveToilets(ToiletListModel.DataBean dataBean) { ToiletListBean bean = new ToiletListBean(); bean.setArea(dataBean.getArea()); bean.setCode(dataBean.getCode()); @@ -149,7 +149,7 @@ toiletListBeanDao.save(bean); } - public List getToiletList() { + public List getToilets() { List result = new ArrayList<>(); List listBeans = toiletListBeanDao.loadAll(); for (ToiletListBean toiletBean : listBeans) { diff --git a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java b/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java index 7cb867d..fb0c033 100644 --- a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java +++ b/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java @@ -1,25 +1,12 @@ package com.casic.dcms.utils; -import android.util.Log; - import com.casic.dcms.utils.callback.IHttpRequestListener; +import com.pengxh.androidx.lite.callback.OnHttpRequestListener; +import com.pengxh.androidx.lite.hub.RequestHub; import com.pengxh.androidx.lite.utils.SaveKeyValues; -import org.jetbrains.annotations.NotNull; - -import java.io.IOException; -import java.util.concurrent.TimeUnit; - -import okhttp3.OkHttpClient; import okhttp3.Request; import okhttp3.Response; -import okhttp3.ResponseBody; -import okhttp3.logging.HttpLoggingInterceptor; -import rx.Emitter; -import rx.Observable; -import rx.Observer; -import rx.android.schedulers.AndroidSchedulers; -import rx.schedulers.Schedulers; public class HttpRequestHelper { private static final String TAG = "HttpRequestHelper"; @@ -27,93 +14,39 @@ public static void doRequest(String function, String requestValue, IHttpRequestListener listener) { String ip = (String) SaveKeyValues.getValue(LocaleConstant.IP_KEY, "http://111.198.10.15:11409"); // String ip = (String) SaveKeyValues.getValue(Constant.IP_KEY, "http://223.82.47.232:11401"); - Observable.create(emitter -> { - HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor(new HttpLoggingInterceptor.Logger() { - @Override - public void log(@NotNull String message) { - Log.d(TAG, "log: " + message); - } - }); - interceptor.setLevel(HttpLoggingInterceptor.Level.BODY); - - OkHttpClient client = new OkHttpClient.Builder() - .addInterceptor(interceptor) - .readTimeout(LocaleConstant.HTTP_TIMEOUT, TimeUnit.SECONDS) - .connectTimeout(LocaleConstant.HTTP_TIMEOUT, TimeUnit.SECONDS) - .writeTimeout(LocaleConstant.HTTP_TIMEOUT, TimeUnit.SECONDS) - .build(); - - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(ip + function + requestValue) - .get() - .build();//创建Request 对象 - try { - Response response = client.newCall(request).execute(); - emitter.onNext(response.body()); - } catch (IOException e) { - emitter.onError(e); - } - }, Emitter.BackpressureMode.BUFFER).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + Request request = new Request.Builder() + .addHeader("token", AuthenticationHelper.getToken()) + .url(ip + function + requestValue) + .get() + .build();//创建Request 对象 + RequestHub.doRequest(request, new OnHttpRequestListener() { @Override - public void onCompleted() { - + public void onSuccess(Response response) { + listener.onSuccess(response.body()); } @Override - public void onError(Throwable e) { - listener.onFailure(e); - } - - @Override - public void onNext(ResponseBody responseBody) { - listener.onSuccess(responseBody); + public void onFailure(Throwable throwable) { + listener.onFailure(throwable); } }); } public static void doRequest(String url, IHttpRequestListener listener) { - Observable.create(emitter -> { - HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor(new HttpLoggingInterceptor.Logger() { - @Override - public void log(@NotNull String message) { - Log.d(TAG, "log: " + message); - } - }); - interceptor.setLevel(HttpLoggingInterceptor.Level.BODY); - - OkHttpClient client = new OkHttpClient.Builder() - .addInterceptor(interceptor) - .readTimeout(LocaleConstant.HTTP_TIMEOUT, TimeUnit.SECONDS) - .connectTimeout(LocaleConstant.HTTP_TIMEOUT, TimeUnit.SECONDS) - .writeTimeout(LocaleConstant.HTTP_TIMEOUT, TimeUnit.SECONDS) - .build(); - - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(url) - .get() - .build();//创建Request 对象 - try { - Response response = client.newCall(request).execute(); - emitter.onNext(response.body()); - } catch (IOException e) { - emitter.onError(e); - } - }, Emitter.BackpressureMode.BUFFER).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + Request request = new Request.Builder() + .addHeader("token", AuthenticationHelper.getToken()) + .url(url) + .get() + .build();//创建Request 对象 + RequestHub.doRequest(request, new OnHttpRequestListener() { @Override - public void onCompleted() { - + public void onSuccess(Response response) { + listener.onSuccess(response.body()); } @Override - public void onError(Throwable e) { - listener.onFailure(e); - } - - @Override - public void onNext(ResponseBody responseBody) { - listener.onSuccess(responseBody); + public void onFailure(Throwable throwable) { + listener.onFailure(throwable); } }); } diff --git a/app/src/main/java/com/casic/dcms/utils/StringHelper.java b/app/src/main/java/com/casic/dcms/utils/StringHelper.java index c625bb4..1a097cc 100644 --- a/app/src/main/java/com/casic/dcms/utils/StringHelper.java +++ b/app/src/main/java/com/casic/dcms/utils/StringHelper.java @@ -264,8 +264,20 @@ return R.drawable.ic_dtck; case "公厕保洁": return R.drawable.ic_toilet; + case "三包处置": + return R.drawable.ic_sanbao; + case "商铺变更": + return R.drawable.ic_shangpu; + case "部门处置": + return R.drawable.ic_dept; + case "路桥养护": + return R.drawable.ic_bridge; + case "管网管理": + return R.drawable.ic_pipe; + case "路灯管理": + return R.drawable.ic_streetlight; default: - return 0; + return R.drawable.ic_default_icon; } } } diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java index b1a3c67..6d3574d 100644 --- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java +++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java @@ -39,9 +39,7 @@ * token添加到Header */ @GET("/user/info") - Observable getUserData( - @Header("token") String token - ); + Observable getUserData(@Header("token") String token); /** * 获取地图地址 @@ -49,9 +47,7 @@ * token添加到Header */ @GET("/map/server/listPage") - Observable getMapConfig( - @Header("token") String token - ); + Observable getMapConfig(@Header("token") String token); /** * 大类列表查询 @@ -132,9 +128,7 @@ * 退出登录 */ @GET("/user/logout") - Observable loginOut( - @Header("token") String token - ); + Observable loginOut(@Header("token") String token); /** * 修改密码 @@ -152,10 +146,7 @@ * 获取部门树 */ @GET("/dept/tree") - Observable getDeptTree( - @Header("token") String token, - @Query("pid") String pid - ); + Observable getDeptTree(@Header("token") String token, @Query("pid") String pid); /** * 获取通讯录 @@ -193,9 +184,7 @@ * 获取案件状态 */ @GET("/dict/code/caseState") - Observable getCaseStatus( - @Header("token") String token - ); + Observable getCaseStatus(@Header("token") String token); /** * 获取案件列表 @@ -223,10 +212,7 @@ * http://111.198.10.15:11409/case/detail/1372735305680994306 */ @GET("/case/detail/{id}") - Observable obtainCaseDetail( - @Header("token") String token, - @Path("id") String id - ); + Observable obtainCaseDetail(@Header("token") String token, @Path("id") String id); /** * 获取案件流转记录 @@ -241,9 +227,7 @@ * 更新版本 */ @POST("/app/checkVersion") - Observable updateVersion( - @Header("token") String token - ); + Observable updateVersion(@Header("token") String token); /** * 获取核实待办案卷 @@ -407,9 +391,7 @@ * 获取常见语句 */ @GET("/dict/code/commonApproval") - Observable obtainCommonSentence( - @Header("token") String token - ); + Observable obtainCommonSentence(@Header("token") String token); /** * 案卷处理 @@ -532,9 +514,7 @@ * http://111.198.10.15:11409/sanitation/toilet/list */ @GET("/sanitation/toilet/list") - Observable getToiletList( - @Header("token") String token - ); + Observable getToilets(@Header("token") String token); /** * 公厕打扫签到 @@ -789,9 +769,7 @@ * http://111.198.10.15:11409/lampCr/overview/lampList */ @GET("/lightCr/overview/lampList") - Observable obtainLightList( - @Header("token") String token - ); + Observable obtainLightList(@Header("token") String token); /** * 路灯详情 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 5c31b0a..8876060 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 @@ -411,8 +411,8 @@ /** * 公厕列表 */ - public static Observable getToiletList() { - return api.getToiletList(AuthenticationHelper.getToken()); + public static Observable getToilets() { + return api.getToilets(AuthenticationHelper.getToken()); } /** 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 e709752..d7bf511 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java @@ -1,25 +1,23 @@ package com.casic.dcms.view; import android.content.Context; -import android.graphics.Rect; +import android.graphics.Color; +import android.view.View; -import androidx.annotation.Nullable; import androidx.core.content.ContextCompat; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; -import com.casic.dcms.adapter.ProcessLineAdapter; import com.casic.dcms.databinding.ActivityCaseProcessBinding; import com.casic.dcms.model.CaseProcessBean; -import com.casic.dcms.utils.TimeLineDecoration; -import com.casic.dcms.utils.TimeLineDecoration.TimeLineAdapter; import com.casic.dcms.vm.CommonDataViewModel; import com.gyf.immersionbar.ImmersionBar; +import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; +import com.pengxh.androidx.lite.adapter.ViewHolder; import com.pengxh.androidx.lite.base.AndroidxBaseActivity; import com.pengxh.androidx.lite.utils.Constant; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; -import com.qmuiteam.qmui.util.QMUIDisplayHelper; import java.util.ArrayList; import java.util.List; @@ -62,36 +60,33 @@ for (int i = 0; i < size; i++) { dataBeans.add(i, resultBean.getData().get(size - 1 - i)); } - ProcessLineAdapter adapter = new ProcessLineAdapter(context, dataBeans); - TimeLineDecoration decoration = new TimeLineDecoration(context) - .setLineColor(R.color.lightGray) - .setLineWidth(1f) - .setLeftDistance(QMUIDisplayHelper.dp2px(context, 9)) - .setMarkerColor(R.color.lightGray) - .setMarkerRadius(10f) - .setBeginMarkerRadius(10f) - .setBeginMarker(R.drawable.begin_marker) - .setCallback(new TimeLineAdapter() { - @Nullable - @Override - public Rect getRect(int position) { - return new Rect(QMUIDisplayHelper.dp2px(context, 30), - QMUIDisplayHelper.dp2px(context, 10), 0, 0); - } + NormalRecyclerAdapter recyclerAdapter = new NormalRecyclerAdapter(R.layout.item_case_process, dataBeans) { + @Override + public void convertView(ViewHolder viewHolder, int position, CaseProcessBean.DataBean item) { + if (position == 0) { + //最后一项 + viewHolder.setBackgroundColor(R.id.dotView, Color.BLACK); + viewHolder.setTextColor(R.id.operatorNameView, Color.BLACK) + .setTextColor(R.id.statusView, Color.BLACK) + .setTextColor(R.id.operateTimeView, Color.BLACK) + .setTextColor(R.id.remarkView, Color.BLACK); - @Override - public int getTimeLineType(int position) { - if (position == 0) { - return TimeLineDecoration.BEGIN; - } else if (position == adapter.getItemCount() - 1) { - return TimeLineDecoration.END_FULL; - } else { - return TimeLineDecoration.NORMAL; - } - } - }); - viewBinding.processRecyclerView.addItemDecoration(decoration); - viewBinding.processRecyclerView.setAdapter(adapter); + viewHolder.setVisibility(R.id.topLineView, View.INVISIBLE); + viewHolder.setImageResource(R.id.tagImageView, R.drawable.ic_dot_red); + } else if (position == size - 1) { + viewHolder.setVisibility(R.id.bottomLineView, View.INVISIBLE); + viewHolder.setImageResource(R.id.tagImageView, R.drawable.ic_dot_gray); + } else { + viewHolder.setImageResource(R.id.tagImageView, R.drawable.ic_dot); + } + + viewHolder.setText(R.id.statusView, item.getOperationTypeName()) + .setText(R.id.operatorNameView, item.getUserName()) + .setText(R.id.remarkView, item.getRemarks()) + .setText(R.id.operateTimeView, item.getTime()); + } + }; + viewBinding.processRecyclerView.setAdapter(recyclerAdapter); } } }); 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 6c8b259..0a65da1 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java @@ -10,12 +10,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; -import com.casic.dcms.adapter.CaseSearchResultAdapter; import com.casic.dcms.databinding.ActivityCaseListBinding; import com.casic.dcms.model.CaseSearchResultBean; import com.casic.dcms.utils.DialogHelper; import com.casic.dcms.vm.CaseViewModel; import com.gyf.immersionbar.ImmersionBar; +import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; +import com.pengxh.androidx.lite.adapter.ViewHolder; import com.pengxh.androidx.lite.base.AndroidxBaseActivity; import com.pengxh.androidx.lite.hub.ContextHub; import com.pengxh.androidx.lite.hub.StringHub; @@ -34,7 +35,7 @@ private final Context context = this; private WeakReferenceHandler weakReferenceHandler; private CaseViewModel caseViewModel; - private CaseSearchResultAdapter adapter; + private NormalRecyclerAdapter adapter; private String typeCode; private String typeDetailCode; private String caseState; @@ -157,16 +158,29 @@ }); } else { viewBinding.emptyView.hide(); - adapter = new CaseSearchResultAdapter(context, dataBeans); - viewBinding.caseRecyclerView.setAdapter(adapter); - adapter.setOnItemClickListener(new CaseSearchResultAdapter.OnItemClickListener() { + adapter = new NormalRecyclerAdapter(R.layout.item_case_rv, dataBeans) { + @Override - public void onClick(int position) { - ContextHub.navigatePageTo( - context, - CaseDetailActivity.class, - dataBeans.get(position).getId() - ); + public void convertView(ViewHolder viewHolder, int position, CaseSearchResultBean.DataDTO.RowsDTO item) { + //核实图片 +// String fileIdVerify = rowsBean.getFileIdVerify(); +// if (!TextUtils.isEmpty(fileIdVerify)) { +// String[] split = fileIdVerify.split(","); +// String firstImage = split[0]; +// if (firstImage.endsWith(".jpg") || firstImage.contains(".jpeg") || firstImage.contains(".png")) { +// Glide.with(context).load(StringHelper.appendCompleteURL(firstImage)).into(caseImageView); +// } +// } + viewHolder.setText(R.id.caseTitleView, StringHub.filterSpaceOrEnter(item.getDescription())) + .setText(R.id.casePlaceView, "发生地点:" + StringHub.filterSpaceOrEnter(item.getFieldintro())) + .setText(R.id.caseTimeView, "上报时间:" + item.getReportTime()); + } + }; + viewBinding.caseRecyclerView.setAdapter(adapter); + adapter.setOnItemClickedListener(new NormalRecyclerAdapter.OnItemClickedListener() { + @Override + public void onItemClicked(int position, CaseSearchResultBean.DataDTO.RowsDTO rowsDTO) { + ContextHub.navigatePageTo(context, CaseDetailActivity.class, rowsDTO.getId()); } }); } diff --git a/app/src/main/java/com/casic/dcms/view/DataAnalysisActivity.java b/app/src/main/java/com/casic/dcms/view/DataAnalysisActivity.java index c3bff07..29d576b 100644 --- a/app/src/main/java/com/casic/dcms/view/DataAnalysisActivity.java +++ b/app/src/main/java/com/casic/dcms/view/DataAnalysisActivity.java @@ -6,13 +6,18 @@ import androidx.core.content.ContextCompat; import com.casic.dcms.R; -import com.casic.dcms.adapter.AnalysisRecycleAdapter; import com.casic.dcms.databinding.ActivityCaseAnalysisBinding; +import com.casic.dcms.model.DataAnalysisGridModel; +import com.casic.dcms.utils.LocaleConstant; import com.gyf.immersionbar.ImmersionBar; +import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; +import com.pengxh.androidx.lite.adapter.ViewHolder; import com.pengxh.androidx.lite.base.AndroidxBaseActivity; import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import java.util.ArrayList; + /** * @author : Pengxh * @time : 2021/4/15 16:03 @@ -38,11 +43,25 @@ @Override protected void initData() { - AnalysisRecycleAdapter adapter = new AnalysisRecycleAdapter(this); - viewBinding.analysisRecyclerView.setAdapter(adapter); - adapter.setOnGridItemClickListener(new AnalysisRecycleAdapter.OnGridItemClickListener() { + ArrayList models = new ArrayList<>(); + for (int i = 0; i < 6; i++) { + DataAnalysisGridModel model = new DataAnalysisGridModel(); + model.setItemIcon(LocaleConstant.ANALYSIS_ICONS.get(i)); + model.setItemTitle(LocaleConstant.ANALYSIS_ITEMS.get(i)); + models.add(model); + } + + NormalRecyclerAdapter adapter = new NormalRecyclerAdapter(R.layout.item_home_recycleview, models) { + @Override - public void onClick(int position) { + public void convertView(ViewHolder viewHolder, int position, DataAnalysisGridModel item) { + viewHolder.setImageResource(R.id.imageView, item.getItemIcon()).setText(R.id.textView, item.getItemTitle()); + } + }; + viewBinding.analysisRecyclerView.setAdapter(adapter); + adapter.setOnItemClickedListener(new NormalRecyclerAdapter.OnItemClickedListener() { + @Override + public void onItemClicked(int position, DataAnalysisGridModel dataAnalysisGridModel) { Intent intent = new Intent(); switch (position) { case 0: diff --git a/app/src/main/java/com/casic/dcms/view/MainActivity.java b/app/src/main/java/com/casic/dcms/view/MainActivity.java index cf8662f..376e943 100644 --- a/app/src/main/java/com/casic/dcms/view/MainActivity.java +++ b/app/src/main/java/com/casic/dcms/view/MainActivity.java @@ -3,6 +3,7 @@ import android.content.Intent; import android.os.Build; import android.os.Handler; +import android.os.Message; import android.view.KeyEvent; import android.view.MenuItem; import android.view.View; @@ -40,7 +41,6 @@ import com.google.android.material.navigation.NavigationBarView; import com.google.gson.Gson; import com.gyf.immersionbar.ImmersionBar; -import com.igexin.sdk.PushManager; import com.pengxh.androidx.lite.base.AndroidxBaseActivity; import com.pengxh.androidx.lite.hub.ContextHub; import com.pengxh.androidx.lite.hub.StringHub; @@ -64,8 +64,6 @@ private String imei = ""; private UploadViewModel positionViewModel; private PushViewModel pushViewModel; - private MapConfigViewModel mapConfigViewModel; - private ToiletViewModel toiletViewModel; private long clickTime = 0; @Override @@ -82,6 +80,26 @@ } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == LocaleConstant.PUSH_REGISTER) { + pushViewModel.registerPush((String) msg.obj); + } else if (msg.what == LocaleConstant.MESSAGE_NUMBER) { + updateMessageNumber(); + } else if (msg.what == LocaleConstant.UPDATE_LOCATION) { + AMapLocation aMapLocation = (AMapLocation) msg.obj; + try { + double[] gcjToWgs = LocationHelper.gcjToWgs(aMapLocation.getLongitude(), aMapLocation.getLatitude()); + positionViewModel.uploadPosition(imei, String.valueOf(gcjToWgs[1]), String.valueOf(gcjToWgs[0])); + } catch (NullPointerException e) { + e.printStackTrace(); + } + } + return true; + } + }; + @Override protected void initData() { //配置页面 @@ -89,29 +107,14 @@ pageViews.add(new PhonePageFragment()); pageViews.add(new NoticePageFragment()); pageViews.add(new MinePageFragment()); + MainPageAdapter mainPageAdapter = new MainPageAdapter(getSupportFragmentManager(), pageViews); + viewBinding.mainViewPager.setOffscreenPageLimit(pageViews.size()); + viewBinding.mainViewPager.setAdapter(mainPageAdapter); - //个推初始化 - PushManager.getInstance().initialize(this); weakReferenceHandler = new WeakReferenceHandler(callback); dataBaseManager = DataBaseManager.getInstance(); - positionViewModel = new ViewModelProvider(this).get(UploadViewModel.class); - pushViewModel = new ViewModelProvider(this).get(PushViewModel.class); - mapConfigViewModel = new ViewModelProvider(this).get(MapConfigViewModel.class); - toiletViewModel = new ViewModelProvider(this).get(ToiletViewModel.class); - - //获取配置项 - obtainProjectConfig(); - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { - startForegroundService(new Intent(this, UpdateLocationService.class)); - } else { - startService(new Intent(this, UpdateLocationService.class)); - } - } - - private void obtainProjectConfig() { - imei = ContextHub.getSimCardSerialNumber(this); - //地图配置项 + MapConfigViewModel mapConfigViewModel = new ViewModelProvider(this).get(MapConfigViewModel.class); mapConfigViewModel.obtainMapConfig(); mapConfigViewModel.mapConfigModel.observe(this, new Observer() { @Override @@ -125,65 +128,34 @@ } }); - //公厕数据 - toiletViewModel.obtainToiletList(); + ToiletViewModel toiletViewModel = new ViewModelProvider(this).get(ToiletViewModel.class); + toiletViewModel.getToilets(); toiletViewModel.toiletListModel.observe(this, new Observer() { @Override public void onChanged(ToiletListModel resultBean) { if (resultBean.getCode() == 200) { dataBaseManager.deleteAllToiletList(); for (ToiletListModel.DataBean dataBean : resultBean.getData()) { - dataBaseManager.saveToiletList(dataBean); + dataBaseManager.saveToilets(dataBean); } } } }); - //公厕图层ID - HttpRequestHelper.doRequest(LocaleConstant.LAYER_CONFIG, new IHttpRequestListener() { - @Override - public void onSuccess(ResponseBody resultBean) { - try { - String resultStr = resultBean.string(); - List partsLayer = gson.fromJson(resultStr, LayerConfigBean.class).getPartsLayer(); - List childrenBeans = partsLayer.get(2).getChildren(); - StringHelper.saveToiletLayerId(String.valueOf(childrenBeans.get(0).getLayer())); - } catch (IOException e) { - e.printStackTrace(); - } - } + positionViewModel = new ViewModelProvider(this).get(UploadViewModel.class); + pushViewModel = new ViewModelProvider(this).get(PushViewModel.class); - @Override - public void onFailure(Throwable throwable) { - - } - }); - - //桥梁数据 TODO-待调试 - HttpRequestHelper.doRequest(LocaleConstant.PROJECT_CONFIG, new IHttpRequestListener() { - @Override - public void onSuccess(ResponseBody resultBean) { - try { - String resultStr = resultBean.string(); - List bridges = gson.fromJson(resultStr, BridgeConfigBean.class).getBridges(); - StringHelper.saveBridgeList(gson.toJson(bridges)); - } catch (IOException e) { - e.printStackTrace(); - } - } - - @Override - public void onFailure(Throwable throwable) { - - } - }); + //获取配置项 + obtainProjectConfig(); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { + startForegroundService(new Intent(this, UpdateLocationService.class)); + } else { + startService(new Intent(this, UpdateLocationService.class)); + } } @Override protected void initEvent() { - MainPageAdapter mainPageAdapter = new MainPageAdapter(getSupportFragmentManager(), pageViews); - viewBinding.mainViewPager.setOffscreenPageLimit(pageViews.size()); - viewBinding.mainViewPager.setAdapter(mainPageAdapter); viewBinding.bottomNavigation.setOnItemSelectedListener(new NavigationBarView.OnItemSelectedListener() { @Override public boolean onNavigationItemSelected(@NonNull MenuItem item) { @@ -228,27 +200,53 @@ }); } - private final Handler.Callback callback = msg -> { - if (msg.what == LocaleConstant.PUSH_REGISTER) { - pushViewModel.registerPush((String) msg.obj); - } else if (msg.what == LocaleConstant.MESSAGE_NUMBER) { - updateMessageNumber(); - } else if (msg.what == LocaleConstant.UPDATE_LOCATION) { - AMapLocation aMapLocation = (AMapLocation) msg.obj; - try { - double[] gcjToWgs = LocationHelper.gcjToWgs(aMapLocation.getLongitude(), aMapLocation.getLatitude()); - positionViewModel.uploadPosition(imei, String.valueOf(gcjToWgs[1]), String.valueOf(gcjToWgs[0])); - } catch (NullPointerException e) { - e.printStackTrace(); + private void obtainProjectConfig() { + imei = ContextHub.getSimCardSerialNumber(this); + + //公厕图层ID + HttpRequestHelper.doRequest(LocaleConstant.LAYER_CONFIG, new IHttpRequestListener() { + @Override + public void onSuccess(ResponseBody resultBean) { + try { + String resultStr = resultBean.string(); + List partsLayer = gson.fromJson(resultStr, LayerConfigBean.class).getPartsLayer(); + List childrenBeans = partsLayer.get(2).getChildren(); + StringHelper.saveToiletLayerId(String.valueOf(childrenBeans.get(0).getLayer())); + } catch (IOException e) { + e.printStackTrace(); + } } - } - return true; - }; + + @Override + public void onFailure(Throwable throwable) { + + } + }); + + //桥梁数据 TODO-待调试 + HttpRequestHelper.doRequest(LocaleConstant.PROJECT_CONFIG, new IHttpRequestListener() { + @Override + public void onSuccess(ResponseBody resultBean) { + try { + String resultStr = resultBean.string(); + List bridges = gson.fromJson(resultStr, BridgeConfigBean.class).getBridges(); + StringHelper.saveBridgeList(gson.toJson(bridges)); + } catch (IOException e) { + e.printStackTrace(); + } + } + + @Override + public void onFailure(Throwable throwable) { + + } + }); + } @Override protected void onResume() { - updateMessageNumber(); super.onResume(); + updateMessageNumber(); } private void updateMessageNumber() { diff --git a/app/src/main/java/com/casic/dcms/view/PublicToiletActivity.java b/app/src/main/java/com/casic/dcms/view/PublicToiletActivity.java index d3e3ced..0a75439 100644 --- a/app/src/main/java/com/casic/dcms/view/PublicToiletActivity.java +++ b/app/src/main/java/com/casic/dcms/view/PublicToiletActivity.java @@ -153,7 +153,7 @@ viewBinding.obtainToiletIdLayout.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - List toiletBeanList = DataBaseManager.getInstance().getToiletList(); + List toiletBeanList = DataBaseManager.getInstance().getToilets(); if (toiletBeanList.size() == 0) { StringHub.show(context, "获取公厕数据失败,请联系管理员"); return; diff --git a/app/src/main/java/com/casic/dcms/vm/ToiletViewModel.java b/app/src/main/java/com/casic/dcms/vm/ToiletViewModel.java index 313e3d1..05ab157 100644 --- a/app/src/main/java/com/casic/dcms/vm/ToiletViewModel.java +++ b/app/src/main/java/com/casic/dcms/vm/ToiletViewModel.java @@ -25,8 +25,8 @@ public MutableLiveData cleanToiletModel = new MutableLiveData<>(); public MutableLiveData cleanRecordModel = new MutableLiveData<>(); - public void obtainToiletList() { - Observable observable = RetrofitServiceManager.getToiletList(); + public void getToilets() { + Observable observable = RetrofitServiceManager.getToilets(); ObserverSubscriber.addSubscribe(observable, new OnObserverCallback() { @Override public void onCompleted() { diff --git a/.idea/misc.xml b/.idea/misc.xml index 12058ca..4f8b20d 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -28,6 +28,9 @@ + + + @@ -39,6 +42,7 @@ + @@ -81,7 +85,8 @@ - + + diff --git a/app/src/main/java/com/casic/dcms/adapter/AnalysisRecycleAdapter.java b/app/src/main/java/com/casic/dcms/adapter/AnalysisRecycleAdapter.java deleted file mode 100644 index 913bde1..0000000 --- a/app/src/main/java/com/casic/dcms/adapter/AnalysisRecycleAdapter.java +++ /dev/null @@ -1,71 +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.utils.LocaleConstant; - -public class AnalysisRecycleAdapter extends RecyclerView.Adapter { - - private final LayoutInflater layoutInflater; - - public AnalysisRecycleAdapter(Context context) { - this.layoutInflater = LayoutInflater.from(context); - } - - @NonNull - @Override - public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - return new ItemViewHolder(layoutInflater.inflate(R.layout.item_home_recycleview, parent, false)); - } - - @Override - public void onBindViewHolder(@NonNull ItemViewHolder holder, @SuppressLint("RecyclerView") int position) { - holder.imageView.setBackgroundResource(LocaleConstant.ANALYSIS_ICONS.get(position)); - holder.textView.setText(LocaleConstant.ANALYSIS_ITEMS.get(position)); - if (clickListener != null) { - holder.itemView.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - clickListener.onClick(position); - } - }); - } - } - - @Override - public int getItemCount() { - return LocaleConstant.ANALYSIS_ITEMS.size(); - } - - private OnGridItemClickListener clickListener; - - public interface OnGridItemClickListener { - void onClick(int position); - } - - public void setOnGridItemClickListener(OnGridItemClickListener onGridItemClickListener) { - this.clickListener = onGridItemClickListener; - } - - static class ItemViewHolder extends RecyclerView.ViewHolder { - - private final ImageView imageView; - private final TextView textView; - - ItemViewHolder(@NonNull View itemView) { - super(itemView); - imageView = itemView.findViewById(R.id.imageView); - textView = itemView.findViewById(R.id.textView); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/adapter/CaseSearchResultAdapter.java b/app/src/main/java/com/casic/dcms/adapter/CaseSearchResultAdapter.java deleted file mode 100644 index 9449f44..0000000 --- a/app/src/main/java/com/casic/dcms/adapter/CaseSearchResultAdapter.java +++ /dev/null @@ -1,94 +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.TextView; - -import androidx.annotation.NonNull; -import androidx.recyclerview.widget.RecyclerView; - -import com.casic.dcms.R; -import com.casic.dcms.model.CaseSearchResultBean; -import com.pengxh.androidx.lite.hub.StringHub; -import com.qmuiteam.qmui.widget.QMUIRadiusImageView; - -import java.util.List; - -public class CaseSearchResultAdapter extends RecyclerView.Adapter { - - private final List dataRows; - private final LayoutInflater layoutInflater; - - public CaseSearchResultAdapter(Context context, List dataRows) { - this.dataRows = dataRows; - this.layoutInflater = LayoutInflater.from(context); - } - - @NonNull - @Override - public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - return new ItemViewHolder(layoutInflater.inflate(R.layout.item_case_rv, parent, false)); - } - - @Override - public void onBindViewHolder(@NonNull ItemViewHolder holder, @SuppressLint("RecyclerView") int position) { - holder.bindView(dataRows.get(position)); - if (clickListener != null) { - holder.itemView.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - clickListener.onClick(position); - } - }); - } - } - - @Override - public int getItemCount() { - return dataRows.size(); - } - - private OnItemClickListener clickListener; - - public interface OnItemClickListener { - void onClick(int position); - } - - public void setOnItemClickListener(OnItemClickListener onItemClickListener) { - this.clickListener = onItemClickListener; - } - - class ItemViewHolder extends RecyclerView.ViewHolder { - - private final QMUIRadiusImageView caseImageView; - private final TextView caseTitleView; - private final TextView casePlaceView; - private final TextView caseTimeView; - - ItemViewHolder(@NonNull View itemView) { - super(itemView); - caseImageView = itemView.findViewById(R.id.caseImageView); - caseTitleView = itemView.findViewById(R.id.caseTitleView); - casePlaceView = itemView.findViewById(R.id.casePlaceView); - caseTimeView = itemView.findViewById(R.id.caseTimeView); - } - - void bindView(CaseSearchResultBean.DataDTO.RowsDTO rowsBean) { - //核实图片 -// String fileIdVerify = rowsBean.getFileIdVerify(); -// if (!TextUtils.isEmpty(fileIdVerify)) { -// String[] split = fileIdVerify.split(","); -// String firstImage = split[0]; -// if (firstImage.endsWith(".jpg") || firstImage.contains(".jpeg") || firstImage.contains(".png")) { -// Glide.with(context).load(StringHelper.appendCompleteURL(firstImage)).into(caseImageView); -// } -// } - caseTitleView.setText(StringHub.filterSpaceOrEnter(rowsBean.getDescription())); - casePlaceView.setText("发生地点:" + StringHub.filterSpaceOrEnter(rowsBean.getFieldintro())); - caseTimeView.setText("上报时间:" + rowsBean.getReportTime()); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/adapter/HomeRecycleAdapter.java b/app/src/main/java/com/casic/dcms/adapter/HomeRecycleAdapter.java deleted file mode 100644 index e6eafa6..0000000 --- a/app/src/main/java/com/casic/dcms/adapter/HomeRecycleAdapter.java +++ /dev/null @@ -1,80 +0,0 @@ -package com.casic.dcms.adapter; - -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.HomePageBean; -import com.casic.dcms.utils.StringHelper; - -import java.util.List; - -public class HomeRecycleAdapter extends RecyclerView.Adapter { - - private final List menuData; - private final LayoutInflater layoutInflater; - - public HomeRecycleAdapter(Context context, List menus) { - this.menuData = menus; - this.layoutInflater = LayoutInflater.from(context); - } - - @NonNull - @Override - public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - return new ItemViewHolder(layoutInflater.inflate(R.layout.item_home_recycleview, parent, false)); - } - - @Override - public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { - String name = menuData.get(position).getName(); - holder.bindView(name); - if (clickListener != null) { - holder.itemView.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - clickListener.onClick(name); - } - }); - } - } - - @Override - public int getItemCount() { - return menuData.size(); - } - - private OnGridItemClickListener clickListener; - - public interface OnGridItemClickListener { - void onClick(String itemName); - } - - public void setOnGridItemClickListener(OnGridItemClickListener onGridItemClickListener) { - this.clickListener = onGridItemClickListener; - } - - static class ItemViewHolder extends RecyclerView.ViewHolder { - - private final ImageView imageView; - private final TextView textView; - - ItemViewHolder(@NonNull View itemView) { - super(itemView); - imageView = itemView.findViewById(R.id.imageView); - textView = itemView.findViewById(R.id.textView); - } - - void bindView(String name) { - imageView.setBackgroundResource(StringHelper.obtainIcon(name)); - textView.setText(name); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/adapter/ProcessLineAdapter.java b/app/src/main/java/com/casic/dcms/adapter/ProcessLineAdapter.java deleted file mode 100644 index 42da4cf..0000000 --- a/app/src/main/java/com/casic/dcms/adapter/ProcessLineAdapter.java +++ /dev/null @@ -1,70 +0,0 @@ -package com.casic.dcms.adapter; - -import android.content.Context; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.TextView; - -import androidx.annotation.NonNull; -import androidx.recyclerview.widget.RecyclerView; - -import com.casic.dcms.R; -import com.casic.dcms.model.CaseProcessBean; - -import org.jetbrains.annotations.NotNull; - -import java.util.List; - -public class ProcessLineAdapter extends RecyclerView.Adapter { - private final List mProcessList; - private final LayoutInflater layoutInflater; - - public ProcessLineAdapter(Context context, List list) { - this.mProcessList = list; - this.layoutInflater = LayoutInflater.from(context); - } - - @NotNull - @Override - public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - return new ViewHolder(layoutInflater.inflate(R.layout.item_case_process, parent, false)); - } - - @Override - public void onBindViewHolder(ViewHolder holder, int position) { - CaseProcessBean.DataBean dataBean = mProcessList.get(position); - String typeName = dataBean.getOperationTypeName(); - holder.operationTypeName.setText(typeName); - holder.handlePersonView.setText(dataBean.getUserName()); - holder.handleTimeView.setText(dataBean.getTime()); - holder.handleResultView.setText(dataBean.getRemarks()); - } - - @Override - public int getItemViewType(int position) { - return super.getItemViewType(position); - } - - @Override - public int getItemCount() { - return mProcessList.size(); - } - - static class ViewHolder extends RecyclerView.ViewHolder { - private final TextView operationTypeName; - private final TextView handlePersonView; - private final TextView handleTimeView; - private final TextView handleResultView; - private final RecyclerView handlePicView; - - public ViewHolder(View view) { - super(view); - operationTypeName = view.findViewById(R.id.operationTypeName); - handlePersonView = view.findViewById(R.id.handlePersonView); - handleTimeView = view.findViewById(R.id.handleTimeView); - handleResultView = view.findViewById(R.id.handleResultView); - handlePicView = view.findViewById(R.id.handlePicView); - } - } -} \ No newline at end of file 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 3b7a194..6b6b72e 100644 --- a/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java @@ -7,7 +7,6 @@ import com.bumptech.glide.Glide; import com.casic.dcms.R; -import com.casic.dcms.adapter.HomeRecycleAdapter; import com.casic.dcms.databinding.FragmentHomeBinding; import com.casic.dcms.model.HomePageBean; import com.casic.dcms.model.UserBean; @@ -33,6 +32,8 @@ import com.casic.dcms.view.UrgentCaseActivity; import com.casic.dcms.view.VerifyCaseActivity; import com.casic.dcms.vm.HomePageViewModel; +import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; +import com.pengxh.androidx.lite.adapter.ViewHolder; import com.pengxh.androidx.lite.base.AndroidxBaseFragment; import com.pengxh.androidx.lite.hub.LongHub; import com.pengxh.androidx.lite.utils.SaveKeyValues; @@ -95,13 +96,18 @@ @Override public void onChanged(HomePageBean resultBean) { if (resultBean.getCode() == 200) { - HomeRecycleAdapter adapter = new HomeRecycleAdapter(requireContext(), resultBean.getData().getMenus()); - viewBinding.homeRecyclerView.setAdapter(adapter); - adapter.setOnGridItemClickListener(new HomeRecycleAdapter.OnGridItemClickListener() { + NormalRecyclerAdapter recyclerAdapter = new NormalRecyclerAdapter(R.layout.item_home_recycleview, resultBean.getData().getMenus()) { @Override - public void onClick(String itemName) { + public void convertView(ViewHolder viewHolder, int position, HomePageBean.DataBean.MenusBean item) { + viewHolder.setImageResource(R.id.imageView, StringHelper.obtainDrawableIcon(item.getName())).setText(R.id.textView, item.getName()); + } + }; + viewBinding.homeRecyclerView.setAdapter(recyclerAdapter); + recyclerAdapter.setOnItemClickedListener(new NormalRecyclerAdapter.OnItemClickedListener() { + @Override + public void onItemClicked(int position, HomePageBean.DataBean.MenusBean menusBean) { Intent intent = new Intent(); - switch (itemName) { + switch (menusBean.getName()) { case "案卷上报": intent.setClass(requireContext(), CommonCaseUploadActivity.class); break; diff --git a/app/src/main/java/com/casic/dcms/model/DataAnalysisGridModel.java b/app/src/main/java/com/casic/dcms/model/DataAnalysisGridModel.java new file mode 100644 index 0000000..3b20a2f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/model/DataAnalysisGridModel.java @@ -0,0 +1,22 @@ +package com.casic.dcms.model; + +public class DataAnalysisGridModel { + private int itemIcon; + private String itemTitle; + + public int getItemIcon() { + return itemIcon; + } + + public void setItemIcon(int itemIcon) { + this.itemIcon = itemIcon; + } + + public String getItemTitle() { + return itemTitle; + } + + public void setItemTitle(String itemTitle) { + this.itemTitle = itemTitle; + } +} diff --git a/app/src/main/java/com/casic/dcms/utils/DataBaseManager.java b/app/src/main/java/com/casic/dcms/utils/DataBaseManager.java index 0a39218..57f0df8 100644 --- a/app/src/main/java/com/casic/dcms/utils/DataBaseManager.java +++ b/app/src/main/java/com/casic/dcms/utils/DataBaseManager.java @@ -127,7 +127,7 @@ toiletListBeanDao.deleteAll(); } - public void saveToiletList(ToiletListModel.DataBean dataBean) { + public void saveToilets(ToiletListModel.DataBean dataBean) { ToiletListBean bean = new ToiletListBean(); bean.setArea(dataBean.getArea()); bean.setCode(dataBean.getCode()); @@ -149,7 +149,7 @@ toiletListBeanDao.save(bean); } - public List getToiletList() { + public List getToilets() { List result = new ArrayList<>(); List listBeans = toiletListBeanDao.loadAll(); for (ToiletListBean toiletBean : listBeans) { diff --git a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java b/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java index 7cb867d..fb0c033 100644 --- a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java +++ b/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java @@ -1,25 +1,12 @@ package com.casic.dcms.utils; -import android.util.Log; - import com.casic.dcms.utils.callback.IHttpRequestListener; +import com.pengxh.androidx.lite.callback.OnHttpRequestListener; +import com.pengxh.androidx.lite.hub.RequestHub; import com.pengxh.androidx.lite.utils.SaveKeyValues; -import org.jetbrains.annotations.NotNull; - -import java.io.IOException; -import java.util.concurrent.TimeUnit; - -import okhttp3.OkHttpClient; import okhttp3.Request; import okhttp3.Response; -import okhttp3.ResponseBody; -import okhttp3.logging.HttpLoggingInterceptor; -import rx.Emitter; -import rx.Observable; -import rx.Observer; -import rx.android.schedulers.AndroidSchedulers; -import rx.schedulers.Schedulers; public class HttpRequestHelper { private static final String TAG = "HttpRequestHelper"; @@ -27,93 +14,39 @@ public static void doRequest(String function, String requestValue, IHttpRequestListener listener) { String ip = (String) SaveKeyValues.getValue(LocaleConstant.IP_KEY, "http://111.198.10.15:11409"); // String ip = (String) SaveKeyValues.getValue(Constant.IP_KEY, "http://223.82.47.232:11401"); - Observable.create(emitter -> { - HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor(new HttpLoggingInterceptor.Logger() { - @Override - public void log(@NotNull String message) { - Log.d(TAG, "log: " + message); - } - }); - interceptor.setLevel(HttpLoggingInterceptor.Level.BODY); - - OkHttpClient client = new OkHttpClient.Builder() - .addInterceptor(interceptor) - .readTimeout(LocaleConstant.HTTP_TIMEOUT, TimeUnit.SECONDS) - .connectTimeout(LocaleConstant.HTTP_TIMEOUT, TimeUnit.SECONDS) - .writeTimeout(LocaleConstant.HTTP_TIMEOUT, TimeUnit.SECONDS) - .build(); - - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(ip + function + requestValue) - .get() - .build();//创建Request 对象 - try { - Response response = client.newCall(request).execute(); - emitter.onNext(response.body()); - } catch (IOException e) { - emitter.onError(e); - } - }, Emitter.BackpressureMode.BUFFER).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + Request request = new Request.Builder() + .addHeader("token", AuthenticationHelper.getToken()) + .url(ip + function + requestValue) + .get() + .build();//创建Request 对象 + RequestHub.doRequest(request, new OnHttpRequestListener() { @Override - public void onCompleted() { - + public void onSuccess(Response response) { + listener.onSuccess(response.body()); } @Override - public void onError(Throwable e) { - listener.onFailure(e); - } - - @Override - public void onNext(ResponseBody responseBody) { - listener.onSuccess(responseBody); + public void onFailure(Throwable throwable) { + listener.onFailure(throwable); } }); } public static void doRequest(String url, IHttpRequestListener listener) { - Observable.create(emitter -> { - HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor(new HttpLoggingInterceptor.Logger() { - @Override - public void log(@NotNull String message) { - Log.d(TAG, "log: " + message); - } - }); - interceptor.setLevel(HttpLoggingInterceptor.Level.BODY); - - OkHttpClient client = new OkHttpClient.Builder() - .addInterceptor(interceptor) - .readTimeout(LocaleConstant.HTTP_TIMEOUT, TimeUnit.SECONDS) - .connectTimeout(LocaleConstant.HTTP_TIMEOUT, TimeUnit.SECONDS) - .writeTimeout(LocaleConstant.HTTP_TIMEOUT, TimeUnit.SECONDS) - .build(); - - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(url) - .get() - .build();//创建Request 对象 - try { - Response response = client.newCall(request).execute(); - emitter.onNext(response.body()); - } catch (IOException e) { - emitter.onError(e); - } - }, Emitter.BackpressureMode.BUFFER).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + Request request = new Request.Builder() + .addHeader("token", AuthenticationHelper.getToken()) + .url(url) + .get() + .build();//创建Request 对象 + RequestHub.doRequest(request, new OnHttpRequestListener() { @Override - public void onCompleted() { - + public void onSuccess(Response response) { + listener.onSuccess(response.body()); } @Override - public void onError(Throwable e) { - listener.onFailure(e); - } - - @Override - public void onNext(ResponseBody responseBody) { - listener.onSuccess(responseBody); + public void onFailure(Throwable throwable) { + listener.onFailure(throwable); } }); } diff --git a/app/src/main/java/com/casic/dcms/utils/StringHelper.java b/app/src/main/java/com/casic/dcms/utils/StringHelper.java index c625bb4..1a097cc 100644 --- a/app/src/main/java/com/casic/dcms/utils/StringHelper.java +++ b/app/src/main/java/com/casic/dcms/utils/StringHelper.java @@ -264,8 +264,20 @@ return R.drawable.ic_dtck; case "公厕保洁": return R.drawable.ic_toilet; + case "三包处置": + return R.drawable.ic_sanbao; + case "商铺变更": + return R.drawable.ic_shangpu; + case "部门处置": + return R.drawable.ic_dept; + case "路桥养护": + return R.drawable.ic_bridge; + case "管网管理": + return R.drawable.ic_pipe; + case "路灯管理": + return R.drawable.ic_streetlight; default: - return 0; + return R.drawable.ic_default_icon; } } } diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java index b1a3c67..6d3574d 100644 --- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java +++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java @@ -39,9 +39,7 @@ * token添加到Header */ @GET("/user/info") - Observable getUserData( - @Header("token") String token - ); + Observable getUserData(@Header("token") String token); /** * 获取地图地址 @@ -49,9 +47,7 @@ * token添加到Header */ @GET("/map/server/listPage") - Observable getMapConfig( - @Header("token") String token - ); + Observable getMapConfig(@Header("token") String token); /** * 大类列表查询 @@ -132,9 +128,7 @@ * 退出登录 */ @GET("/user/logout") - Observable loginOut( - @Header("token") String token - ); + Observable loginOut(@Header("token") String token); /** * 修改密码 @@ -152,10 +146,7 @@ * 获取部门树 */ @GET("/dept/tree") - Observable getDeptTree( - @Header("token") String token, - @Query("pid") String pid - ); + Observable getDeptTree(@Header("token") String token, @Query("pid") String pid); /** * 获取通讯录 @@ -193,9 +184,7 @@ * 获取案件状态 */ @GET("/dict/code/caseState") - Observable getCaseStatus( - @Header("token") String token - ); + Observable getCaseStatus(@Header("token") String token); /** * 获取案件列表 @@ -223,10 +212,7 @@ * http://111.198.10.15:11409/case/detail/1372735305680994306 */ @GET("/case/detail/{id}") - Observable obtainCaseDetail( - @Header("token") String token, - @Path("id") String id - ); + Observable obtainCaseDetail(@Header("token") String token, @Path("id") String id); /** * 获取案件流转记录 @@ -241,9 +227,7 @@ * 更新版本 */ @POST("/app/checkVersion") - Observable updateVersion( - @Header("token") String token - ); + Observable updateVersion(@Header("token") String token); /** * 获取核实待办案卷 @@ -407,9 +391,7 @@ * 获取常见语句 */ @GET("/dict/code/commonApproval") - Observable obtainCommonSentence( - @Header("token") String token - ); + Observable obtainCommonSentence(@Header("token") String token); /** * 案卷处理 @@ -532,9 +514,7 @@ * http://111.198.10.15:11409/sanitation/toilet/list */ @GET("/sanitation/toilet/list") - Observable getToiletList( - @Header("token") String token - ); + Observable getToilets(@Header("token") String token); /** * 公厕打扫签到 @@ -789,9 +769,7 @@ * http://111.198.10.15:11409/lampCr/overview/lampList */ @GET("/lightCr/overview/lampList") - Observable obtainLightList( - @Header("token") String token - ); + Observable obtainLightList(@Header("token") String token); /** * 路灯详情 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 5c31b0a..8876060 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 @@ -411,8 +411,8 @@ /** * 公厕列表 */ - public static Observable getToiletList() { - return api.getToiletList(AuthenticationHelper.getToken()); + public static Observable getToilets() { + return api.getToilets(AuthenticationHelper.getToken()); } /** 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 e709752..d7bf511 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java @@ -1,25 +1,23 @@ package com.casic.dcms.view; import android.content.Context; -import android.graphics.Rect; +import android.graphics.Color; +import android.view.View; -import androidx.annotation.Nullable; import androidx.core.content.ContextCompat; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; -import com.casic.dcms.adapter.ProcessLineAdapter; import com.casic.dcms.databinding.ActivityCaseProcessBinding; import com.casic.dcms.model.CaseProcessBean; -import com.casic.dcms.utils.TimeLineDecoration; -import com.casic.dcms.utils.TimeLineDecoration.TimeLineAdapter; import com.casic.dcms.vm.CommonDataViewModel; import com.gyf.immersionbar.ImmersionBar; +import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; +import com.pengxh.androidx.lite.adapter.ViewHolder; import com.pengxh.androidx.lite.base.AndroidxBaseActivity; import com.pengxh.androidx.lite.utils.Constant; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; -import com.qmuiteam.qmui.util.QMUIDisplayHelper; import java.util.ArrayList; import java.util.List; @@ -62,36 +60,33 @@ for (int i = 0; i < size; i++) { dataBeans.add(i, resultBean.getData().get(size - 1 - i)); } - ProcessLineAdapter adapter = new ProcessLineAdapter(context, dataBeans); - TimeLineDecoration decoration = new TimeLineDecoration(context) - .setLineColor(R.color.lightGray) - .setLineWidth(1f) - .setLeftDistance(QMUIDisplayHelper.dp2px(context, 9)) - .setMarkerColor(R.color.lightGray) - .setMarkerRadius(10f) - .setBeginMarkerRadius(10f) - .setBeginMarker(R.drawable.begin_marker) - .setCallback(new TimeLineAdapter() { - @Nullable - @Override - public Rect getRect(int position) { - return new Rect(QMUIDisplayHelper.dp2px(context, 30), - QMUIDisplayHelper.dp2px(context, 10), 0, 0); - } + NormalRecyclerAdapter recyclerAdapter = new NormalRecyclerAdapter(R.layout.item_case_process, dataBeans) { + @Override + public void convertView(ViewHolder viewHolder, int position, CaseProcessBean.DataBean item) { + if (position == 0) { + //最后一项 + viewHolder.setBackgroundColor(R.id.dotView, Color.BLACK); + viewHolder.setTextColor(R.id.operatorNameView, Color.BLACK) + .setTextColor(R.id.statusView, Color.BLACK) + .setTextColor(R.id.operateTimeView, Color.BLACK) + .setTextColor(R.id.remarkView, Color.BLACK); - @Override - public int getTimeLineType(int position) { - if (position == 0) { - return TimeLineDecoration.BEGIN; - } else if (position == adapter.getItemCount() - 1) { - return TimeLineDecoration.END_FULL; - } else { - return TimeLineDecoration.NORMAL; - } - } - }); - viewBinding.processRecyclerView.addItemDecoration(decoration); - viewBinding.processRecyclerView.setAdapter(adapter); + viewHolder.setVisibility(R.id.topLineView, View.INVISIBLE); + viewHolder.setImageResource(R.id.tagImageView, R.drawable.ic_dot_red); + } else if (position == size - 1) { + viewHolder.setVisibility(R.id.bottomLineView, View.INVISIBLE); + viewHolder.setImageResource(R.id.tagImageView, R.drawable.ic_dot_gray); + } else { + viewHolder.setImageResource(R.id.tagImageView, R.drawable.ic_dot); + } + + viewHolder.setText(R.id.statusView, item.getOperationTypeName()) + .setText(R.id.operatorNameView, item.getUserName()) + .setText(R.id.remarkView, item.getRemarks()) + .setText(R.id.operateTimeView, item.getTime()); + } + }; + viewBinding.processRecyclerView.setAdapter(recyclerAdapter); } } }); 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 6c8b259..0a65da1 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java @@ -10,12 +10,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; -import com.casic.dcms.adapter.CaseSearchResultAdapter; import com.casic.dcms.databinding.ActivityCaseListBinding; import com.casic.dcms.model.CaseSearchResultBean; import com.casic.dcms.utils.DialogHelper; import com.casic.dcms.vm.CaseViewModel; import com.gyf.immersionbar.ImmersionBar; +import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; +import com.pengxh.androidx.lite.adapter.ViewHolder; import com.pengxh.androidx.lite.base.AndroidxBaseActivity; import com.pengxh.androidx.lite.hub.ContextHub; import com.pengxh.androidx.lite.hub.StringHub; @@ -34,7 +35,7 @@ private final Context context = this; private WeakReferenceHandler weakReferenceHandler; private CaseViewModel caseViewModel; - private CaseSearchResultAdapter adapter; + private NormalRecyclerAdapter adapter; private String typeCode; private String typeDetailCode; private String caseState; @@ -157,16 +158,29 @@ }); } else { viewBinding.emptyView.hide(); - adapter = new CaseSearchResultAdapter(context, dataBeans); - viewBinding.caseRecyclerView.setAdapter(adapter); - adapter.setOnItemClickListener(new CaseSearchResultAdapter.OnItemClickListener() { + adapter = new NormalRecyclerAdapter(R.layout.item_case_rv, dataBeans) { + @Override - public void onClick(int position) { - ContextHub.navigatePageTo( - context, - CaseDetailActivity.class, - dataBeans.get(position).getId() - ); + public void convertView(ViewHolder viewHolder, int position, CaseSearchResultBean.DataDTO.RowsDTO item) { + //核实图片 +// String fileIdVerify = rowsBean.getFileIdVerify(); +// if (!TextUtils.isEmpty(fileIdVerify)) { +// String[] split = fileIdVerify.split(","); +// String firstImage = split[0]; +// if (firstImage.endsWith(".jpg") || firstImage.contains(".jpeg") || firstImage.contains(".png")) { +// Glide.with(context).load(StringHelper.appendCompleteURL(firstImage)).into(caseImageView); +// } +// } + viewHolder.setText(R.id.caseTitleView, StringHub.filterSpaceOrEnter(item.getDescription())) + .setText(R.id.casePlaceView, "发生地点:" + StringHub.filterSpaceOrEnter(item.getFieldintro())) + .setText(R.id.caseTimeView, "上报时间:" + item.getReportTime()); + } + }; + viewBinding.caseRecyclerView.setAdapter(adapter); + adapter.setOnItemClickedListener(new NormalRecyclerAdapter.OnItemClickedListener() { + @Override + public void onItemClicked(int position, CaseSearchResultBean.DataDTO.RowsDTO rowsDTO) { + ContextHub.navigatePageTo(context, CaseDetailActivity.class, rowsDTO.getId()); } }); } diff --git a/app/src/main/java/com/casic/dcms/view/DataAnalysisActivity.java b/app/src/main/java/com/casic/dcms/view/DataAnalysisActivity.java index c3bff07..29d576b 100644 --- a/app/src/main/java/com/casic/dcms/view/DataAnalysisActivity.java +++ b/app/src/main/java/com/casic/dcms/view/DataAnalysisActivity.java @@ -6,13 +6,18 @@ import androidx.core.content.ContextCompat; import com.casic.dcms.R; -import com.casic.dcms.adapter.AnalysisRecycleAdapter; import com.casic.dcms.databinding.ActivityCaseAnalysisBinding; +import com.casic.dcms.model.DataAnalysisGridModel; +import com.casic.dcms.utils.LocaleConstant; import com.gyf.immersionbar.ImmersionBar; +import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; +import com.pengxh.androidx.lite.adapter.ViewHolder; import com.pengxh.androidx.lite.base.AndroidxBaseActivity; import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import java.util.ArrayList; + /** * @author : Pengxh * @time : 2021/4/15 16:03 @@ -38,11 +43,25 @@ @Override protected void initData() { - AnalysisRecycleAdapter adapter = new AnalysisRecycleAdapter(this); - viewBinding.analysisRecyclerView.setAdapter(adapter); - adapter.setOnGridItemClickListener(new AnalysisRecycleAdapter.OnGridItemClickListener() { + ArrayList models = new ArrayList<>(); + for (int i = 0; i < 6; i++) { + DataAnalysisGridModel model = new DataAnalysisGridModel(); + model.setItemIcon(LocaleConstant.ANALYSIS_ICONS.get(i)); + model.setItemTitle(LocaleConstant.ANALYSIS_ITEMS.get(i)); + models.add(model); + } + + NormalRecyclerAdapter adapter = new NormalRecyclerAdapter(R.layout.item_home_recycleview, models) { + @Override - public void onClick(int position) { + public void convertView(ViewHolder viewHolder, int position, DataAnalysisGridModel item) { + viewHolder.setImageResource(R.id.imageView, item.getItemIcon()).setText(R.id.textView, item.getItemTitle()); + } + }; + viewBinding.analysisRecyclerView.setAdapter(adapter); + adapter.setOnItemClickedListener(new NormalRecyclerAdapter.OnItemClickedListener() { + @Override + public void onItemClicked(int position, DataAnalysisGridModel dataAnalysisGridModel) { Intent intent = new Intent(); switch (position) { case 0: diff --git a/app/src/main/java/com/casic/dcms/view/MainActivity.java b/app/src/main/java/com/casic/dcms/view/MainActivity.java index cf8662f..376e943 100644 --- a/app/src/main/java/com/casic/dcms/view/MainActivity.java +++ b/app/src/main/java/com/casic/dcms/view/MainActivity.java @@ -3,6 +3,7 @@ import android.content.Intent; import android.os.Build; import android.os.Handler; +import android.os.Message; import android.view.KeyEvent; import android.view.MenuItem; import android.view.View; @@ -40,7 +41,6 @@ import com.google.android.material.navigation.NavigationBarView; import com.google.gson.Gson; import com.gyf.immersionbar.ImmersionBar; -import com.igexin.sdk.PushManager; import com.pengxh.androidx.lite.base.AndroidxBaseActivity; import com.pengxh.androidx.lite.hub.ContextHub; import com.pengxh.androidx.lite.hub.StringHub; @@ -64,8 +64,6 @@ private String imei = ""; private UploadViewModel positionViewModel; private PushViewModel pushViewModel; - private MapConfigViewModel mapConfigViewModel; - private ToiletViewModel toiletViewModel; private long clickTime = 0; @Override @@ -82,6 +80,26 @@ } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == LocaleConstant.PUSH_REGISTER) { + pushViewModel.registerPush((String) msg.obj); + } else if (msg.what == LocaleConstant.MESSAGE_NUMBER) { + updateMessageNumber(); + } else if (msg.what == LocaleConstant.UPDATE_LOCATION) { + AMapLocation aMapLocation = (AMapLocation) msg.obj; + try { + double[] gcjToWgs = LocationHelper.gcjToWgs(aMapLocation.getLongitude(), aMapLocation.getLatitude()); + positionViewModel.uploadPosition(imei, String.valueOf(gcjToWgs[1]), String.valueOf(gcjToWgs[0])); + } catch (NullPointerException e) { + e.printStackTrace(); + } + } + return true; + } + }; + @Override protected void initData() { //配置页面 @@ -89,29 +107,14 @@ pageViews.add(new PhonePageFragment()); pageViews.add(new NoticePageFragment()); pageViews.add(new MinePageFragment()); + MainPageAdapter mainPageAdapter = new MainPageAdapter(getSupportFragmentManager(), pageViews); + viewBinding.mainViewPager.setOffscreenPageLimit(pageViews.size()); + viewBinding.mainViewPager.setAdapter(mainPageAdapter); - //个推初始化 - PushManager.getInstance().initialize(this); weakReferenceHandler = new WeakReferenceHandler(callback); dataBaseManager = DataBaseManager.getInstance(); - positionViewModel = new ViewModelProvider(this).get(UploadViewModel.class); - pushViewModel = new ViewModelProvider(this).get(PushViewModel.class); - mapConfigViewModel = new ViewModelProvider(this).get(MapConfigViewModel.class); - toiletViewModel = new ViewModelProvider(this).get(ToiletViewModel.class); - - //获取配置项 - obtainProjectConfig(); - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { - startForegroundService(new Intent(this, UpdateLocationService.class)); - } else { - startService(new Intent(this, UpdateLocationService.class)); - } - } - - private void obtainProjectConfig() { - imei = ContextHub.getSimCardSerialNumber(this); - //地图配置项 + MapConfigViewModel mapConfigViewModel = new ViewModelProvider(this).get(MapConfigViewModel.class); mapConfigViewModel.obtainMapConfig(); mapConfigViewModel.mapConfigModel.observe(this, new Observer() { @Override @@ -125,65 +128,34 @@ } }); - //公厕数据 - toiletViewModel.obtainToiletList(); + ToiletViewModel toiletViewModel = new ViewModelProvider(this).get(ToiletViewModel.class); + toiletViewModel.getToilets(); toiletViewModel.toiletListModel.observe(this, new Observer() { @Override public void onChanged(ToiletListModel resultBean) { if (resultBean.getCode() == 200) { dataBaseManager.deleteAllToiletList(); for (ToiletListModel.DataBean dataBean : resultBean.getData()) { - dataBaseManager.saveToiletList(dataBean); + dataBaseManager.saveToilets(dataBean); } } } }); - //公厕图层ID - HttpRequestHelper.doRequest(LocaleConstant.LAYER_CONFIG, new IHttpRequestListener() { - @Override - public void onSuccess(ResponseBody resultBean) { - try { - String resultStr = resultBean.string(); - List partsLayer = gson.fromJson(resultStr, LayerConfigBean.class).getPartsLayer(); - List childrenBeans = partsLayer.get(2).getChildren(); - StringHelper.saveToiletLayerId(String.valueOf(childrenBeans.get(0).getLayer())); - } catch (IOException e) { - e.printStackTrace(); - } - } + positionViewModel = new ViewModelProvider(this).get(UploadViewModel.class); + pushViewModel = new ViewModelProvider(this).get(PushViewModel.class); - @Override - public void onFailure(Throwable throwable) { - - } - }); - - //桥梁数据 TODO-待调试 - HttpRequestHelper.doRequest(LocaleConstant.PROJECT_CONFIG, new IHttpRequestListener() { - @Override - public void onSuccess(ResponseBody resultBean) { - try { - String resultStr = resultBean.string(); - List bridges = gson.fromJson(resultStr, BridgeConfigBean.class).getBridges(); - StringHelper.saveBridgeList(gson.toJson(bridges)); - } catch (IOException e) { - e.printStackTrace(); - } - } - - @Override - public void onFailure(Throwable throwable) { - - } - }); + //获取配置项 + obtainProjectConfig(); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { + startForegroundService(new Intent(this, UpdateLocationService.class)); + } else { + startService(new Intent(this, UpdateLocationService.class)); + } } @Override protected void initEvent() { - MainPageAdapter mainPageAdapter = new MainPageAdapter(getSupportFragmentManager(), pageViews); - viewBinding.mainViewPager.setOffscreenPageLimit(pageViews.size()); - viewBinding.mainViewPager.setAdapter(mainPageAdapter); viewBinding.bottomNavigation.setOnItemSelectedListener(new NavigationBarView.OnItemSelectedListener() { @Override public boolean onNavigationItemSelected(@NonNull MenuItem item) { @@ -228,27 +200,53 @@ }); } - private final Handler.Callback callback = msg -> { - if (msg.what == LocaleConstant.PUSH_REGISTER) { - pushViewModel.registerPush((String) msg.obj); - } else if (msg.what == LocaleConstant.MESSAGE_NUMBER) { - updateMessageNumber(); - } else if (msg.what == LocaleConstant.UPDATE_LOCATION) { - AMapLocation aMapLocation = (AMapLocation) msg.obj; - try { - double[] gcjToWgs = LocationHelper.gcjToWgs(aMapLocation.getLongitude(), aMapLocation.getLatitude()); - positionViewModel.uploadPosition(imei, String.valueOf(gcjToWgs[1]), String.valueOf(gcjToWgs[0])); - } catch (NullPointerException e) { - e.printStackTrace(); + private void obtainProjectConfig() { + imei = ContextHub.getSimCardSerialNumber(this); + + //公厕图层ID + HttpRequestHelper.doRequest(LocaleConstant.LAYER_CONFIG, new IHttpRequestListener() { + @Override + public void onSuccess(ResponseBody resultBean) { + try { + String resultStr = resultBean.string(); + List partsLayer = gson.fromJson(resultStr, LayerConfigBean.class).getPartsLayer(); + List childrenBeans = partsLayer.get(2).getChildren(); + StringHelper.saveToiletLayerId(String.valueOf(childrenBeans.get(0).getLayer())); + } catch (IOException e) { + e.printStackTrace(); + } } - } - return true; - }; + + @Override + public void onFailure(Throwable throwable) { + + } + }); + + //桥梁数据 TODO-待调试 + HttpRequestHelper.doRequest(LocaleConstant.PROJECT_CONFIG, new IHttpRequestListener() { + @Override + public void onSuccess(ResponseBody resultBean) { + try { + String resultStr = resultBean.string(); + List bridges = gson.fromJson(resultStr, BridgeConfigBean.class).getBridges(); + StringHelper.saveBridgeList(gson.toJson(bridges)); + } catch (IOException e) { + e.printStackTrace(); + } + } + + @Override + public void onFailure(Throwable throwable) { + + } + }); + } @Override protected void onResume() { - updateMessageNumber(); super.onResume(); + updateMessageNumber(); } private void updateMessageNumber() { diff --git a/app/src/main/java/com/casic/dcms/view/PublicToiletActivity.java b/app/src/main/java/com/casic/dcms/view/PublicToiletActivity.java index d3e3ced..0a75439 100644 --- a/app/src/main/java/com/casic/dcms/view/PublicToiletActivity.java +++ b/app/src/main/java/com/casic/dcms/view/PublicToiletActivity.java @@ -153,7 +153,7 @@ viewBinding.obtainToiletIdLayout.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - List toiletBeanList = DataBaseManager.getInstance().getToiletList(); + List toiletBeanList = DataBaseManager.getInstance().getToilets(); if (toiletBeanList.size() == 0) { StringHub.show(context, "获取公厕数据失败,请联系管理员"); return; diff --git a/app/src/main/java/com/casic/dcms/vm/ToiletViewModel.java b/app/src/main/java/com/casic/dcms/vm/ToiletViewModel.java index 313e3d1..05ab157 100644 --- a/app/src/main/java/com/casic/dcms/vm/ToiletViewModel.java +++ b/app/src/main/java/com/casic/dcms/vm/ToiletViewModel.java @@ -25,8 +25,8 @@ public MutableLiveData cleanToiletModel = new MutableLiveData<>(); public MutableLiveData cleanRecordModel = new MutableLiveData<>(); - public void obtainToiletList() { - Observable observable = RetrofitServiceManager.getToiletList(); + public void getToilets() { + Observable observable = RetrofitServiceManager.getToilets(); ObserverSubscriber.addSubscribe(observable, new OnObserverCallback() { @Override public void onCompleted() { diff --git a/app/src/main/res/drawable/ic_dot.xml b/app/src/main/res/drawable/ic_dot.xml new file mode 100644 index 0000000..ee801ca --- /dev/null +++ b/app/src/main/res/drawable/ic_dot.xml @@ -0,0 +1,13 @@ + + + + diff --git a/.idea/misc.xml b/.idea/misc.xml index 12058ca..4f8b20d 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -28,6 +28,9 @@ + + + @@ -39,6 +42,7 @@ + @@ -81,7 +85,8 @@ - + + diff --git a/app/src/main/java/com/casic/dcms/adapter/AnalysisRecycleAdapter.java b/app/src/main/java/com/casic/dcms/adapter/AnalysisRecycleAdapter.java deleted file mode 100644 index 913bde1..0000000 --- a/app/src/main/java/com/casic/dcms/adapter/AnalysisRecycleAdapter.java +++ /dev/null @@ -1,71 +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.utils.LocaleConstant; - -public class AnalysisRecycleAdapter extends RecyclerView.Adapter { - - private final LayoutInflater layoutInflater; - - public AnalysisRecycleAdapter(Context context) { - this.layoutInflater = LayoutInflater.from(context); - } - - @NonNull - @Override - public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - return new ItemViewHolder(layoutInflater.inflate(R.layout.item_home_recycleview, parent, false)); - } - - @Override - public void onBindViewHolder(@NonNull ItemViewHolder holder, @SuppressLint("RecyclerView") int position) { - holder.imageView.setBackgroundResource(LocaleConstant.ANALYSIS_ICONS.get(position)); - holder.textView.setText(LocaleConstant.ANALYSIS_ITEMS.get(position)); - if (clickListener != null) { - holder.itemView.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - clickListener.onClick(position); - } - }); - } - } - - @Override - public int getItemCount() { - return LocaleConstant.ANALYSIS_ITEMS.size(); - } - - private OnGridItemClickListener clickListener; - - public interface OnGridItemClickListener { - void onClick(int position); - } - - public void setOnGridItemClickListener(OnGridItemClickListener onGridItemClickListener) { - this.clickListener = onGridItemClickListener; - } - - static class ItemViewHolder extends RecyclerView.ViewHolder { - - private final ImageView imageView; - private final TextView textView; - - ItemViewHolder(@NonNull View itemView) { - super(itemView); - imageView = itemView.findViewById(R.id.imageView); - textView = itemView.findViewById(R.id.textView); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/adapter/CaseSearchResultAdapter.java b/app/src/main/java/com/casic/dcms/adapter/CaseSearchResultAdapter.java deleted file mode 100644 index 9449f44..0000000 --- a/app/src/main/java/com/casic/dcms/adapter/CaseSearchResultAdapter.java +++ /dev/null @@ -1,94 +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.TextView; - -import androidx.annotation.NonNull; -import androidx.recyclerview.widget.RecyclerView; - -import com.casic.dcms.R; -import com.casic.dcms.model.CaseSearchResultBean; -import com.pengxh.androidx.lite.hub.StringHub; -import com.qmuiteam.qmui.widget.QMUIRadiusImageView; - -import java.util.List; - -public class CaseSearchResultAdapter extends RecyclerView.Adapter { - - private final List dataRows; - private final LayoutInflater layoutInflater; - - public CaseSearchResultAdapter(Context context, List dataRows) { - this.dataRows = dataRows; - this.layoutInflater = LayoutInflater.from(context); - } - - @NonNull - @Override - public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - return new ItemViewHolder(layoutInflater.inflate(R.layout.item_case_rv, parent, false)); - } - - @Override - public void onBindViewHolder(@NonNull ItemViewHolder holder, @SuppressLint("RecyclerView") int position) { - holder.bindView(dataRows.get(position)); - if (clickListener != null) { - holder.itemView.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - clickListener.onClick(position); - } - }); - } - } - - @Override - public int getItemCount() { - return dataRows.size(); - } - - private OnItemClickListener clickListener; - - public interface OnItemClickListener { - void onClick(int position); - } - - public void setOnItemClickListener(OnItemClickListener onItemClickListener) { - this.clickListener = onItemClickListener; - } - - class ItemViewHolder extends RecyclerView.ViewHolder { - - private final QMUIRadiusImageView caseImageView; - private final TextView caseTitleView; - private final TextView casePlaceView; - private final TextView caseTimeView; - - ItemViewHolder(@NonNull View itemView) { - super(itemView); - caseImageView = itemView.findViewById(R.id.caseImageView); - caseTitleView = itemView.findViewById(R.id.caseTitleView); - casePlaceView = itemView.findViewById(R.id.casePlaceView); - caseTimeView = itemView.findViewById(R.id.caseTimeView); - } - - void bindView(CaseSearchResultBean.DataDTO.RowsDTO rowsBean) { - //核实图片 -// String fileIdVerify = rowsBean.getFileIdVerify(); -// if (!TextUtils.isEmpty(fileIdVerify)) { -// String[] split = fileIdVerify.split(","); -// String firstImage = split[0]; -// if (firstImage.endsWith(".jpg") || firstImage.contains(".jpeg") || firstImage.contains(".png")) { -// Glide.with(context).load(StringHelper.appendCompleteURL(firstImage)).into(caseImageView); -// } -// } - caseTitleView.setText(StringHub.filterSpaceOrEnter(rowsBean.getDescription())); - casePlaceView.setText("发生地点:" + StringHub.filterSpaceOrEnter(rowsBean.getFieldintro())); - caseTimeView.setText("上报时间:" + rowsBean.getReportTime()); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/adapter/HomeRecycleAdapter.java b/app/src/main/java/com/casic/dcms/adapter/HomeRecycleAdapter.java deleted file mode 100644 index e6eafa6..0000000 --- a/app/src/main/java/com/casic/dcms/adapter/HomeRecycleAdapter.java +++ /dev/null @@ -1,80 +0,0 @@ -package com.casic.dcms.adapter; - -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.HomePageBean; -import com.casic.dcms.utils.StringHelper; - -import java.util.List; - -public class HomeRecycleAdapter extends RecyclerView.Adapter { - - private final List menuData; - private final LayoutInflater layoutInflater; - - public HomeRecycleAdapter(Context context, List menus) { - this.menuData = menus; - this.layoutInflater = LayoutInflater.from(context); - } - - @NonNull - @Override - public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - return new ItemViewHolder(layoutInflater.inflate(R.layout.item_home_recycleview, parent, false)); - } - - @Override - public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { - String name = menuData.get(position).getName(); - holder.bindView(name); - if (clickListener != null) { - holder.itemView.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - clickListener.onClick(name); - } - }); - } - } - - @Override - public int getItemCount() { - return menuData.size(); - } - - private OnGridItemClickListener clickListener; - - public interface OnGridItemClickListener { - void onClick(String itemName); - } - - public void setOnGridItemClickListener(OnGridItemClickListener onGridItemClickListener) { - this.clickListener = onGridItemClickListener; - } - - static class ItemViewHolder extends RecyclerView.ViewHolder { - - private final ImageView imageView; - private final TextView textView; - - ItemViewHolder(@NonNull View itemView) { - super(itemView); - imageView = itemView.findViewById(R.id.imageView); - textView = itemView.findViewById(R.id.textView); - } - - void bindView(String name) { - imageView.setBackgroundResource(StringHelper.obtainIcon(name)); - textView.setText(name); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/adapter/ProcessLineAdapter.java b/app/src/main/java/com/casic/dcms/adapter/ProcessLineAdapter.java deleted file mode 100644 index 42da4cf..0000000 --- a/app/src/main/java/com/casic/dcms/adapter/ProcessLineAdapter.java +++ /dev/null @@ -1,70 +0,0 @@ -package com.casic.dcms.adapter; - -import android.content.Context; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.TextView; - -import androidx.annotation.NonNull; -import androidx.recyclerview.widget.RecyclerView; - -import com.casic.dcms.R; -import com.casic.dcms.model.CaseProcessBean; - -import org.jetbrains.annotations.NotNull; - -import java.util.List; - -public class ProcessLineAdapter extends RecyclerView.Adapter { - private final List mProcessList; - private final LayoutInflater layoutInflater; - - public ProcessLineAdapter(Context context, List list) { - this.mProcessList = list; - this.layoutInflater = LayoutInflater.from(context); - } - - @NotNull - @Override - public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - return new ViewHolder(layoutInflater.inflate(R.layout.item_case_process, parent, false)); - } - - @Override - public void onBindViewHolder(ViewHolder holder, int position) { - CaseProcessBean.DataBean dataBean = mProcessList.get(position); - String typeName = dataBean.getOperationTypeName(); - holder.operationTypeName.setText(typeName); - holder.handlePersonView.setText(dataBean.getUserName()); - holder.handleTimeView.setText(dataBean.getTime()); - holder.handleResultView.setText(dataBean.getRemarks()); - } - - @Override - public int getItemViewType(int position) { - return super.getItemViewType(position); - } - - @Override - public int getItemCount() { - return mProcessList.size(); - } - - static class ViewHolder extends RecyclerView.ViewHolder { - private final TextView operationTypeName; - private final TextView handlePersonView; - private final TextView handleTimeView; - private final TextView handleResultView; - private final RecyclerView handlePicView; - - public ViewHolder(View view) { - super(view); - operationTypeName = view.findViewById(R.id.operationTypeName); - handlePersonView = view.findViewById(R.id.handlePersonView); - handleTimeView = view.findViewById(R.id.handleTimeView); - handleResultView = view.findViewById(R.id.handleResultView); - handlePicView = view.findViewById(R.id.handlePicView); - } - } -} \ No newline at end of file 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 3b7a194..6b6b72e 100644 --- a/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java @@ -7,7 +7,6 @@ import com.bumptech.glide.Glide; import com.casic.dcms.R; -import com.casic.dcms.adapter.HomeRecycleAdapter; import com.casic.dcms.databinding.FragmentHomeBinding; import com.casic.dcms.model.HomePageBean; import com.casic.dcms.model.UserBean; @@ -33,6 +32,8 @@ import com.casic.dcms.view.UrgentCaseActivity; import com.casic.dcms.view.VerifyCaseActivity; import com.casic.dcms.vm.HomePageViewModel; +import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; +import com.pengxh.androidx.lite.adapter.ViewHolder; import com.pengxh.androidx.lite.base.AndroidxBaseFragment; import com.pengxh.androidx.lite.hub.LongHub; import com.pengxh.androidx.lite.utils.SaveKeyValues; @@ -95,13 +96,18 @@ @Override public void onChanged(HomePageBean resultBean) { if (resultBean.getCode() == 200) { - HomeRecycleAdapter adapter = new HomeRecycleAdapter(requireContext(), resultBean.getData().getMenus()); - viewBinding.homeRecyclerView.setAdapter(adapter); - adapter.setOnGridItemClickListener(new HomeRecycleAdapter.OnGridItemClickListener() { + NormalRecyclerAdapter recyclerAdapter = new NormalRecyclerAdapter(R.layout.item_home_recycleview, resultBean.getData().getMenus()) { @Override - public void onClick(String itemName) { + public void convertView(ViewHolder viewHolder, int position, HomePageBean.DataBean.MenusBean item) { + viewHolder.setImageResource(R.id.imageView, StringHelper.obtainDrawableIcon(item.getName())).setText(R.id.textView, item.getName()); + } + }; + viewBinding.homeRecyclerView.setAdapter(recyclerAdapter); + recyclerAdapter.setOnItemClickedListener(new NormalRecyclerAdapter.OnItemClickedListener() { + @Override + public void onItemClicked(int position, HomePageBean.DataBean.MenusBean menusBean) { Intent intent = new Intent(); - switch (itemName) { + switch (menusBean.getName()) { case "案卷上报": intent.setClass(requireContext(), CommonCaseUploadActivity.class); break; diff --git a/app/src/main/java/com/casic/dcms/model/DataAnalysisGridModel.java b/app/src/main/java/com/casic/dcms/model/DataAnalysisGridModel.java new file mode 100644 index 0000000..3b20a2f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/model/DataAnalysisGridModel.java @@ -0,0 +1,22 @@ +package com.casic.dcms.model; + +public class DataAnalysisGridModel { + private int itemIcon; + private String itemTitle; + + public int getItemIcon() { + return itemIcon; + } + + public void setItemIcon(int itemIcon) { + this.itemIcon = itemIcon; + } + + public String getItemTitle() { + return itemTitle; + } + + public void setItemTitle(String itemTitle) { + this.itemTitle = itemTitle; + } +} diff --git a/app/src/main/java/com/casic/dcms/utils/DataBaseManager.java b/app/src/main/java/com/casic/dcms/utils/DataBaseManager.java index 0a39218..57f0df8 100644 --- a/app/src/main/java/com/casic/dcms/utils/DataBaseManager.java +++ b/app/src/main/java/com/casic/dcms/utils/DataBaseManager.java @@ -127,7 +127,7 @@ toiletListBeanDao.deleteAll(); } - public void saveToiletList(ToiletListModel.DataBean dataBean) { + public void saveToilets(ToiletListModel.DataBean dataBean) { ToiletListBean bean = new ToiletListBean(); bean.setArea(dataBean.getArea()); bean.setCode(dataBean.getCode()); @@ -149,7 +149,7 @@ toiletListBeanDao.save(bean); } - public List getToiletList() { + public List getToilets() { List result = new ArrayList<>(); List listBeans = toiletListBeanDao.loadAll(); for (ToiletListBean toiletBean : listBeans) { diff --git a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java b/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java index 7cb867d..fb0c033 100644 --- a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java +++ b/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java @@ -1,25 +1,12 @@ package com.casic.dcms.utils; -import android.util.Log; - import com.casic.dcms.utils.callback.IHttpRequestListener; +import com.pengxh.androidx.lite.callback.OnHttpRequestListener; +import com.pengxh.androidx.lite.hub.RequestHub; import com.pengxh.androidx.lite.utils.SaveKeyValues; -import org.jetbrains.annotations.NotNull; - -import java.io.IOException; -import java.util.concurrent.TimeUnit; - -import okhttp3.OkHttpClient; import okhttp3.Request; import okhttp3.Response; -import okhttp3.ResponseBody; -import okhttp3.logging.HttpLoggingInterceptor; -import rx.Emitter; -import rx.Observable; -import rx.Observer; -import rx.android.schedulers.AndroidSchedulers; -import rx.schedulers.Schedulers; public class HttpRequestHelper { private static final String TAG = "HttpRequestHelper"; @@ -27,93 +14,39 @@ public static void doRequest(String function, String requestValue, IHttpRequestListener listener) { String ip = (String) SaveKeyValues.getValue(LocaleConstant.IP_KEY, "http://111.198.10.15:11409"); // String ip = (String) SaveKeyValues.getValue(Constant.IP_KEY, "http://223.82.47.232:11401"); - Observable.create(emitter -> { - HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor(new HttpLoggingInterceptor.Logger() { - @Override - public void log(@NotNull String message) { - Log.d(TAG, "log: " + message); - } - }); - interceptor.setLevel(HttpLoggingInterceptor.Level.BODY); - - OkHttpClient client = new OkHttpClient.Builder() - .addInterceptor(interceptor) - .readTimeout(LocaleConstant.HTTP_TIMEOUT, TimeUnit.SECONDS) - .connectTimeout(LocaleConstant.HTTP_TIMEOUT, TimeUnit.SECONDS) - .writeTimeout(LocaleConstant.HTTP_TIMEOUT, TimeUnit.SECONDS) - .build(); - - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(ip + function + requestValue) - .get() - .build();//创建Request 对象 - try { - Response response = client.newCall(request).execute(); - emitter.onNext(response.body()); - } catch (IOException e) { - emitter.onError(e); - } - }, Emitter.BackpressureMode.BUFFER).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + Request request = new Request.Builder() + .addHeader("token", AuthenticationHelper.getToken()) + .url(ip + function + requestValue) + .get() + .build();//创建Request 对象 + RequestHub.doRequest(request, new OnHttpRequestListener() { @Override - public void onCompleted() { - + public void onSuccess(Response response) { + listener.onSuccess(response.body()); } @Override - public void onError(Throwable e) { - listener.onFailure(e); - } - - @Override - public void onNext(ResponseBody responseBody) { - listener.onSuccess(responseBody); + public void onFailure(Throwable throwable) { + listener.onFailure(throwable); } }); } public static void doRequest(String url, IHttpRequestListener listener) { - Observable.create(emitter -> { - HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor(new HttpLoggingInterceptor.Logger() { - @Override - public void log(@NotNull String message) { - Log.d(TAG, "log: " + message); - } - }); - interceptor.setLevel(HttpLoggingInterceptor.Level.BODY); - - OkHttpClient client = new OkHttpClient.Builder() - .addInterceptor(interceptor) - .readTimeout(LocaleConstant.HTTP_TIMEOUT, TimeUnit.SECONDS) - .connectTimeout(LocaleConstant.HTTP_TIMEOUT, TimeUnit.SECONDS) - .writeTimeout(LocaleConstant.HTTP_TIMEOUT, TimeUnit.SECONDS) - .build(); - - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(url) - .get() - .build();//创建Request 对象 - try { - Response response = client.newCall(request).execute(); - emitter.onNext(response.body()); - } catch (IOException e) { - emitter.onError(e); - } - }, Emitter.BackpressureMode.BUFFER).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + Request request = new Request.Builder() + .addHeader("token", AuthenticationHelper.getToken()) + .url(url) + .get() + .build();//创建Request 对象 + RequestHub.doRequest(request, new OnHttpRequestListener() { @Override - public void onCompleted() { - + public void onSuccess(Response response) { + listener.onSuccess(response.body()); } @Override - public void onError(Throwable e) { - listener.onFailure(e); - } - - @Override - public void onNext(ResponseBody responseBody) { - listener.onSuccess(responseBody); + public void onFailure(Throwable throwable) { + listener.onFailure(throwable); } }); } diff --git a/app/src/main/java/com/casic/dcms/utils/StringHelper.java b/app/src/main/java/com/casic/dcms/utils/StringHelper.java index c625bb4..1a097cc 100644 --- a/app/src/main/java/com/casic/dcms/utils/StringHelper.java +++ b/app/src/main/java/com/casic/dcms/utils/StringHelper.java @@ -264,8 +264,20 @@ return R.drawable.ic_dtck; case "公厕保洁": return R.drawable.ic_toilet; + case "三包处置": + return R.drawable.ic_sanbao; + case "商铺变更": + return R.drawable.ic_shangpu; + case "部门处置": + return R.drawable.ic_dept; + case "路桥养护": + return R.drawable.ic_bridge; + case "管网管理": + return R.drawable.ic_pipe; + case "路灯管理": + return R.drawable.ic_streetlight; default: - return 0; + return R.drawable.ic_default_icon; } } } diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java index b1a3c67..6d3574d 100644 --- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java +++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java @@ -39,9 +39,7 @@ * token添加到Header */ @GET("/user/info") - Observable getUserData( - @Header("token") String token - ); + Observable getUserData(@Header("token") String token); /** * 获取地图地址 @@ -49,9 +47,7 @@ * token添加到Header */ @GET("/map/server/listPage") - Observable getMapConfig( - @Header("token") String token - ); + Observable getMapConfig(@Header("token") String token); /** * 大类列表查询 @@ -132,9 +128,7 @@ * 退出登录 */ @GET("/user/logout") - Observable loginOut( - @Header("token") String token - ); + Observable loginOut(@Header("token") String token); /** * 修改密码 @@ -152,10 +146,7 @@ * 获取部门树 */ @GET("/dept/tree") - Observable getDeptTree( - @Header("token") String token, - @Query("pid") String pid - ); + Observable getDeptTree(@Header("token") String token, @Query("pid") String pid); /** * 获取通讯录 @@ -193,9 +184,7 @@ * 获取案件状态 */ @GET("/dict/code/caseState") - Observable getCaseStatus( - @Header("token") String token - ); + Observable getCaseStatus(@Header("token") String token); /** * 获取案件列表 @@ -223,10 +212,7 @@ * http://111.198.10.15:11409/case/detail/1372735305680994306 */ @GET("/case/detail/{id}") - Observable obtainCaseDetail( - @Header("token") String token, - @Path("id") String id - ); + Observable obtainCaseDetail(@Header("token") String token, @Path("id") String id); /** * 获取案件流转记录 @@ -241,9 +227,7 @@ * 更新版本 */ @POST("/app/checkVersion") - Observable updateVersion( - @Header("token") String token - ); + Observable updateVersion(@Header("token") String token); /** * 获取核实待办案卷 @@ -407,9 +391,7 @@ * 获取常见语句 */ @GET("/dict/code/commonApproval") - Observable obtainCommonSentence( - @Header("token") String token - ); + Observable obtainCommonSentence(@Header("token") String token); /** * 案卷处理 @@ -532,9 +514,7 @@ * http://111.198.10.15:11409/sanitation/toilet/list */ @GET("/sanitation/toilet/list") - Observable getToiletList( - @Header("token") String token - ); + Observable getToilets(@Header("token") String token); /** * 公厕打扫签到 @@ -789,9 +769,7 @@ * http://111.198.10.15:11409/lampCr/overview/lampList */ @GET("/lightCr/overview/lampList") - Observable obtainLightList( - @Header("token") String token - ); + Observable obtainLightList(@Header("token") String token); /** * 路灯详情 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 5c31b0a..8876060 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 @@ -411,8 +411,8 @@ /** * 公厕列表 */ - public static Observable getToiletList() { - return api.getToiletList(AuthenticationHelper.getToken()); + public static Observable getToilets() { + return api.getToilets(AuthenticationHelper.getToken()); } /** 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 e709752..d7bf511 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java @@ -1,25 +1,23 @@ package com.casic.dcms.view; import android.content.Context; -import android.graphics.Rect; +import android.graphics.Color; +import android.view.View; -import androidx.annotation.Nullable; import androidx.core.content.ContextCompat; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; -import com.casic.dcms.adapter.ProcessLineAdapter; import com.casic.dcms.databinding.ActivityCaseProcessBinding; import com.casic.dcms.model.CaseProcessBean; -import com.casic.dcms.utils.TimeLineDecoration; -import com.casic.dcms.utils.TimeLineDecoration.TimeLineAdapter; import com.casic.dcms.vm.CommonDataViewModel; import com.gyf.immersionbar.ImmersionBar; +import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; +import com.pengxh.androidx.lite.adapter.ViewHolder; import com.pengxh.androidx.lite.base.AndroidxBaseActivity; import com.pengxh.androidx.lite.utils.Constant; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; -import com.qmuiteam.qmui.util.QMUIDisplayHelper; import java.util.ArrayList; import java.util.List; @@ -62,36 +60,33 @@ for (int i = 0; i < size; i++) { dataBeans.add(i, resultBean.getData().get(size - 1 - i)); } - ProcessLineAdapter adapter = new ProcessLineAdapter(context, dataBeans); - TimeLineDecoration decoration = new TimeLineDecoration(context) - .setLineColor(R.color.lightGray) - .setLineWidth(1f) - .setLeftDistance(QMUIDisplayHelper.dp2px(context, 9)) - .setMarkerColor(R.color.lightGray) - .setMarkerRadius(10f) - .setBeginMarkerRadius(10f) - .setBeginMarker(R.drawable.begin_marker) - .setCallback(new TimeLineAdapter() { - @Nullable - @Override - public Rect getRect(int position) { - return new Rect(QMUIDisplayHelper.dp2px(context, 30), - QMUIDisplayHelper.dp2px(context, 10), 0, 0); - } + NormalRecyclerAdapter recyclerAdapter = new NormalRecyclerAdapter(R.layout.item_case_process, dataBeans) { + @Override + public void convertView(ViewHolder viewHolder, int position, CaseProcessBean.DataBean item) { + if (position == 0) { + //最后一项 + viewHolder.setBackgroundColor(R.id.dotView, Color.BLACK); + viewHolder.setTextColor(R.id.operatorNameView, Color.BLACK) + .setTextColor(R.id.statusView, Color.BLACK) + .setTextColor(R.id.operateTimeView, Color.BLACK) + .setTextColor(R.id.remarkView, Color.BLACK); - @Override - public int getTimeLineType(int position) { - if (position == 0) { - return TimeLineDecoration.BEGIN; - } else if (position == adapter.getItemCount() - 1) { - return TimeLineDecoration.END_FULL; - } else { - return TimeLineDecoration.NORMAL; - } - } - }); - viewBinding.processRecyclerView.addItemDecoration(decoration); - viewBinding.processRecyclerView.setAdapter(adapter); + viewHolder.setVisibility(R.id.topLineView, View.INVISIBLE); + viewHolder.setImageResource(R.id.tagImageView, R.drawable.ic_dot_red); + } else if (position == size - 1) { + viewHolder.setVisibility(R.id.bottomLineView, View.INVISIBLE); + viewHolder.setImageResource(R.id.tagImageView, R.drawable.ic_dot_gray); + } else { + viewHolder.setImageResource(R.id.tagImageView, R.drawable.ic_dot); + } + + viewHolder.setText(R.id.statusView, item.getOperationTypeName()) + .setText(R.id.operatorNameView, item.getUserName()) + .setText(R.id.remarkView, item.getRemarks()) + .setText(R.id.operateTimeView, item.getTime()); + } + }; + viewBinding.processRecyclerView.setAdapter(recyclerAdapter); } } }); 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 6c8b259..0a65da1 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java @@ -10,12 +10,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; -import com.casic.dcms.adapter.CaseSearchResultAdapter; import com.casic.dcms.databinding.ActivityCaseListBinding; import com.casic.dcms.model.CaseSearchResultBean; import com.casic.dcms.utils.DialogHelper; import com.casic.dcms.vm.CaseViewModel; import com.gyf.immersionbar.ImmersionBar; +import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; +import com.pengxh.androidx.lite.adapter.ViewHolder; import com.pengxh.androidx.lite.base.AndroidxBaseActivity; import com.pengxh.androidx.lite.hub.ContextHub; import com.pengxh.androidx.lite.hub.StringHub; @@ -34,7 +35,7 @@ private final Context context = this; private WeakReferenceHandler weakReferenceHandler; private CaseViewModel caseViewModel; - private CaseSearchResultAdapter adapter; + private NormalRecyclerAdapter adapter; private String typeCode; private String typeDetailCode; private String caseState; @@ -157,16 +158,29 @@ }); } else { viewBinding.emptyView.hide(); - adapter = new CaseSearchResultAdapter(context, dataBeans); - viewBinding.caseRecyclerView.setAdapter(adapter); - adapter.setOnItemClickListener(new CaseSearchResultAdapter.OnItemClickListener() { + adapter = new NormalRecyclerAdapter(R.layout.item_case_rv, dataBeans) { + @Override - public void onClick(int position) { - ContextHub.navigatePageTo( - context, - CaseDetailActivity.class, - dataBeans.get(position).getId() - ); + public void convertView(ViewHolder viewHolder, int position, CaseSearchResultBean.DataDTO.RowsDTO item) { + //核实图片 +// String fileIdVerify = rowsBean.getFileIdVerify(); +// if (!TextUtils.isEmpty(fileIdVerify)) { +// String[] split = fileIdVerify.split(","); +// String firstImage = split[0]; +// if (firstImage.endsWith(".jpg") || firstImage.contains(".jpeg") || firstImage.contains(".png")) { +// Glide.with(context).load(StringHelper.appendCompleteURL(firstImage)).into(caseImageView); +// } +// } + viewHolder.setText(R.id.caseTitleView, StringHub.filterSpaceOrEnter(item.getDescription())) + .setText(R.id.casePlaceView, "发生地点:" + StringHub.filterSpaceOrEnter(item.getFieldintro())) + .setText(R.id.caseTimeView, "上报时间:" + item.getReportTime()); + } + }; + viewBinding.caseRecyclerView.setAdapter(adapter); + adapter.setOnItemClickedListener(new NormalRecyclerAdapter.OnItemClickedListener() { + @Override + public void onItemClicked(int position, CaseSearchResultBean.DataDTO.RowsDTO rowsDTO) { + ContextHub.navigatePageTo(context, CaseDetailActivity.class, rowsDTO.getId()); } }); } diff --git a/app/src/main/java/com/casic/dcms/view/DataAnalysisActivity.java b/app/src/main/java/com/casic/dcms/view/DataAnalysisActivity.java index c3bff07..29d576b 100644 --- a/app/src/main/java/com/casic/dcms/view/DataAnalysisActivity.java +++ b/app/src/main/java/com/casic/dcms/view/DataAnalysisActivity.java @@ -6,13 +6,18 @@ import androidx.core.content.ContextCompat; import com.casic.dcms.R; -import com.casic.dcms.adapter.AnalysisRecycleAdapter; import com.casic.dcms.databinding.ActivityCaseAnalysisBinding; +import com.casic.dcms.model.DataAnalysisGridModel; +import com.casic.dcms.utils.LocaleConstant; import com.gyf.immersionbar.ImmersionBar; +import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; +import com.pengxh.androidx.lite.adapter.ViewHolder; import com.pengxh.androidx.lite.base.AndroidxBaseActivity; import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import java.util.ArrayList; + /** * @author : Pengxh * @time : 2021/4/15 16:03 @@ -38,11 +43,25 @@ @Override protected void initData() { - AnalysisRecycleAdapter adapter = new AnalysisRecycleAdapter(this); - viewBinding.analysisRecyclerView.setAdapter(adapter); - adapter.setOnGridItemClickListener(new AnalysisRecycleAdapter.OnGridItemClickListener() { + ArrayList models = new ArrayList<>(); + for (int i = 0; i < 6; i++) { + DataAnalysisGridModel model = new DataAnalysisGridModel(); + model.setItemIcon(LocaleConstant.ANALYSIS_ICONS.get(i)); + model.setItemTitle(LocaleConstant.ANALYSIS_ITEMS.get(i)); + models.add(model); + } + + NormalRecyclerAdapter adapter = new NormalRecyclerAdapter(R.layout.item_home_recycleview, models) { + @Override - public void onClick(int position) { + public void convertView(ViewHolder viewHolder, int position, DataAnalysisGridModel item) { + viewHolder.setImageResource(R.id.imageView, item.getItemIcon()).setText(R.id.textView, item.getItemTitle()); + } + }; + viewBinding.analysisRecyclerView.setAdapter(adapter); + adapter.setOnItemClickedListener(new NormalRecyclerAdapter.OnItemClickedListener() { + @Override + public void onItemClicked(int position, DataAnalysisGridModel dataAnalysisGridModel) { Intent intent = new Intent(); switch (position) { case 0: diff --git a/app/src/main/java/com/casic/dcms/view/MainActivity.java b/app/src/main/java/com/casic/dcms/view/MainActivity.java index cf8662f..376e943 100644 --- a/app/src/main/java/com/casic/dcms/view/MainActivity.java +++ b/app/src/main/java/com/casic/dcms/view/MainActivity.java @@ -3,6 +3,7 @@ import android.content.Intent; import android.os.Build; import android.os.Handler; +import android.os.Message; import android.view.KeyEvent; import android.view.MenuItem; import android.view.View; @@ -40,7 +41,6 @@ import com.google.android.material.navigation.NavigationBarView; import com.google.gson.Gson; import com.gyf.immersionbar.ImmersionBar; -import com.igexin.sdk.PushManager; import com.pengxh.androidx.lite.base.AndroidxBaseActivity; import com.pengxh.androidx.lite.hub.ContextHub; import com.pengxh.androidx.lite.hub.StringHub; @@ -64,8 +64,6 @@ private String imei = ""; private UploadViewModel positionViewModel; private PushViewModel pushViewModel; - private MapConfigViewModel mapConfigViewModel; - private ToiletViewModel toiletViewModel; private long clickTime = 0; @Override @@ -82,6 +80,26 @@ } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == LocaleConstant.PUSH_REGISTER) { + pushViewModel.registerPush((String) msg.obj); + } else if (msg.what == LocaleConstant.MESSAGE_NUMBER) { + updateMessageNumber(); + } else if (msg.what == LocaleConstant.UPDATE_LOCATION) { + AMapLocation aMapLocation = (AMapLocation) msg.obj; + try { + double[] gcjToWgs = LocationHelper.gcjToWgs(aMapLocation.getLongitude(), aMapLocation.getLatitude()); + positionViewModel.uploadPosition(imei, String.valueOf(gcjToWgs[1]), String.valueOf(gcjToWgs[0])); + } catch (NullPointerException e) { + e.printStackTrace(); + } + } + return true; + } + }; + @Override protected void initData() { //配置页面 @@ -89,29 +107,14 @@ pageViews.add(new PhonePageFragment()); pageViews.add(new NoticePageFragment()); pageViews.add(new MinePageFragment()); + MainPageAdapter mainPageAdapter = new MainPageAdapter(getSupportFragmentManager(), pageViews); + viewBinding.mainViewPager.setOffscreenPageLimit(pageViews.size()); + viewBinding.mainViewPager.setAdapter(mainPageAdapter); - //个推初始化 - PushManager.getInstance().initialize(this); weakReferenceHandler = new WeakReferenceHandler(callback); dataBaseManager = DataBaseManager.getInstance(); - positionViewModel = new ViewModelProvider(this).get(UploadViewModel.class); - pushViewModel = new ViewModelProvider(this).get(PushViewModel.class); - mapConfigViewModel = new ViewModelProvider(this).get(MapConfigViewModel.class); - toiletViewModel = new ViewModelProvider(this).get(ToiletViewModel.class); - - //获取配置项 - obtainProjectConfig(); - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { - startForegroundService(new Intent(this, UpdateLocationService.class)); - } else { - startService(new Intent(this, UpdateLocationService.class)); - } - } - - private void obtainProjectConfig() { - imei = ContextHub.getSimCardSerialNumber(this); - //地图配置项 + MapConfigViewModel mapConfigViewModel = new ViewModelProvider(this).get(MapConfigViewModel.class); mapConfigViewModel.obtainMapConfig(); mapConfigViewModel.mapConfigModel.observe(this, new Observer() { @Override @@ -125,65 +128,34 @@ } }); - //公厕数据 - toiletViewModel.obtainToiletList(); + ToiletViewModel toiletViewModel = new ViewModelProvider(this).get(ToiletViewModel.class); + toiletViewModel.getToilets(); toiletViewModel.toiletListModel.observe(this, new Observer() { @Override public void onChanged(ToiletListModel resultBean) { if (resultBean.getCode() == 200) { dataBaseManager.deleteAllToiletList(); for (ToiletListModel.DataBean dataBean : resultBean.getData()) { - dataBaseManager.saveToiletList(dataBean); + dataBaseManager.saveToilets(dataBean); } } } }); - //公厕图层ID - HttpRequestHelper.doRequest(LocaleConstant.LAYER_CONFIG, new IHttpRequestListener() { - @Override - public void onSuccess(ResponseBody resultBean) { - try { - String resultStr = resultBean.string(); - List partsLayer = gson.fromJson(resultStr, LayerConfigBean.class).getPartsLayer(); - List childrenBeans = partsLayer.get(2).getChildren(); - StringHelper.saveToiletLayerId(String.valueOf(childrenBeans.get(0).getLayer())); - } catch (IOException e) { - e.printStackTrace(); - } - } + positionViewModel = new ViewModelProvider(this).get(UploadViewModel.class); + pushViewModel = new ViewModelProvider(this).get(PushViewModel.class); - @Override - public void onFailure(Throwable throwable) { - - } - }); - - //桥梁数据 TODO-待调试 - HttpRequestHelper.doRequest(LocaleConstant.PROJECT_CONFIG, new IHttpRequestListener() { - @Override - public void onSuccess(ResponseBody resultBean) { - try { - String resultStr = resultBean.string(); - List bridges = gson.fromJson(resultStr, BridgeConfigBean.class).getBridges(); - StringHelper.saveBridgeList(gson.toJson(bridges)); - } catch (IOException e) { - e.printStackTrace(); - } - } - - @Override - public void onFailure(Throwable throwable) { - - } - }); + //获取配置项 + obtainProjectConfig(); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { + startForegroundService(new Intent(this, UpdateLocationService.class)); + } else { + startService(new Intent(this, UpdateLocationService.class)); + } } @Override protected void initEvent() { - MainPageAdapter mainPageAdapter = new MainPageAdapter(getSupportFragmentManager(), pageViews); - viewBinding.mainViewPager.setOffscreenPageLimit(pageViews.size()); - viewBinding.mainViewPager.setAdapter(mainPageAdapter); viewBinding.bottomNavigation.setOnItemSelectedListener(new NavigationBarView.OnItemSelectedListener() { @Override public boolean onNavigationItemSelected(@NonNull MenuItem item) { @@ -228,27 +200,53 @@ }); } - private final Handler.Callback callback = msg -> { - if (msg.what == LocaleConstant.PUSH_REGISTER) { - pushViewModel.registerPush((String) msg.obj); - } else if (msg.what == LocaleConstant.MESSAGE_NUMBER) { - updateMessageNumber(); - } else if (msg.what == LocaleConstant.UPDATE_LOCATION) { - AMapLocation aMapLocation = (AMapLocation) msg.obj; - try { - double[] gcjToWgs = LocationHelper.gcjToWgs(aMapLocation.getLongitude(), aMapLocation.getLatitude()); - positionViewModel.uploadPosition(imei, String.valueOf(gcjToWgs[1]), String.valueOf(gcjToWgs[0])); - } catch (NullPointerException e) { - e.printStackTrace(); + private void obtainProjectConfig() { + imei = ContextHub.getSimCardSerialNumber(this); + + //公厕图层ID + HttpRequestHelper.doRequest(LocaleConstant.LAYER_CONFIG, new IHttpRequestListener() { + @Override + public void onSuccess(ResponseBody resultBean) { + try { + String resultStr = resultBean.string(); + List partsLayer = gson.fromJson(resultStr, LayerConfigBean.class).getPartsLayer(); + List childrenBeans = partsLayer.get(2).getChildren(); + StringHelper.saveToiletLayerId(String.valueOf(childrenBeans.get(0).getLayer())); + } catch (IOException e) { + e.printStackTrace(); + } } - } - return true; - }; + + @Override + public void onFailure(Throwable throwable) { + + } + }); + + //桥梁数据 TODO-待调试 + HttpRequestHelper.doRequest(LocaleConstant.PROJECT_CONFIG, new IHttpRequestListener() { + @Override + public void onSuccess(ResponseBody resultBean) { + try { + String resultStr = resultBean.string(); + List bridges = gson.fromJson(resultStr, BridgeConfigBean.class).getBridges(); + StringHelper.saveBridgeList(gson.toJson(bridges)); + } catch (IOException e) { + e.printStackTrace(); + } + } + + @Override + public void onFailure(Throwable throwable) { + + } + }); + } @Override protected void onResume() { - updateMessageNumber(); super.onResume(); + updateMessageNumber(); } private void updateMessageNumber() { diff --git a/app/src/main/java/com/casic/dcms/view/PublicToiletActivity.java b/app/src/main/java/com/casic/dcms/view/PublicToiletActivity.java index d3e3ced..0a75439 100644 --- a/app/src/main/java/com/casic/dcms/view/PublicToiletActivity.java +++ b/app/src/main/java/com/casic/dcms/view/PublicToiletActivity.java @@ -153,7 +153,7 @@ viewBinding.obtainToiletIdLayout.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - List toiletBeanList = DataBaseManager.getInstance().getToiletList(); + List toiletBeanList = DataBaseManager.getInstance().getToilets(); if (toiletBeanList.size() == 0) { StringHub.show(context, "获取公厕数据失败,请联系管理员"); return; diff --git a/app/src/main/java/com/casic/dcms/vm/ToiletViewModel.java b/app/src/main/java/com/casic/dcms/vm/ToiletViewModel.java index 313e3d1..05ab157 100644 --- a/app/src/main/java/com/casic/dcms/vm/ToiletViewModel.java +++ b/app/src/main/java/com/casic/dcms/vm/ToiletViewModel.java @@ -25,8 +25,8 @@ public MutableLiveData cleanToiletModel = new MutableLiveData<>(); public MutableLiveData cleanRecordModel = new MutableLiveData<>(); - public void obtainToiletList() { - Observable observable = RetrofitServiceManager.getToiletList(); + public void getToilets() { + Observable observable = RetrofitServiceManager.getToilets(); ObserverSubscriber.addSubscribe(observable, new OnObserverCallback() { @Override public void onCompleted() { diff --git a/app/src/main/res/drawable/ic_dot.xml b/app/src/main/res/drawable/ic_dot.xml new file mode 100644 index 0000000..ee801ca --- /dev/null +++ b/app/src/main/res/drawable/ic_dot.xml @@ -0,0 +1,13 @@ + + + + diff --git a/app/src/main/res/drawable/ic_dot_gray.xml b/app/src/main/res/drawable/ic_dot_gray.xml new file mode 100644 index 0000000..5a1a24a --- /dev/null +++ b/app/src/main/res/drawable/ic_dot_gray.xml @@ -0,0 +1,12 @@ + + + + diff --git a/.idea/misc.xml b/.idea/misc.xml index 12058ca..4f8b20d 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -28,6 +28,9 @@ + + + @@ -39,6 +42,7 @@ + @@ -81,7 +85,8 @@ - + + diff --git a/app/src/main/java/com/casic/dcms/adapter/AnalysisRecycleAdapter.java b/app/src/main/java/com/casic/dcms/adapter/AnalysisRecycleAdapter.java deleted file mode 100644 index 913bde1..0000000 --- a/app/src/main/java/com/casic/dcms/adapter/AnalysisRecycleAdapter.java +++ /dev/null @@ -1,71 +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.utils.LocaleConstant; - -public class AnalysisRecycleAdapter extends RecyclerView.Adapter { - - private final LayoutInflater layoutInflater; - - public AnalysisRecycleAdapter(Context context) { - this.layoutInflater = LayoutInflater.from(context); - } - - @NonNull - @Override - public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - return new ItemViewHolder(layoutInflater.inflate(R.layout.item_home_recycleview, parent, false)); - } - - @Override - public void onBindViewHolder(@NonNull ItemViewHolder holder, @SuppressLint("RecyclerView") int position) { - holder.imageView.setBackgroundResource(LocaleConstant.ANALYSIS_ICONS.get(position)); - holder.textView.setText(LocaleConstant.ANALYSIS_ITEMS.get(position)); - if (clickListener != null) { - holder.itemView.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - clickListener.onClick(position); - } - }); - } - } - - @Override - public int getItemCount() { - return LocaleConstant.ANALYSIS_ITEMS.size(); - } - - private OnGridItemClickListener clickListener; - - public interface OnGridItemClickListener { - void onClick(int position); - } - - public void setOnGridItemClickListener(OnGridItemClickListener onGridItemClickListener) { - this.clickListener = onGridItemClickListener; - } - - static class ItemViewHolder extends RecyclerView.ViewHolder { - - private final ImageView imageView; - private final TextView textView; - - ItemViewHolder(@NonNull View itemView) { - super(itemView); - imageView = itemView.findViewById(R.id.imageView); - textView = itemView.findViewById(R.id.textView); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/adapter/CaseSearchResultAdapter.java b/app/src/main/java/com/casic/dcms/adapter/CaseSearchResultAdapter.java deleted file mode 100644 index 9449f44..0000000 --- a/app/src/main/java/com/casic/dcms/adapter/CaseSearchResultAdapter.java +++ /dev/null @@ -1,94 +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.TextView; - -import androidx.annotation.NonNull; -import androidx.recyclerview.widget.RecyclerView; - -import com.casic.dcms.R; -import com.casic.dcms.model.CaseSearchResultBean; -import com.pengxh.androidx.lite.hub.StringHub; -import com.qmuiteam.qmui.widget.QMUIRadiusImageView; - -import java.util.List; - -public class CaseSearchResultAdapter extends RecyclerView.Adapter { - - private final List dataRows; - private final LayoutInflater layoutInflater; - - public CaseSearchResultAdapter(Context context, List dataRows) { - this.dataRows = dataRows; - this.layoutInflater = LayoutInflater.from(context); - } - - @NonNull - @Override - public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - return new ItemViewHolder(layoutInflater.inflate(R.layout.item_case_rv, parent, false)); - } - - @Override - public void onBindViewHolder(@NonNull ItemViewHolder holder, @SuppressLint("RecyclerView") int position) { - holder.bindView(dataRows.get(position)); - if (clickListener != null) { - holder.itemView.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - clickListener.onClick(position); - } - }); - } - } - - @Override - public int getItemCount() { - return dataRows.size(); - } - - private OnItemClickListener clickListener; - - public interface OnItemClickListener { - void onClick(int position); - } - - public void setOnItemClickListener(OnItemClickListener onItemClickListener) { - this.clickListener = onItemClickListener; - } - - class ItemViewHolder extends RecyclerView.ViewHolder { - - private final QMUIRadiusImageView caseImageView; - private final TextView caseTitleView; - private final TextView casePlaceView; - private final TextView caseTimeView; - - ItemViewHolder(@NonNull View itemView) { - super(itemView); - caseImageView = itemView.findViewById(R.id.caseImageView); - caseTitleView = itemView.findViewById(R.id.caseTitleView); - casePlaceView = itemView.findViewById(R.id.casePlaceView); - caseTimeView = itemView.findViewById(R.id.caseTimeView); - } - - void bindView(CaseSearchResultBean.DataDTO.RowsDTO rowsBean) { - //核实图片 -// String fileIdVerify = rowsBean.getFileIdVerify(); -// if (!TextUtils.isEmpty(fileIdVerify)) { -// String[] split = fileIdVerify.split(","); -// String firstImage = split[0]; -// if (firstImage.endsWith(".jpg") || firstImage.contains(".jpeg") || firstImage.contains(".png")) { -// Glide.with(context).load(StringHelper.appendCompleteURL(firstImage)).into(caseImageView); -// } -// } - caseTitleView.setText(StringHub.filterSpaceOrEnter(rowsBean.getDescription())); - casePlaceView.setText("发生地点:" + StringHub.filterSpaceOrEnter(rowsBean.getFieldintro())); - caseTimeView.setText("上报时间:" + rowsBean.getReportTime()); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/adapter/HomeRecycleAdapter.java b/app/src/main/java/com/casic/dcms/adapter/HomeRecycleAdapter.java deleted file mode 100644 index e6eafa6..0000000 --- a/app/src/main/java/com/casic/dcms/adapter/HomeRecycleAdapter.java +++ /dev/null @@ -1,80 +0,0 @@ -package com.casic.dcms.adapter; - -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.HomePageBean; -import com.casic.dcms.utils.StringHelper; - -import java.util.List; - -public class HomeRecycleAdapter extends RecyclerView.Adapter { - - private final List menuData; - private final LayoutInflater layoutInflater; - - public HomeRecycleAdapter(Context context, List menus) { - this.menuData = menus; - this.layoutInflater = LayoutInflater.from(context); - } - - @NonNull - @Override - public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - return new ItemViewHolder(layoutInflater.inflate(R.layout.item_home_recycleview, parent, false)); - } - - @Override - public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { - String name = menuData.get(position).getName(); - holder.bindView(name); - if (clickListener != null) { - holder.itemView.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - clickListener.onClick(name); - } - }); - } - } - - @Override - public int getItemCount() { - return menuData.size(); - } - - private OnGridItemClickListener clickListener; - - public interface OnGridItemClickListener { - void onClick(String itemName); - } - - public void setOnGridItemClickListener(OnGridItemClickListener onGridItemClickListener) { - this.clickListener = onGridItemClickListener; - } - - static class ItemViewHolder extends RecyclerView.ViewHolder { - - private final ImageView imageView; - private final TextView textView; - - ItemViewHolder(@NonNull View itemView) { - super(itemView); - imageView = itemView.findViewById(R.id.imageView); - textView = itemView.findViewById(R.id.textView); - } - - void bindView(String name) { - imageView.setBackgroundResource(StringHelper.obtainIcon(name)); - textView.setText(name); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/adapter/ProcessLineAdapter.java b/app/src/main/java/com/casic/dcms/adapter/ProcessLineAdapter.java deleted file mode 100644 index 42da4cf..0000000 --- a/app/src/main/java/com/casic/dcms/adapter/ProcessLineAdapter.java +++ /dev/null @@ -1,70 +0,0 @@ -package com.casic.dcms.adapter; - -import android.content.Context; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.TextView; - -import androidx.annotation.NonNull; -import androidx.recyclerview.widget.RecyclerView; - -import com.casic.dcms.R; -import com.casic.dcms.model.CaseProcessBean; - -import org.jetbrains.annotations.NotNull; - -import java.util.List; - -public class ProcessLineAdapter extends RecyclerView.Adapter { - private final List mProcessList; - private final LayoutInflater layoutInflater; - - public ProcessLineAdapter(Context context, List list) { - this.mProcessList = list; - this.layoutInflater = LayoutInflater.from(context); - } - - @NotNull - @Override - public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - return new ViewHolder(layoutInflater.inflate(R.layout.item_case_process, parent, false)); - } - - @Override - public void onBindViewHolder(ViewHolder holder, int position) { - CaseProcessBean.DataBean dataBean = mProcessList.get(position); - String typeName = dataBean.getOperationTypeName(); - holder.operationTypeName.setText(typeName); - holder.handlePersonView.setText(dataBean.getUserName()); - holder.handleTimeView.setText(dataBean.getTime()); - holder.handleResultView.setText(dataBean.getRemarks()); - } - - @Override - public int getItemViewType(int position) { - return super.getItemViewType(position); - } - - @Override - public int getItemCount() { - return mProcessList.size(); - } - - static class ViewHolder extends RecyclerView.ViewHolder { - private final TextView operationTypeName; - private final TextView handlePersonView; - private final TextView handleTimeView; - private final TextView handleResultView; - private final RecyclerView handlePicView; - - public ViewHolder(View view) { - super(view); - operationTypeName = view.findViewById(R.id.operationTypeName); - handlePersonView = view.findViewById(R.id.handlePersonView); - handleTimeView = view.findViewById(R.id.handleTimeView); - handleResultView = view.findViewById(R.id.handleResultView); - handlePicView = view.findViewById(R.id.handlePicView); - } - } -} \ No newline at end of file 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 3b7a194..6b6b72e 100644 --- a/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java @@ -7,7 +7,6 @@ import com.bumptech.glide.Glide; import com.casic.dcms.R; -import com.casic.dcms.adapter.HomeRecycleAdapter; import com.casic.dcms.databinding.FragmentHomeBinding; import com.casic.dcms.model.HomePageBean; import com.casic.dcms.model.UserBean; @@ -33,6 +32,8 @@ import com.casic.dcms.view.UrgentCaseActivity; import com.casic.dcms.view.VerifyCaseActivity; import com.casic.dcms.vm.HomePageViewModel; +import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; +import com.pengxh.androidx.lite.adapter.ViewHolder; import com.pengxh.androidx.lite.base.AndroidxBaseFragment; import com.pengxh.androidx.lite.hub.LongHub; import com.pengxh.androidx.lite.utils.SaveKeyValues; @@ -95,13 +96,18 @@ @Override public void onChanged(HomePageBean resultBean) { if (resultBean.getCode() == 200) { - HomeRecycleAdapter adapter = new HomeRecycleAdapter(requireContext(), resultBean.getData().getMenus()); - viewBinding.homeRecyclerView.setAdapter(adapter); - adapter.setOnGridItemClickListener(new HomeRecycleAdapter.OnGridItemClickListener() { + NormalRecyclerAdapter recyclerAdapter = new NormalRecyclerAdapter(R.layout.item_home_recycleview, resultBean.getData().getMenus()) { @Override - public void onClick(String itemName) { + public void convertView(ViewHolder viewHolder, int position, HomePageBean.DataBean.MenusBean item) { + viewHolder.setImageResource(R.id.imageView, StringHelper.obtainDrawableIcon(item.getName())).setText(R.id.textView, item.getName()); + } + }; + viewBinding.homeRecyclerView.setAdapter(recyclerAdapter); + recyclerAdapter.setOnItemClickedListener(new NormalRecyclerAdapter.OnItemClickedListener() { + @Override + public void onItemClicked(int position, HomePageBean.DataBean.MenusBean menusBean) { Intent intent = new Intent(); - switch (itemName) { + switch (menusBean.getName()) { case "案卷上报": intent.setClass(requireContext(), CommonCaseUploadActivity.class); break; diff --git a/app/src/main/java/com/casic/dcms/model/DataAnalysisGridModel.java b/app/src/main/java/com/casic/dcms/model/DataAnalysisGridModel.java new file mode 100644 index 0000000..3b20a2f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/model/DataAnalysisGridModel.java @@ -0,0 +1,22 @@ +package com.casic.dcms.model; + +public class DataAnalysisGridModel { + private int itemIcon; + private String itemTitle; + + public int getItemIcon() { + return itemIcon; + } + + public void setItemIcon(int itemIcon) { + this.itemIcon = itemIcon; + } + + public String getItemTitle() { + return itemTitle; + } + + public void setItemTitle(String itemTitle) { + this.itemTitle = itemTitle; + } +} diff --git a/app/src/main/java/com/casic/dcms/utils/DataBaseManager.java b/app/src/main/java/com/casic/dcms/utils/DataBaseManager.java index 0a39218..57f0df8 100644 --- a/app/src/main/java/com/casic/dcms/utils/DataBaseManager.java +++ b/app/src/main/java/com/casic/dcms/utils/DataBaseManager.java @@ -127,7 +127,7 @@ toiletListBeanDao.deleteAll(); } - public void saveToiletList(ToiletListModel.DataBean dataBean) { + public void saveToilets(ToiletListModel.DataBean dataBean) { ToiletListBean bean = new ToiletListBean(); bean.setArea(dataBean.getArea()); bean.setCode(dataBean.getCode()); @@ -149,7 +149,7 @@ toiletListBeanDao.save(bean); } - public List getToiletList() { + public List getToilets() { List result = new ArrayList<>(); List listBeans = toiletListBeanDao.loadAll(); for (ToiletListBean toiletBean : listBeans) { diff --git a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java b/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java index 7cb867d..fb0c033 100644 --- a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java +++ b/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java @@ -1,25 +1,12 @@ package com.casic.dcms.utils; -import android.util.Log; - import com.casic.dcms.utils.callback.IHttpRequestListener; +import com.pengxh.androidx.lite.callback.OnHttpRequestListener; +import com.pengxh.androidx.lite.hub.RequestHub; import com.pengxh.androidx.lite.utils.SaveKeyValues; -import org.jetbrains.annotations.NotNull; - -import java.io.IOException; -import java.util.concurrent.TimeUnit; - -import okhttp3.OkHttpClient; import okhttp3.Request; import okhttp3.Response; -import okhttp3.ResponseBody; -import okhttp3.logging.HttpLoggingInterceptor; -import rx.Emitter; -import rx.Observable; -import rx.Observer; -import rx.android.schedulers.AndroidSchedulers; -import rx.schedulers.Schedulers; public class HttpRequestHelper { private static final String TAG = "HttpRequestHelper"; @@ -27,93 +14,39 @@ public static void doRequest(String function, String requestValue, IHttpRequestListener listener) { String ip = (String) SaveKeyValues.getValue(LocaleConstant.IP_KEY, "http://111.198.10.15:11409"); // String ip = (String) SaveKeyValues.getValue(Constant.IP_KEY, "http://223.82.47.232:11401"); - Observable.create(emitter -> { - HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor(new HttpLoggingInterceptor.Logger() { - @Override - public void log(@NotNull String message) { - Log.d(TAG, "log: " + message); - } - }); - interceptor.setLevel(HttpLoggingInterceptor.Level.BODY); - - OkHttpClient client = new OkHttpClient.Builder() - .addInterceptor(interceptor) - .readTimeout(LocaleConstant.HTTP_TIMEOUT, TimeUnit.SECONDS) - .connectTimeout(LocaleConstant.HTTP_TIMEOUT, TimeUnit.SECONDS) - .writeTimeout(LocaleConstant.HTTP_TIMEOUT, TimeUnit.SECONDS) - .build(); - - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(ip + function + requestValue) - .get() - .build();//创建Request 对象 - try { - Response response = client.newCall(request).execute(); - emitter.onNext(response.body()); - } catch (IOException e) { - emitter.onError(e); - } - }, Emitter.BackpressureMode.BUFFER).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + Request request = new Request.Builder() + .addHeader("token", AuthenticationHelper.getToken()) + .url(ip + function + requestValue) + .get() + .build();//创建Request 对象 + RequestHub.doRequest(request, new OnHttpRequestListener() { @Override - public void onCompleted() { - + public void onSuccess(Response response) { + listener.onSuccess(response.body()); } @Override - public void onError(Throwable e) { - listener.onFailure(e); - } - - @Override - public void onNext(ResponseBody responseBody) { - listener.onSuccess(responseBody); + public void onFailure(Throwable throwable) { + listener.onFailure(throwable); } }); } public static void doRequest(String url, IHttpRequestListener listener) { - Observable.create(emitter -> { - HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor(new HttpLoggingInterceptor.Logger() { - @Override - public void log(@NotNull String message) { - Log.d(TAG, "log: " + message); - } - }); - interceptor.setLevel(HttpLoggingInterceptor.Level.BODY); - - OkHttpClient client = new OkHttpClient.Builder() - .addInterceptor(interceptor) - .readTimeout(LocaleConstant.HTTP_TIMEOUT, TimeUnit.SECONDS) - .connectTimeout(LocaleConstant.HTTP_TIMEOUT, TimeUnit.SECONDS) - .writeTimeout(LocaleConstant.HTTP_TIMEOUT, TimeUnit.SECONDS) - .build(); - - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(url) - .get() - .build();//创建Request 对象 - try { - Response response = client.newCall(request).execute(); - emitter.onNext(response.body()); - } catch (IOException e) { - emitter.onError(e); - } - }, Emitter.BackpressureMode.BUFFER).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + Request request = new Request.Builder() + .addHeader("token", AuthenticationHelper.getToken()) + .url(url) + .get() + .build();//创建Request 对象 + RequestHub.doRequest(request, new OnHttpRequestListener() { @Override - public void onCompleted() { - + public void onSuccess(Response response) { + listener.onSuccess(response.body()); } @Override - public void onError(Throwable e) { - listener.onFailure(e); - } - - @Override - public void onNext(ResponseBody responseBody) { - listener.onSuccess(responseBody); + public void onFailure(Throwable throwable) { + listener.onFailure(throwable); } }); } diff --git a/app/src/main/java/com/casic/dcms/utils/StringHelper.java b/app/src/main/java/com/casic/dcms/utils/StringHelper.java index c625bb4..1a097cc 100644 --- a/app/src/main/java/com/casic/dcms/utils/StringHelper.java +++ b/app/src/main/java/com/casic/dcms/utils/StringHelper.java @@ -264,8 +264,20 @@ return R.drawable.ic_dtck; case "公厕保洁": return R.drawable.ic_toilet; + case "三包处置": + return R.drawable.ic_sanbao; + case "商铺变更": + return R.drawable.ic_shangpu; + case "部门处置": + return R.drawable.ic_dept; + case "路桥养护": + return R.drawable.ic_bridge; + case "管网管理": + return R.drawable.ic_pipe; + case "路灯管理": + return R.drawable.ic_streetlight; default: - return 0; + return R.drawable.ic_default_icon; } } } diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java index b1a3c67..6d3574d 100644 --- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java +++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java @@ -39,9 +39,7 @@ * token添加到Header */ @GET("/user/info") - Observable getUserData( - @Header("token") String token - ); + Observable getUserData(@Header("token") String token); /** * 获取地图地址 @@ -49,9 +47,7 @@ * token添加到Header */ @GET("/map/server/listPage") - Observable getMapConfig( - @Header("token") String token - ); + Observable getMapConfig(@Header("token") String token); /** * 大类列表查询 @@ -132,9 +128,7 @@ * 退出登录 */ @GET("/user/logout") - Observable loginOut( - @Header("token") String token - ); + Observable loginOut(@Header("token") String token); /** * 修改密码 @@ -152,10 +146,7 @@ * 获取部门树 */ @GET("/dept/tree") - Observable getDeptTree( - @Header("token") String token, - @Query("pid") String pid - ); + Observable getDeptTree(@Header("token") String token, @Query("pid") String pid); /** * 获取通讯录 @@ -193,9 +184,7 @@ * 获取案件状态 */ @GET("/dict/code/caseState") - Observable getCaseStatus( - @Header("token") String token - ); + Observable getCaseStatus(@Header("token") String token); /** * 获取案件列表 @@ -223,10 +212,7 @@ * http://111.198.10.15:11409/case/detail/1372735305680994306 */ @GET("/case/detail/{id}") - Observable obtainCaseDetail( - @Header("token") String token, - @Path("id") String id - ); + Observable obtainCaseDetail(@Header("token") String token, @Path("id") String id); /** * 获取案件流转记录 @@ -241,9 +227,7 @@ * 更新版本 */ @POST("/app/checkVersion") - Observable updateVersion( - @Header("token") String token - ); + Observable updateVersion(@Header("token") String token); /** * 获取核实待办案卷 @@ -407,9 +391,7 @@ * 获取常见语句 */ @GET("/dict/code/commonApproval") - Observable obtainCommonSentence( - @Header("token") String token - ); + Observable obtainCommonSentence(@Header("token") String token); /** * 案卷处理 @@ -532,9 +514,7 @@ * http://111.198.10.15:11409/sanitation/toilet/list */ @GET("/sanitation/toilet/list") - Observable getToiletList( - @Header("token") String token - ); + Observable getToilets(@Header("token") String token); /** * 公厕打扫签到 @@ -789,9 +769,7 @@ * http://111.198.10.15:11409/lampCr/overview/lampList */ @GET("/lightCr/overview/lampList") - Observable obtainLightList( - @Header("token") String token - ); + Observable obtainLightList(@Header("token") String token); /** * 路灯详情 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 5c31b0a..8876060 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 @@ -411,8 +411,8 @@ /** * 公厕列表 */ - public static Observable getToiletList() { - return api.getToiletList(AuthenticationHelper.getToken()); + public static Observable getToilets() { + return api.getToilets(AuthenticationHelper.getToken()); } /** 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 e709752..d7bf511 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java @@ -1,25 +1,23 @@ package com.casic.dcms.view; import android.content.Context; -import android.graphics.Rect; +import android.graphics.Color; +import android.view.View; -import androidx.annotation.Nullable; import androidx.core.content.ContextCompat; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; -import com.casic.dcms.adapter.ProcessLineAdapter; import com.casic.dcms.databinding.ActivityCaseProcessBinding; import com.casic.dcms.model.CaseProcessBean; -import com.casic.dcms.utils.TimeLineDecoration; -import com.casic.dcms.utils.TimeLineDecoration.TimeLineAdapter; import com.casic.dcms.vm.CommonDataViewModel; import com.gyf.immersionbar.ImmersionBar; +import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; +import com.pengxh.androidx.lite.adapter.ViewHolder; import com.pengxh.androidx.lite.base.AndroidxBaseActivity; import com.pengxh.androidx.lite.utils.Constant; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; -import com.qmuiteam.qmui.util.QMUIDisplayHelper; import java.util.ArrayList; import java.util.List; @@ -62,36 +60,33 @@ for (int i = 0; i < size; i++) { dataBeans.add(i, resultBean.getData().get(size - 1 - i)); } - ProcessLineAdapter adapter = new ProcessLineAdapter(context, dataBeans); - TimeLineDecoration decoration = new TimeLineDecoration(context) - .setLineColor(R.color.lightGray) - .setLineWidth(1f) - .setLeftDistance(QMUIDisplayHelper.dp2px(context, 9)) - .setMarkerColor(R.color.lightGray) - .setMarkerRadius(10f) - .setBeginMarkerRadius(10f) - .setBeginMarker(R.drawable.begin_marker) - .setCallback(new TimeLineAdapter() { - @Nullable - @Override - public Rect getRect(int position) { - return new Rect(QMUIDisplayHelper.dp2px(context, 30), - QMUIDisplayHelper.dp2px(context, 10), 0, 0); - } + NormalRecyclerAdapter recyclerAdapter = new NormalRecyclerAdapter(R.layout.item_case_process, dataBeans) { + @Override + public void convertView(ViewHolder viewHolder, int position, CaseProcessBean.DataBean item) { + if (position == 0) { + //最后一项 + viewHolder.setBackgroundColor(R.id.dotView, Color.BLACK); + viewHolder.setTextColor(R.id.operatorNameView, Color.BLACK) + .setTextColor(R.id.statusView, Color.BLACK) + .setTextColor(R.id.operateTimeView, Color.BLACK) + .setTextColor(R.id.remarkView, Color.BLACK); - @Override - public int getTimeLineType(int position) { - if (position == 0) { - return TimeLineDecoration.BEGIN; - } else if (position == adapter.getItemCount() - 1) { - return TimeLineDecoration.END_FULL; - } else { - return TimeLineDecoration.NORMAL; - } - } - }); - viewBinding.processRecyclerView.addItemDecoration(decoration); - viewBinding.processRecyclerView.setAdapter(adapter); + viewHolder.setVisibility(R.id.topLineView, View.INVISIBLE); + viewHolder.setImageResource(R.id.tagImageView, R.drawable.ic_dot_red); + } else if (position == size - 1) { + viewHolder.setVisibility(R.id.bottomLineView, View.INVISIBLE); + viewHolder.setImageResource(R.id.tagImageView, R.drawable.ic_dot_gray); + } else { + viewHolder.setImageResource(R.id.tagImageView, R.drawable.ic_dot); + } + + viewHolder.setText(R.id.statusView, item.getOperationTypeName()) + .setText(R.id.operatorNameView, item.getUserName()) + .setText(R.id.remarkView, item.getRemarks()) + .setText(R.id.operateTimeView, item.getTime()); + } + }; + viewBinding.processRecyclerView.setAdapter(recyclerAdapter); } } }); 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 6c8b259..0a65da1 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java @@ -10,12 +10,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; -import com.casic.dcms.adapter.CaseSearchResultAdapter; import com.casic.dcms.databinding.ActivityCaseListBinding; import com.casic.dcms.model.CaseSearchResultBean; import com.casic.dcms.utils.DialogHelper; import com.casic.dcms.vm.CaseViewModel; import com.gyf.immersionbar.ImmersionBar; +import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; +import com.pengxh.androidx.lite.adapter.ViewHolder; import com.pengxh.androidx.lite.base.AndroidxBaseActivity; import com.pengxh.androidx.lite.hub.ContextHub; import com.pengxh.androidx.lite.hub.StringHub; @@ -34,7 +35,7 @@ private final Context context = this; private WeakReferenceHandler weakReferenceHandler; private CaseViewModel caseViewModel; - private CaseSearchResultAdapter adapter; + private NormalRecyclerAdapter adapter; private String typeCode; private String typeDetailCode; private String caseState; @@ -157,16 +158,29 @@ }); } else { viewBinding.emptyView.hide(); - adapter = new CaseSearchResultAdapter(context, dataBeans); - viewBinding.caseRecyclerView.setAdapter(adapter); - adapter.setOnItemClickListener(new CaseSearchResultAdapter.OnItemClickListener() { + adapter = new NormalRecyclerAdapter(R.layout.item_case_rv, dataBeans) { + @Override - public void onClick(int position) { - ContextHub.navigatePageTo( - context, - CaseDetailActivity.class, - dataBeans.get(position).getId() - ); + public void convertView(ViewHolder viewHolder, int position, CaseSearchResultBean.DataDTO.RowsDTO item) { + //核实图片 +// String fileIdVerify = rowsBean.getFileIdVerify(); +// if (!TextUtils.isEmpty(fileIdVerify)) { +// String[] split = fileIdVerify.split(","); +// String firstImage = split[0]; +// if (firstImage.endsWith(".jpg") || firstImage.contains(".jpeg") || firstImage.contains(".png")) { +// Glide.with(context).load(StringHelper.appendCompleteURL(firstImage)).into(caseImageView); +// } +// } + viewHolder.setText(R.id.caseTitleView, StringHub.filterSpaceOrEnter(item.getDescription())) + .setText(R.id.casePlaceView, "发生地点:" + StringHub.filterSpaceOrEnter(item.getFieldintro())) + .setText(R.id.caseTimeView, "上报时间:" + item.getReportTime()); + } + }; + viewBinding.caseRecyclerView.setAdapter(adapter); + adapter.setOnItemClickedListener(new NormalRecyclerAdapter.OnItemClickedListener() { + @Override + public void onItemClicked(int position, CaseSearchResultBean.DataDTO.RowsDTO rowsDTO) { + ContextHub.navigatePageTo(context, CaseDetailActivity.class, rowsDTO.getId()); } }); } diff --git a/app/src/main/java/com/casic/dcms/view/DataAnalysisActivity.java b/app/src/main/java/com/casic/dcms/view/DataAnalysisActivity.java index c3bff07..29d576b 100644 --- a/app/src/main/java/com/casic/dcms/view/DataAnalysisActivity.java +++ b/app/src/main/java/com/casic/dcms/view/DataAnalysisActivity.java @@ -6,13 +6,18 @@ import androidx.core.content.ContextCompat; import com.casic.dcms.R; -import com.casic.dcms.adapter.AnalysisRecycleAdapter; import com.casic.dcms.databinding.ActivityCaseAnalysisBinding; +import com.casic.dcms.model.DataAnalysisGridModel; +import com.casic.dcms.utils.LocaleConstant; import com.gyf.immersionbar.ImmersionBar; +import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; +import com.pengxh.androidx.lite.adapter.ViewHolder; import com.pengxh.androidx.lite.base.AndroidxBaseActivity; import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import java.util.ArrayList; + /** * @author : Pengxh * @time : 2021/4/15 16:03 @@ -38,11 +43,25 @@ @Override protected void initData() { - AnalysisRecycleAdapter adapter = new AnalysisRecycleAdapter(this); - viewBinding.analysisRecyclerView.setAdapter(adapter); - adapter.setOnGridItemClickListener(new AnalysisRecycleAdapter.OnGridItemClickListener() { + ArrayList models = new ArrayList<>(); + for (int i = 0; i < 6; i++) { + DataAnalysisGridModel model = new DataAnalysisGridModel(); + model.setItemIcon(LocaleConstant.ANALYSIS_ICONS.get(i)); + model.setItemTitle(LocaleConstant.ANALYSIS_ITEMS.get(i)); + models.add(model); + } + + NormalRecyclerAdapter adapter = new NormalRecyclerAdapter(R.layout.item_home_recycleview, models) { + @Override - public void onClick(int position) { + public void convertView(ViewHolder viewHolder, int position, DataAnalysisGridModel item) { + viewHolder.setImageResource(R.id.imageView, item.getItemIcon()).setText(R.id.textView, item.getItemTitle()); + } + }; + viewBinding.analysisRecyclerView.setAdapter(adapter); + adapter.setOnItemClickedListener(new NormalRecyclerAdapter.OnItemClickedListener() { + @Override + public void onItemClicked(int position, DataAnalysisGridModel dataAnalysisGridModel) { Intent intent = new Intent(); switch (position) { case 0: diff --git a/app/src/main/java/com/casic/dcms/view/MainActivity.java b/app/src/main/java/com/casic/dcms/view/MainActivity.java index cf8662f..376e943 100644 --- a/app/src/main/java/com/casic/dcms/view/MainActivity.java +++ b/app/src/main/java/com/casic/dcms/view/MainActivity.java @@ -3,6 +3,7 @@ import android.content.Intent; import android.os.Build; import android.os.Handler; +import android.os.Message; import android.view.KeyEvent; import android.view.MenuItem; import android.view.View; @@ -40,7 +41,6 @@ import com.google.android.material.navigation.NavigationBarView; import com.google.gson.Gson; import com.gyf.immersionbar.ImmersionBar; -import com.igexin.sdk.PushManager; import com.pengxh.androidx.lite.base.AndroidxBaseActivity; import com.pengxh.androidx.lite.hub.ContextHub; import com.pengxh.androidx.lite.hub.StringHub; @@ -64,8 +64,6 @@ private String imei = ""; private UploadViewModel positionViewModel; private PushViewModel pushViewModel; - private MapConfigViewModel mapConfigViewModel; - private ToiletViewModel toiletViewModel; private long clickTime = 0; @Override @@ -82,6 +80,26 @@ } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == LocaleConstant.PUSH_REGISTER) { + pushViewModel.registerPush((String) msg.obj); + } else if (msg.what == LocaleConstant.MESSAGE_NUMBER) { + updateMessageNumber(); + } else if (msg.what == LocaleConstant.UPDATE_LOCATION) { + AMapLocation aMapLocation = (AMapLocation) msg.obj; + try { + double[] gcjToWgs = LocationHelper.gcjToWgs(aMapLocation.getLongitude(), aMapLocation.getLatitude()); + positionViewModel.uploadPosition(imei, String.valueOf(gcjToWgs[1]), String.valueOf(gcjToWgs[0])); + } catch (NullPointerException e) { + e.printStackTrace(); + } + } + return true; + } + }; + @Override protected void initData() { //配置页面 @@ -89,29 +107,14 @@ pageViews.add(new PhonePageFragment()); pageViews.add(new NoticePageFragment()); pageViews.add(new MinePageFragment()); + MainPageAdapter mainPageAdapter = new MainPageAdapter(getSupportFragmentManager(), pageViews); + viewBinding.mainViewPager.setOffscreenPageLimit(pageViews.size()); + viewBinding.mainViewPager.setAdapter(mainPageAdapter); - //个推初始化 - PushManager.getInstance().initialize(this); weakReferenceHandler = new WeakReferenceHandler(callback); dataBaseManager = DataBaseManager.getInstance(); - positionViewModel = new ViewModelProvider(this).get(UploadViewModel.class); - pushViewModel = new ViewModelProvider(this).get(PushViewModel.class); - mapConfigViewModel = new ViewModelProvider(this).get(MapConfigViewModel.class); - toiletViewModel = new ViewModelProvider(this).get(ToiletViewModel.class); - - //获取配置项 - obtainProjectConfig(); - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { - startForegroundService(new Intent(this, UpdateLocationService.class)); - } else { - startService(new Intent(this, UpdateLocationService.class)); - } - } - - private void obtainProjectConfig() { - imei = ContextHub.getSimCardSerialNumber(this); - //地图配置项 + MapConfigViewModel mapConfigViewModel = new ViewModelProvider(this).get(MapConfigViewModel.class); mapConfigViewModel.obtainMapConfig(); mapConfigViewModel.mapConfigModel.observe(this, new Observer() { @Override @@ -125,65 +128,34 @@ } }); - //公厕数据 - toiletViewModel.obtainToiletList(); + ToiletViewModel toiletViewModel = new ViewModelProvider(this).get(ToiletViewModel.class); + toiletViewModel.getToilets(); toiletViewModel.toiletListModel.observe(this, new Observer() { @Override public void onChanged(ToiletListModel resultBean) { if (resultBean.getCode() == 200) { dataBaseManager.deleteAllToiletList(); for (ToiletListModel.DataBean dataBean : resultBean.getData()) { - dataBaseManager.saveToiletList(dataBean); + dataBaseManager.saveToilets(dataBean); } } } }); - //公厕图层ID - HttpRequestHelper.doRequest(LocaleConstant.LAYER_CONFIG, new IHttpRequestListener() { - @Override - public void onSuccess(ResponseBody resultBean) { - try { - String resultStr = resultBean.string(); - List partsLayer = gson.fromJson(resultStr, LayerConfigBean.class).getPartsLayer(); - List childrenBeans = partsLayer.get(2).getChildren(); - StringHelper.saveToiletLayerId(String.valueOf(childrenBeans.get(0).getLayer())); - } catch (IOException e) { - e.printStackTrace(); - } - } + positionViewModel = new ViewModelProvider(this).get(UploadViewModel.class); + pushViewModel = new ViewModelProvider(this).get(PushViewModel.class); - @Override - public void onFailure(Throwable throwable) { - - } - }); - - //桥梁数据 TODO-待调试 - HttpRequestHelper.doRequest(LocaleConstant.PROJECT_CONFIG, new IHttpRequestListener() { - @Override - public void onSuccess(ResponseBody resultBean) { - try { - String resultStr = resultBean.string(); - List bridges = gson.fromJson(resultStr, BridgeConfigBean.class).getBridges(); - StringHelper.saveBridgeList(gson.toJson(bridges)); - } catch (IOException e) { - e.printStackTrace(); - } - } - - @Override - public void onFailure(Throwable throwable) { - - } - }); + //获取配置项 + obtainProjectConfig(); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { + startForegroundService(new Intent(this, UpdateLocationService.class)); + } else { + startService(new Intent(this, UpdateLocationService.class)); + } } @Override protected void initEvent() { - MainPageAdapter mainPageAdapter = new MainPageAdapter(getSupportFragmentManager(), pageViews); - viewBinding.mainViewPager.setOffscreenPageLimit(pageViews.size()); - viewBinding.mainViewPager.setAdapter(mainPageAdapter); viewBinding.bottomNavigation.setOnItemSelectedListener(new NavigationBarView.OnItemSelectedListener() { @Override public boolean onNavigationItemSelected(@NonNull MenuItem item) { @@ -228,27 +200,53 @@ }); } - private final Handler.Callback callback = msg -> { - if (msg.what == LocaleConstant.PUSH_REGISTER) { - pushViewModel.registerPush((String) msg.obj); - } else if (msg.what == LocaleConstant.MESSAGE_NUMBER) { - updateMessageNumber(); - } else if (msg.what == LocaleConstant.UPDATE_LOCATION) { - AMapLocation aMapLocation = (AMapLocation) msg.obj; - try { - double[] gcjToWgs = LocationHelper.gcjToWgs(aMapLocation.getLongitude(), aMapLocation.getLatitude()); - positionViewModel.uploadPosition(imei, String.valueOf(gcjToWgs[1]), String.valueOf(gcjToWgs[0])); - } catch (NullPointerException e) { - e.printStackTrace(); + private void obtainProjectConfig() { + imei = ContextHub.getSimCardSerialNumber(this); + + //公厕图层ID + HttpRequestHelper.doRequest(LocaleConstant.LAYER_CONFIG, new IHttpRequestListener() { + @Override + public void onSuccess(ResponseBody resultBean) { + try { + String resultStr = resultBean.string(); + List partsLayer = gson.fromJson(resultStr, LayerConfigBean.class).getPartsLayer(); + List childrenBeans = partsLayer.get(2).getChildren(); + StringHelper.saveToiletLayerId(String.valueOf(childrenBeans.get(0).getLayer())); + } catch (IOException e) { + e.printStackTrace(); + } } - } - return true; - }; + + @Override + public void onFailure(Throwable throwable) { + + } + }); + + //桥梁数据 TODO-待调试 + HttpRequestHelper.doRequest(LocaleConstant.PROJECT_CONFIG, new IHttpRequestListener() { + @Override + public void onSuccess(ResponseBody resultBean) { + try { + String resultStr = resultBean.string(); + List bridges = gson.fromJson(resultStr, BridgeConfigBean.class).getBridges(); + StringHelper.saveBridgeList(gson.toJson(bridges)); + } catch (IOException e) { + e.printStackTrace(); + } + } + + @Override + public void onFailure(Throwable throwable) { + + } + }); + } @Override protected void onResume() { - updateMessageNumber(); super.onResume(); + updateMessageNumber(); } private void updateMessageNumber() { diff --git a/app/src/main/java/com/casic/dcms/view/PublicToiletActivity.java b/app/src/main/java/com/casic/dcms/view/PublicToiletActivity.java index d3e3ced..0a75439 100644 --- a/app/src/main/java/com/casic/dcms/view/PublicToiletActivity.java +++ b/app/src/main/java/com/casic/dcms/view/PublicToiletActivity.java @@ -153,7 +153,7 @@ viewBinding.obtainToiletIdLayout.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - List toiletBeanList = DataBaseManager.getInstance().getToiletList(); + List toiletBeanList = DataBaseManager.getInstance().getToilets(); if (toiletBeanList.size() == 0) { StringHub.show(context, "获取公厕数据失败,请联系管理员"); return; diff --git a/app/src/main/java/com/casic/dcms/vm/ToiletViewModel.java b/app/src/main/java/com/casic/dcms/vm/ToiletViewModel.java index 313e3d1..05ab157 100644 --- a/app/src/main/java/com/casic/dcms/vm/ToiletViewModel.java +++ b/app/src/main/java/com/casic/dcms/vm/ToiletViewModel.java @@ -25,8 +25,8 @@ public MutableLiveData cleanToiletModel = new MutableLiveData<>(); public MutableLiveData cleanRecordModel = new MutableLiveData<>(); - public void obtainToiletList() { - Observable observable = RetrofitServiceManager.getToiletList(); + public void getToilets() { + Observable observable = RetrofitServiceManager.getToilets(); ObserverSubscriber.addSubscribe(observable, new OnObserverCallback() { @Override public void onCompleted() { diff --git a/app/src/main/res/drawable/ic_dot.xml b/app/src/main/res/drawable/ic_dot.xml new file mode 100644 index 0000000..ee801ca --- /dev/null +++ b/app/src/main/res/drawable/ic_dot.xml @@ -0,0 +1,13 @@ + + + + diff --git a/app/src/main/res/drawable/ic_dot_gray.xml b/app/src/main/res/drawable/ic_dot_gray.xml new file mode 100644 index 0000000..5a1a24a --- /dev/null +++ b/app/src/main/res/drawable/ic_dot_gray.xml @@ -0,0 +1,12 @@ + + + + diff --git a/app/src/main/res/drawable/ic_dot_red.xml b/app/src/main/res/drawable/ic_dot_red.xml new file mode 100644 index 0000000..cb190e5 --- /dev/null +++ b/app/src/main/res/drawable/ic_dot_red.xml @@ -0,0 +1,12 @@ + + + + diff --git a/.idea/misc.xml b/.idea/misc.xml index 12058ca..4f8b20d 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -28,6 +28,9 @@ + + + @@ -39,6 +42,7 @@ + @@ -81,7 +85,8 @@ - + + diff --git a/app/src/main/java/com/casic/dcms/adapter/AnalysisRecycleAdapter.java b/app/src/main/java/com/casic/dcms/adapter/AnalysisRecycleAdapter.java deleted file mode 100644 index 913bde1..0000000 --- a/app/src/main/java/com/casic/dcms/adapter/AnalysisRecycleAdapter.java +++ /dev/null @@ -1,71 +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.utils.LocaleConstant; - -public class AnalysisRecycleAdapter extends RecyclerView.Adapter { - - private final LayoutInflater layoutInflater; - - public AnalysisRecycleAdapter(Context context) { - this.layoutInflater = LayoutInflater.from(context); - } - - @NonNull - @Override - public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - return new ItemViewHolder(layoutInflater.inflate(R.layout.item_home_recycleview, parent, false)); - } - - @Override - public void onBindViewHolder(@NonNull ItemViewHolder holder, @SuppressLint("RecyclerView") int position) { - holder.imageView.setBackgroundResource(LocaleConstant.ANALYSIS_ICONS.get(position)); - holder.textView.setText(LocaleConstant.ANALYSIS_ITEMS.get(position)); - if (clickListener != null) { - holder.itemView.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - clickListener.onClick(position); - } - }); - } - } - - @Override - public int getItemCount() { - return LocaleConstant.ANALYSIS_ITEMS.size(); - } - - private OnGridItemClickListener clickListener; - - public interface OnGridItemClickListener { - void onClick(int position); - } - - public void setOnGridItemClickListener(OnGridItemClickListener onGridItemClickListener) { - this.clickListener = onGridItemClickListener; - } - - static class ItemViewHolder extends RecyclerView.ViewHolder { - - private final ImageView imageView; - private final TextView textView; - - ItemViewHolder(@NonNull View itemView) { - super(itemView); - imageView = itemView.findViewById(R.id.imageView); - textView = itemView.findViewById(R.id.textView); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/adapter/CaseSearchResultAdapter.java b/app/src/main/java/com/casic/dcms/adapter/CaseSearchResultAdapter.java deleted file mode 100644 index 9449f44..0000000 --- a/app/src/main/java/com/casic/dcms/adapter/CaseSearchResultAdapter.java +++ /dev/null @@ -1,94 +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.TextView; - -import androidx.annotation.NonNull; -import androidx.recyclerview.widget.RecyclerView; - -import com.casic.dcms.R; -import com.casic.dcms.model.CaseSearchResultBean; -import com.pengxh.androidx.lite.hub.StringHub; -import com.qmuiteam.qmui.widget.QMUIRadiusImageView; - -import java.util.List; - -public class CaseSearchResultAdapter extends RecyclerView.Adapter { - - private final List dataRows; - private final LayoutInflater layoutInflater; - - public CaseSearchResultAdapter(Context context, List dataRows) { - this.dataRows = dataRows; - this.layoutInflater = LayoutInflater.from(context); - } - - @NonNull - @Override - public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - return new ItemViewHolder(layoutInflater.inflate(R.layout.item_case_rv, parent, false)); - } - - @Override - public void onBindViewHolder(@NonNull ItemViewHolder holder, @SuppressLint("RecyclerView") int position) { - holder.bindView(dataRows.get(position)); - if (clickListener != null) { - holder.itemView.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - clickListener.onClick(position); - } - }); - } - } - - @Override - public int getItemCount() { - return dataRows.size(); - } - - private OnItemClickListener clickListener; - - public interface OnItemClickListener { - void onClick(int position); - } - - public void setOnItemClickListener(OnItemClickListener onItemClickListener) { - this.clickListener = onItemClickListener; - } - - class ItemViewHolder extends RecyclerView.ViewHolder { - - private final QMUIRadiusImageView caseImageView; - private final TextView caseTitleView; - private final TextView casePlaceView; - private final TextView caseTimeView; - - ItemViewHolder(@NonNull View itemView) { - super(itemView); - caseImageView = itemView.findViewById(R.id.caseImageView); - caseTitleView = itemView.findViewById(R.id.caseTitleView); - casePlaceView = itemView.findViewById(R.id.casePlaceView); - caseTimeView = itemView.findViewById(R.id.caseTimeView); - } - - void bindView(CaseSearchResultBean.DataDTO.RowsDTO rowsBean) { - //核实图片 -// String fileIdVerify = rowsBean.getFileIdVerify(); -// if (!TextUtils.isEmpty(fileIdVerify)) { -// String[] split = fileIdVerify.split(","); -// String firstImage = split[0]; -// if (firstImage.endsWith(".jpg") || firstImage.contains(".jpeg") || firstImage.contains(".png")) { -// Glide.with(context).load(StringHelper.appendCompleteURL(firstImage)).into(caseImageView); -// } -// } - caseTitleView.setText(StringHub.filterSpaceOrEnter(rowsBean.getDescription())); - casePlaceView.setText("发生地点:" + StringHub.filterSpaceOrEnter(rowsBean.getFieldintro())); - caseTimeView.setText("上报时间:" + rowsBean.getReportTime()); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/adapter/HomeRecycleAdapter.java b/app/src/main/java/com/casic/dcms/adapter/HomeRecycleAdapter.java deleted file mode 100644 index e6eafa6..0000000 --- a/app/src/main/java/com/casic/dcms/adapter/HomeRecycleAdapter.java +++ /dev/null @@ -1,80 +0,0 @@ -package com.casic.dcms.adapter; - -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.HomePageBean; -import com.casic.dcms.utils.StringHelper; - -import java.util.List; - -public class HomeRecycleAdapter extends RecyclerView.Adapter { - - private final List menuData; - private final LayoutInflater layoutInflater; - - public HomeRecycleAdapter(Context context, List menus) { - this.menuData = menus; - this.layoutInflater = LayoutInflater.from(context); - } - - @NonNull - @Override - public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - return new ItemViewHolder(layoutInflater.inflate(R.layout.item_home_recycleview, parent, false)); - } - - @Override - public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { - String name = menuData.get(position).getName(); - holder.bindView(name); - if (clickListener != null) { - holder.itemView.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - clickListener.onClick(name); - } - }); - } - } - - @Override - public int getItemCount() { - return menuData.size(); - } - - private OnGridItemClickListener clickListener; - - public interface OnGridItemClickListener { - void onClick(String itemName); - } - - public void setOnGridItemClickListener(OnGridItemClickListener onGridItemClickListener) { - this.clickListener = onGridItemClickListener; - } - - static class ItemViewHolder extends RecyclerView.ViewHolder { - - private final ImageView imageView; - private final TextView textView; - - ItemViewHolder(@NonNull View itemView) { - super(itemView); - imageView = itemView.findViewById(R.id.imageView); - textView = itemView.findViewById(R.id.textView); - } - - void bindView(String name) { - imageView.setBackgroundResource(StringHelper.obtainIcon(name)); - textView.setText(name); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/adapter/ProcessLineAdapter.java b/app/src/main/java/com/casic/dcms/adapter/ProcessLineAdapter.java deleted file mode 100644 index 42da4cf..0000000 --- a/app/src/main/java/com/casic/dcms/adapter/ProcessLineAdapter.java +++ /dev/null @@ -1,70 +0,0 @@ -package com.casic.dcms.adapter; - -import android.content.Context; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.TextView; - -import androidx.annotation.NonNull; -import androidx.recyclerview.widget.RecyclerView; - -import com.casic.dcms.R; -import com.casic.dcms.model.CaseProcessBean; - -import org.jetbrains.annotations.NotNull; - -import java.util.List; - -public class ProcessLineAdapter extends RecyclerView.Adapter { - private final List mProcessList; - private final LayoutInflater layoutInflater; - - public ProcessLineAdapter(Context context, List list) { - this.mProcessList = list; - this.layoutInflater = LayoutInflater.from(context); - } - - @NotNull - @Override - public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - return new ViewHolder(layoutInflater.inflate(R.layout.item_case_process, parent, false)); - } - - @Override - public void onBindViewHolder(ViewHolder holder, int position) { - CaseProcessBean.DataBean dataBean = mProcessList.get(position); - String typeName = dataBean.getOperationTypeName(); - holder.operationTypeName.setText(typeName); - holder.handlePersonView.setText(dataBean.getUserName()); - holder.handleTimeView.setText(dataBean.getTime()); - holder.handleResultView.setText(dataBean.getRemarks()); - } - - @Override - public int getItemViewType(int position) { - return super.getItemViewType(position); - } - - @Override - public int getItemCount() { - return mProcessList.size(); - } - - static class ViewHolder extends RecyclerView.ViewHolder { - private final TextView operationTypeName; - private final TextView handlePersonView; - private final TextView handleTimeView; - private final TextView handleResultView; - private final RecyclerView handlePicView; - - public ViewHolder(View view) { - super(view); - operationTypeName = view.findViewById(R.id.operationTypeName); - handlePersonView = view.findViewById(R.id.handlePersonView); - handleTimeView = view.findViewById(R.id.handleTimeView); - handleResultView = view.findViewById(R.id.handleResultView); - handlePicView = view.findViewById(R.id.handlePicView); - } - } -} \ No newline at end of file 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 3b7a194..6b6b72e 100644 --- a/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java @@ -7,7 +7,6 @@ import com.bumptech.glide.Glide; import com.casic.dcms.R; -import com.casic.dcms.adapter.HomeRecycleAdapter; import com.casic.dcms.databinding.FragmentHomeBinding; import com.casic.dcms.model.HomePageBean; import com.casic.dcms.model.UserBean; @@ -33,6 +32,8 @@ import com.casic.dcms.view.UrgentCaseActivity; import com.casic.dcms.view.VerifyCaseActivity; import com.casic.dcms.vm.HomePageViewModel; +import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; +import com.pengxh.androidx.lite.adapter.ViewHolder; import com.pengxh.androidx.lite.base.AndroidxBaseFragment; import com.pengxh.androidx.lite.hub.LongHub; import com.pengxh.androidx.lite.utils.SaveKeyValues; @@ -95,13 +96,18 @@ @Override public void onChanged(HomePageBean resultBean) { if (resultBean.getCode() == 200) { - HomeRecycleAdapter adapter = new HomeRecycleAdapter(requireContext(), resultBean.getData().getMenus()); - viewBinding.homeRecyclerView.setAdapter(adapter); - adapter.setOnGridItemClickListener(new HomeRecycleAdapter.OnGridItemClickListener() { + NormalRecyclerAdapter recyclerAdapter = new NormalRecyclerAdapter(R.layout.item_home_recycleview, resultBean.getData().getMenus()) { @Override - public void onClick(String itemName) { + public void convertView(ViewHolder viewHolder, int position, HomePageBean.DataBean.MenusBean item) { + viewHolder.setImageResource(R.id.imageView, StringHelper.obtainDrawableIcon(item.getName())).setText(R.id.textView, item.getName()); + } + }; + viewBinding.homeRecyclerView.setAdapter(recyclerAdapter); + recyclerAdapter.setOnItemClickedListener(new NormalRecyclerAdapter.OnItemClickedListener() { + @Override + public void onItemClicked(int position, HomePageBean.DataBean.MenusBean menusBean) { Intent intent = new Intent(); - switch (itemName) { + switch (menusBean.getName()) { case "案卷上报": intent.setClass(requireContext(), CommonCaseUploadActivity.class); break; diff --git a/app/src/main/java/com/casic/dcms/model/DataAnalysisGridModel.java b/app/src/main/java/com/casic/dcms/model/DataAnalysisGridModel.java new file mode 100644 index 0000000..3b20a2f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/model/DataAnalysisGridModel.java @@ -0,0 +1,22 @@ +package com.casic.dcms.model; + +public class DataAnalysisGridModel { + private int itemIcon; + private String itemTitle; + + public int getItemIcon() { + return itemIcon; + } + + public void setItemIcon(int itemIcon) { + this.itemIcon = itemIcon; + } + + public String getItemTitle() { + return itemTitle; + } + + public void setItemTitle(String itemTitle) { + this.itemTitle = itemTitle; + } +} diff --git a/app/src/main/java/com/casic/dcms/utils/DataBaseManager.java b/app/src/main/java/com/casic/dcms/utils/DataBaseManager.java index 0a39218..57f0df8 100644 --- a/app/src/main/java/com/casic/dcms/utils/DataBaseManager.java +++ b/app/src/main/java/com/casic/dcms/utils/DataBaseManager.java @@ -127,7 +127,7 @@ toiletListBeanDao.deleteAll(); } - public void saveToiletList(ToiletListModel.DataBean dataBean) { + public void saveToilets(ToiletListModel.DataBean dataBean) { ToiletListBean bean = new ToiletListBean(); bean.setArea(dataBean.getArea()); bean.setCode(dataBean.getCode()); @@ -149,7 +149,7 @@ toiletListBeanDao.save(bean); } - public List getToiletList() { + public List getToilets() { List result = new ArrayList<>(); List listBeans = toiletListBeanDao.loadAll(); for (ToiletListBean toiletBean : listBeans) { diff --git a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java b/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java index 7cb867d..fb0c033 100644 --- a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java +++ b/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java @@ -1,25 +1,12 @@ package com.casic.dcms.utils; -import android.util.Log; - import com.casic.dcms.utils.callback.IHttpRequestListener; +import com.pengxh.androidx.lite.callback.OnHttpRequestListener; +import com.pengxh.androidx.lite.hub.RequestHub; import com.pengxh.androidx.lite.utils.SaveKeyValues; -import org.jetbrains.annotations.NotNull; - -import java.io.IOException; -import java.util.concurrent.TimeUnit; - -import okhttp3.OkHttpClient; import okhttp3.Request; import okhttp3.Response; -import okhttp3.ResponseBody; -import okhttp3.logging.HttpLoggingInterceptor; -import rx.Emitter; -import rx.Observable; -import rx.Observer; -import rx.android.schedulers.AndroidSchedulers; -import rx.schedulers.Schedulers; public class HttpRequestHelper { private static final String TAG = "HttpRequestHelper"; @@ -27,93 +14,39 @@ public static void doRequest(String function, String requestValue, IHttpRequestListener listener) { String ip = (String) SaveKeyValues.getValue(LocaleConstant.IP_KEY, "http://111.198.10.15:11409"); // String ip = (String) SaveKeyValues.getValue(Constant.IP_KEY, "http://223.82.47.232:11401"); - Observable.create(emitter -> { - HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor(new HttpLoggingInterceptor.Logger() { - @Override - public void log(@NotNull String message) { - Log.d(TAG, "log: " + message); - } - }); - interceptor.setLevel(HttpLoggingInterceptor.Level.BODY); - - OkHttpClient client = new OkHttpClient.Builder() - .addInterceptor(interceptor) - .readTimeout(LocaleConstant.HTTP_TIMEOUT, TimeUnit.SECONDS) - .connectTimeout(LocaleConstant.HTTP_TIMEOUT, TimeUnit.SECONDS) - .writeTimeout(LocaleConstant.HTTP_TIMEOUT, TimeUnit.SECONDS) - .build(); - - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(ip + function + requestValue) - .get() - .build();//创建Request 对象 - try { - Response response = client.newCall(request).execute(); - emitter.onNext(response.body()); - } catch (IOException e) { - emitter.onError(e); - } - }, Emitter.BackpressureMode.BUFFER).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + Request request = new Request.Builder() + .addHeader("token", AuthenticationHelper.getToken()) + .url(ip + function + requestValue) + .get() + .build();//创建Request 对象 + RequestHub.doRequest(request, new OnHttpRequestListener() { @Override - public void onCompleted() { - + public void onSuccess(Response response) { + listener.onSuccess(response.body()); } @Override - public void onError(Throwable e) { - listener.onFailure(e); - } - - @Override - public void onNext(ResponseBody responseBody) { - listener.onSuccess(responseBody); + public void onFailure(Throwable throwable) { + listener.onFailure(throwable); } }); } public static void doRequest(String url, IHttpRequestListener listener) { - Observable.create(emitter -> { - HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor(new HttpLoggingInterceptor.Logger() { - @Override - public void log(@NotNull String message) { - Log.d(TAG, "log: " + message); - } - }); - interceptor.setLevel(HttpLoggingInterceptor.Level.BODY); - - OkHttpClient client = new OkHttpClient.Builder() - .addInterceptor(interceptor) - .readTimeout(LocaleConstant.HTTP_TIMEOUT, TimeUnit.SECONDS) - .connectTimeout(LocaleConstant.HTTP_TIMEOUT, TimeUnit.SECONDS) - .writeTimeout(LocaleConstant.HTTP_TIMEOUT, TimeUnit.SECONDS) - .build(); - - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(url) - .get() - .build();//创建Request 对象 - try { - Response response = client.newCall(request).execute(); - emitter.onNext(response.body()); - } catch (IOException e) { - emitter.onError(e); - } - }, Emitter.BackpressureMode.BUFFER).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + Request request = new Request.Builder() + .addHeader("token", AuthenticationHelper.getToken()) + .url(url) + .get() + .build();//创建Request 对象 + RequestHub.doRequest(request, new OnHttpRequestListener() { @Override - public void onCompleted() { - + public void onSuccess(Response response) { + listener.onSuccess(response.body()); } @Override - public void onError(Throwable e) { - listener.onFailure(e); - } - - @Override - public void onNext(ResponseBody responseBody) { - listener.onSuccess(responseBody); + public void onFailure(Throwable throwable) { + listener.onFailure(throwable); } }); } diff --git a/app/src/main/java/com/casic/dcms/utils/StringHelper.java b/app/src/main/java/com/casic/dcms/utils/StringHelper.java index c625bb4..1a097cc 100644 --- a/app/src/main/java/com/casic/dcms/utils/StringHelper.java +++ b/app/src/main/java/com/casic/dcms/utils/StringHelper.java @@ -264,8 +264,20 @@ return R.drawable.ic_dtck; case "公厕保洁": return R.drawable.ic_toilet; + case "三包处置": + return R.drawable.ic_sanbao; + case "商铺变更": + return R.drawable.ic_shangpu; + case "部门处置": + return R.drawable.ic_dept; + case "路桥养护": + return R.drawable.ic_bridge; + case "管网管理": + return R.drawable.ic_pipe; + case "路灯管理": + return R.drawable.ic_streetlight; default: - return 0; + return R.drawable.ic_default_icon; } } } diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java index b1a3c67..6d3574d 100644 --- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java +++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java @@ -39,9 +39,7 @@ * token添加到Header */ @GET("/user/info") - Observable getUserData( - @Header("token") String token - ); + Observable getUserData(@Header("token") String token); /** * 获取地图地址 @@ -49,9 +47,7 @@ * token添加到Header */ @GET("/map/server/listPage") - Observable getMapConfig( - @Header("token") String token - ); + Observable getMapConfig(@Header("token") String token); /** * 大类列表查询 @@ -132,9 +128,7 @@ * 退出登录 */ @GET("/user/logout") - Observable loginOut( - @Header("token") String token - ); + Observable loginOut(@Header("token") String token); /** * 修改密码 @@ -152,10 +146,7 @@ * 获取部门树 */ @GET("/dept/tree") - Observable getDeptTree( - @Header("token") String token, - @Query("pid") String pid - ); + Observable getDeptTree(@Header("token") String token, @Query("pid") String pid); /** * 获取通讯录 @@ -193,9 +184,7 @@ * 获取案件状态 */ @GET("/dict/code/caseState") - Observable getCaseStatus( - @Header("token") String token - ); + Observable getCaseStatus(@Header("token") String token); /** * 获取案件列表 @@ -223,10 +212,7 @@ * http://111.198.10.15:11409/case/detail/1372735305680994306 */ @GET("/case/detail/{id}") - Observable obtainCaseDetail( - @Header("token") String token, - @Path("id") String id - ); + Observable obtainCaseDetail(@Header("token") String token, @Path("id") String id); /** * 获取案件流转记录 @@ -241,9 +227,7 @@ * 更新版本 */ @POST("/app/checkVersion") - Observable updateVersion( - @Header("token") String token - ); + Observable updateVersion(@Header("token") String token); /** * 获取核实待办案卷 @@ -407,9 +391,7 @@ * 获取常见语句 */ @GET("/dict/code/commonApproval") - Observable obtainCommonSentence( - @Header("token") String token - ); + Observable obtainCommonSentence(@Header("token") String token); /** * 案卷处理 @@ -532,9 +514,7 @@ * http://111.198.10.15:11409/sanitation/toilet/list */ @GET("/sanitation/toilet/list") - Observable getToiletList( - @Header("token") String token - ); + Observable getToilets(@Header("token") String token); /** * 公厕打扫签到 @@ -789,9 +769,7 @@ * http://111.198.10.15:11409/lampCr/overview/lampList */ @GET("/lightCr/overview/lampList") - Observable obtainLightList( - @Header("token") String token - ); + Observable obtainLightList(@Header("token") String token); /** * 路灯详情 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 5c31b0a..8876060 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 @@ -411,8 +411,8 @@ /** * 公厕列表 */ - public static Observable getToiletList() { - return api.getToiletList(AuthenticationHelper.getToken()); + public static Observable getToilets() { + return api.getToilets(AuthenticationHelper.getToken()); } /** 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 e709752..d7bf511 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java @@ -1,25 +1,23 @@ package com.casic.dcms.view; import android.content.Context; -import android.graphics.Rect; +import android.graphics.Color; +import android.view.View; -import androidx.annotation.Nullable; import androidx.core.content.ContextCompat; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; -import com.casic.dcms.adapter.ProcessLineAdapter; import com.casic.dcms.databinding.ActivityCaseProcessBinding; import com.casic.dcms.model.CaseProcessBean; -import com.casic.dcms.utils.TimeLineDecoration; -import com.casic.dcms.utils.TimeLineDecoration.TimeLineAdapter; import com.casic.dcms.vm.CommonDataViewModel; import com.gyf.immersionbar.ImmersionBar; +import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; +import com.pengxh.androidx.lite.adapter.ViewHolder; import com.pengxh.androidx.lite.base.AndroidxBaseActivity; import com.pengxh.androidx.lite.utils.Constant; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; -import com.qmuiteam.qmui.util.QMUIDisplayHelper; import java.util.ArrayList; import java.util.List; @@ -62,36 +60,33 @@ for (int i = 0; i < size; i++) { dataBeans.add(i, resultBean.getData().get(size - 1 - i)); } - ProcessLineAdapter adapter = new ProcessLineAdapter(context, dataBeans); - TimeLineDecoration decoration = new TimeLineDecoration(context) - .setLineColor(R.color.lightGray) - .setLineWidth(1f) - .setLeftDistance(QMUIDisplayHelper.dp2px(context, 9)) - .setMarkerColor(R.color.lightGray) - .setMarkerRadius(10f) - .setBeginMarkerRadius(10f) - .setBeginMarker(R.drawable.begin_marker) - .setCallback(new TimeLineAdapter() { - @Nullable - @Override - public Rect getRect(int position) { - return new Rect(QMUIDisplayHelper.dp2px(context, 30), - QMUIDisplayHelper.dp2px(context, 10), 0, 0); - } + NormalRecyclerAdapter recyclerAdapter = new NormalRecyclerAdapter(R.layout.item_case_process, dataBeans) { + @Override + public void convertView(ViewHolder viewHolder, int position, CaseProcessBean.DataBean item) { + if (position == 0) { + //最后一项 + viewHolder.setBackgroundColor(R.id.dotView, Color.BLACK); + viewHolder.setTextColor(R.id.operatorNameView, Color.BLACK) + .setTextColor(R.id.statusView, Color.BLACK) + .setTextColor(R.id.operateTimeView, Color.BLACK) + .setTextColor(R.id.remarkView, Color.BLACK); - @Override - public int getTimeLineType(int position) { - if (position == 0) { - return TimeLineDecoration.BEGIN; - } else if (position == adapter.getItemCount() - 1) { - return TimeLineDecoration.END_FULL; - } else { - return TimeLineDecoration.NORMAL; - } - } - }); - viewBinding.processRecyclerView.addItemDecoration(decoration); - viewBinding.processRecyclerView.setAdapter(adapter); + viewHolder.setVisibility(R.id.topLineView, View.INVISIBLE); + viewHolder.setImageResource(R.id.tagImageView, R.drawable.ic_dot_red); + } else if (position == size - 1) { + viewHolder.setVisibility(R.id.bottomLineView, View.INVISIBLE); + viewHolder.setImageResource(R.id.tagImageView, R.drawable.ic_dot_gray); + } else { + viewHolder.setImageResource(R.id.tagImageView, R.drawable.ic_dot); + } + + viewHolder.setText(R.id.statusView, item.getOperationTypeName()) + .setText(R.id.operatorNameView, item.getUserName()) + .setText(R.id.remarkView, item.getRemarks()) + .setText(R.id.operateTimeView, item.getTime()); + } + }; + viewBinding.processRecyclerView.setAdapter(recyclerAdapter); } } }); 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 6c8b259..0a65da1 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java @@ -10,12 +10,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; -import com.casic.dcms.adapter.CaseSearchResultAdapter; import com.casic.dcms.databinding.ActivityCaseListBinding; import com.casic.dcms.model.CaseSearchResultBean; import com.casic.dcms.utils.DialogHelper; import com.casic.dcms.vm.CaseViewModel; import com.gyf.immersionbar.ImmersionBar; +import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; +import com.pengxh.androidx.lite.adapter.ViewHolder; import com.pengxh.androidx.lite.base.AndroidxBaseActivity; import com.pengxh.androidx.lite.hub.ContextHub; import com.pengxh.androidx.lite.hub.StringHub; @@ -34,7 +35,7 @@ private final Context context = this; private WeakReferenceHandler weakReferenceHandler; private CaseViewModel caseViewModel; - private CaseSearchResultAdapter adapter; + private NormalRecyclerAdapter adapter; private String typeCode; private String typeDetailCode; private String caseState; @@ -157,16 +158,29 @@ }); } else { viewBinding.emptyView.hide(); - adapter = new CaseSearchResultAdapter(context, dataBeans); - viewBinding.caseRecyclerView.setAdapter(adapter); - adapter.setOnItemClickListener(new CaseSearchResultAdapter.OnItemClickListener() { + adapter = new NormalRecyclerAdapter(R.layout.item_case_rv, dataBeans) { + @Override - public void onClick(int position) { - ContextHub.navigatePageTo( - context, - CaseDetailActivity.class, - dataBeans.get(position).getId() - ); + public void convertView(ViewHolder viewHolder, int position, CaseSearchResultBean.DataDTO.RowsDTO item) { + //核实图片 +// String fileIdVerify = rowsBean.getFileIdVerify(); +// if (!TextUtils.isEmpty(fileIdVerify)) { +// String[] split = fileIdVerify.split(","); +// String firstImage = split[0]; +// if (firstImage.endsWith(".jpg") || firstImage.contains(".jpeg") || firstImage.contains(".png")) { +// Glide.with(context).load(StringHelper.appendCompleteURL(firstImage)).into(caseImageView); +// } +// } + viewHolder.setText(R.id.caseTitleView, StringHub.filterSpaceOrEnter(item.getDescription())) + .setText(R.id.casePlaceView, "发生地点:" + StringHub.filterSpaceOrEnter(item.getFieldintro())) + .setText(R.id.caseTimeView, "上报时间:" + item.getReportTime()); + } + }; + viewBinding.caseRecyclerView.setAdapter(adapter); + adapter.setOnItemClickedListener(new NormalRecyclerAdapter.OnItemClickedListener() { + @Override + public void onItemClicked(int position, CaseSearchResultBean.DataDTO.RowsDTO rowsDTO) { + ContextHub.navigatePageTo(context, CaseDetailActivity.class, rowsDTO.getId()); } }); } diff --git a/app/src/main/java/com/casic/dcms/view/DataAnalysisActivity.java b/app/src/main/java/com/casic/dcms/view/DataAnalysisActivity.java index c3bff07..29d576b 100644 --- a/app/src/main/java/com/casic/dcms/view/DataAnalysisActivity.java +++ b/app/src/main/java/com/casic/dcms/view/DataAnalysisActivity.java @@ -6,13 +6,18 @@ import androidx.core.content.ContextCompat; import com.casic.dcms.R; -import com.casic.dcms.adapter.AnalysisRecycleAdapter; import com.casic.dcms.databinding.ActivityCaseAnalysisBinding; +import com.casic.dcms.model.DataAnalysisGridModel; +import com.casic.dcms.utils.LocaleConstant; import com.gyf.immersionbar.ImmersionBar; +import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; +import com.pengxh.androidx.lite.adapter.ViewHolder; import com.pengxh.androidx.lite.base.AndroidxBaseActivity; import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import java.util.ArrayList; + /** * @author : Pengxh * @time : 2021/4/15 16:03 @@ -38,11 +43,25 @@ @Override protected void initData() { - AnalysisRecycleAdapter adapter = new AnalysisRecycleAdapter(this); - viewBinding.analysisRecyclerView.setAdapter(adapter); - adapter.setOnGridItemClickListener(new AnalysisRecycleAdapter.OnGridItemClickListener() { + ArrayList models = new ArrayList<>(); + for (int i = 0; i < 6; i++) { + DataAnalysisGridModel model = new DataAnalysisGridModel(); + model.setItemIcon(LocaleConstant.ANALYSIS_ICONS.get(i)); + model.setItemTitle(LocaleConstant.ANALYSIS_ITEMS.get(i)); + models.add(model); + } + + NormalRecyclerAdapter adapter = new NormalRecyclerAdapter(R.layout.item_home_recycleview, models) { + @Override - public void onClick(int position) { + public void convertView(ViewHolder viewHolder, int position, DataAnalysisGridModel item) { + viewHolder.setImageResource(R.id.imageView, item.getItemIcon()).setText(R.id.textView, item.getItemTitle()); + } + }; + viewBinding.analysisRecyclerView.setAdapter(adapter); + adapter.setOnItemClickedListener(new NormalRecyclerAdapter.OnItemClickedListener() { + @Override + public void onItemClicked(int position, DataAnalysisGridModel dataAnalysisGridModel) { Intent intent = new Intent(); switch (position) { case 0: diff --git a/app/src/main/java/com/casic/dcms/view/MainActivity.java b/app/src/main/java/com/casic/dcms/view/MainActivity.java index cf8662f..376e943 100644 --- a/app/src/main/java/com/casic/dcms/view/MainActivity.java +++ b/app/src/main/java/com/casic/dcms/view/MainActivity.java @@ -3,6 +3,7 @@ import android.content.Intent; import android.os.Build; import android.os.Handler; +import android.os.Message; import android.view.KeyEvent; import android.view.MenuItem; import android.view.View; @@ -40,7 +41,6 @@ import com.google.android.material.navigation.NavigationBarView; import com.google.gson.Gson; import com.gyf.immersionbar.ImmersionBar; -import com.igexin.sdk.PushManager; import com.pengxh.androidx.lite.base.AndroidxBaseActivity; import com.pengxh.androidx.lite.hub.ContextHub; import com.pengxh.androidx.lite.hub.StringHub; @@ -64,8 +64,6 @@ private String imei = ""; private UploadViewModel positionViewModel; private PushViewModel pushViewModel; - private MapConfigViewModel mapConfigViewModel; - private ToiletViewModel toiletViewModel; private long clickTime = 0; @Override @@ -82,6 +80,26 @@ } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == LocaleConstant.PUSH_REGISTER) { + pushViewModel.registerPush((String) msg.obj); + } else if (msg.what == LocaleConstant.MESSAGE_NUMBER) { + updateMessageNumber(); + } else if (msg.what == LocaleConstant.UPDATE_LOCATION) { + AMapLocation aMapLocation = (AMapLocation) msg.obj; + try { + double[] gcjToWgs = LocationHelper.gcjToWgs(aMapLocation.getLongitude(), aMapLocation.getLatitude()); + positionViewModel.uploadPosition(imei, String.valueOf(gcjToWgs[1]), String.valueOf(gcjToWgs[0])); + } catch (NullPointerException e) { + e.printStackTrace(); + } + } + return true; + } + }; + @Override protected void initData() { //配置页面 @@ -89,29 +107,14 @@ pageViews.add(new PhonePageFragment()); pageViews.add(new NoticePageFragment()); pageViews.add(new MinePageFragment()); + MainPageAdapter mainPageAdapter = new MainPageAdapter(getSupportFragmentManager(), pageViews); + viewBinding.mainViewPager.setOffscreenPageLimit(pageViews.size()); + viewBinding.mainViewPager.setAdapter(mainPageAdapter); - //个推初始化 - PushManager.getInstance().initialize(this); weakReferenceHandler = new WeakReferenceHandler(callback); dataBaseManager = DataBaseManager.getInstance(); - positionViewModel = new ViewModelProvider(this).get(UploadViewModel.class); - pushViewModel = new ViewModelProvider(this).get(PushViewModel.class); - mapConfigViewModel = new ViewModelProvider(this).get(MapConfigViewModel.class); - toiletViewModel = new ViewModelProvider(this).get(ToiletViewModel.class); - - //获取配置项 - obtainProjectConfig(); - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { - startForegroundService(new Intent(this, UpdateLocationService.class)); - } else { - startService(new Intent(this, UpdateLocationService.class)); - } - } - - private void obtainProjectConfig() { - imei = ContextHub.getSimCardSerialNumber(this); - //地图配置项 + MapConfigViewModel mapConfigViewModel = new ViewModelProvider(this).get(MapConfigViewModel.class); mapConfigViewModel.obtainMapConfig(); mapConfigViewModel.mapConfigModel.observe(this, new Observer() { @Override @@ -125,65 +128,34 @@ } }); - //公厕数据 - toiletViewModel.obtainToiletList(); + ToiletViewModel toiletViewModel = new ViewModelProvider(this).get(ToiletViewModel.class); + toiletViewModel.getToilets(); toiletViewModel.toiletListModel.observe(this, new Observer() { @Override public void onChanged(ToiletListModel resultBean) { if (resultBean.getCode() == 200) { dataBaseManager.deleteAllToiletList(); for (ToiletListModel.DataBean dataBean : resultBean.getData()) { - dataBaseManager.saveToiletList(dataBean); + dataBaseManager.saveToilets(dataBean); } } } }); - //公厕图层ID - HttpRequestHelper.doRequest(LocaleConstant.LAYER_CONFIG, new IHttpRequestListener() { - @Override - public void onSuccess(ResponseBody resultBean) { - try { - String resultStr = resultBean.string(); - List partsLayer = gson.fromJson(resultStr, LayerConfigBean.class).getPartsLayer(); - List childrenBeans = partsLayer.get(2).getChildren(); - StringHelper.saveToiletLayerId(String.valueOf(childrenBeans.get(0).getLayer())); - } catch (IOException e) { - e.printStackTrace(); - } - } + positionViewModel = new ViewModelProvider(this).get(UploadViewModel.class); + pushViewModel = new ViewModelProvider(this).get(PushViewModel.class); - @Override - public void onFailure(Throwable throwable) { - - } - }); - - //桥梁数据 TODO-待调试 - HttpRequestHelper.doRequest(LocaleConstant.PROJECT_CONFIG, new IHttpRequestListener() { - @Override - public void onSuccess(ResponseBody resultBean) { - try { - String resultStr = resultBean.string(); - List bridges = gson.fromJson(resultStr, BridgeConfigBean.class).getBridges(); - StringHelper.saveBridgeList(gson.toJson(bridges)); - } catch (IOException e) { - e.printStackTrace(); - } - } - - @Override - public void onFailure(Throwable throwable) { - - } - }); + //获取配置项 + obtainProjectConfig(); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { + startForegroundService(new Intent(this, UpdateLocationService.class)); + } else { + startService(new Intent(this, UpdateLocationService.class)); + } } @Override protected void initEvent() { - MainPageAdapter mainPageAdapter = new MainPageAdapter(getSupportFragmentManager(), pageViews); - viewBinding.mainViewPager.setOffscreenPageLimit(pageViews.size()); - viewBinding.mainViewPager.setAdapter(mainPageAdapter); viewBinding.bottomNavigation.setOnItemSelectedListener(new NavigationBarView.OnItemSelectedListener() { @Override public boolean onNavigationItemSelected(@NonNull MenuItem item) { @@ -228,27 +200,53 @@ }); } - private final Handler.Callback callback = msg -> { - if (msg.what == LocaleConstant.PUSH_REGISTER) { - pushViewModel.registerPush((String) msg.obj); - } else if (msg.what == LocaleConstant.MESSAGE_NUMBER) { - updateMessageNumber(); - } else if (msg.what == LocaleConstant.UPDATE_LOCATION) { - AMapLocation aMapLocation = (AMapLocation) msg.obj; - try { - double[] gcjToWgs = LocationHelper.gcjToWgs(aMapLocation.getLongitude(), aMapLocation.getLatitude()); - positionViewModel.uploadPosition(imei, String.valueOf(gcjToWgs[1]), String.valueOf(gcjToWgs[0])); - } catch (NullPointerException e) { - e.printStackTrace(); + private void obtainProjectConfig() { + imei = ContextHub.getSimCardSerialNumber(this); + + //公厕图层ID + HttpRequestHelper.doRequest(LocaleConstant.LAYER_CONFIG, new IHttpRequestListener() { + @Override + public void onSuccess(ResponseBody resultBean) { + try { + String resultStr = resultBean.string(); + List partsLayer = gson.fromJson(resultStr, LayerConfigBean.class).getPartsLayer(); + List childrenBeans = partsLayer.get(2).getChildren(); + StringHelper.saveToiletLayerId(String.valueOf(childrenBeans.get(0).getLayer())); + } catch (IOException e) { + e.printStackTrace(); + } } - } - return true; - }; + + @Override + public void onFailure(Throwable throwable) { + + } + }); + + //桥梁数据 TODO-待调试 + HttpRequestHelper.doRequest(LocaleConstant.PROJECT_CONFIG, new IHttpRequestListener() { + @Override + public void onSuccess(ResponseBody resultBean) { + try { + String resultStr = resultBean.string(); + List bridges = gson.fromJson(resultStr, BridgeConfigBean.class).getBridges(); + StringHelper.saveBridgeList(gson.toJson(bridges)); + } catch (IOException e) { + e.printStackTrace(); + } + } + + @Override + public void onFailure(Throwable throwable) { + + } + }); + } @Override protected void onResume() { - updateMessageNumber(); super.onResume(); + updateMessageNumber(); } private void updateMessageNumber() { diff --git a/app/src/main/java/com/casic/dcms/view/PublicToiletActivity.java b/app/src/main/java/com/casic/dcms/view/PublicToiletActivity.java index d3e3ced..0a75439 100644 --- a/app/src/main/java/com/casic/dcms/view/PublicToiletActivity.java +++ b/app/src/main/java/com/casic/dcms/view/PublicToiletActivity.java @@ -153,7 +153,7 @@ viewBinding.obtainToiletIdLayout.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - List toiletBeanList = DataBaseManager.getInstance().getToiletList(); + List toiletBeanList = DataBaseManager.getInstance().getToilets(); if (toiletBeanList.size() == 0) { StringHub.show(context, "获取公厕数据失败,请联系管理员"); return; diff --git a/app/src/main/java/com/casic/dcms/vm/ToiletViewModel.java b/app/src/main/java/com/casic/dcms/vm/ToiletViewModel.java index 313e3d1..05ab157 100644 --- a/app/src/main/java/com/casic/dcms/vm/ToiletViewModel.java +++ b/app/src/main/java/com/casic/dcms/vm/ToiletViewModel.java @@ -25,8 +25,8 @@ public MutableLiveData cleanToiletModel = new MutableLiveData<>(); public MutableLiveData cleanRecordModel = new MutableLiveData<>(); - public void obtainToiletList() { - Observable observable = RetrofitServiceManager.getToiletList(); + public void getToilets() { + Observable observable = RetrofitServiceManager.getToilets(); ObserverSubscriber.addSubscribe(observable, new OnObserverCallback() { @Override public void onCompleted() { diff --git a/app/src/main/res/drawable/ic_dot.xml b/app/src/main/res/drawable/ic_dot.xml new file mode 100644 index 0000000..ee801ca --- /dev/null +++ b/app/src/main/res/drawable/ic_dot.xml @@ -0,0 +1,13 @@ + + + + diff --git a/app/src/main/res/drawable/ic_dot_gray.xml b/app/src/main/res/drawable/ic_dot_gray.xml new file mode 100644 index 0000000..5a1a24a --- /dev/null +++ b/app/src/main/res/drawable/ic_dot_gray.xml @@ -0,0 +1,12 @@ + + + + diff --git a/app/src/main/res/drawable/ic_dot_red.xml b/app/src/main/res/drawable/ic_dot_red.xml new file mode 100644 index 0000000..cb190e5 --- /dev/null +++ b/app/src/main/res/drawable/ic_dot_red.xml @@ -0,0 +1,12 @@ + + + + diff --git a/app/src/main/res/layout/item_case_process.xml b/app/src/main/res/layout/item_case_process.xml index 4d22de6..3ca1d89 100644 --- a/app/src/main/res/layout/item_case_process.xml +++ b/app/src/main/res/layout/item_case_process.xml @@ -1,90 +1,92 @@ - - - - - - - - - - - - - - - - - - - - - - - - - + android:layout_height="@dimen/dp_80" + android:gravity="center_vertical" + android:orientation="horizontal"> + + + + + + + + + + android:layout_weight="1" + android:background="@color/white" + android:orientation="vertical"> - - - + android:gravity="center_vertical" + android:orientation="horizontal"> + + + + + + + + + + + - \ No newline at end of file + diff --git a/.idea/misc.xml b/.idea/misc.xml index 12058ca..4f8b20d 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -28,6 +28,9 @@ + + + @@ -39,6 +42,7 @@ + @@ -81,7 +85,8 @@ - + + diff --git a/app/src/main/java/com/casic/dcms/adapter/AnalysisRecycleAdapter.java b/app/src/main/java/com/casic/dcms/adapter/AnalysisRecycleAdapter.java deleted file mode 100644 index 913bde1..0000000 --- a/app/src/main/java/com/casic/dcms/adapter/AnalysisRecycleAdapter.java +++ /dev/null @@ -1,71 +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.utils.LocaleConstant; - -public class AnalysisRecycleAdapter extends RecyclerView.Adapter { - - private final LayoutInflater layoutInflater; - - public AnalysisRecycleAdapter(Context context) { - this.layoutInflater = LayoutInflater.from(context); - } - - @NonNull - @Override - public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - return new ItemViewHolder(layoutInflater.inflate(R.layout.item_home_recycleview, parent, false)); - } - - @Override - public void onBindViewHolder(@NonNull ItemViewHolder holder, @SuppressLint("RecyclerView") int position) { - holder.imageView.setBackgroundResource(LocaleConstant.ANALYSIS_ICONS.get(position)); - holder.textView.setText(LocaleConstant.ANALYSIS_ITEMS.get(position)); - if (clickListener != null) { - holder.itemView.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - clickListener.onClick(position); - } - }); - } - } - - @Override - public int getItemCount() { - return LocaleConstant.ANALYSIS_ITEMS.size(); - } - - private OnGridItemClickListener clickListener; - - public interface OnGridItemClickListener { - void onClick(int position); - } - - public void setOnGridItemClickListener(OnGridItemClickListener onGridItemClickListener) { - this.clickListener = onGridItemClickListener; - } - - static class ItemViewHolder extends RecyclerView.ViewHolder { - - private final ImageView imageView; - private final TextView textView; - - ItemViewHolder(@NonNull View itemView) { - super(itemView); - imageView = itemView.findViewById(R.id.imageView); - textView = itemView.findViewById(R.id.textView); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/adapter/CaseSearchResultAdapter.java b/app/src/main/java/com/casic/dcms/adapter/CaseSearchResultAdapter.java deleted file mode 100644 index 9449f44..0000000 --- a/app/src/main/java/com/casic/dcms/adapter/CaseSearchResultAdapter.java +++ /dev/null @@ -1,94 +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.TextView; - -import androidx.annotation.NonNull; -import androidx.recyclerview.widget.RecyclerView; - -import com.casic.dcms.R; -import com.casic.dcms.model.CaseSearchResultBean; -import com.pengxh.androidx.lite.hub.StringHub; -import com.qmuiteam.qmui.widget.QMUIRadiusImageView; - -import java.util.List; - -public class CaseSearchResultAdapter extends RecyclerView.Adapter { - - private final List dataRows; - private final LayoutInflater layoutInflater; - - public CaseSearchResultAdapter(Context context, List dataRows) { - this.dataRows = dataRows; - this.layoutInflater = LayoutInflater.from(context); - } - - @NonNull - @Override - public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - return new ItemViewHolder(layoutInflater.inflate(R.layout.item_case_rv, parent, false)); - } - - @Override - public void onBindViewHolder(@NonNull ItemViewHolder holder, @SuppressLint("RecyclerView") int position) { - holder.bindView(dataRows.get(position)); - if (clickListener != null) { - holder.itemView.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - clickListener.onClick(position); - } - }); - } - } - - @Override - public int getItemCount() { - return dataRows.size(); - } - - private OnItemClickListener clickListener; - - public interface OnItemClickListener { - void onClick(int position); - } - - public void setOnItemClickListener(OnItemClickListener onItemClickListener) { - this.clickListener = onItemClickListener; - } - - class ItemViewHolder extends RecyclerView.ViewHolder { - - private final QMUIRadiusImageView caseImageView; - private final TextView caseTitleView; - private final TextView casePlaceView; - private final TextView caseTimeView; - - ItemViewHolder(@NonNull View itemView) { - super(itemView); - caseImageView = itemView.findViewById(R.id.caseImageView); - caseTitleView = itemView.findViewById(R.id.caseTitleView); - casePlaceView = itemView.findViewById(R.id.casePlaceView); - caseTimeView = itemView.findViewById(R.id.caseTimeView); - } - - void bindView(CaseSearchResultBean.DataDTO.RowsDTO rowsBean) { - //核实图片 -// String fileIdVerify = rowsBean.getFileIdVerify(); -// if (!TextUtils.isEmpty(fileIdVerify)) { -// String[] split = fileIdVerify.split(","); -// String firstImage = split[0]; -// if (firstImage.endsWith(".jpg") || firstImage.contains(".jpeg") || firstImage.contains(".png")) { -// Glide.with(context).load(StringHelper.appendCompleteURL(firstImage)).into(caseImageView); -// } -// } - caseTitleView.setText(StringHub.filterSpaceOrEnter(rowsBean.getDescription())); - casePlaceView.setText("发生地点:" + StringHub.filterSpaceOrEnter(rowsBean.getFieldintro())); - caseTimeView.setText("上报时间:" + rowsBean.getReportTime()); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/adapter/HomeRecycleAdapter.java b/app/src/main/java/com/casic/dcms/adapter/HomeRecycleAdapter.java deleted file mode 100644 index e6eafa6..0000000 --- a/app/src/main/java/com/casic/dcms/adapter/HomeRecycleAdapter.java +++ /dev/null @@ -1,80 +0,0 @@ -package com.casic.dcms.adapter; - -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.HomePageBean; -import com.casic.dcms.utils.StringHelper; - -import java.util.List; - -public class HomeRecycleAdapter extends RecyclerView.Adapter { - - private final List menuData; - private final LayoutInflater layoutInflater; - - public HomeRecycleAdapter(Context context, List menus) { - this.menuData = menus; - this.layoutInflater = LayoutInflater.from(context); - } - - @NonNull - @Override - public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - return new ItemViewHolder(layoutInflater.inflate(R.layout.item_home_recycleview, parent, false)); - } - - @Override - public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { - String name = menuData.get(position).getName(); - holder.bindView(name); - if (clickListener != null) { - holder.itemView.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - clickListener.onClick(name); - } - }); - } - } - - @Override - public int getItemCount() { - return menuData.size(); - } - - private OnGridItemClickListener clickListener; - - public interface OnGridItemClickListener { - void onClick(String itemName); - } - - public void setOnGridItemClickListener(OnGridItemClickListener onGridItemClickListener) { - this.clickListener = onGridItemClickListener; - } - - static class ItemViewHolder extends RecyclerView.ViewHolder { - - private final ImageView imageView; - private final TextView textView; - - ItemViewHolder(@NonNull View itemView) { - super(itemView); - imageView = itemView.findViewById(R.id.imageView); - textView = itemView.findViewById(R.id.textView); - } - - void bindView(String name) { - imageView.setBackgroundResource(StringHelper.obtainIcon(name)); - textView.setText(name); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/adapter/ProcessLineAdapter.java b/app/src/main/java/com/casic/dcms/adapter/ProcessLineAdapter.java deleted file mode 100644 index 42da4cf..0000000 --- a/app/src/main/java/com/casic/dcms/adapter/ProcessLineAdapter.java +++ /dev/null @@ -1,70 +0,0 @@ -package com.casic.dcms.adapter; - -import android.content.Context; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.TextView; - -import androidx.annotation.NonNull; -import androidx.recyclerview.widget.RecyclerView; - -import com.casic.dcms.R; -import com.casic.dcms.model.CaseProcessBean; - -import org.jetbrains.annotations.NotNull; - -import java.util.List; - -public class ProcessLineAdapter extends RecyclerView.Adapter { - private final List mProcessList; - private final LayoutInflater layoutInflater; - - public ProcessLineAdapter(Context context, List list) { - this.mProcessList = list; - this.layoutInflater = LayoutInflater.from(context); - } - - @NotNull - @Override - public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - return new ViewHolder(layoutInflater.inflate(R.layout.item_case_process, parent, false)); - } - - @Override - public void onBindViewHolder(ViewHolder holder, int position) { - CaseProcessBean.DataBean dataBean = mProcessList.get(position); - String typeName = dataBean.getOperationTypeName(); - holder.operationTypeName.setText(typeName); - holder.handlePersonView.setText(dataBean.getUserName()); - holder.handleTimeView.setText(dataBean.getTime()); - holder.handleResultView.setText(dataBean.getRemarks()); - } - - @Override - public int getItemViewType(int position) { - return super.getItemViewType(position); - } - - @Override - public int getItemCount() { - return mProcessList.size(); - } - - static class ViewHolder extends RecyclerView.ViewHolder { - private final TextView operationTypeName; - private final TextView handlePersonView; - private final TextView handleTimeView; - private final TextView handleResultView; - private final RecyclerView handlePicView; - - public ViewHolder(View view) { - super(view); - operationTypeName = view.findViewById(R.id.operationTypeName); - handlePersonView = view.findViewById(R.id.handlePersonView); - handleTimeView = view.findViewById(R.id.handleTimeView); - handleResultView = view.findViewById(R.id.handleResultView); - handlePicView = view.findViewById(R.id.handlePicView); - } - } -} \ No newline at end of file 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 3b7a194..6b6b72e 100644 --- a/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java @@ -7,7 +7,6 @@ import com.bumptech.glide.Glide; import com.casic.dcms.R; -import com.casic.dcms.adapter.HomeRecycleAdapter; import com.casic.dcms.databinding.FragmentHomeBinding; import com.casic.dcms.model.HomePageBean; import com.casic.dcms.model.UserBean; @@ -33,6 +32,8 @@ import com.casic.dcms.view.UrgentCaseActivity; import com.casic.dcms.view.VerifyCaseActivity; import com.casic.dcms.vm.HomePageViewModel; +import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; +import com.pengxh.androidx.lite.adapter.ViewHolder; import com.pengxh.androidx.lite.base.AndroidxBaseFragment; import com.pengxh.androidx.lite.hub.LongHub; import com.pengxh.androidx.lite.utils.SaveKeyValues; @@ -95,13 +96,18 @@ @Override public void onChanged(HomePageBean resultBean) { if (resultBean.getCode() == 200) { - HomeRecycleAdapter adapter = new HomeRecycleAdapter(requireContext(), resultBean.getData().getMenus()); - viewBinding.homeRecyclerView.setAdapter(adapter); - adapter.setOnGridItemClickListener(new HomeRecycleAdapter.OnGridItemClickListener() { + NormalRecyclerAdapter recyclerAdapter = new NormalRecyclerAdapter(R.layout.item_home_recycleview, resultBean.getData().getMenus()) { @Override - public void onClick(String itemName) { + public void convertView(ViewHolder viewHolder, int position, HomePageBean.DataBean.MenusBean item) { + viewHolder.setImageResource(R.id.imageView, StringHelper.obtainDrawableIcon(item.getName())).setText(R.id.textView, item.getName()); + } + }; + viewBinding.homeRecyclerView.setAdapter(recyclerAdapter); + recyclerAdapter.setOnItemClickedListener(new NormalRecyclerAdapter.OnItemClickedListener() { + @Override + public void onItemClicked(int position, HomePageBean.DataBean.MenusBean menusBean) { Intent intent = new Intent(); - switch (itemName) { + switch (menusBean.getName()) { case "案卷上报": intent.setClass(requireContext(), CommonCaseUploadActivity.class); break; diff --git a/app/src/main/java/com/casic/dcms/model/DataAnalysisGridModel.java b/app/src/main/java/com/casic/dcms/model/DataAnalysisGridModel.java new file mode 100644 index 0000000..3b20a2f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/model/DataAnalysisGridModel.java @@ -0,0 +1,22 @@ +package com.casic.dcms.model; + +public class DataAnalysisGridModel { + private int itemIcon; + private String itemTitle; + + public int getItemIcon() { + return itemIcon; + } + + public void setItemIcon(int itemIcon) { + this.itemIcon = itemIcon; + } + + public String getItemTitle() { + return itemTitle; + } + + public void setItemTitle(String itemTitle) { + this.itemTitle = itemTitle; + } +} diff --git a/app/src/main/java/com/casic/dcms/utils/DataBaseManager.java b/app/src/main/java/com/casic/dcms/utils/DataBaseManager.java index 0a39218..57f0df8 100644 --- a/app/src/main/java/com/casic/dcms/utils/DataBaseManager.java +++ b/app/src/main/java/com/casic/dcms/utils/DataBaseManager.java @@ -127,7 +127,7 @@ toiletListBeanDao.deleteAll(); } - public void saveToiletList(ToiletListModel.DataBean dataBean) { + public void saveToilets(ToiletListModel.DataBean dataBean) { ToiletListBean bean = new ToiletListBean(); bean.setArea(dataBean.getArea()); bean.setCode(dataBean.getCode()); @@ -149,7 +149,7 @@ toiletListBeanDao.save(bean); } - public List getToiletList() { + public List getToilets() { List result = new ArrayList<>(); List listBeans = toiletListBeanDao.loadAll(); for (ToiletListBean toiletBean : listBeans) { diff --git a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java b/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java index 7cb867d..fb0c033 100644 --- a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java +++ b/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java @@ -1,25 +1,12 @@ package com.casic.dcms.utils; -import android.util.Log; - import com.casic.dcms.utils.callback.IHttpRequestListener; +import com.pengxh.androidx.lite.callback.OnHttpRequestListener; +import com.pengxh.androidx.lite.hub.RequestHub; import com.pengxh.androidx.lite.utils.SaveKeyValues; -import org.jetbrains.annotations.NotNull; - -import java.io.IOException; -import java.util.concurrent.TimeUnit; - -import okhttp3.OkHttpClient; import okhttp3.Request; import okhttp3.Response; -import okhttp3.ResponseBody; -import okhttp3.logging.HttpLoggingInterceptor; -import rx.Emitter; -import rx.Observable; -import rx.Observer; -import rx.android.schedulers.AndroidSchedulers; -import rx.schedulers.Schedulers; public class HttpRequestHelper { private static final String TAG = "HttpRequestHelper"; @@ -27,93 +14,39 @@ public static void doRequest(String function, String requestValue, IHttpRequestListener listener) { String ip = (String) SaveKeyValues.getValue(LocaleConstant.IP_KEY, "http://111.198.10.15:11409"); // String ip = (String) SaveKeyValues.getValue(Constant.IP_KEY, "http://223.82.47.232:11401"); - Observable.create(emitter -> { - HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor(new HttpLoggingInterceptor.Logger() { - @Override - public void log(@NotNull String message) { - Log.d(TAG, "log: " + message); - } - }); - interceptor.setLevel(HttpLoggingInterceptor.Level.BODY); - - OkHttpClient client = new OkHttpClient.Builder() - .addInterceptor(interceptor) - .readTimeout(LocaleConstant.HTTP_TIMEOUT, TimeUnit.SECONDS) - .connectTimeout(LocaleConstant.HTTP_TIMEOUT, TimeUnit.SECONDS) - .writeTimeout(LocaleConstant.HTTP_TIMEOUT, TimeUnit.SECONDS) - .build(); - - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(ip + function + requestValue) - .get() - .build();//创建Request 对象 - try { - Response response = client.newCall(request).execute(); - emitter.onNext(response.body()); - } catch (IOException e) { - emitter.onError(e); - } - }, Emitter.BackpressureMode.BUFFER).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + Request request = new Request.Builder() + .addHeader("token", AuthenticationHelper.getToken()) + .url(ip + function + requestValue) + .get() + .build();//创建Request 对象 + RequestHub.doRequest(request, new OnHttpRequestListener() { @Override - public void onCompleted() { - + public void onSuccess(Response response) { + listener.onSuccess(response.body()); } @Override - public void onError(Throwable e) { - listener.onFailure(e); - } - - @Override - public void onNext(ResponseBody responseBody) { - listener.onSuccess(responseBody); + public void onFailure(Throwable throwable) { + listener.onFailure(throwable); } }); } public static void doRequest(String url, IHttpRequestListener listener) { - Observable.create(emitter -> { - HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor(new HttpLoggingInterceptor.Logger() { - @Override - public void log(@NotNull String message) { - Log.d(TAG, "log: " + message); - } - }); - interceptor.setLevel(HttpLoggingInterceptor.Level.BODY); - - OkHttpClient client = new OkHttpClient.Builder() - .addInterceptor(interceptor) - .readTimeout(LocaleConstant.HTTP_TIMEOUT, TimeUnit.SECONDS) - .connectTimeout(LocaleConstant.HTTP_TIMEOUT, TimeUnit.SECONDS) - .writeTimeout(LocaleConstant.HTTP_TIMEOUT, TimeUnit.SECONDS) - .build(); - - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(url) - .get() - .build();//创建Request 对象 - try { - Response response = client.newCall(request).execute(); - emitter.onNext(response.body()); - } catch (IOException e) { - emitter.onError(e); - } - }, Emitter.BackpressureMode.BUFFER).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + Request request = new Request.Builder() + .addHeader("token", AuthenticationHelper.getToken()) + .url(url) + .get() + .build();//创建Request 对象 + RequestHub.doRequest(request, new OnHttpRequestListener() { @Override - public void onCompleted() { - + public void onSuccess(Response response) { + listener.onSuccess(response.body()); } @Override - public void onError(Throwable e) { - listener.onFailure(e); - } - - @Override - public void onNext(ResponseBody responseBody) { - listener.onSuccess(responseBody); + public void onFailure(Throwable throwable) { + listener.onFailure(throwable); } }); } diff --git a/app/src/main/java/com/casic/dcms/utils/StringHelper.java b/app/src/main/java/com/casic/dcms/utils/StringHelper.java index c625bb4..1a097cc 100644 --- a/app/src/main/java/com/casic/dcms/utils/StringHelper.java +++ b/app/src/main/java/com/casic/dcms/utils/StringHelper.java @@ -264,8 +264,20 @@ return R.drawable.ic_dtck; case "公厕保洁": return R.drawable.ic_toilet; + case "三包处置": + return R.drawable.ic_sanbao; + case "商铺变更": + return R.drawable.ic_shangpu; + case "部门处置": + return R.drawable.ic_dept; + case "路桥养护": + return R.drawable.ic_bridge; + case "管网管理": + return R.drawable.ic_pipe; + case "路灯管理": + return R.drawable.ic_streetlight; default: - return 0; + return R.drawable.ic_default_icon; } } } diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java index b1a3c67..6d3574d 100644 --- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java +++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java @@ -39,9 +39,7 @@ * token添加到Header */ @GET("/user/info") - Observable getUserData( - @Header("token") String token - ); + Observable getUserData(@Header("token") String token); /** * 获取地图地址 @@ -49,9 +47,7 @@ * token添加到Header */ @GET("/map/server/listPage") - Observable getMapConfig( - @Header("token") String token - ); + Observable getMapConfig(@Header("token") String token); /** * 大类列表查询 @@ -132,9 +128,7 @@ * 退出登录 */ @GET("/user/logout") - Observable loginOut( - @Header("token") String token - ); + Observable loginOut(@Header("token") String token); /** * 修改密码 @@ -152,10 +146,7 @@ * 获取部门树 */ @GET("/dept/tree") - Observable getDeptTree( - @Header("token") String token, - @Query("pid") String pid - ); + Observable getDeptTree(@Header("token") String token, @Query("pid") String pid); /** * 获取通讯录 @@ -193,9 +184,7 @@ * 获取案件状态 */ @GET("/dict/code/caseState") - Observable getCaseStatus( - @Header("token") String token - ); + Observable getCaseStatus(@Header("token") String token); /** * 获取案件列表 @@ -223,10 +212,7 @@ * http://111.198.10.15:11409/case/detail/1372735305680994306 */ @GET("/case/detail/{id}") - Observable obtainCaseDetail( - @Header("token") String token, - @Path("id") String id - ); + Observable obtainCaseDetail(@Header("token") String token, @Path("id") String id); /** * 获取案件流转记录 @@ -241,9 +227,7 @@ * 更新版本 */ @POST("/app/checkVersion") - Observable updateVersion( - @Header("token") String token - ); + Observable updateVersion(@Header("token") String token); /** * 获取核实待办案卷 @@ -407,9 +391,7 @@ * 获取常见语句 */ @GET("/dict/code/commonApproval") - Observable obtainCommonSentence( - @Header("token") String token - ); + Observable obtainCommonSentence(@Header("token") String token); /** * 案卷处理 @@ -532,9 +514,7 @@ * http://111.198.10.15:11409/sanitation/toilet/list */ @GET("/sanitation/toilet/list") - Observable getToiletList( - @Header("token") String token - ); + Observable getToilets(@Header("token") String token); /** * 公厕打扫签到 @@ -789,9 +769,7 @@ * http://111.198.10.15:11409/lampCr/overview/lampList */ @GET("/lightCr/overview/lampList") - Observable obtainLightList( - @Header("token") String token - ); + Observable obtainLightList(@Header("token") String token); /** * 路灯详情 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 5c31b0a..8876060 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 @@ -411,8 +411,8 @@ /** * 公厕列表 */ - public static Observable getToiletList() { - return api.getToiletList(AuthenticationHelper.getToken()); + public static Observable getToilets() { + return api.getToilets(AuthenticationHelper.getToken()); } /** 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 e709752..d7bf511 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java @@ -1,25 +1,23 @@ package com.casic.dcms.view; import android.content.Context; -import android.graphics.Rect; +import android.graphics.Color; +import android.view.View; -import androidx.annotation.Nullable; import androidx.core.content.ContextCompat; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; -import com.casic.dcms.adapter.ProcessLineAdapter; import com.casic.dcms.databinding.ActivityCaseProcessBinding; import com.casic.dcms.model.CaseProcessBean; -import com.casic.dcms.utils.TimeLineDecoration; -import com.casic.dcms.utils.TimeLineDecoration.TimeLineAdapter; import com.casic.dcms.vm.CommonDataViewModel; import com.gyf.immersionbar.ImmersionBar; +import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; +import com.pengxh.androidx.lite.adapter.ViewHolder; import com.pengxh.androidx.lite.base.AndroidxBaseActivity; import com.pengxh.androidx.lite.utils.Constant; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; -import com.qmuiteam.qmui.util.QMUIDisplayHelper; import java.util.ArrayList; import java.util.List; @@ -62,36 +60,33 @@ for (int i = 0; i < size; i++) { dataBeans.add(i, resultBean.getData().get(size - 1 - i)); } - ProcessLineAdapter adapter = new ProcessLineAdapter(context, dataBeans); - TimeLineDecoration decoration = new TimeLineDecoration(context) - .setLineColor(R.color.lightGray) - .setLineWidth(1f) - .setLeftDistance(QMUIDisplayHelper.dp2px(context, 9)) - .setMarkerColor(R.color.lightGray) - .setMarkerRadius(10f) - .setBeginMarkerRadius(10f) - .setBeginMarker(R.drawable.begin_marker) - .setCallback(new TimeLineAdapter() { - @Nullable - @Override - public Rect getRect(int position) { - return new Rect(QMUIDisplayHelper.dp2px(context, 30), - QMUIDisplayHelper.dp2px(context, 10), 0, 0); - } + NormalRecyclerAdapter recyclerAdapter = new NormalRecyclerAdapter(R.layout.item_case_process, dataBeans) { + @Override + public void convertView(ViewHolder viewHolder, int position, CaseProcessBean.DataBean item) { + if (position == 0) { + //最后一项 + viewHolder.setBackgroundColor(R.id.dotView, Color.BLACK); + viewHolder.setTextColor(R.id.operatorNameView, Color.BLACK) + .setTextColor(R.id.statusView, Color.BLACK) + .setTextColor(R.id.operateTimeView, Color.BLACK) + .setTextColor(R.id.remarkView, Color.BLACK); - @Override - public int getTimeLineType(int position) { - if (position == 0) { - return TimeLineDecoration.BEGIN; - } else if (position == adapter.getItemCount() - 1) { - return TimeLineDecoration.END_FULL; - } else { - return TimeLineDecoration.NORMAL; - } - } - }); - viewBinding.processRecyclerView.addItemDecoration(decoration); - viewBinding.processRecyclerView.setAdapter(adapter); + viewHolder.setVisibility(R.id.topLineView, View.INVISIBLE); + viewHolder.setImageResource(R.id.tagImageView, R.drawable.ic_dot_red); + } else if (position == size - 1) { + viewHolder.setVisibility(R.id.bottomLineView, View.INVISIBLE); + viewHolder.setImageResource(R.id.tagImageView, R.drawable.ic_dot_gray); + } else { + viewHolder.setImageResource(R.id.tagImageView, R.drawable.ic_dot); + } + + viewHolder.setText(R.id.statusView, item.getOperationTypeName()) + .setText(R.id.operatorNameView, item.getUserName()) + .setText(R.id.remarkView, item.getRemarks()) + .setText(R.id.operateTimeView, item.getTime()); + } + }; + viewBinding.processRecyclerView.setAdapter(recyclerAdapter); } } }); 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 6c8b259..0a65da1 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java @@ -10,12 +10,13 @@ import androidx.lifecycle.ViewModelProvider; import com.casic.dcms.R; -import com.casic.dcms.adapter.CaseSearchResultAdapter; import com.casic.dcms.databinding.ActivityCaseListBinding; import com.casic.dcms.model.CaseSearchResultBean; import com.casic.dcms.utils.DialogHelper; import com.casic.dcms.vm.CaseViewModel; import com.gyf.immersionbar.ImmersionBar; +import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; +import com.pengxh.androidx.lite.adapter.ViewHolder; import com.pengxh.androidx.lite.base.AndroidxBaseActivity; import com.pengxh.androidx.lite.hub.ContextHub; import com.pengxh.androidx.lite.hub.StringHub; @@ -34,7 +35,7 @@ private final Context context = this; private WeakReferenceHandler weakReferenceHandler; private CaseViewModel caseViewModel; - private CaseSearchResultAdapter adapter; + private NormalRecyclerAdapter adapter; private String typeCode; private String typeDetailCode; private String caseState; @@ -157,16 +158,29 @@ }); } else { viewBinding.emptyView.hide(); - adapter = new CaseSearchResultAdapter(context, dataBeans); - viewBinding.caseRecyclerView.setAdapter(adapter); - adapter.setOnItemClickListener(new CaseSearchResultAdapter.OnItemClickListener() { + adapter = new NormalRecyclerAdapter(R.layout.item_case_rv, dataBeans) { + @Override - public void onClick(int position) { - ContextHub.navigatePageTo( - context, - CaseDetailActivity.class, - dataBeans.get(position).getId() - ); + public void convertView(ViewHolder viewHolder, int position, CaseSearchResultBean.DataDTO.RowsDTO item) { + //核实图片 +// String fileIdVerify = rowsBean.getFileIdVerify(); +// if (!TextUtils.isEmpty(fileIdVerify)) { +// String[] split = fileIdVerify.split(","); +// String firstImage = split[0]; +// if (firstImage.endsWith(".jpg") || firstImage.contains(".jpeg") || firstImage.contains(".png")) { +// Glide.with(context).load(StringHelper.appendCompleteURL(firstImage)).into(caseImageView); +// } +// } + viewHolder.setText(R.id.caseTitleView, StringHub.filterSpaceOrEnter(item.getDescription())) + .setText(R.id.casePlaceView, "发生地点:" + StringHub.filterSpaceOrEnter(item.getFieldintro())) + .setText(R.id.caseTimeView, "上报时间:" + item.getReportTime()); + } + }; + viewBinding.caseRecyclerView.setAdapter(adapter); + adapter.setOnItemClickedListener(new NormalRecyclerAdapter.OnItemClickedListener() { + @Override + public void onItemClicked(int position, CaseSearchResultBean.DataDTO.RowsDTO rowsDTO) { + ContextHub.navigatePageTo(context, CaseDetailActivity.class, rowsDTO.getId()); } }); } diff --git a/app/src/main/java/com/casic/dcms/view/DataAnalysisActivity.java b/app/src/main/java/com/casic/dcms/view/DataAnalysisActivity.java index c3bff07..29d576b 100644 --- a/app/src/main/java/com/casic/dcms/view/DataAnalysisActivity.java +++ b/app/src/main/java/com/casic/dcms/view/DataAnalysisActivity.java @@ -6,13 +6,18 @@ import androidx.core.content.ContextCompat; import com.casic.dcms.R; -import com.casic.dcms.adapter.AnalysisRecycleAdapter; import com.casic.dcms.databinding.ActivityCaseAnalysisBinding; +import com.casic.dcms.model.DataAnalysisGridModel; +import com.casic.dcms.utils.LocaleConstant; import com.gyf.immersionbar.ImmersionBar; +import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; +import com.pengxh.androidx.lite.adapter.ViewHolder; import com.pengxh.androidx.lite.base.AndroidxBaseActivity; import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import java.util.ArrayList; + /** * @author : Pengxh * @time : 2021/4/15 16:03 @@ -38,11 +43,25 @@ @Override protected void initData() { - AnalysisRecycleAdapter adapter = new AnalysisRecycleAdapter(this); - viewBinding.analysisRecyclerView.setAdapter(adapter); - adapter.setOnGridItemClickListener(new AnalysisRecycleAdapter.OnGridItemClickListener() { + ArrayList models = new ArrayList<>(); + for (int i = 0; i < 6; i++) { + DataAnalysisGridModel model = new DataAnalysisGridModel(); + model.setItemIcon(LocaleConstant.ANALYSIS_ICONS.get(i)); + model.setItemTitle(LocaleConstant.ANALYSIS_ITEMS.get(i)); + models.add(model); + } + + NormalRecyclerAdapter adapter = new NormalRecyclerAdapter(R.layout.item_home_recycleview, models) { + @Override - public void onClick(int position) { + public void convertView(ViewHolder viewHolder, int position, DataAnalysisGridModel item) { + viewHolder.setImageResource(R.id.imageView, item.getItemIcon()).setText(R.id.textView, item.getItemTitle()); + } + }; + viewBinding.analysisRecyclerView.setAdapter(adapter); + adapter.setOnItemClickedListener(new NormalRecyclerAdapter.OnItemClickedListener() { + @Override + public void onItemClicked(int position, DataAnalysisGridModel dataAnalysisGridModel) { Intent intent = new Intent(); switch (position) { case 0: diff --git a/app/src/main/java/com/casic/dcms/view/MainActivity.java b/app/src/main/java/com/casic/dcms/view/MainActivity.java index cf8662f..376e943 100644 --- a/app/src/main/java/com/casic/dcms/view/MainActivity.java +++ b/app/src/main/java/com/casic/dcms/view/MainActivity.java @@ -3,6 +3,7 @@ import android.content.Intent; import android.os.Build; import android.os.Handler; +import android.os.Message; import android.view.KeyEvent; import android.view.MenuItem; import android.view.View; @@ -40,7 +41,6 @@ import com.google.android.material.navigation.NavigationBarView; import com.google.gson.Gson; import com.gyf.immersionbar.ImmersionBar; -import com.igexin.sdk.PushManager; import com.pengxh.androidx.lite.base.AndroidxBaseActivity; import com.pengxh.androidx.lite.hub.ContextHub; import com.pengxh.androidx.lite.hub.StringHub; @@ -64,8 +64,6 @@ private String imei = ""; private UploadViewModel positionViewModel; private PushViewModel pushViewModel; - private MapConfigViewModel mapConfigViewModel; - private ToiletViewModel toiletViewModel; private long clickTime = 0; @Override @@ -82,6 +80,26 @@ } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == LocaleConstant.PUSH_REGISTER) { + pushViewModel.registerPush((String) msg.obj); + } else if (msg.what == LocaleConstant.MESSAGE_NUMBER) { + updateMessageNumber(); + } else if (msg.what == LocaleConstant.UPDATE_LOCATION) { + AMapLocation aMapLocation = (AMapLocation) msg.obj; + try { + double[] gcjToWgs = LocationHelper.gcjToWgs(aMapLocation.getLongitude(), aMapLocation.getLatitude()); + positionViewModel.uploadPosition(imei, String.valueOf(gcjToWgs[1]), String.valueOf(gcjToWgs[0])); + } catch (NullPointerException e) { + e.printStackTrace(); + } + } + return true; + } + }; + @Override protected void initData() { //配置页面 @@ -89,29 +107,14 @@ pageViews.add(new PhonePageFragment()); pageViews.add(new NoticePageFragment()); pageViews.add(new MinePageFragment()); + MainPageAdapter mainPageAdapter = new MainPageAdapter(getSupportFragmentManager(), pageViews); + viewBinding.mainViewPager.setOffscreenPageLimit(pageViews.size()); + viewBinding.mainViewPager.setAdapter(mainPageAdapter); - //个推初始化 - PushManager.getInstance().initialize(this); weakReferenceHandler = new WeakReferenceHandler(callback); dataBaseManager = DataBaseManager.getInstance(); - positionViewModel = new ViewModelProvider(this).get(UploadViewModel.class); - pushViewModel = new ViewModelProvider(this).get(PushViewModel.class); - mapConfigViewModel = new ViewModelProvider(this).get(MapConfigViewModel.class); - toiletViewModel = new ViewModelProvider(this).get(ToiletViewModel.class); - - //获取配置项 - obtainProjectConfig(); - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { - startForegroundService(new Intent(this, UpdateLocationService.class)); - } else { - startService(new Intent(this, UpdateLocationService.class)); - } - } - - private void obtainProjectConfig() { - imei = ContextHub.getSimCardSerialNumber(this); - //地图配置项 + MapConfigViewModel mapConfigViewModel = new ViewModelProvider(this).get(MapConfigViewModel.class); mapConfigViewModel.obtainMapConfig(); mapConfigViewModel.mapConfigModel.observe(this, new Observer() { @Override @@ -125,65 +128,34 @@ } }); - //公厕数据 - toiletViewModel.obtainToiletList(); + ToiletViewModel toiletViewModel = new ViewModelProvider(this).get(ToiletViewModel.class); + toiletViewModel.getToilets(); toiletViewModel.toiletListModel.observe(this, new Observer() { @Override public void onChanged(ToiletListModel resultBean) { if (resultBean.getCode() == 200) { dataBaseManager.deleteAllToiletList(); for (ToiletListModel.DataBean dataBean : resultBean.getData()) { - dataBaseManager.saveToiletList(dataBean); + dataBaseManager.saveToilets(dataBean); } } } }); - //公厕图层ID - HttpRequestHelper.doRequest(LocaleConstant.LAYER_CONFIG, new IHttpRequestListener() { - @Override - public void onSuccess(ResponseBody resultBean) { - try { - String resultStr = resultBean.string(); - List partsLayer = gson.fromJson(resultStr, LayerConfigBean.class).getPartsLayer(); - List childrenBeans = partsLayer.get(2).getChildren(); - StringHelper.saveToiletLayerId(String.valueOf(childrenBeans.get(0).getLayer())); - } catch (IOException e) { - e.printStackTrace(); - } - } + positionViewModel = new ViewModelProvider(this).get(UploadViewModel.class); + pushViewModel = new ViewModelProvider(this).get(PushViewModel.class); - @Override - public void onFailure(Throwable throwable) { - - } - }); - - //桥梁数据 TODO-待调试 - HttpRequestHelper.doRequest(LocaleConstant.PROJECT_CONFIG, new IHttpRequestListener() { - @Override - public void onSuccess(ResponseBody resultBean) { - try { - String resultStr = resultBean.string(); - List bridges = gson.fromJson(resultStr, BridgeConfigBean.class).getBridges(); - StringHelper.saveBridgeList(gson.toJson(bridges)); - } catch (IOException e) { - e.printStackTrace(); - } - } - - @Override - public void onFailure(Throwable throwable) { - - } - }); + //获取配置项 + obtainProjectConfig(); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { + startForegroundService(new Intent(this, UpdateLocationService.class)); + } else { + startService(new Intent(this, UpdateLocationService.class)); + } } @Override protected void initEvent() { - MainPageAdapter mainPageAdapter = new MainPageAdapter(getSupportFragmentManager(), pageViews); - viewBinding.mainViewPager.setOffscreenPageLimit(pageViews.size()); - viewBinding.mainViewPager.setAdapter(mainPageAdapter); viewBinding.bottomNavigation.setOnItemSelectedListener(new NavigationBarView.OnItemSelectedListener() { @Override public boolean onNavigationItemSelected(@NonNull MenuItem item) { @@ -228,27 +200,53 @@ }); } - private final Handler.Callback callback = msg -> { - if (msg.what == LocaleConstant.PUSH_REGISTER) { - pushViewModel.registerPush((String) msg.obj); - } else if (msg.what == LocaleConstant.MESSAGE_NUMBER) { - updateMessageNumber(); - } else if (msg.what == LocaleConstant.UPDATE_LOCATION) { - AMapLocation aMapLocation = (AMapLocation) msg.obj; - try { - double[] gcjToWgs = LocationHelper.gcjToWgs(aMapLocation.getLongitude(), aMapLocation.getLatitude()); - positionViewModel.uploadPosition(imei, String.valueOf(gcjToWgs[1]), String.valueOf(gcjToWgs[0])); - } catch (NullPointerException e) { - e.printStackTrace(); + private void obtainProjectConfig() { + imei = ContextHub.getSimCardSerialNumber(this); + + //公厕图层ID + HttpRequestHelper.doRequest(LocaleConstant.LAYER_CONFIG, new IHttpRequestListener() { + @Override + public void onSuccess(ResponseBody resultBean) { + try { + String resultStr = resultBean.string(); + List partsLayer = gson.fromJson(resultStr, LayerConfigBean.class).getPartsLayer(); + List childrenBeans = partsLayer.get(2).getChildren(); + StringHelper.saveToiletLayerId(String.valueOf(childrenBeans.get(0).getLayer())); + } catch (IOException e) { + e.printStackTrace(); + } } - } - return true; - }; + + @Override + public void onFailure(Throwable throwable) { + + } + }); + + //桥梁数据 TODO-待调试 + HttpRequestHelper.doRequest(LocaleConstant.PROJECT_CONFIG, new IHttpRequestListener() { + @Override + public void onSuccess(ResponseBody resultBean) { + try { + String resultStr = resultBean.string(); + List bridges = gson.fromJson(resultStr, BridgeConfigBean.class).getBridges(); + StringHelper.saveBridgeList(gson.toJson(bridges)); + } catch (IOException e) { + e.printStackTrace(); + } + } + + @Override + public void onFailure(Throwable throwable) { + + } + }); + } @Override protected void onResume() { - updateMessageNumber(); super.onResume(); + updateMessageNumber(); } private void updateMessageNumber() { diff --git a/app/src/main/java/com/casic/dcms/view/PublicToiletActivity.java b/app/src/main/java/com/casic/dcms/view/PublicToiletActivity.java index d3e3ced..0a75439 100644 --- a/app/src/main/java/com/casic/dcms/view/PublicToiletActivity.java +++ b/app/src/main/java/com/casic/dcms/view/PublicToiletActivity.java @@ -153,7 +153,7 @@ viewBinding.obtainToiletIdLayout.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - List toiletBeanList = DataBaseManager.getInstance().getToiletList(); + List toiletBeanList = DataBaseManager.getInstance().getToilets(); if (toiletBeanList.size() == 0) { StringHub.show(context, "获取公厕数据失败,请联系管理员"); return; diff --git a/app/src/main/java/com/casic/dcms/vm/ToiletViewModel.java b/app/src/main/java/com/casic/dcms/vm/ToiletViewModel.java index 313e3d1..05ab157 100644 --- a/app/src/main/java/com/casic/dcms/vm/ToiletViewModel.java +++ b/app/src/main/java/com/casic/dcms/vm/ToiletViewModel.java @@ -25,8 +25,8 @@ public MutableLiveData cleanToiletModel = new MutableLiveData<>(); public MutableLiveData cleanRecordModel = new MutableLiveData<>(); - public void obtainToiletList() { - Observable observable = RetrofitServiceManager.getToiletList(); + public void getToilets() { + Observable observable = RetrofitServiceManager.getToilets(); ObserverSubscriber.addSubscribe(observable, new OnObserverCallback() { @Override public void onCompleted() { diff --git a/app/src/main/res/drawable/ic_dot.xml b/app/src/main/res/drawable/ic_dot.xml new file mode 100644 index 0000000..ee801ca --- /dev/null +++ b/app/src/main/res/drawable/ic_dot.xml @@ -0,0 +1,13 @@ + + + + diff --git a/app/src/main/res/drawable/ic_dot_gray.xml b/app/src/main/res/drawable/ic_dot_gray.xml new file mode 100644 index 0000000..5a1a24a --- /dev/null +++ b/app/src/main/res/drawable/ic_dot_gray.xml @@ -0,0 +1,12 @@ + + + + diff --git a/app/src/main/res/drawable/ic_dot_red.xml b/app/src/main/res/drawable/ic_dot_red.xml new file mode 100644 index 0000000..cb190e5 --- /dev/null +++ b/app/src/main/res/drawable/ic_dot_red.xml @@ -0,0 +1,12 @@ + + + + diff --git a/app/src/main/res/layout/item_case_process.xml b/app/src/main/res/layout/item_case_process.xml index 4d22de6..3ca1d89 100644 --- a/app/src/main/res/layout/item_case_process.xml +++ b/app/src/main/res/layout/item_case_process.xml @@ -1,90 +1,92 @@ - - - - - - - - - - - - - - - - - - - - - - - - - + android:layout_height="@dimen/dp_80" + android:gravity="center_vertical" + android:orientation="horizontal"> + + + + + + + + + + android:layout_weight="1" + android:background="@color/white" + android:orientation="vertical"> - - - + android:gravity="center_vertical" + android:orientation="horizontal"> + + + + + + + + + + + - \ No newline at end of file + diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index 8dd368e..7c69971 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -9,6 +9,7 @@ #E5E5E5 #D3D3D3 #CCCCCC + #D8D8D8 #A9A9A9 #808080 #000000