diff --git a/app/src/main/res/color/color_selector_333_false_999.xml b/app/src/main/res/color/color_selector_333_false_999.xml new file mode 100644 index 000000000..f8737614d --- /dev/null +++ b/app/src/main/res/color/color_selector_333_false_999.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/app/src/module_labour_union/java/com/yizhuan/erban/module_hall/hall/activity/ClanIncomeActivity.java b/app/src/module_labour_union/java/com/yizhuan/erban/module_hall/hall/activity/ClanIncomeActivity.java index d5a21878f..6f000c918 100644 --- a/app/src/module_labour_union/java/com/yizhuan/erban/module_hall/hall/activity/ClanIncomeActivity.java +++ b/app/src/module_labour_union/java/com/yizhuan/erban/module_hall/hall/activity/ClanIncomeActivity.java @@ -75,7 +75,8 @@ public class ClanIncomeActivity extends BaseMvpActivity tagList = new ArrayList<>(); - tagList.add("每日统计"); + tagList.add("按日统计"); tagList.add("每周统计"); tagList.add("每月统计"); StatisticsIndicatorAdapter adapter = new StatisticsIndicatorAdapter(tagList, 5); @@ -159,7 +159,7 @@ public class ClanIncomeActivity extends BaseMvpActivity { + tvWeekFirstDay.setSelected(true); + tvWeekLastDay.setSelected(false); + }); + tvWeekLastDay.setOnClickListener(v -> { + tvWeekFirstDay.setSelected(false); + tvWeekLastDay.setSelected(true); + }); + } title.setText(mPickerConfig.mTitleString); title.setTextColor(context.getResources().getColor(R.color.color_333333)); cancel.setText(mPickerConfig.mCancelString); @@ -147,25 +168,36 @@ public class TimePickerDialog extends DialogFragment implements View.OnClickList } private void setWeekView(Calendar calendar) { - //获取周几 1-7 - int currweekDay = calendar.get(Calendar.DAY_OF_WEEK); - //周一的时间 long firstDayTime; - if (currweekDay == 1) {//周日 - firstDayTime = calendar.getTimeInMillis() - (TimeUtils.MILLIS_OF_A_DAY * (7 - currweekDay)); + + if (isDay) { + if (tvWeekFirstDay.isSelected()) { + mDayFirstTime = calendar.getTimeInMillis(); + tvWeekFirstDay.setText(TimeUtils.getDateTimeString(mDayFirstTime, TimeUtils.DATE_FORMAT)); + } else { + selectDayLastTime = true; + mDayLastTime = calendar.getTimeInMillis(); + tvWeekLastDay.setText(TimeUtils.getDateTimeString(mDayLastTime, TimeUtils.DATE_FORMAT)); + } } else { - firstDayTime = calendar.getTimeInMillis() - (TimeUtils.MILLIS_OF_A_DAY * (currweekDay - 2)); + //获取周几 1-7 + int currweekDay = calendar.get(Calendar.DAY_OF_WEEK); + if (currweekDay == 1) {//周日 + firstDayTime = calendar.getTimeInMillis() - (TimeUtils.MILLIS_OF_A_DAY * (7 - currweekDay)); + } else { + firstDayTime = calendar.getTimeInMillis() - (TimeUtils.MILLIS_OF_A_DAY * (currweekDay - 2)); + } + + String first = TimeUtils.getDateTimeString(firstDayTime, TimeUtils.DATE_FORMAT); + mWeekFirstDay = first; + tvWeekFirstDay.setText(first); + + //周日 + long lastDayTime = firstDayTime + (TimeUtils.MILLIS_OF_A_DAY * 6); + String last = TimeUtils.getDateTimeString(lastDayTime, TimeUtils.DATE_FORMAT); + mWeekLastDay = last; + tvWeekLastDay.setText(last); } - - String first = TimeUtils.getDateTimeString(firstDayTime, TimeUtils.DATE_FORMAT); - mWeekFirstDay = first; - tvWeekFirstDay.setText(first); - - //周日 - long lastDayTime = firstDayTime + (TimeUtils.MILLIS_OF_A_DAY * 6); - String last = TimeUtils.getDateTimeString(lastDayTime, TimeUtils.DATE_FORMAT); - mWeekLastDay = last; - tvWeekLastDay.setText(last); } @Override @@ -210,7 +242,25 @@ public class TimePickerDialog extends DialogFragment implements View.OnClickList mCurrentMillSeconds = calendar.getTimeInMillis(); if (mTimePickerListener != null) { - mTimePickerListener.getTime(mCurrentMillSeconds, mWeekFirstDay, mWeekLastDay); + if (isDay) { + if (!selectDayLastTime) { + mDayLastTime = mDayFirstTime; + } + if (mDayFirstTime > mDayLastTime) { + SingleToastUtil.showToast("结束日期不得早于开始日期"); + return; + } + if (mDayLastTime - mDayFirstTime > 180 * TimeUtils.MILLIS_OF_A_DAY) { + SingleToastUtil.showToast("开始日期和结束日期相差不得超过6个月"); + return; + } + mTimePickerListener.getTime(mCurrentMillSeconds, + TimeUtils.getDateTimeString(mDayFirstTime, TimeUtils.DATE_FORMAT), + TimeUtils.getDateTimeString(mDayLastTime, TimeUtils.DATE_FORMAT)); + + } else { + mTimePickerListener.getTime(mCurrentMillSeconds, mWeekFirstDay, mWeekLastDay); + } } dismiss(); @@ -225,6 +275,9 @@ public class TimePickerDialog extends DialogFragment implements View.OnClickList long firstMs; boolean mIsWeek; boolean isMonth; + boolean isDay; + private long mDayFirstTime; + private long mDayLastTime; public Builder() { mPickerConfig = new PickerConfig(); @@ -336,8 +389,23 @@ public class TimePickerDialog extends DialogFragment implements View.OnClickList return this; } + public Builder setIsDay(boolean isDay) { + this.isDay = isDay; + return this; + } + + public Builder setDayFirstTime(long dayFirstTime) { + this.mDayFirstTime = dayFirstTime; + return this; + } + + public Builder setDayLastTime(long dayLastTime) { + this.mDayLastTime = dayLastTime; + return this; + } + public TimePickerDialog build() { - return newInstance(mPickerConfig, firstMs, mIsWeek, isMonth); + return newInstance(mPickerConfig, firstMs, mIsWeek, isMonth, isDay, mDayFirstTime, mDayLastTime); } } diff --git a/app/src/module_labour_union/res/layout/dialog_custom_time_picker.xml b/app/src/module_labour_union/res/layout/dialog_custom_time_picker.xml index 59219b28f..353faea4c 100644 --- a/app/src/module_labour_union/res/layout/dialog_custom_time_picker.xml +++ b/app/src/module_labour_union/res/layout/dialog_custom_time_picker.xml @@ -1,8 +1,8 @@ @@ -13,39 +13,39 @@ + android:layout_height="40dp" + android:background="@color/white"> + android:layout_height="wrap_content" + android:layout_centerVertical="true" + android:layout_marginEnd="@dimen/dp_14" + android:layout_toStartOf="@+id/tv_utill" + android:textColor="@color/color_selector_333_false_999" + android:textSize="@dimen/sp_15" + tools:text="2018-01-02" /> + android:layout_height="wrap_content" + android:layout_centerInParent="true" + android:text="至" + android:textColor="@color/color_999999" + android:textSize="@dimen/sp_15" /> + android:layout_height="wrap_content" + android:layout_centerVertical="true" + android:layout_marginStart="@dimen/dp_14" + android:layout_toEndOf="@+id/tv_utill" + android:textColor="@color/color_selector_333_false_999" + android:textSize="@dimen/sp_15" + tools:text="2018-01-08" /> diff --git a/library/src/main/java/com/yizhuan/xchat_android_library/utils/TimeUtils.java b/library/src/main/java/com/yizhuan/xchat_android_library/utils/TimeUtils.java index 945bd22c4..09846a80e 100644 --- a/library/src/main/java/com/yizhuan/xchat_android_library/utils/TimeUtils.java +++ b/library/src/main/java/com/yizhuan/xchat_android_library/utils/TimeUtils.java @@ -229,6 +229,18 @@ public class TimeUtils { return result; } + public static long getTimeMillis(String time, String format) { + try { + SimpleDateFormat formatter = new SimpleDateFormat(format, Locale.getDefault()); + Date date = formatter.parse(time); + return date.getTime(); + } catch (Exception ex) { + ex.printStackTrace(); + } + + return 0; + } + /** * 将毫秒数转为 MM:ss 的格式 *