diff --git a/app/build.gradle b/app/build.gradle index 4b8dfb7..085c9d4 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -69,6 +69,5 @@ implementation 'com.mapbox.mapboxsdk:mapbox-android-plugin-annotation-v9:0.9.0' implementation 'com.mapbox.mapboxsdk:mapbox-android-plugin-localization-v9:0.12.0' implementation 'com.sdsmdg.tastytoast:tastytoast:0.1.1' - //广告Banner - implementation 'com.youth.banner:banner:1.4.9' + implementation 'com.jzxiang.pickerview:TimePickerDialog:1.0.1' } diff --git a/app/build.gradle b/app/build.gradle index 4b8dfb7..085c9d4 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -69,6 +69,5 @@ implementation 'com.mapbox.mapboxsdk:mapbox-android-plugin-annotation-v9:0.9.0' implementation 'com.mapbox.mapboxsdk:mapbox-android-plugin-localization-v9:0.12.0' implementation 'com.sdsmdg.tastytoast:tastytoast:0.1.1' - //广告Banner - implementation 'com.youth.banner:banner:1.4.9' + implementation 'com.jzxiang.pickerview:TimePickerDialog:1.0.1' } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 54b3625..ce130a7 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -41,6 +41,7 @@ + + { + + private Context context; + + public AnalysisRecycleAdapter(Context context) { + this.context = context; + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = LayoutInflater.from(context).inflate(R.layout.item_home_recycleview, parent, false); + return new ItemViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { + holder.bindView(context, position); + if (clickListener != null) { + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + clickListener.onClick(position); + } + }); + } + } + + @Override + public int getItemCount() { + return Constant.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 ImageView imageView; + private TextView textView; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + imageView = itemView.findViewById(R.id.imageView); + textView = itemView.findViewById(R.id.textView); + } + + void bindView(Context context, int position) { + imageView.setBackgroundResource(Constant.ANALYSIS_ICONS.get(position)); + textView.setText(Constant.ANALYSIS_ITEMS.get(position)); + } + } +} diff --git a/app/build.gradle b/app/build.gradle index 4b8dfb7..085c9d4 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -69,6 +69,5 @@ implementation 'com.mapbox.mapboxsdk:mapbox-android-plugin-annotation-v9:0.9.0' implementation 'com.mapbox.mapboxsdk:mapbox-android-plugin-localization-v9:0.12.0' implementation 'com.sdsmdg.tastytoast:tastytoast:0.1.1' - //广告Banner - implementation 'com.youth.banner:banner:1.4.9' + implementation 'com.jzxiang.pickerview:TimePickerDialog:1.0.1' } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 54b3625..ce130a7 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -41,6 +41,7 @@ + { + + private Context context; + + public AnalysisRecycleAdapter(Context context) { + this.context = context; + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = LayoutInflater.from(context).inflate(R.layout.item_home_recycleview, parent, false); + return new ItemViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { + holder.bindView(context, position); + if (clickListener != null) { + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + clickListener.onClick(position); + } + }); + } + } + + @Override + public int getItemCount() { + return Constant.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 ImageView imageView; + private TextView textView; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + imageView = itemView.findViewById(R.id.imageView); + textView = itemView.findViewById(R.id.textView); + } + + void bindView(Context context, int position) { + imageView.setBackgroundResource(Constant.ANALYSIS_ICONS.get(position)); + textView.setText(Constant.ANALYSIS_ITEMS.get(position)); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/DataAnalysisActivity.java b/app/src/main/java/com/casic/dcms/ui/DataAnalysisActivity.java new file mode 100644 index 0000000..1f959b0 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/DataAnalysisActivity.java @@ -0,0 +1,137 @@ +package com.casic.dcms.ui; + +import android.content.Context; +import android.view.View; +import android.widget.ImageView; +import android.widget.TextView; + +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.AnalysisRecycleAdapter; +import com.casic.dcms.base.BaseActivity; +import com.casic.dcms.utils.ColorHelper; +import com.casic.dcms.utils.Constant; +import com.casic.dcms.utils.TimeOrDateUtil; +import com.casic.dcms.utils.ToastHelper; +import com.jzxiang.pickerview.TimePickerDialog; +import com.jzxiang.pickerview.data.Type; +import com.qmuiteam.qmui.widget.QMUITopBarLayout; + +import butterknife.BindView; +import butterknife.OnClick; + +/** + * @author : Pengxh + * @time : 2021/4/15 16:03 + * @email : 290677893@qq.com + **/ +public class DataAnalysisActivity extends BaseActivity implements View.OnClickListener { + + private static final String TAG = "DataAnalysisActivity"; + private Context context = this; + + @BindView(R.id.dataTopLayout) + QMUITopBarLayout dataTopLayout; + @BindView(R.id.startDateView) + TextView startDateView; + @BindView(R.id.selectStartDateView) + ImageView selectStartDateView; + @BindView(R.id.endDateView) + TextView endDateView; + @BindView(R.id.selectEndDateView) + ImageView selectEndDateView; + @BindView(R.id.analysisRecyclerView) + RecyclerView analysisRecyclerView; + + @Override + public int initLayoutView() { + return R.layout.activity_analysis; + } + + @Override + protected void setupTopBarLayout() { + dataTopLayout.setTitle("统计分析").setTextColor(ContextCompat.getColor(this, R.color.white)); + dataTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor)); + dataTopLayout.addLeftImageButton(R.drawable.ic_left_white, 1).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + } + + @Override + public void initData() { + AnalysisRecycleAdapter adapter = new AnalysisRecycleAdapter(this); + analysisRecyclerView.setLayoutManager(new GridLayoutManager(this, 3)); + analysisRecyclerView.setAdapter(adapter); + adapter.setOnGridItemClickListener(new AnalysisRecycleAdapter.OnGridItemClickListener() { + @Override + public void onClick(int position) { +// Intent intent = new Intent(); + switch (position) { + case 0: + ToastHelper.showToast("问题来源", ToastHelper.INFO); + break; + case 1: + ToastHelper.showToast("案卷状态", ToastHelper.INFO); + break; + case 2: + ToastHelper.showToast("高发问题", ToastHelper.INFO); + break; + case 3: + ToastHelper.showToast("街道统计", ToastHelper.INFO); + break; + case 4: + ToastHelper.showToast("处理统计", ToastHelper.INFO); + break; + case 5: + ToastHelper.showToast("趋势分析", ToastHelper.INFO); + break; + default: + break; + } +// startActivity(intent); + } + }); + } + + @Override + public void initEvent() { + + } + + @OnClick({R.id.selectStartDateView, R.id.selectEndDateView}) + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.selectStartDateView: + new TimePickerDialog.Builder().setThemeColor(ColorHelper.getResourcesColor(this, R.color.mainThemeColor)) + .setWheelItemTextSize(16) + .setCyclic(false) + .setMinMillseconds(System.currentTimeMillis() - Constant.FIVE_YEARS) + .setMaxMillseconds(System.currentTimeMillis() + Constant.FIVE_YEARS) + .setType(Type.YEAR_MONTH_DAY) + .setCallBack((timePickerView, millSeconds) -> { + startDateView.setText(TimeOrDateUtil.rTimestampToDate(millSeconds)); + }).build().show(getSupportFragmentManager(), "year_month_day"); + break; + case R.id.selectEndDateView: + new TimePickerDialog.Builder().setThemeColor(ColorHelper.getResourcesColor(this, R.color.mainThemeColor)) + .setWheelItemTextSize(16) + .setCyclic(false) + .setMinMillseconds(System.currentTimeMillis() - Constant.FIVE_YEARS) + .setMaxMillseconds(System.currentTimeMillis() + Constant.FIVE_YEARS) + .setType(Type.YEAR_MONTH_DAY) + .setCallBack((timePickerView, millSeconds) -> { + endDateView.setText(TimeOrDateUtil.rTimestampToDate(millSeconds)); + }).build().show(getSupportFragmentManager(), "year_month_day"); + break; + default: + break; + } + } +} diff --git a/app/build.gradle b/app/build.gradle index 4b8dfb7..085c9d4 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -69,6 +69,5 @@ implementation 'com.mapbox.mapboxsdk:mapbox-android-plugin-annotation-v9:0.9.0' implementation 'com.mapbox.mapboxsdk:mapbox-android-plugin-localization-v9:0.12.0' implementation 'com.sdsmdg.tastytoast:tastytoast:0.1.1' - //广告Banner - implementation 'com.youth.banner:banner:1.4.9' + implementation 'com.jzxiang.pickerview:TimePickerDialog:1.0.1' } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 54b3625..ce130a7 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -41,6 +41,7 @@ + { + + private Context context; + + public AnalysisRecycleAdapter(Context context) { + this.context = context; + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = LayoutInflater.from(context).inflate(R.layout.item_home_recycleview, parent, false); + return new ItemViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { + holder.bindView(context, position); + if (clickListener != null) { + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + clickListener.onClick(position); + } + }); + } + } + + @Override + public int getItemCount() { + return Constant.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 ImageView imageView; + private TextView textView; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + imageView = itemView.findViewById(R.id.imageView); + textView = itemView.findViewById(R.id.textView); + } + + void bindView(Context context, int position) { + imageView.setBackgroundResource(Constant.ANALYSIS_ICONS.get(position)); + textView.setText(Constant.ANALYSIS_ITEMS.get(position)); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/DataAnalysisActivity.java b/app/src/main/java/com/casic/dcms/ui/DataAnalysisActivity.java new file mode 100644 index 0000000..1f959b0 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/DataAnalysisActivity.java @@ -0,0 +1,137 @@ +package com.casic.dcms.ui; + +import android.content.Context; +import android.view.View; +import android.widget.ImageView; +import android.widget.TextView; + +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.AnalysisRecycleAdapter; +import com.casic.dcms.base.BaseActivity; +import com.casic.dcms.utils.ColorHelper; +import com.casic.dcms.utils.Constant; +import com.casic.dcms.utils.TimeOrDateUtil; +import com.casic.dcms.utils.ToastHelper; +import com.jzxiang.pickerview.TimePickerDialog; +import com.jzxiang.pickerview.data.Type; +import com.qmuiteam.qmui.widget.QMUITopBarLayout; + +import butterknife.BindView; +import butterknife.OnClick; + +/** + * @author : Pengxh + * @time : 2021/4/15 16:03 + * @email : 290677893@qq.com + **/ +public class DataAnalysisActivity extends BaseActivity implements View.OnClickListener { + + private static final String TAG = "DataAnalysisActivity"; + private Context context = this; + + @BindView(R.id.dataTopLayout) + QMUITopBarLayout dataTopLayout; + @BindView(R.id.startDateView) + TextView startDateView; + @BindView(R.id.selectStartDateView) + ImageView selectStartDateView; + @BindView(R.id.endDateView) + TextView endDateView; + @BindView(R.id.selectEndDateView) + ImageView selectEndDateView; + @BindView(R.id.analysisRecyclerView) + RecyclerView analysisRecyclerView; + + @Override + public int initLayoutView() { + return R.layout.activity_analysis; + } + + @Override + protected void setupTopBarLayout() { + dataTopLayout.setTitle("统计分析").setTextColor(ContextCompat.getColor(this, R.color.white)); + dataTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor)); + dataTopLayout.addLeftImageButton(R.drawable.ic_left_white, 1).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + } + + @Override + public void initData() { + AnalysisRecycleAdapter adapter = new AnalysisRecycleAdapter(this); + analysisRecyclerView.setLayoutManager(new GridLayoutManager(this, 3)); + analysisRecyclerView.setAdapter(adapter); + adapter.setOnGridItemClickListener(new AnalysisRecycleAdapter.OnGridItemClickListener() { + @Override + public void onClick(int position) { +// Intent intent = new Intent(); + switch (position) { + case 0: + ToastHelper.showToast("问题来源", ToastHelper.INFO); + break; + case 1: + ToastHelper.showToast("案卷状态", ToastHelper.INFO); + break; + case 2: + ToastHelper.showToast("高发问题", ToastHelper.INFO); + break; + case 3: + ToastHelper.showToast("街道统计", ToastHelper.INFO); + break; + case 4: + ToastHelper.showToast("处理统计", ToastHelper.INFO); + break; + case 5: + ToastHelper.showToast("趋势分析", ToastHelper.INFO); + break; + default: + break; + } +// startActivity(intent); + } + }); + } + + @Override + public void initEvent() { + + } + + @OnClick({R.id.selectStartDateView, R.id.selectEndDateView}) + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.selectStartDateView: + new TimePickerDialog.Builder().setThemeColor(ColorHelper.getResourcesColor(this, R.color.mainThemeColor)) + .setWheelItemTextSize(16) + .setCyclic(false) + .setMinMillseconds(System.currentTimeMillis() - Constant.FIVE_YEARS) + .setMaxMillseconds(System.currentTimeMillis() + Constant.FIVE_YEARS) + .setType(Type.YEAR_MONTH_DAY) + .setCallBack((timePickerView, millSeconds) -> { + startDateView.setText(TimeOrDateUtil.rTimestampToDate(millSeconds)); + }).build().show(getSupportFragmentManager(), "year_month_day"); + break; + case R.id.selectEndDateView: + new TimePickerDialog.Builder().setThemeColor(ColorHelper.getResourcesColor(this, R.color.mainThemeColor)) + .setWheelItemTextSize(16) + .setCyclic(false) + .setMinMillseconds(System.currentTimeMillis() - Constant.FIVE_YEARS) + .setMaxMillseconds(System.currentTimeMillis() + Constant.FIVE_YEARS) + .setType(Type.YEAR_MONTH_DAY) + .setCallBack((timePickerView, millSeconds) -> { + endDateView.setText(TimeOrDateUtil.rTimestampToDate(millSeconds)); + }).build().show(getSupportFragmentManager(), "year_month_day"); + break; + default: + break; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java index cf9a45d..a21d874 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java @@ -17,7 +17,9 @@ import com.casic.dcms.mvp.presenter.UserDataPresenterImpl; import com.casic.dcms.mvp.view.IUserDataView; import com.casic.dcms.ui.CaseUploadActivity; +import com.casic.dcms.ui.DataAnalysisActivity; import com.casic.dcms.utils.StringHelper; +import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIRadiusImageView; import butterknife.BindView; @@ -72,41 +74,43 @@ startActivity(intent); break; case 1: - + ToastHelper.showToast("快速上报", ToastHelper.INFO); break; case 2: - + ToastHelper.showToast("三包上报", ToastHelper.INFO); break; case 3: - + ToastHelper.showToast("案卷核实", ToastHelper.INFO); break; case 4: - + ToastHelper.showToast("案卷核查", ToastHelper.INFO); break; case 5: - + ToastHelper.showToast("案卷处理", ToastHelper.INFO); break; case 6: - + ToastHelper.showToast("紧急要件", ToastHelper.INFO); break; case 7: - + ToastHelper.showToast("超时督办", ToastHelper.INFO); break; case 8: - + intent.setClass(context, DataAnalysisActivity.class); + startActivity(intent); break; case 9: - + ToastHelper.showToast("在岗人员", ToastHelper.INFO); break; case 10: - + ToastHelper.showToast("案卷查询", ToastHelper.INFO); break; case 11: - + ToastHelper.showToast("地图查看", ToastHelper.INFO); break; default: break; } +// startActivity(intent); } }); } diff --git a/app/build.gradle b/app/build.gradle index 4b8dfb7..085c9d4 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -69,6 +69,5 @@ implementation 'com.mapbox.mapboxsdk:mapbox-android-plugin-annotation-v9:0.9.0' implementation 'com.mapbox.mapboxsdk:mapbox-android-plugin-localization-v9:0.12.0' implementation 'com.sdsmdg.tastytoast:tastytoast:0.1.1' - //广告Banner - implementation 'com.youth.banner:banner:1.4.9' + implementation 'com.jzxiang.pickerview:TimePickerDialog:1.0.1' } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 54b3625..ce130a7 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -41,6 +41,7 @@ + { + + private Context context; + + public AnalysisRecycleAdapter(Context context) { + this.context = context; + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = LayoutInflater.from(context).inflate(R.layout.item_home_recycleview, parent, false); + return new ItemViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { + holder.bindView(context, position); + if (clickListener != null) { + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + clickListener.onClick(position); + } + }); + } + } + + @Override + public int getItemCount() { + return Constant.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 ImageView imageView; + private TextView textView; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + imageView = itemView.findViewById(R.id.imageView); + textView = itemView.findViewById(R.id.textView); + } + + void bindView(Context context, int position) { + imageView.setBackgroundResource(Constant.ANALYSIS_ICONS.get(position)); + textView.setText(Constant.ANALYSIS_ITEMS.get(position)); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/DataAnalysisActivity.java b/app/src/main/java/com/casic/dcms/ui/DataAnalysisActivity.java new file mode 100644 index 0000000..1f959b0 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/DataAnalysisActivity.java @@ -0,0 +1,137 @@ +package com.casic.dcms.ui; + +import android.content.Context; +import android.view.View; +import android.widget.ImageView; +import android.widget.TextView; + +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.AnalysisRecycleAdapter; +import com.casic.dcms.base.BaseActivity; +import com.casic.dcms.utils.ColorHelper; +import com.casic.dcms.utils.Constant; +import com.casic.dcms.utils.TimeOrDateUtil; +import com.casic.dcms.utils.ToastHelper; +import com.jzxiang.pickerview.TimePickerDialog; +import com.jzxiang.pickerview.data.Type; +import com.qmuiteam.qmui.widget.QMUITopBarLayout; + +import butterknife.BindView; +import butterknife.OnClick; + +/** + * @author : Pengxh + * @time : 2021/4/15 16:03 + * @email : 290677893@qq.com + **/ +public class DataAnalysisActivity extends BaseActivity implements View.OnClickListener { + + private static final String TAG = "DataAnalysisActivity"; + private Context context = this; + + @BindView(R.id.dataTopLayout) + QMUITopBarLayout dataTopLayout; + @BindView(R.id.startDateView) + TextView startDateView; + @BindView(R.id.selectStartDateView) + ImageView selectStartDateView; + @BindView(R.id.endDateView) + TextView endDateView; + @BindView(R.id.selectEndDateView) + ImageView selectEndDateView; + @BindView(R.id.analysisRecyclerView) + RecyclerView analysisRecyclerView; + + @Override + public int initLayoutView() { + return R.layout.activity_analysis; + } + + @Override + protected void setupTopBarLayout() { + dataTopLayout.setTitle("统计分析").setTextColor(ContextCompat.getColor(this, R.color.white)); + dataTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor)); + dataTopLayout.addLeftImageButton(R.drawable.ic_left_white, 1).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + } + + @Override + public void initData() { + AnalysisRecycleAdapter adapter = new AnalysisRecycleAdapter(this); + analysisRecyclerView.setLayoutManager(new GridLayoutManager(this, 3)); + analysisRecyclerView.setAdapter(adapter); + adapter.setOnGridItemClickListener(new AnalysisRecycleAdapter.OnGridItemClickListener() { + @Override + public void onClick(int position) { +// Intent intent = new Intent(); + switch (position) { + case 0: + ToastHelper.showToast("问题来源", ToastHelper.INFO); + break; + case 1: + ToastHelper.showToast("案卷状态", ToastHelper.INFO); + break; + case 2: + ToastHelper.showToast("高发问题", ToastHelper.INFO); + break; + case 3: + ToastHelper.showToast("街道统计", ToastHelper.INFO); + break; + case 4: + ToastHelper.showToast("处理统计", ToastHelper.INFO); + break; + case 5: + ToastHelper.showToast("趋势分析", ToastHelper.INFO); + break; + default: + break; + } +// startActivity(intent); + } + }); + } + + @Override + public void initEvent() { + + } + + @OnClick({R.id.selectStartDateView, R.id.selectEndDateView}) + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.selectStartDateView: + new TimePickerDialog.Builder().setThemeColor(ColorHelper.getResourcesColor(this, R.color.mainThemeColor)) + .setWheelItemTextSize(16) + .setCyclic(false) + .setMinMillseconds(System.currentTimeMillis() - Constant.FIVE_YEARS) + .setMaxMillseconds(System.currentTimeMillis() + Constant.FIVE_YEARS) + .setType(Type.YEAR_MONTH_DAY) + .setCallBack((timePickerView, millSeconds) -> { + startDateView.setText(TimeOrDateUtil.rTimestampToDate(millSeconds)); + }).build().show(getSupportFragmentManager(), "year_month_day"); + break; + case R.id.selectEndDateView: + new TimePickerDialog.Builder().setThemeColor(ColorHelper.getResourcesColor(this, R.color.mainThemeColor)) + .setWheelItemTextSize(16) + .setCyclic(false) + .setMinMillseconds(System.currentTimeMillis() - Constant.FIVE_YEARS) + .setMaxMillseconds(System.currentTimeMillis() + Constant.FIVE_YEARS) + .setType(Type.YEAR_MONTH_DAY) + .setCallBack((timePickerView, millSeconds) -> { + endDateView.setText(TimeOrDateUtil.rTimestampToDate(millSeconds)); + }).build().show(getSupportFragmentManager(), "year_month_day"); + break; + default: + break; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java index cf9a45d..a21d874 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java @@ -17,7 +17,9 @@ import com.casic.dcms.mvp.presenter.UserDataPresenterImpl; import com.casic.dcms.mvp.view.IUserDataView; import com.casic.dcms.ui.CaseUploadActivity; +import com.casic.dcms.ui.DataAnalysisActivity; import com.casic.dcms.utils.StringHelper; +import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIRadiusImageView; import butterknife.BindView; @@ -72,41 +74,43 @@ startActivity(intent); break; case 1: - + ToastHelper.showToast("快速上报", ToastHelper.INFO); break; case 2: - + ToastHelper.showToast("三包上报", ToastHelper.INFO); break; case 3: - + ToastHelper.showToast("案卷核实", ToastHelper.INFO); break; case 4: - + ToastHelper.showToast("案卷核查", ToastHelper.INFO); break; case 5: - + ToastHelper.showToast("案卷处理", ToastHelper.INFO); break; case 6: - + ToastHelper.showToast("紧急要件", ToastHelper.INFO); break; case 7: - + ToastHelper.showToast("超时督办", ToastHelper.INFO); break; case 8: - + intent.setClass(context, DataAnalysisActivity.class); + startActivity(intent); break; case 9: - + ToastHelper.showToast("在岗人员", ToastHelper.INFO); break; case 10: - + ToastHelper.showToast("案卷查询", ToastHelper.INFO); break; case 11: - + ToastHelper.showToast("地图查看", ToastHelper.INFO); break; default: break; } +// startActivity(intent); } }); } diff --git a/app/src/main/java/com/casic/dcms/utils/Constant.java b/app/src/main/java/com/casic/dcms/utils/Constant.java index 899d916..4ad3a5d 100644 --- a/app/src/main/java/com/casic/dcms/utils/Constant.java +++ b/app/src/main/java/com/casic/dcms/utils/Constant.java @@ -20,6 +20,14 @@ "紧急要件", "超时督办", "统计分析", "在岗人员", "案卷查询", "地图查看"); + public static final List ANALYSIS_ICONS = Arrays.asList( + R.mipmap.sbsb, R.mipmap.jjyj, R.mipmap.csdb, + R.mipmap.ajcl, R.mipmap.tjfx, R.mipmap.ajhc); + + public static final List ANALYSIS_ITEMS = Arrays.asList( + "问题来源", "案卷状态", "高发问题", + "街道统计", "处理统计", "趋势分析"); + public static final String[] USER_PERMISSIONS = { Manifest.permission.ACCESS_COARSE_LOCATION, Manifest.permission.ACCESS_FINE_LOCATION, @@ -36,4 +44,6 @@ public static final String IP_KEY = "BASE_IP"; public static final String LOGIN_OUT_ACTION = "loginOut"; + + public static final long FIVE_YEARS = 5L * 365 * 1000 * 60 * 60 * 24L; } diff --git a/app/build.gradle b/app/build.gradle index 4b8dfb7..085c9d4 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -69,6 +69,5 @@ implementation 'com.mapbox.mapboxsdk:mapbox-android-plugin-annotation-v9:0.9.0' implementation 'com.mapbox.mapboxsdk:mapbox-android-plugin-localization-v9:0.12.0' implementation 'com.sdsmdg.tastytoast:tastytoast:0.1.1' - //广告Banner - implementation 'com.youth.banner:banner:1.4.9' + implementation 'com.jzxiang.pickerview:TimePickerDialog:1.0.1' } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 54b3625..ce130a7 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -41,6 +41,7 @@ + { + + private Context context; + + public AnalysisRecycleAdapter(Context context) { + this.context = context; + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = LayoutInflater.from(context).inflate(R.layout.item_home_recycleview, parent, false); + return new ItemViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { + holder.bindView(context, position); + if (clickListener != null) { + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + clickListener.onClick(position); + } + }); + } + } + + @Override + public int getItemCount() { + return Constant.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 ImageView imageView; + private TextView textView; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + imageView = itemView.findViewById(R.id.imageView); + textView = itemView.findViewById(R.id.textView); + } + + void bindView(Context context, int position) { + imageView.setBackgroundResource(Constant.ANALYSIS_ICONS.get(position)); + textView.setText(Constant.ANALYSIS_ITEMS.get(position)); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/DataAnalysisActivity.java b/app/src/main/java/com/casic/dcms/ui/DataAnalysisActivity.java new file mode 100644 index 0000000..1f959b0 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/DataAnalysisActivity.java @@ -0,0 +1,137 @@ +package com.casic.dcms.ui; + +import android.content.Context; +import android.view.View; +import android.widget.ImageView; +import android.widget.TextView; + +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.AnalysisRecycleAdapter; +import com.casic.dcms.base.BaseActivity; +import com.casic.dcms.utils.ColorHelper; +import com.casic.dcms.utils.Constant; +import com.casic.dcms.utils.TimeOrDateUtil; +import com.casic.dcms.utils.ToastHelper; +import com.jzxiang.pickerview.TimePickerDialog; +import com.jzxiang.pickerview.data.Type; +import com.qmuiteam.qmui.widget.QMUITopBarLayout; + +import butterknife.BindView; +import butterknife.OnClick; + +/** + * @author : Pengxh + * @time : 2021/4/15 16:03 + * @email : 290677893@qq.com + **/ +public class DataAnalysisActivity extends BaseActivity implements View.OnClickListener { + + private static final String TAG = "DataAnalysisActivity"; + private Context context = this; + + @BindView(R.id.dataTopLayout) + QMUITopBarLayout dataTopLayout; + @BindView(R.id.startDateView) + TextView startDateView; + @BindView(R.id.selectStartDateView) + ImageView selectStartDateView; + @BindView(R.id.endDateView) + TextView endDateView; + @BindView(R.id.selectEndDateView) + ImageView selectEndDateView; + @BindView(R.id.analysisRecyclerView) + RecyclerView analysisRecyclerView; + + @Override + public int initLayoutView() { + return R.layout.activity_analysis; + } + + @Override + protected void setupTopBarLayout() { + dataTopLayout.setTitle("统计分析").setTextColor(ContextCompat.getColor(this, R.color.white)); + dataTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor)); + dataTopLayout.addLeftImageButton(R.drawable.ic_left_white, 1).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + } + + @Override + public void initData() { + AnalysisRecycleAdapter adapter = new AnalysisRecycleAdapter(this); + analysisRecyclerView.setLayoutManager(new GridLayoutManager(this, 3)); + analysisRecyclerView.setAdapter(adapter); + adapter.setOnGridItemClickListener(new AnalysisRecycleAdapter.OnGridItemClickListener() { + @Override + public void onClick(int position) { +// Intent intent = new Intent(); + switch (position) { + case 0: + ToastHelper.showToast("问题来源", ToastHelper.INFO); + break; + case 1: + ToastHelper.showToast("案卷状态", ToastHelper.INFO); + break; + case 2: + ToastHelper.showToast("高发问题", ToastHelper.INFO); + break; + case 3: + ToastHelper.showToast("街道统计", ToastHelper.INFO); + break; + case 4: + ToastHelper.showToast("处理统计", ToastHelper.INFO); + break; + case 5: + ToastHelper.showToast("趋势分析", ToastHelper.INFO); + break; + default: + break; + } +// startActivity(intent); + } + }); + } + + @Override + public void initEvent() { + + } + + @OnClick({R.id.selectStartDateView, R.id.selectEndDateView}) + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.selectStartDateView: + new TimePickerDialog.Builder().setThemeColor(ColorHelper.getResourcesColor(this, R.color.mainThemeColor)) + .setWheelItemTextSize(16) + .setCyclic(false) + .setMinMillseconds(System.currentTimeMillis() - Constant.FIVE_YEARS) + .setMaxMillseconds(System.currentTimeMillis() + Constant.FIVE_YEARS) + .setType(Type.YEAR_MONTH_DAY) + .setCallBack((timePickerView, millSeconds) -> { + startDateView.setText(TimeOrDateUtil.rTimestampToDate(millSeconds)); + }).build().show(getSupportFragmentManager(), "year_month_day"); + break; + case R.id.selectEndDateView: + new TimePickerDialog.Builder().setThemeColor(ColorHelper.getResourcesColor(this, R.color.mainThemeColor)) + .setWheelItemTextSize(16) + .setCyclic(false) + .setMinMillseconds(System.currentTimeMillis() - Constant.FIVE_YEARS) + .setMaxMillseconds(System.currentTimeMillis() + Constant.FIVE_YEARS) + .setType(Type.YEAR_MONTH_DAY) + .setCallBack((timePickerView, millSeconds) -> { + endDateView.setText(TimeOrDateUtil.rTimestampToDate(millSeconds)); + }).build().show(getSupportFragmentManager(), "year_month_day"); + break; + default: + break; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java index cf9a45d..a21d874 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java @@ -17,7 +17,9 @@ import com.casic.dcms.mvp.presenter.UserDataPresenterImpl; import com.casic.dcms.mvp.view.IUserDataView; import com.casic.dcms.ui.CaseUploadActivity; +import com.casic.dcms.ui.DataAnalysisActivity; import com.casic.dcms.utils.StringHelper; +import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIRadiusImageView; import butterknife.BindView; @@ -72,41 +74,43 @@ startActivity(intent); break; case 1: - + ToastHelper.showToast("快速上报", ToastHelper.INFO); break; case 2: - + ToastHelper.showToast("三包上报", ToastHelper.INFO); break; case 3: - + ToastHelper.showToast("案卷核实", ToastHelper.INFO); break; case 4: - + ToastHelper.showToast("案卷核查", ToastHelper.INFO); break; case 5: - + ToastHelper.showToast("案卷处理", ToastHelper.INFO); break; case 6: - + ToastHelper.showToast("紧急要件", ToastHelper.INFO); break; case 7: - + ToastHelper.showToast("超时督办", ToastHelper.INFO); break; case 8: - + intent.setClass(context, DataAnalysisActivity.class); + startActivity(intent); break; case 9: - + ToastHelper.showToast("在岗人员", ToastHelper.INFO); break; case 10: - + ToastHelper.showToast("案卷查询", ToastHelper.INFO); break; case 11: - + ToastHelper.showToast("地图查看", ToastHelper.INFO); break; default: break; } +// startActivity(intent); } }); } diff --git a/app/src/main/java/com/casic/dcms/utils/Constant.java b/app/src/main/java/com/casic/dcms/utils/Constant.java index 899d916..4ad3a5d 100644 --- a/app/src/main/java/com/casic/dcms/utils/Constant.java +++ b/app/src/main/java/com/casic/dcms/utils/Constant.java @@ -20,6 +20,14 @@ "紧急要件", "超时督办", "统计分析", "在岗人员", "案卷查询", "地图查看"); + public static final List ANALYSIS_ICONS = Arrays.asList( + R.mipmap.sbsb, R.mipmap.jjyj, R.mipmap.csdb, + R.mipmap.ajcl, R.mipmap.tjfx, R.mipmap.ajhc); + + public static final List ANALYSIS_ITEMS = Arrays.asList( + "问题来源", "案卷状态", "高发问题", + "街道统计", "处理统计", "趋势分析"); + public static final String[] USER_PERMISSIONS = { Manifest.permission.ACCESS_COARSE_LOCATION, Manifest.permission.ACCESS_FINE_LOCATION, @@ -36,4 +44,6 @@ public static final String IP_KEY = "BASE_IP"; public static final String LOGIN_OUT_ACTION = "loginOut"; + + public static final long FIVE_YEARS = 5L * 365 * 1000 * 60 * 60 * 24L; } diff --git a/app/src/main/java/com/casic/dcms/utils/TimeOrDateUtil.java b/app/src/main/java/com/casic/dcms/utils/TimeOrDateUtil.java new file mode 100644 index 0000000..61aa9ec --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/TimeOrDateUtil.java @@ -0,0 +1,60 @@ +package com.casic.dcms.utils; + +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.Calendar; +import java.util.Date; + +/** + * @author : Pengxh + * @time : 2021/4/15 16:54 + * @email : 290677893@qq.com + **/ +public class TimeOrDateUtil { + private static final String TAG = "TimeOrDateUtil"; + private static final SimpleDateFormat allDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + private static final SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); + private static final SimpleDateFormat timeFormat = new SimpleDateFormat("HH:mm:ss"); + + /** + * 时间戳转日期 + */ + public static String rTimestampToDate(long millSeconds) { + return dateFormat.format(new Date(millSeconds)); + } + + /** + * 时间戳转时间 + */ + public static String timestampToTime(long millSeconds) { + return timeFormat.format(new Date(millSeconds)); + } + + /** + * 时间戳转详细日期时间 + */ + public static String timestampToDate(long millSeconds) { + return allDateFormat.format(new Date(millSeconds)); + } + + /** + * 时间转时间戳 + */ + public static long dateToTimestamp(String time) { + try { + return allDateFormat.parse(time).getTime(); + } catch (ParseException e) { + e.printStackTrace(); + } + return 0L; + } + + /** + * 获取当前日期 + */ + public static String getCurrentDate() { + Calendar calendar = Calendar.getInstance(); + long today = calendar.getTimeInMillis(); + return rTimestampToDate(today); + } +} diff --git a/app/build.gradle b/app/build.gradle index 4b8dfb7..085c9d4 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -69,6 +69,5 @@ implementation 'com.mapbox.mapboxsdk:mapbox-android-plugin-annotation-v9:0.9.0' implementation 'com.mapbox.mapboxsdk:mapbox-android-plugin-localization-v9:0.12.0' implementation 'com.sdsmdg.tastytoast:tastytoast:0.1.1' - //广告Banner - implementation 'com.youth.banner:banner:1.4.9' + implementation 'com.jzxiang.pickerview:TimePickerDialog:1.0.1' } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 54b3625..ce130a7 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -41,6 +41,7 @@ + { + + private Context context; + + public AnalysisRecycleAdapter(Context context) { + this.context = context; + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = LayoutInflater.from(context).inflate(R.layout.item_home_recycleview, parent, false); + return new ItemViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { + holder.bindView(context, position); + if (clickListener != null) { + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + clickListener.onClick(position); + } + }); + } + } + + @Override + public int getItemCount() { + return Constant.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 ImageView imageView; + private TextView textView; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + imageView = itemView.findViewById(R.id.imageView); + textView = itemView.findViewById(R.id.textView); + } + + void bindView(Context context, int position) { + imageView.setBackgroundResource(Constant.ANALYSIS_ICONS.get(position)); + textView.setText(Constant.ANALYSIS_ITEMS.get(position)); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/DataAnalysisActivity.java b/app/src/main/java/com/casic/dcms/ui/DataAnalysisActivity.java new file mode 100644 index 0000000..1f959b0 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/DataAnalysisActivity.java @@ -0,0 +1,137 @@ +package com.casic.dcms.ui; + +import android.content.Context; +import android.view.View; +import android.widget.ImageView; +import android.widget.TextView; + +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.AnalysisRecycleAdapter; +import com.casic.dcms.base.BaseActivity; +import com.casic.dcms.utils.ColorHelper; +import com.casic.dcms.utils.Constant; +import com.casic.dcms.utils.TimeOrDateUtil; +import com.casic.dcms.utils.ToastHelper; +import com.jzxiang.pickerview.TimePickerDialog; +import com.jzxiang.pickerview.data.Type; +import com.qmuiteam.qmui.widget.QMUITopBarLayout; + +import butterknife.BindView; +import butterknife.OnClick; + +/** + * @author : Pengxh + * @time : 2021/4/15 16:03 + * @email : 290677893@qq.com + **/ +public class DataAnalysisActivity extends BaseActivity implements View.OnClickListener { + + private static final String TAG = "DataAnalysisActivity"; + private Context context = this; + + @BindView(R.id.dataTopLayout) + QMUITopBarLayout dataTopLayout; + @BindView(R.id.startDateView) + TextView startDateView; + @BindView(R.id.selectStartDateView) + ImageView selectStartDateView; + @BindView(R.id.endDateView) + TextView endDateView; + @BindView(R.id.selectEndDateView) + ImageView selectEndDateView; + @BindView(R.id.analysisRecyclerView) + RecyclerView analysisRecyclerView; + + @Override + public int initLayoutView() { + return R.layout.activity_analysis; + } + + @Override + protected void setupTopBarLayout() { + dataTopLayout.setTitle("统计分析").setTextColor(ContextCompat.getColor(this, R.color.white)); + dataTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor)); + dataTopLayout.addLeftImageButton(R.drawable.ic_left_white, 1).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + } + + @Override + public void initData() { + AnalysisRecycleAdapter adapter = new AnalysisRecycleAdapter(this); + analysisRecyclerView.setLayoutManager(new GridLayoutManager(this, 3)); + analysisRecyclerView.setAdapter(adapter); + adapter.setOnGridItemClickListener(new AnalysisRecycleAdapter.OnGridItemClickListener() { + @Override + public void onClick(int position) { +// Intent intent = new Intent(); + switch (position) { + case 0: + ToastHelper.showToast("问题来源", ToastHelper.INFO); + break; + case 1: + ToastHelper.showToast("案卷状态", ToastHelper.INFO); + break; + case 2: + ToastHelper.showToast("高发问题", ToastHelper.INFO); + break; + case 3: + ToastHelper.showToast("街道统计", ToastHelper.INFO); + break; + case 4: + ToastHelper.showToast("处理统计", ToastHelper.INFO); + break; + case 5: + ToastHelper.showToast("趋势分析", ToastHelper.INFO); + break; + default: + break; + } +// startActivity(intent); + } + }); + } + + @Override + public void initEvent() { + + } + + @OnClick({R.id.selectStartDateView, R.id.selectEndDateView}) + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.selectStartDateView: + new TimePickerDialog.Builder().setThemeColor(ColorHelper.getResourcesColor(this, R.color.mainThemeColor)) + .setWheelItemTextSize(16) + .setCyclic(false) + .setMinMillseconds(System.currentTimeMillis() - Constant.FIVE_YEARS) + .setMaxMillseconds(System.currentTimeMillis() + Constant.FIVE_YEARS) + .setType(Type.YEAR_MONTH_DAY) + .setCallBack((timePickerView, millSeconds) -> { + startDateView.setText(TimeOrDateUtil.rTimestampToDate(millSeconds)); + }).build().show(getSupportFragmentManager(), "year_month_day"); + break; + case R.id.selectEndDateView: + new TimePickerDialog.Builder().setThemeColor(ColorHelper.getResourcesColor(this, R.color.mainThemeColor)) + .setWheelItemTextSize(16) + .setCyclic(false) + .setMinMillseconds(System.currentTimeMillis() - Constant.FIVE_YEARS) + .setMaxMillseconds(System.currentTimeMillis() + Constant.FIVE_YEARS) + .setType(Type.YEAR_MONTH_DAY) + .setCallBack((timePickerView, millSeconds) -> { + endDateView.setText(TimeOrDateUtil.rTimestampToDate(millSeconds)); + }).build().show(getSupportFragmentManager(), "year_month_day"); + break; + default: + break; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java index cf9a45d..a21d874 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java @@ -17,7 +17,9 @@ import com.casic.dcms.mvp.presenter.UserDataPresenterImpl; import com.casic.dcms.mvp.view.IUserDataView; import com.casic.dcms.ui.CaseUploadActivity; +import com.casic.dcms.ui.DataAnalysisActivity; import com.casic.dcms.utils.StringHelper; +import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIRadiusImageView; import butterknife.BindView; @@ -72,41 +74,43 @@ startActivity(intent); break; case 1: - + ToastHelper.showToast("快速上报", ToastHelper.INFO); break; case 2: - + ToastHelper.showToast("三包上报", ToastHelper.INFO); break; case 3: - + ToastHelper.showToast("案卷核实", ToastHelper.INFO); break; case 4: - + ToastHelper.showToast("案卷核查", ToastHelper.INFO); break; case 5: - + ToastHelper.showToast("案卷处理", ToastHelper.INFO); break; case 6: - + ToastHelper.showToast("紧急要件", ToastHelper.INFO); break; case 7: - + ToastHelper.showToast("超时督办", ToastHelper.INFO); break; case 8: - + intent.setClass(context, DataAnalysisActivity.class); + startActivity(intent); break; case 9: - + ToastHelper.showToast("在岗人员", ToastHelper.INFO); break; case 10: - + ToastHelper.showToast("案卷查询", ToastHelper.INFO); break; case 11: - + ToastHelper.showToast("地图查看", ToastHelper.INFO); break; default: break; } +// startActivity(intent); } }); } diff --git a/app/src/main/java/com/casic/dcms/utils/Constant.java b/app/src/main/java/com/casic/dcms/utils/Constant.java index 899d916..4ad3a5d 100644 --- a/app/src/main/java/com/casic/dcms/utils/Constant.java +++ b/app/src/main/java/com/casic/dcms/utils/Constant.java @@ -20,6 +20,14 @@ "紧急要件", "超时督办", "统计分析", "在岗人员", "案卷查询", "地图查看"); + public static final List ANALYSIS_ICONS = Arrays.asList( + R.mipmap.sbsb, R.mipmap.jjyj, R.mipmap.csdb, + R.mipmap.ajcl, R.mipmap.tjfx, R.mipmap.ajhc); + + public static final List ANALYSIS_ITEMS = Arrays.asList( + "问题来源", "案卷状态", "高发问题", + "街道统计", "处理统计", "趋势分析"); + public static final String[] USER_PERMISSIONS = { Manifest.permission.ACCESS_COARSE_LOCATION, Manifest.permission.ACCESS_FINE_LOCATION, @@ -36,4 +44,6 @@ public static final String IP_KEY = "BASE_IP"; public static final String LOGIN_OUT_ACTION = "loginOut"; + + public static final long FIVE_YEARS = 5L * 365 * 1000 * 60 * 60 * 24L; } diff --git a/app/src/main/java/com/casic/dcms/utils/TimeOrDateUtil.java b/app/src/main/java/com/casic/dcms/utils/TimeOrDateUtil.java new file mode 100644 index 0000000..61aa9ec --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/TimeOrDateUtil.java @@ -0,0 +1,60 @@ +package com.casic.dcms.utils; + +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.Calendar; +import java.util.Date; + +/** + * @author : Pengxh + * @time : 2021/4/15 16:54 + * @email : 290677893@qq.com + **/ +public class TimeOrDateUtil { + private static final String TAG = "TimeOrDateUtil"; + private static final SimpleDateFormat allDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + private static final SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); + private static final SimpleDateFormat timeFormat = new SimpleDateFormat("HH:mm:ss"); + + /** + * 时间戳转日期 + */ + public static String rTimestampToDate(long millSeconds) { + return dateFormat.format(new Date(millSeconds)); + } + + /** + * 时间戳转时间 + */ + public static String timestampToTime(long millSeconds) { + return timeFormat.format(new Date(millSeconds)); + } + + /** + * 时间戳转详细日期时间 + */ + public static String timestampToDate(long millSeconds) { + return allDateFormat.format(new Date(millSeconds)); + } + + /** + * 时间转时间戳 + */ + public static long dateToTimestamp(String time) { + try { + return allDateFormat.parse(time).getTime(); + } catch (ParseException e) { + e.printStackTrace(); + } + return 0L; + } + + /** + * 获取当前日期 + */ + public static String getCurrentDate() { + Calendar calendar = Calendar.getInstance(); + long today = calendar.getTimeInMillis(); + return rTimestampToDate(today); + } +} diff --git a/app/src/main/res/drawable/bg_layout.xml b/app/src/main/res/drawable/bg_layout.xml index ff02e0d..949d474 100644 --- a/app/src/main/res/drawable/bg_layout.xml +++ b/app/src/main/res/drawable/bg_layout.xml @@ -4,5 +4,7 @@ - + \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index 4b8dfb7..085c9d4 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -69,6 +69,5 @@ implementation 'com.mapbox.mapboxsdk:mapbox-android-plugin-annotation-v9:0.9.0' implementation 'com.mapbox.mapboxsdk:mapbox-android-plugin-localization-v9:0.12.0' implementation 'com.sdsmdg.tastytoast:tastytoast:0.1.1' - //广告Banner - implementation 'com.youth.banner:banner:1.4.9' + implementation 'com.jzxiang.pickerview:TimePickerDialog:1.0.1' } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 54b3625..ce130a7 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -41,6 +41,7 @@ + { + + private Context context; + + public AnalysisRecycleAdapter(Context context) { + this.context = context; + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = LayoutInflater.from(context).inflate(R.layout.item_home_recycleview, parent, false); + return new ItemViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { + holder.bindView(context, position); + if (clickListener != null) { + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + clickListener.onClick(position); + } + }); + } + } + + @Override + public int getItemCount() { + return Constant.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 ImageView imageView; + private TextView textView; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + imageView = itemView.findViewById(R.id.imageView); + textView = itemView.findViewById(R.id.textView); + } + + void bindView(Context context, int position) { + imageView.setBackgroundResource(Constant.ANALYSIS_ICONS.get(position)); + textView.setText(Constant.ANALYSIS_ITEMS.get(position)); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/DataAnalysisActivity.java b/app/src/main/java/com/casic/dcms/ui/DataAnalysisActivity.java new file mode 100644 index 0000000..1f959b0 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/DataAnalysisActivity.java @@ -0,0 +1,137 @@ +package com.casic.dcms.ui; + +import android.content.Context; +import android.view.View; +import android.widget.ImageView; +import android.widget.TextView; + +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.AnalysisRecycleAdapter; +import com.casic.dcms.base.BaseActivity; +import com.casic.dcms.utils.ColorHelper; +import com.casic.dcms.utils.Constant; +import com.casic.dcms.utils.TimeOrDateUtil; +import com.casic.dcms.utils.ToastHelper; +import com.jzxiang.pickerview.TimePickerDialog; +import com.jzxiang.pickerview.data.Type; +import com.qmuiteam.qmui.widget.QMUITopBarLayout; + +import butterknife.BindView; +import butterknife.OnClick; + +/** + * @author : Pengxh + * @time : 2021/4/15 16:03 + * @email : 290677893@qq.com + **/ +public class DataAnalysisActivity extends BaseActivity implements View.OnClickListener { + + private static final String TAG = "DataAnalysisActivity"; + private Context context = this; + + @BindView(R.id.dataTopLayout) + QMUITopBarLayout dataTopLayout; + @BindView(R.id.startDateView) + TextView startDateView; + @BindView(R.id.selectStartDateView) + ImageView selectStartDateView; + @BindView(R.id.endDateView) + TextView endDateView; + @BindView(R.id.selectEndDateView) + ImageView selectEndDateView; + @BindView(R.id.analysisRecyclerView) + RecyclerView analysisRecyclerView; + + @Override + public int initLayoutView() { + return R.layout.activity_analysis; + } + + @Override + protected void setupTopBarLayout() { + dataTopLayout.setTitle("统计分析").setTextColor(ContextCompat.getColor(this, R.color.white)); + dataTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor)); + dataTopLayout.addLeftImageButton(R.drawable.ic_left_white, 1).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + } + + @Override + public void initData() { + AnalysisRecycleAdapter adapter = new AnalysisRecycleAdapter(this); + analysisRecyclerView.setLayoutManager(new GridLayoutManager(this, 3)); + analysisRecyclerView.setAdapter(adapter); + adapter.setOnGridItemClickListener(new AnalysisRecycleAdapter.OnGridItemClickListener() { + @Override + public void onClick(int position) { +// Intent intent = new Intent(); + switch (position) { + case 0: + ToastHelper.showToast("问题来源", ToastHelper.INFO); + break; + case 1: + ToastHelper.showToast("案卷状态", ToastHelper.INFO); + break; + case 2: + ToastHelper.showToast("高发问题", ToastHelper.INFO); + break; + case 3: + ToastHelper.showToast("街道统计", ToastHelper.INFO); + break; + case 4: + ToastHelper.showToast("处理统计", ToastHelper.INFO); + break; + case 5: + ToastHelper.showToast("趋势分析", ToastHelper.INFO); + break; + default: + break; + } +// startActivity(intent); + } + }); + } + + @Override + public void initEvent() { + + } + + @OnClick({R.id.selectStartDateView, R.id.selectEndDateView}) + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.selectStartDateView: + new TimePickerDialog.Builder().setThemeColor(ColorHelper.getResourcesColor(this, R.color.mainThemeColor)) + .setWheelItemTextSize(16) + .setCyclic(false) + .setMinMillseconds(System.currentTimeMillis() - Constant.FIVE_YEARS) + .setMaxMillseconds(System.currentTimeMillis() + Constant.FIVE_YEARS) + .setType(Type.YEAR_MONTH_DAY) + .setCallBack((timePickerView, millSeconds) -> { + startDateView.setText(TimeOrDateUtil.rTimestampToDate(millSeconds)); + }).build().show(getSupportFragmentManager(), "year_month_day"); + break; + case R.id.selectEndDateView: + new TimePickerDialog.Builder().setThemeColor(ColorHelper.getResourcesColor(this, R.color.mainThemeColor)) + .setWheelItemTextSize(16) + .setCyclic(false) + .setMinMillseconds(System.currentTimeMillis() - Constant.FIVE_YEARS) + .setMaxMillseconds(System.currentTimeMillis() + Constant.FIVE_YEARS) + .setType(Type.YEAR_MONTH_DAY) + .setCallBack((timePickerView, millSeconds) -> { + endDateView.setText(TimeOrDateUtil.rTimestampToDate(millSeconds)); + }).build().show(getSupportFragmentManager(), "year_month_day"); + break; + default: + break; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java index cf9a45d..a21d874 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java @@ -17,7 +17,9 @@ import com.casic.dcms.mvp.presenter.UserDataPresenterImpl; import com.casic.dcms.mvp.view.IUserDataView; import com.casic.dcms.ui.CaseUploadActivity; +import com.casic.dcms.ui.DataAnalysisActivity; import com.casic.dcms.utils.StringHelper; +import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIRadiusImageView; import butterknife.BindView; @@ -72,41 +74,43 @@ startActivity(intent); break; case 1: - + ToastHelper.showToast("快速上报", ToastHelper.INFO); break; case 2: - + ToastHelper.showToast("三包上报", ToastHelper.INFO); break; case 3: - + ToastHelper.showToast("案卷核实", ToastHelper.INFO); break; case 4: - + ToastHelper.showToast("案卷核查", ToastHelper.INFO); break; case 5: - + ToastHelper.showToast("案卷处理", ToastHelper.INFO); break; case 6: - + ToastHelper.showToast("紧急要件", ToastHelper.INFO); break; case 7: - + ToastHelper.showToast("超时督办", ToastHelper.INFO); break; case 8: - + intent.setClass(context, DataAnalysisActivity.class); + startActivity(intent); break; case 9: - + ToastHelper.showToast("在岗人员", ToastHelper.INFO); break; case 10: - + ToastHelper.showToast("案卷查询", ToastHelper.INFO); break; case 11: - + ToastHelper.showToast("地图查看", ToastHelper.INFO); break; default: break; } +// startActivity(intent); } }); } diff --git a/app/src/main/java/com/casic/dcms/utils/Constant.java b/app/src/main/java/com/casic/dcms/utils/Constant.java index 899d916..4ad3a5d 100644 --- a/app/src/main/java/com/casic/dcms/utils/Constant.java +++ b/app/src/main/java/com/casic/dcms/utils/Constant.java @@ -20,6 +20,14 @@ "紧急要件", "超时督办", "统计分析", "在岗人员", "案卷查询", "地图查看"); + public static final List ANALYSIS_ICONS = Arrays.asList( + R.mipmap.sbsb, R.mipmap.jjyj, R.mipmap.csdb, + R.mipmap.ajcl, R.mipmap.tjfx, R.mipmap.ajhc); + + public static final List ANALYSIS_ITEMS = Arrays.asList( + "问题来源", "案卷状态", "高发问题", + "街道统计", "处理统计", "趋势分析"); + public static final String[] USER_PERMISSIONS = { Manifest.permission.ACCESS_COARSE_LOCATION, Manifest.permission.ACCESS_FINE_LOCATION, @@ -36,4 +44,6 @@ public static final String IP_KEY = "BASE_IP"; public static final String LOGIN_OUT_ACTION = "loginOut"; + + public static final long FIVE_YEARS = 5L * 365 * 1000 * 60 * 60 * 24L; } diff --git a/app/src/main/java/com/casic/dcms/utils/TimeOrDateUtil.java b/app/src/main/java/com/casic/dcms/utils/TimeOrDateUtil.java new file mode 100644 index 0000000..61aa9ec --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/TimeOrDateUtil.java @@ -0,0 +1,60 @@ +package com.casic.dcms.utils; + +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.Calendar; +import java.util.Date; + +/** + * @author : Pengxh + * @time : 2021/4/15 16:54 + * @email : 290677893@qq.com + **/ +public class TimeOrDateUtil { + private static final String TAG = "TimeOrDateUtil"; + private static final SimpleDateFormat allDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + private static final SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); + private static final SimpleDateFormat timeFormat = new SimpleDateFormat("HH:mm:ss"); + + /** + * 时间戳转日期 + */ + public static String rTimestampToDate(long millSeconds) { + return dateFormat.format(new Date(millSeconds)); + } + + /** + * 时间戳转时间 + */ + public static String timestampToTime(long millSeconds) { + return timeFormat.format(new Date(millSeconds)); + } + + /** + * 时间戳转详细日期时间 + */ + public static String timestampToDate(long millSeconds) { + return allDateFormat.format(new Date(millSeconds)); + } + + /** + * 时间转时间戳 + */ + public static long dateToTimestamp(String time) { + try { + return allDateFormat.parse(time).getTime(); + } catch (ParseException e) { + e.printStackTrace(); + } + return 0L; + } + + /** + * 获取当前日期 + */ + public static String getCurrentDate() { + Calendar calendar = Calendar.getInstance(); + long today = calendar.getTimeInMillis(); + return rTimestampToDate(today); + } +} diff --git a/app/src/main/res/drawable/bg_layout.xml b/app/src/main/res/drawable/bg_layout.xml index ff02e0d..949d474 100644 --- a/app/src/main/res/drawable/bg_layout.xml +++ b/app/src/main/res/drawable/bg_layout.xml @@ -4,5 +4,7 @@ - + \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_down.xml b/app/src/main/res/drawable/ic_down.xml new file mode 100644 index 0000000..d147ca2 --- /dev/null +++ b/app/src/main/res/drawable/ic_down.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/build.gradle b/app/build.gradle index 4b8dfb7..085c9d4 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -69,6 +69,5 @@ implementation 'com.mapbox.mapboxsdk:mapbox-android-plugin-annotation-v9:0.9.0' implementation 'com.mapbox.mapboxsdk:mapbox-android-plugin-localization-v9:0.12.0' implementation 'com.sdsmdg.tastytoast:tastytoast:0.1.1' - //广告Banner - implementation 'com.youth.banner:banner:1.4.9' + implementation 'com.jzxiang.pickerview:TimePickerDialog:1.0.1' } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 54b3625..ce130a7 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -41,6 +41,7 @@ + { + + private Context context; + + public AnalysisRecycleAdapter(Context context) { + this.context = context; + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = LayoutInflater.from(context).inflate(R.layout.item_home_recycleview, parent, false); + return new ItemViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { + holder.bindView(context, position); + if (clickListener != null) { + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + clickListener.onClick(position); + } + }); + } + } + + @Override + public int getItemCount() { + return Constant.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 ImageView imageView; + private TextView textView; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + imageView = itemView.findViewById(R.id.imageView); + textView = itemView.findViewById(R.id.textView); + } + + void bindView(Context context, int position) { + imageView.setBackgroundResource(Constant.ANALYSIS_ICONS.get(position)); + textView.setText(Constant.ANALYSIS_ITEMS.get(position)); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/DataAnalysisActivity.java b/app/src/main/java/com/casic/dcms/ui/DataAnalysisActivity.java new file mode 100644 index 0000000..1f959b0 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/DataAnalysisActivity.java @@ -0,0 +1,137 @@ +package com.casic.dcms.ui; + +import android.content.Context; +import android.view.View; +import android.widget.ImageView; +import android.widget.TextView; + +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.AnalysisRecycleAdapter; +import com.casic.dcms.base.BaseActivity; +import com.casic.dcms.utils.ColorHelper; +import com.casic.dcms.utils.Constant; +import com.casic.dcms.utils.TimeOrDateUtil; +import com.casic.dcms.utils.ToastHelper; +import com.jzxiang.pickerview.TimePickerDialog; +import com.jzxiang.pickerview.data.Type; +import com.qmuiteam.qmui.widget.QMUITopBarLayout; + +import butterknife.BindView; +import butterknife.OnClick; + +/** + * @author : Pengxh + * @time : 2021/4/15 16:03 + * @email : 290677893@qq.com + **/ +public class DataAnalysisActivity extends BaseActivity implements View.OnClickListener { + + private static final String TAG = "DataAnalysisActivity"; + private Context context = this; + + @BindView(R.id.dataTopLayout) + QMUITopBarLayout dataTopLayout; + @BindView(R.id.startDateView) + TextView startDateView; + @BindView(R.id.selectStartDateView) + ImageView selectStartDateView; + @BindView(R.id.endDateView) + TextView endDateView; + @BindView(R.id.selectEndDateView) + ImageView selectEndDateView; + @BindView(R.id.analysisRecyclerView) + RecyclerView analysisRecyclerView; + + @Override + public int initLayoutView() { + return R.layout.activity_analysis; + } + + @Override + protected void setupTopBarLayout() { + dataTopLayout.setTitle("统计分析").setTextColor(ContextCompat.getColor(this, R.color.white)); + dataTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor)); + dataTopLayout.addLeftImageButton(R.drawable.ic_left_white, 1).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + } + + @Override + public void initData() { + AnalysisRecycleAdapter adapter = new AnalysisRecycleAdapter(this); + analysisRecyclerView.setLayoutManager(new GridLayoutManager(this, 3)); + analysisRecyclerView.setAdapter(adapter); + adapter.setOnGridItemClickListener(new AnalysisRecycleAdapter.OnGridItemClickListener() { + @Override + public void onClick(int position) { +// Intent intent = new Intent(); + switch (position) { + case 0: + ToastHelper.showToast("问题来源", ToastHelper.INFO); + break; + case 1: + ToastHelper.showToast("案卷状态", ToastHelper.INFO); + break; + case 2: + ToastHelper.showToast("高发问题", ToastHelper.INFO); + break; + case 3: + ToastHelper.showToast("街道统计", ToastHelper.INFO); + break; + case 4: + ToastHelper.showToast("处理统计", ToastHelper.INFO); + break; + case 5: + ToastHelper.showToast("趋势分析", ToastHelper.INFO); + break; + default: + break; + } +// startActivity(intent); + } + }); + } + + @Override + public void initEvent() { + + } + + @OnClick({R.id.selectStartDateView, R.id.selectEndDateView}) + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.selectStartDateView: + new TimePickerDialog.Builder().setThemeColor(ColorHelper.getResourcesColor(this, R.color.mainThemeColor)) + .setWheelItemTextSize(16) + .setCyclic(false) + .setMinMillseconds(System.currentTimeMillis() - Constant.FIVE_YEARS) + .setMaxMillseconds(System.currentTimeMillis() + Constant.FIVE_YEARS) + .setType(Type.YEAR_MONTH_DAY) + .setCallBack((timePickerView, millSeconds) -> { + startDateView.setText(TimeOrDateUtil.rTimestampToDate(millSeconds)); + }).build().show(getSupportFragmentManager(), "year_month_day"); + break; + case R.id.selectEndDateView: + new TimePickerDialog.Builder().setThemeColor(ColorHelper.getResourcesColor(this, R.color.mainThemeColor)) + .setWheelItemTextSize(16) + .setCyclic(false) + .setMinMillseconds(System.currentTimeMillis() - Constant.FIVE_YEARS) + .setMaxMillseconds(System.currentTimeMillis() + Constant.FIVE_YEARS) + .setType(Type.YEAR_MONTH_DAY) + .setCallBack((timePickerView, millSeconds) -> { + endDateView.setText(TimeOrDateUtil.rTimestampToDate(millSeconds)); + }).build().show(getSupportFragmentManager(), "year_month_day"); + break; + default: + break; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java index cf9a45d..a21d874 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java @@ -17,7 +17,9 @@ import com.casic.dcms.mvp.presenter.UserDataPresenterImpl; import com.casic.dcms.mvp.view.IUserDataView; import com.casic.dcms.ui.CaseUploadActivity; +import com.casic.dcms.ui.DataAnalysisActivity; import com.casic.dcms.utils.StringHelper; +import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIRadiusImageView; import butterknife.BindView; @@ -72,41 +74,43 @@ startActivity(intent); break; case 1: - + ToastHelper.showToast("快速上报", ToastHelper.INFO); break; case 2: - + ToastHelper.showToast("三包上报", ToastHelper.INFO); break; case 3: - + ToastHelper.showToast("案卷核实", ToastHelper.INFO); break; case 4: - + ToastHelper.showToast("案卷核查", ToastHelper.INFO); break; case 5: - + ToastHelper.showToast("案卷处理", ToastHelper.INFO); break; case 6: - + ToastHelper.showToast("紧急要件", ToastHelper.INFO); break; case 7: - + ToastHelper.showToast("超时督办", ToastHelper.INFO); break; case 8: - + intent.setClass(context, DataAnalysisActivity.class); + startActivity(intent); break; case 9: - + ToastHelper.showToast("在岗人员", ToastHelper.INFO); break; case 10: - + ToastHelper.showToast("案卷查询", ToastHelper.INFO); break; case 11: - + ToastHelper.showToast("地图查看", ToastHelper.INFO); break; default: break; } +// startActivity(intent); } }); } diff --git a/app/src/main/java/com/casic/dcms/utils/Constant.java b/app/src/main/java/com/casic/dcms/utils/Constant.java index 899d916..4ad3a5d 100644 --- a/app/src/main/java/com/casic/dcms/utils/Constant.java +++ b/app/src/main/java/com/casic/dcms/utils/Constant.java @@ -20,6 +20,14 @@ "紧急要件", "超时督办", "统计分析", "在岗人员", "案卷查询", "地图查看"); + public static final List ANALYSIS_ICONS = Arrays.asList( + R.mipmap.sbsb, R.mipmap.jjyj, R.mipmap.csdb, + R.mipmap.ajcl, R.mipmap.tjfx, R.mipmap.ajhc); + + public static final List ANALYSIS_ITEMS = Arrays.asList( + "问题来源", "案卷状态", "高发问题", + "街道统计", "处理统计", "趋势分析"); + public static final String[] USER_PERMISSIONS = { Manifest.permission.ACCESS_COARSE_LOCATION, Manifest.permission.ACCESS_FINE_LOCATION, @@ -36,4 +44,6 @@ public static final String IP_KEY = "BASE_IP"; public static final String LOGIN_OUT_ACTION = "loginOut"; + + public static final long FIVE_YEARS = 5L * 365 * 1000 * 60 * 60 * 24L; } diff --git a/app/src/main/java/com/casic/dcms/utils/TimeOrDateUtil.java b/app/src/main/java/com/casic/dcms/utils/TimeOrDateUtil.java new file mode 100644 index 0000000..61aa9ec --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/TimeOrDateUtil.java @@ -0,0 +1,60 @@ +package com.casic.dcms.utils; + +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.Calendar; +import java.util.Date; + +/** + * @author : Pengxh + * @time : 2021/4/15 16:54 + * @email : 290677893@qq.com + **/ +public class TimeOrDateUtil { + private static final String TAG = "TimeOrDateUtil"; + private static final SimpleDateFormat allDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + private static final SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); + private static final SimpleDateFormat timeFormat = new SimpleDateFormat("HH:mm:ss"); + + /** + * 时间戳转日期 + */ + public static String rTimestampToDate(long millSeconds) { + return dateFormat.format(new Date(millSeconds)); + } + + /** + * 时间戳转时间 + */ + public static String timestampToTime(long millSeconds) { + return timeFormat.format(new Date(millSeconds)); + } + + /** + * 时间戳转详细日期时间 + */ + public static String timestampToDate(long millSeconds) { + return allDateFormat.format(new Date(millSeconds)); + } + + /** + * 时间转时间戳 + */ + public static long dateToTimestamp(String time) { + try { + return allDateFormat.parse(time).getTime(); + } catch (ParseException e) { + e.printStackTrace(); + } + return 0L; + } + + /** + * 获取当前日期 + */ + public static String getCurrentDate() { + Calendar calendar = Calendar.getInstance(); + long today = calendar.getTimeInMillis(); + return rTimestampToDate(today); + } +} diff --git a/app/src/main/res/drawable/bg_layout.xml b/app/src/main/res/drawable/bg_layout.xml index ff02e0d..949d474 100644 --- a/app/src/main/res/drawable/bg_layout.xml +++ b/app/src/main/res/drawable/bg_layout.xml @@ -4,5 +4,7 @@ - + \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_down.xml b/app/src/main/res/drawable/ic_down.xml new file mode 100644 index 0000000..d147ca2 --- /dev/null +++ b/app/src/main/res/drawable/ic_down.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/layout/activity_analysis.xml b/app/src/main/res/layout/activity_analysis.xml new file mode 100644 index 0000000..e5dab95 --- /dev/null +++ b/app/src/main/res/layout/activity_analysis.xml @@ -0,0 +1,84 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file