diff --git a/.idea/misc.xml b/.idea/misc.xml
index fbb4b44..d7133ee 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -4,6 +4,7 @@
diff --git a/.idea/misc.xml b/.idea/misc.xml
index fbb4b44..d7133ee 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -4,6 +4,7 @@
diff --git a/app/build.gradle b/app/build.gradle
index 2618027..f39e57d 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -86,6 +86,8 @@
implementation 'com.google.code.gson:gson:2.9.0'
//日期选择器
implementation 'com.jzxiang.pickerview:TimePickerDialog:1.0.1'
+ //日期范围选择
+ implementation 'com.github.applikeysolutions:cosmocalendar:1.0.4'
//图表
implementation 'com.github.PhilJay:MPAndroidChart:v3.1.0'
//Excel表格
diff --git a/.idea/misc.xml b/.idea/misc.xml
index fbb4b44..d7133ee 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -4,6 +4,7 @@
diff --git a/app/build.gradle b/app/build.gradle
index 2618027..f39e57d 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -86,6 +86,8 @@
implementation 'com.google.code.gson:gson:2.9.0'
//日期选择器
implementation 'com.jzxiang.pickerview:TimePickerDialog:1.0.1'
+ //日期范围选择
+ implementation 'com.github.applikeysolutions:cosmocalendar:1.0.4'
//图表
implementation 'com.github.PhilJay:MPAndroidChart:v3.1.0'
//Excel表格
diff --git a/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java
index ea9b6c9..fe43ddc 100644
--- a/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java
+++ b/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java
@@ -17,6 +17,7 @@
import com.casic.dcms.utils.LocaleConstant;
import com.casic.dcms.utils.TimeOrDateUtil;
import com.casic.dcms.vm.DataAnalysisViewModel;
+import com.casic.dcms.widgets.RangeDateActionSheet;
import com.github.mikephil.charting.data.PieEntry;
import com.gyf.immersionbar.ImmersionBar;
import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter;
@@ -39,6 +40,7 @@
*/
public class CaseResourceActivity extends AndroidxBaseActivity {
+ private static final String TAG = "CaseResourceActivity";
private final Context context = CaseResourceActivity.this;
private DataAnalysisViewModel dataAnalysisViewModel;
@@ -126,7 +128,12 @@
viewBinding.selectCalendarButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
-
+ new RangeDateActionSheet.Builder().setContext(context).setOnActionSheetListener(new RangeDateActionSheet.OnDateRangeSelectedListener() {
+ @Override
+ public void onDateRangeSelected(String startDate, String endDate) {
+ dataAnalysisViewModel.getCaseResource(startDate, endDate);
+ }
+ }).build().show();
}
});
diff --git a/.idea/misc.xml b/.idea/misc.xml
index fbb4b44..d7133ee 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -4,6 +4,7 @@
diff --git a/app/build.gradle b/app/build.gradle
index 2618027..f39e57d 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -86,6 +86,8 @@
implementation 'com.google.code.gson:gson:2.9.0'
//日期选择器
implementation 'com.jzxiang.pickerview:TimePickerDialog:1.0.1'
+ //日期范围选择
+ implementation 'com.github.applikeysolutions:cosmocalendar:1.0.4'
//图表
implementation 'com.github.PhilJay:MPAndroidChart:v3.1.0'
//Excel表格
diff --git a/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java
index ea9b6c9..fe43ddc 100644
--- a/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java
+++ b/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java
@@ -17,6 +17,7 @@
import com.casic.dcms.utils.LocaleConstant;
import com.casic.dcms.utils.TimeOrDateUtil;
import com.casic.dcms.vm.DataAnalysisViewModel;
+import com.casic.dcms.widgets.RangeDateActionSheet;
import com.github.mikephil.charting.data.PieEntry;
import com.gyf.immersionbar.ImmersionBar;
import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter;
@@ -39,6 +40,7 @@
*/
public class CaseResourceActivity extends AndroidxBaseActivity {
+ private static final String TAG = "CaseResourceActivity";
private final Context context = CaseResourceActivity.this;
private DataAnalysisViewModel dataAnalysisViewModel;
@@ -126,7 +128,12 @@
viewBinding.selectCalendarButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
-
+ new RangeDateActionSheet.Builder().setContext(context).setOnActionSheetListener(new RangeDateActionSheet.OnDateRangeSelectedListener() {
+ @Override
+ public void onDateRangeSelected(String startDate, String endDate) {
+ dataAnalysisViewModel.getCaseResource(startDate, endDate);
+ }
+ }).build().show();
}
});
diff --git a/app/src/main/java/com/casic/dcms/widgets/RangeDateActionSheet.java b/app/src/main/java/com/casic/dcms/widgets/RangeDateActionSheet.java
new file mode 100644
index 0000000..51b3c15
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/widgets/RangeDateActionSheet.java
@@ -0,0 +1,91 @@
+package com.casic.dcms.widgets;
+
+import android.app.Dialog;
+import android.content.Context;
+import android.os.Bundle;
+import android.util.Log;
+import android.view.Gravity;
+import android.view.View;
+import android.widget.Button;
+
+import com.applikeysolutions.cosmocalendar.view.CalendarView;
+import com.casic.dcms.R;
+import com.pengxh.androidx.lite.hub.DialogHub;
+import com.pengxh.androidx.lite.hub.StringHub;
+
+import java.text.SimpleDateFormat;
+import java.util.Calendar;
+import java.util.List;
+import java.util.Locale;
+
+public class RangeDateActionSheet extends Dialog {
+
+ private static final String TAG = "RangeDateActionSheet";
+ private final Context ctx;
+ private final OnDateRangeSelectedListener listener;
+
+ public static class Builder {
+ private Context context;
+ private OnDateRangeSelectedListener listener;
+
+ public Builder setContext(Context context) {
+ this.context = context;
+ return this;
+ }
+
+ public Builder setOnActionSheetListener(OnDateRangeSelectedListener listener) {
+ this.listener = listener;
+ return this;
+ }
+
+ public RangeDateActionSheet build() {
+ return new RangeDateActionSheet(this);
+ }
+ }
+
+ private RangeDateActionSheet(Builder builder) {
+ super(builder.context, R.style.UserDefinedActionStyle);
+ this.ctx = builder.context;
+ this.listener = builder.listener;
+ }
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ DialogHub.resetParams(this, Gravity.BOTTOM, R.style.ActionSheetDialogAnimation, 1);
+ setContentView(R.layout.range_date_action_sheet);
+ setCancelable(true);
+ setCanceledOnTouchOutside(true);
+
+ CalendarView calendarView = findViewById(R.id.calendarView);
+ Button selectedButton = findViewById(R.id.selectedButton);
+ selectedButton.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ List selectedDates = calendarView.getSelectedDates();
+ if (selectedDates.size() == 0) {
+ StringHub.show(ctx, "请选择正确的日期范围");
+ return;
+ }
+ Calendar startCalendar = selectedDates.get(0);
+ Calendar endCalendar = selectedDates.get(selectedDates.size() - 1);
+
+ if (listener != null) {
+ listener.onDateRangeSelected(getFormatDate(startCalendar), getFormatDate(endCalendar));
+ dismiss();
+ } else {
+ Log.e(TAG, "onClick: ", new NullPointerException());
+ }
+ }
+ });
+ }
+
+ private String getFormatDate(Calendar calendar) {
+ SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd", Locale.CHINA);
+ return dateFormat.format(calendar.getTime());
+ }
+
+ public interface OnDateRangeSelectedListener {
+ void onDateRangeSelected(String startDate, String endDate);
+ }
+}
diff --git a/.idea/misc.xml b/.idea/misc.xml
index fbb4b44..d7133ee 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -4,6 +4,7 @@
diff --git a/app/build.gradle b/app/build.gradle
index 2618027..f39e57d 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -86,6 +86,8 @@
implementation 'com.google.code.gson:gson:2.9.0'
//日期选择器
implementation 'com.jzxiang.pickerview:TimePickerDialog:1.0.1'
+ //日期范围选择
+ implementation 'com.github.applikeysolutions:cosmocalendar:1.0.4'
//图表
implementation 'com.github.PhilJay:MPAndroidChart:v3.1.0'
//Excel表格
diff --git a/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java
index ea9b6c9..fe43ddc 100644
--- a/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java
+++ b/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java
@@ -17,6 +17,7 @@
import com.casic.dcms.utils.LocaleConstant;
import com.casic.dcms.utils.TimeOrDateUtil;
import com.casic.dcms.vm.DataAnalysisViewModel;
+import com.casic.dcms.widgets.RangeDateActionSheet;
import com.github.mikephil.charting.data.PieEntry;
import com.gyf.immersionbar.ImmersionBar;
import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter;
@@ -39,6 +40,7 @@
*/
public class CaseResourceActivity extends AndroidxBaseActivity {
+ private static final String TAG = "CaseResourceActivity";
private final Context context = CaseResourceActivity.this;
private DataAnalysisViewModel dataAnalysisViewModel;
@@ -126,7 +128,12 @@
viewBinding.selectCalendarButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
-
+ new RangeDateActionSheet.Builder().setContext(context).setOnActionSheetListener(new RangeDateActionSheet.OnDateRangeSelectedListener() {
+ @Override
+ public void onDateRangeSelected(String startDate, String endDate) {
+ dataAnalysisViewModel.getCaseResource(startDate, endDate);
+ }
+ }).build().show();
}
});
diff --git a/app/src/main/java/com/casic/dcms/widgets/RangeDateActionSheet.java b/app/src/main/java/com/casic/dcms/widgets/RangeDateActionSheet.java
new file mode 100644
index 0000000..51b3c15
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/widgets/RangeDateActionSheet.java
@@ -0,0 +1,91 @@
+package com.casic.dcms.widgets;
+
+import android.app.Dialog;
+import android.content.Context;
+import android.os.Bundle;
+import android.util.Log;
+import android.view.Gravity;
+import android.view.View;
+import android.widget.Button;
+
+import com.applikeysolutions.cosmocalendar.view.CalendarView;
+import com.casic.dcms.R;
+import com.pengxh.androidx.lite.hub.DialogHub;
+import com.pengxh.androidx.lite.hub.StringHub;
+
+import java.text.SimpleDateFormat;
+import java.util.Calendar;
+import java.util.List;
+import java.util.Locale;
+
+public class RangeDateActionSheet extends Dialog {
+
+ private static final String TAG = "RangeDateActionSheet";
+ private final Context ctx;
+ private final OnDateRangeSelectedListener listener;
+
+ public static class Builder {
+ private Context context;
+ private OnDateRangeSelectedListener listener;
+
+ public Builder setContext(Context context) {
+ this.context = context;
+ return this;
+ }
+
+ public Builder setOnActionSheetListener(OnDateRangeSelectedListener listener) {
+ this.listener = listener;
+ return this;
+ }
+
+ public RangeDateActionSheet build() {
+ return new RangeDateActionSheet(this);
+ }
+ }
+
+ private RangeDateActionSheet(Builder builder) {
+ super(builder.context, R.style.UserDefinedActionStyle);
+ this.ctx = builder.context;
+ this.listener = builder.listener;
+ }
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ DialogHub.resetParams(this, Gravity.BOTTOM, R.style.ActionSheetDialogAnimation, 1);
+ setContentView(R.layout.range_date_action_sheet);
+ setCancelable(true);
+ setCanceledOnTouchOutside(true);
+
+ CalendarView calendarView = findViewById(R.id.calendarView);
+ Button selectedButton = findViewById(R.id.selectedButton);
+ selectedButton.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ List selectedDates = calendarView.getSelectedDates();
+ if (selectedDates.size() == 0) {
+ StringHub.show(ctx, "请选择正确的日期范围");
+ return;
+ }
+ Calendar startCalendar = selectedDates.get(0);
+ Calendar endCalendar = selectedDates.get(selectedDates.size() - 1);
+
+ if (listener != null) {
+ listener.onDateRangeSelected(getFormatDate(startCalendar), getFormatDate(endCalendar));
+ dismiss();
+ } else {
+ Log.e(TAG, "onClick: ", new NullPointerException());
+ }
+ }
+ });
+ }
+
+ private String getFormatDate(Calendar calendar) {
+ SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd", Locale.CHINA);
+ return dateFormat.format(calendar.getTime());
+ }
+
+ public interface OnDateRangeSelectedListener {
+ void onDateRangeSelected(String startDate, String endDate);
+ }
+}
diff --git a/app/src/main/res/layout/range_date_action_sheet.xml b/app/src/main/res/layout/range_date_action_sheet.xml
new file mode 100644
index 0000000..16401fc
--- /dev/null
+++ b/app/src/main/res/layout/range_date_action_sheet.xml
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
index fbb4b44..d7133ee 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -4,6 +4,7 @@
diff --git a/app/build.gradle b/app/build.gradle
index 2618027..f39e57d 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -86,6 +86,8 @@
implementation 'com.google.code.gson:gson:2.9.0'
//日期选择器
implementation 'com.jzxiang.pickerview:TimePickerDialog:1.0.1'
+ //日期范围选择
+ implementation 'com.github.applikeysolutions:cosmocalendar:1.0.4'
//图表
implementation 'com.github.PhilJay:MPAndroidChart:v3.1.0'
//Excel表格
diff --git a/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java
index ea9b6c9..fe43ddc 100644
--- a/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java
+++ b/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java
@@ -17,6 +17,7 @@
import com.casic.dcms.utils.LocaleConstant;
import com.casic.dcms.utils.TimeOrDateUtil;
import com.casic.dcms.vm.DataAnalysisViewModel;
+import com.casic.dcms.widgets.RangeDateActionSheet;
import com.github.mikephil.charting.data.PieEntry;
import com.gyf.immersionbar.ImmersionBar;
import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter;
@@ -39,6 +40,7 @@
*/
public class CaseResourceActivity extends AndroidxBaseActivity {
+ private static final String TAG = "CaseResourceActivity";
private final Context context = CaseResourceActivity.this;
private DataAnalysisViewModel dataAnalysisViewModel;
@@ -126,7 +128,12 @@
viewBinding.selectCalendarButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
-
+ new RangeDateActionSheet.Builder().setContext(context).setOnActionSheetListener(new RangeDateActionSheet.OnDateRangeSelectedListener() {
+ @Override
+ public void onDateRangeSelected(String startDate, String endDate) {
+ dataAnalysisViewModel.getCaseResource(startDate, endDate);
+ }
+ }).build().show();
}
});
diff --git a/app/src/main/java/com/casic/dcms/widgets/RangeDateActionSheet.java b/app/src/main/java/com/casic/dcms/widgets/RangeDateActionSheet.java
new file mode 100644
index 0000000..51b3c15
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/widgets/RangeDateActionSheet.java
@@ -0,0 +1,91 @@
+package com.casic.dcms.widgets;
+
+import android.app.Dialog;
+import android.content.Context;
+import android.os.Bundle;
+import android.util.Log;
+import android.view.Gravity;
+import android.view.View;
+import android.widget.Button;
+
+import com.applikeysolutions.cosmocalendar.view.CalendarView;
+import com.casic.dcms.R;
+import com.pengxh.androidx.lite.hub.DialogHub;
+import com.pengxh.androidx.lite.hub.StringHub;
+
+import java.text.SimpleDateFormat;
+import java.util.Calendar;
+import java.util.List;
+import java.util.Locale;
+
+public class RangeDateActionSheet extends Dialog {
+
+ private static final String TAG = "RangeDateActionSheet";
+ private final Context ctx;
+ private final OnDateRangeSelectedListener listener;
+
+ public static class Builder {
+ private Context context;
+ private OnDateRangeSelectedListener listener;
+
+ public Builder setContext(Context context) {
+ this.context = context;
+ return this;
+ }
+
+ public Builder setOnActionSheetListener(OnDateRangeSelectedListener listener) {
+ this.listener = listener;
+ return this;
+ }
+
+ public RangeDateActionSheet build() {
+ return new RangeDateActionSheet(this);
+ }
+ }
+
+ private RangeDateActionSheet(Builder builder) {
+ super(builder.context, R.style.UserDefinedActionStyle);
+ this.ctx = builder.context;
+ this.listener = builder.listener;
+ }
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ DialogHub.resetParams(this, Gravity.BOTTOM, R.style.ActionSheetDialogAnimation, 1);
+ setContentView(R.layout.range_date_action_sheet);
+ setCancelable(true);
+ setCanceledOnTouchOutside(true);
+
+ CalendarView calendarView = findViewById(R.id.calendarView);
+ Button selectedButton = findViewById(R.id.selectedButton);
+ selectedButton.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ List selectedDates = calendarView.getSelectedDates();
+ if (selectedDates.size() == 0) {
+ StringHub.show(ctx, "请选择正确的日期范围");
+ return;
+ }
+ Calendar startCalendar = selectedDates.get(0);
+ Calendar endCalendar = selectedDates.get(selectedDates.size() - 1);
+
+ if (listener != null) {
+ listener.onDateRangeSelected(getFormatDate(startCalendar), getFormatDate(endCalendar));
+ dismiss();
+ } else {
+ Log.e(TAG, "onClick: ", new NullPointerException());
+ }
+ }
+ });
+ }
+
+ private String getFormatDate(Calendar calendar) {
+ SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd", Locale.CHINA);
+ return dateFormat.format(calendar.getTime());
+ }
+
+ public interface OnDateRangeSelectedListener {
+ void onDateRangeSelected(String startDate, String endDate);
+ }
+}
diff --git a/app/src/main/res/layout/range_date_action_sheet.xml b/app/src/main/res/layout/range_date_action_sheet.xml
new file mode 100644
index 0000000..16401fc
--- /dev/null
+++ b/app/src/main/res/layout/range_date_action_sheet.xml
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
\ 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 32f5776..2fe7877 100644
--- a/app/src/main/res/values/colors.xml
+++ b/app/src/main/res/values/colors.xml
@@ -16,6 +16,7 @@
#FF0000
#FF1D55C6
+ #661D55C6
#333333
#626262
#F7F7FA