mirror of
https://github.com/pppscn/SmsForwarder
synced 2025-08-03 01:17:41 +08:00
修复:定时任务
的Cron表达式
输入非法时导致FC #407
This commit is contained in:
parent
117a2e42d9
commit
132dcd808c
@ -72,6 +72,7 @@ class CronFragment : BaseFragment<FragmentTasksConditionCronBinding?>(), View.On
|
|||||||
private val yearList: List<String> = (2020..2099).map { String.format("%d", it) }
|
private val yearList: List<String> = (2020..2099).map { String.format("%d", it) }
|
||||||
private var selectedYearList = ""
|
private var selectedYearList = ""
|
||||||
|
|
||||||
|
private val regexNum = Regex("\\d+")
|
||||||
private var second = "*"
|
private var second = "*"
|
||||||
private var minute = "*"
|
private var minute = "*"
|
||||||
private var hour = "*"
|
private var hour = "*"
|
||||||
@ -355,47 +356,51 @@ class CronFragment : BaseFragment<FragmentTasksConditionCronBinding?>(), View.On
|
|||||||
expression = "$second $minute $hour $day $month $week $year"
|
expression = "$second $minute $hour $day $month $week $year"
|
||||||
Log.d(TAG, "afterSecondChanged expression:$expression")
|
Log.d(TAG, "afterSecondChanged expression:$expression")
|
||||||
CronExpression.validateExpression(expression)
|
CronExpression.validateExpression(expression)
|
||||||
|
|
||||||
|
when {
|
||||||
|
second == "*" -> {
|
||||||
|
binding!!.rbSecondTypeAll.isChecked = true
|
||||||
|
}
|
||||||
|
|
||||||
|
second.contains("/") -> {
|
||||||
|
val secondsArray = second.split("/")
|
||||||
|
binding!!.etSecondIntervalStart.setText(secondsArray.getOrNull(0) ?: "0")
|
||||||
|
binding!!.etSecondInterval.setText(secondsArray.getOrNull(1) ?: "1")
|
||||||
|
binding!!.rbSecondTypeInterval.isChecked = true
|
||||||
|
}
|
||||||
|
|
||||||
|
second.contains(",") -> {
|
||||||
|
val secondsList = restoreMergedItems(second, "%02d")
|
||||||
|
Log.d(TAG, "secondsList:$secondsList")
|
||||||
|
binding!!.flowlayoutMultiSelectSecond.setSelectedItems(secondsList)
|
||||||
|
binding!!.rbSecondTypeAssigned.isChecked = true
|
||||||
|
selectedSecondList = secondsList.joinToString(",")
|
||||||
|
}
|
||||||
|
|
||||||
|
second.contains("-") -> {
|
||||||
|
val secondsArray = second.split("-")
|
||||||
|
binding!!.etSecondCyclicFrom.setText(secondsArray.getOrNull(0) ?: "00")
|
||||||
|
binding!!.etSecondCyclicTo.setText(secondsArray.getOrNull(1) ?: "59")
|
||||||
|
binding!!.rbSecondTypeCyclic.isChecked = true
|
||||||
|
}
|
||||||
|
|
||||||
|
regexNum.matches(second) && secondsList.indexOf(String.format("%02d", second.toInt())) != -1 -> {
|
||||||
|
binding!!.flowlayoutMultiSelectSecond.setSelectedItems(String.format("%02d", second.toInt()))
|
||||||
|
binding!!.rbSecondTypeAssigned.isChecked = true
|
||||||
|
selectedSecondList = second
|
||||||
|
}
|
||||||
|
|
||||||
|
else -> {
|
||||||
|
second = "*"
|
||||||
|
binding!!.etSecond.setText(second)
|
||||||
|
binding!!.rbSecondTypeAll.isChecked = true
|
||||||
|
}
|
||||||
|
}
|
||||||
} catch (e: Exception) {
|
} catch (e: Exception) {
|
||||||
|
second = "*"
|
||||||
|
binding!!.etSecond.setText(second)
|
||||||
|
binding!!.rbSecondTypeAll.isChecked = true
|
||||||
XToastUtils.error("Cron表达式无效:" + e.message, 30000)
|
XToastUtils.error("Cron表达式无效:" + e.message, 30000)
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
when {
|
|
||||||
second == "*" -> {
|
|
||||||
binding!!.rbSecondTypeAll.isChecked = true
|
|
||||||
}
|
|
||||||
|
|
||||||
second.contains("/") -> {
|
|
||||||
val secondsArray = second.split("/")
|
|
||||||
binding!!.etSecondIntervalStart.setText(secondsArray.getOrNull(0) ?: "0")
|
|
||||||
binding!!.etSecondInterval.setText(secondsArray.getOrNull(1) ?: "1")
|
|
||||||
binding!!.rbSecondTypeInterval.isChecked = true
|
|
||||||
}
|
|
||||||
|
|
||||||
second.contains(",") -> {
|
|
||||||
val secondsList = restoreMergedItems(second, "%02d")
|
|
||||||
Log.d(TAG, "secondsList:$secondsList")
|
|
||||||
binding!!.flowlayoutMultiSelectSecond.setSelectedItems(secondsList)
|
|
||||||
binding!!.rbSecondTypeAssigned.isChecked = true
|
|
||||||
selectedSecondList = secondsList.joinToString(",")
|
|
||||||
}
|
|
||||||
|
|
||||||
second.contains("-") -> {
|
|
||||||
val secondsArray = second.split("-")
|
|
||||||
binding!!.etSecondCyclicFrom.setText(secondsArray.getOrNull(0) ?: "00")
|
|
||||||
binding!!.etSecondCyclicTo.setText(secondsArray.getOrNull(1) ?: "59")
|
|
||||||
binding!!.rbSecondTypeCyclic.isChecked = true
|
|
||||||
}
|
|
||||||
|
|
||||||
secondsList.indexOf(String.format("%02d", second.toInt())) != -1 -> {
|
|
||||||
binding!!.flowlayoutMultiSelectSecond.setSelectedItems(String.format("%02d", second.toInt()))
|
|
||||||
binding!!.rbSecondTypeAssigned.isChecked = true
|
|
||||||
selectedSecondList = second
|
|
||||||
}
|
|
||||||
|
|
||||||
else -> {
|
|
||||||
binding!!.rbSecondTypeAll.isChecked = true
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -518,47 +523,51 @@ class CronFragment : BaseFragment<FragmentTasksConditionCronBinding?>(), View.On
|
|||||||
expression = "$second $minute $hour $day $month $week $year"
|
expression = "$second $minute $hour $day $month $week $year"
|
||||||
Log.d(TAG, "afterMinuteChanged expression:$expression")
|
Log.d(TAG, "afterMinuteChanged expression:$expression")
|
||||||
CronExpression.validateExpression(expression)
|
CronExpression.validateExpression(expression)
|
||||||
|
|
||||||
|
when {
|
||||||
|
minute == "*" -> {
|
||||||
|
binding!!.rbMinuteTypeAll.isChecked = true
|
||||||
|
}
|
||||||
|
|
||||||
|
minute.contains("/") -> {
|
||||||
|
val minutesArray = minute.split("/")
|
||||||
|
binding!!.etMinuteIntervalStart.setText(minutesArray.getOrNull(0) ?: "0")
|
||||||
|
binding!!.etMinuteInterval.setText(minutesArray.getOrNull(1) ?: "1")
|
||||||
|
binding!!.rbMinuteTypeInterval.isChecked = true
|
||||||
|
}
|
||||||
|
|
||||||
|
minute.contains(",") -> {
|
||||||
|
val minutesList = restoreMergedItems(minute, "%02d")
|
||||||
|
Log.d(TAG, "minutesList:$minutesList")
|
||||||
|
binding!!.flowlayoutMultiSelectMinute.setSelectedItems(minutesList)
|
||||||
|
binding!!.rbMinuteTypeAssigned.isChecked = true
|
||||||
|
selectedMinuteList = minutesList.joinToString(",")
|
||||||
|
}
|
||||||
|
|
||||||
|
minute.contains("-") -> {
|
||||||
|
val minutesArray = minute.split("-")
|
||||||
|
binding!!.etMinuteCyclicFrom.setText(minutesArray.getOrNull(0) ?: "00")
|
||||||
|
binding!!.etMinuteCyclicTo.setText(minutesArray.getOrNull(1) ?: "59")
|
||||||
|
binding!!.rbMinuteTypeCyclic.isChecked = true
|
||||||
|
}
|
||||||
|
|
||||||
|
regexNum.matches(minute) && minutesList.indexOf(String.format("%02d", minute.toInt())) != -1 -> {
|
||||||
|
binding!!.flowlayoutMultiSelectMinute.setSelectedItems(String.format("%02d", minute.toInt()))
|
||||||
|
binding!!.rbMinuteTypeAssigned.isChecked = true
|
||||||
|
selectedMinuteList = minute
|
||||||
|
}
|
||||||
|
|
||||||
|
else -> {
|
||||||
|
minute = "*"
|
||||||
|
binding!!.etMinute.setText(minute)
|
||||||
|
binding!!.rbMinuteTypeAll.isChecked = true
|
||||||
|
}
|
||||||
|
}
|
||||||
} catch (e: Exception) {
|
} catch (e: Exception) {
|
||||||
|
minute = "*"
|
||||||
|
binding!!.etMinute.setText(minute)
|
||||||
|
binding!!.rbMinuteTypeAll.isChecked = true
|
||||||
XToastUtils.error("Cron表达式无效:" + e.message, 30000)
|
XToastUtils.error("Cron表达式无效:" + e.message, 30000)
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
when {
|
|
||||||
minute == "*" -> {
|
|
||||||
binding!!.rbMinuteTypeAll.isChecked = true
|
|
||||||
}
|
|
||||||
|
|
||||||
minute.contains("/") -> {
|
|
||||||
val minutesArray = minute.split("/")
|
|
||||||
binding!!.etMinuteIntervalStart.setText(minutesArray.getOrNull(0) ?: "0")
|
|
||||||
binding!!.etMinuteInterval.setText(minutesArray.getOrNull(1) ?: "1")
|
|
||||||
binding!!.rbMinuteTypeInterval.isChecked = true
|
|
||||||
}
|
|
||||||
|
|
||||||
minute.contains(",") -> {
|
|
||||||
val minutesList = restoreMergedItems(minute, "%02d")
|
|
||||||
Log.d(TAG, "minutesList:$minutesList")
|
|
||||||
binding!!.flowlayoutMultiSelectMinute.setSelectedItems(minutesList)
|
|
||||||
binding!!.rbMinuteTypeAssigned.isChecked = true
|
|
||||||
selectedMinuteList = minutesList.joinToString(",")
|
|
||||||
}
|
|
||||||
|
|
||||||
minute.contains("-") -> {
|
|
||||||
val minutesArray = minute.split("-")
|
|
||||||
binding!!.etMinuteCyclicFrom.setText(minutesArray.getOrNull(0) ?: "00")
|
|
||||||
binding!!.etMinuteCyclicTo.setText(minutesArray.getOrNull(1) ?: "59")
|
|
||||||
binding!!.rbMinuteTypeCyclic.isChecked = true
|
|
||||||
}
|
|
||||||
|
|
||||||
minutesList.indexOf(String.format("%02d", minute.toInt())) != -1 -> {
|
|
||||||
binding!!.flowlayoutMultiSelectMinute.setSelectedItems(String.format("%02d", minute.toInt()))
|
|
||||||
binding!!.rbMinuteTypeAssigned.isChecked = true
|
|
||||||
selectedMinuteList = minute
|
|
||||||
}
|
|
||||||
|
|
||||||
else -> {
|
|
||||||
binding!!.rbMinuteTypeAll.isChecked = true
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -681,47 +690,51 @@ class CronFragment : BaseFragment<FragmentTasksConditionCronBinding?>(), View.On
|
|||||||
expression = "$second $minute $hour $day $month $week $year"
|
expression = "$second $minute $hour $day $month $week $year"
|
||||||
Log.d(TAG, "afterHourChanged expression:$expression")
|
Log.d(TAG, "afterHourChanged expression:$expression")
|
||||||
CronExpression.validateExpression(expression)
|
CronExpression.validateExpression(expression)
|
||||||
|
|
||||||
|
when {
|
||||||
|
hour == "*" -> {
|
||||||
|
binding!!.rbHourTypeAll.isChecked = true
|
||||||
|
}
|
||||||
|
|
||||||
|
hour.contains("/") -> {
|
||||||
|
val hoursArray = hour.split("/")
|
||||||
|
binding!!.etHourIntervalStart.setText(hoursArray.getOrNull(0) ?: "0")
|
||||||
|
binding!!.etHourInterval.setText(hoursArray.getOrNull(1) ?: "1")
|
||||||
|
binding!!.rbHourTypeInterval.isChecked = true
|
||||||
|
}
|
||||||
|
|
||||||
|
hour.contains(",") -> {
|
||||||
|
val hoursList = restoreMergedItems(hour, "%02d")
|
||||||
|
Log.d(TAG, "hoursList:$hoursList")
|
||||||
|
binding!!.flowlayoutMultiSelectHour.setSelectedItems(hoursList)
|
||||||
|
binding!!.rbHourTypeAssigned.isChecked = true
|
||||||
|
selectedHourList = hoursList.joinToString(",")
|
||||||
|
}
|
||||||
|
|
||||||
|
hour.contains("-") -> {
|
||||||
|
val hoursArray = hour.split("-")
|
||||||
|
binding!!.etHourCyclicFrom.setText(hoursArray.getOrNull(0) ?: "00")
|
||||||
|
binding!!.etHourCyclicTo.setText(hoursArray.getOrNull(1) ?: "23")
|
||||||
|
binding!!.rbHourTypeCyclic.isChecked = true
|
||||||
|
}
|
||||||
|
|
||||||
|
regexNum.matches(hour) && hoursList.indexOf(String.format("%02d", hour.toInt())) != -1 -> {
|
||||||
|
binding!!.flowlayoutMultiSelectHour.setSelectedItems(String.format("%02d", hour.toInt()))
|
||||||
|
binding!!.rbHourTypeAssigned.isChecked = true
|
||||||
|
selectedHourList = hour
|
||||||
|
}
|
||||||
|
|
||||||
|
else -> {
|
||||||
|
hour = "*"
|
||||||
|
binding!!.etHour.setText(hour)
|
||||||
|
binding!!.rbHourTypeAll.isChecked = true
|
||||||
|
}
|
||||||
|
}
|
||||||
} catch (e: Exception) {
|
} catch (e: Exception) {
|
||||||
|
hour = "*"
|
||||||
|
binding!!.etHour.setText(hour)
|
||||||
|
binding!!.rbHourTypeAll.isChecked = true
|
||||||
XToastUtils.error("Cron表达式无效:" + e.message, 30000)
|
XToastUtils.error("Cron表达式无效:" + e.message, 30000)
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
when {
|
|
||||||
hour == "*" -> {
|
|
||||||
binding!!.rbHourTypeAll.isChecked = true
|
|
||||||
}
|
|
||||||
|
|
||||||
hour.contains("/") -> {
|
|
||||||
val hoursArray = hour.split("/")
|
|
||||||
binding!!.etHourIntervalStart.setText(hoursArray.getOrNull(0) ?: "0")
|
|
||||||
binding!!.etHourInterval.setText(hoursArray.getOrNull(1) ?: "1")
|
|
||||||
binding!!.rbHourTypeInterval.isChecked = true
|
|
||||||
}
|
|
||||||
|
|
||||||
hour.contains(",") -> {
|
|
||||||
val hoursList = restoreMergedItems(hour, "%02d")
|
|
||||||
Log.d(TAG, "hoursList:$hoursList")
|
|
||||||
binding!!.flowlayoutMultiSelectHour.setSelectedItems(hoursList)
|
|
||||||
binding!!.rbHourTypeAssigned.isChecked = true
|
|
||||||
selectedHourList = hoursList.joinToString(",")
|
|
||||||
}
|
|
||||||
|
|
||||||
hour.contains("-") -> {
|
|
||||||
val hoursArray = hour.split("-")
|
|
||||||
binding!!.etHourCyclicFrom.setText(hoursArray.getOrNull(0) ?: "00")
|
|
||||||
binding!!.etHourCyclicTo.setText(hoursArray.getOrNull(1) ?: "23")
|
|
||||||
binding!!.rbHourTypeCyclic.isChecked = true
|
|
||||||
}
|
|
||||||
|
|
||||||
hoursList.indexOf(String.format("%02d", hour.toInt())) != -1 -> {
|
|
||||||
binding!!.flowlayoutMultiSelectHour.setSelectedItems(String.format("%02d", hour.toInt()))
|
|
||||||
binding!!.rbHourTypeAssigned.isChecked = true
|
|
||||||
selectedHourList = hour
|
|
||||||
}
|
|
||||||
|
|
||||||
else -> {
|
|
||||||
binding!!.rbHourTypeAll.isChecked = true
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -871,66 +884,70 @@ class CronFragment : BaseFragment<FragmentTasksConditionCronBinding?>(), View.On
|
|||||||
expression = "$second $minute $hour $day $month $week $year"
|
expression = "$second $minute $hour $day $month $week $year"
|
||||||
Log.d(TAG, "afterDayChanged expression:$expression")
|
Log.d(TAG, "afterDayChanged expression:$expression")
|
||||||
CronExpression.validateExpression(expression)
|
CronExpression.validateExpression(expression)
|
||||||
|
|
||||||
|
when {
|
||||||
|
day == "*" -> {
|
||||||
|
binding!!.rbDayTypeAll.isChecked = true
|
||||||
|
}
|
||||||
|
|
||||||
|
day == "?" -> {
|
||||||
|
binding!!.rbDayTypeNotAssigned.isChecked = true
|
||||||
|
}
|
||||||
|
|
||||||
|
day == "L" -> {
|
||||||
|
binding!!.rbDayTypeLastDayOfMonth.isChecked = true
|
||||||
|
}
|
||||||
|
|
||||||
|
day == "LW" -> {
|
||||||
|
binding!!.rbDayTypeLastDayOfMonthRecentDay.isChecked = true
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
day.endsWith("W") -> {
|
||||||
|
binding!!.rbDayTypeRecentDay.isChecked = true
|
||||||
|
binding!!.etRecentDay.setText(day.removeSuffix("W"))
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
day.contains("/") -> {
|
||||||
|
val dayArray = day.split("/")
|
||||||
|
binding!!.etDayIntervalStart.setText(dayArray.getOrNull(0) ?: "0")
|
||||||
|
binding!!.etDayInterval.setText(dayArray.getOrNull(1) ?: "1")
|
||||||
|
binding!!.rbDayTypeInterval.isChecked = true
|
||||||
|
}
|
||||||
|
|
||||||
|
day.contains(",") -> {
|
||||||
|
val dayList = restoreMergedItems(day, "%d")
|
||||||
|
Log.d(TAG, "dayList:$dayList")
|
||||||
|
binding!!.flowlayoutMultiSelectDay.setSelectedItems(dayList)
|
||||||
|
binding!!.rbDayTypeAssigned.isChecked = true
|
||||||
|
selectedDayList = dayList.joinToString(",")
|
||||||
|
}
|
||||||
|
|
||||||
|
day.contains("-") -> {
|
||||||
|
val dayArray = day.split("-")
|
||||||
|
binding!!.etDayCyclicFrom.setText(dayArray.getOrNull(0) ?: "1")
|
||||||
|
binding!!.etDayCyclicTo.setText(dayArray.getOrNull(1) ?: "31")
|
||||||
|
binding!!.rbDayTypeCyclic.isChecked = true
|
||||||
|
}
|
||||||
|
|
||||||
|
regexNum.matches(day) && dayList.indexOf(String.format("%d", day.toInt())) != -1 -> {
|
||||||
|
binding!!.flowlayoutMultiSelectDay.setSelectedItems(String.format("%d", day.toInt()))
|
||||||
|
binding!!.rbDayTypeAssigned.isChecked = true
|
||||||
|
selectedDayList = day
|
||||||
|
}
|
||||||
|
|
||||||
|
else -> {
|
||||||
|
day = "*"
|
||||||
|
binding!!.etDay.setText(day)
|
||||||
|
binding!!.rbDayTypeAll.isChecked = true
|
||||||
|
}
|
||||||
|
}
|
||||||
} catch (e: Exception) {
|
} catch (e: Exception) {
|
||||||
|
day = "*"
|
||||||
|
binding!!.etDay.setText(day)
|
||||||
|
binding!!.rbDayTypeAll.isChecked = true
|
||||||
XToastUtils.error("Cron表达式无效:" + e.message, 30000)
|
XToastUtils.error("Cron表达式无效:" + e.message, 30000)
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
when {
|
|
||||||
day == "*" -> {
|
|
||||||
binding!!.rbDayTypeAll.isChecked = true
|
|
||||||
}
|
|
||||||
|
|
||||||
day == "?" -> {
|
|
||||||
binding!!.rbDayTypeNotAssigned.isChecked = true
|
|
||||||
}
|
|
||||||
|
|
||||||
day == "L" -> {
|
|
||||||
binding!!.rbDayTypeLastDayOfMonth.isChecked = true
|
|
||||||
}
|
|
||||||
|
|
||||||
day == "LW" -> {
|
|
||||||
binding!!.rbDayTypeLastDayOfMonthRecentDay.isChecked = true
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
day.endsWith("W") -> {
|
|
||||||
binding!!.rbDayTypeRecentDay.isChecked = true
|
|
||||||
binding!!.etRecentDay.setText(day.removeSuffix("W"))
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
day.contains("/") -> {
|
|
||||||
val dayArray = day.split("/")
|
|
||||||
binding!!.etDayIntervalStart.setText(dayArray.getOrNull(0) ?: "0")
|
|
||||||
binding!!.etDayInterval.setText(dayArray.getOrNull(1) ?: "1")
|
|
||||||
binding!!.rbDayTypeInterval.isChecked = true
|
|
||||||
}
|
|
||||||
|
|
||||||
day.contains(",") -> {
|
|
||||||
val dayList = restoreMergedItems(day, "%d")
|
|
||||||
Log.d(TAG, "dayList:$dayList")
|
|
||||||
binding!!.flowlayoutMultiSelectDay.setSelectedItems(dayList)
|
|
||||||
binding!!.rbDayTypeAssigned.isChecked = true
|
|
||||||
selectedDayList = dayList.joinToString(",")
|
|
||||||
}
|
|
||||||
|
|
||||||
day.contains("-") -> {
|
|
||||||
val dayArray = day.split("-")
|
|
||||||
binding!!.etDayCyclicFrom.setText(dayArray.getOrNull(0) ?: "1")
|
|
||||||
binding!!.etDayCyclicTo.setText(dayArray.getOrNull(1) ?: "31")
|
|
||||||
binding!!.rbDayTypeCyclic.isChecked = true
|
|
||||||
}
|
|
||||||
|
|
||||||
dayList.indexOf(String.format("%d", day.toInt())) != -1 -> {
|
|
||||||
binding!!.flowlayoutMultiSelectDay.setSelectedItems(String.format("%d", day.toInt()))
|
|
||||||
binding!!.rbDayTypeAssigned.isChecked = true
|
|
||||||
selectedDayList = day
|
|
||||||
}
|
|
||||||
|
|
||||||
else -> {
|
|
||||||
binding!!.rbDayTypeAll.isChecked = true
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1053,47 +1070,51 @@ class CronFragment : BaseFragment<FragmentTasksConditionCronBinding?>(), View.On
|
|||||||
expression = "$second $minute $hour $day $month $week $year"
|
expression = "$second $minute $hour $day $month $week $year"
|
||||||
Log.d(TAG, "afterMonthChanged expression:$expression")
|
Log.d(TAG, "afterMonthChanged expression:$expression")
|
||||||
CronExpression.validateExpression(expression)
|
CronExpression.validateExpression(expression)
|
||||||
|
|
||||||
|
when {
|
||||||
|
month == "*" -> {
|
||||||
|
binding!!.rbMonthTypeAll.isChecked = true
|
||||||
|
}
|
||||||
|
|
||||||
|
month.contains("/") -> {
|
||||||
|
val monthArray = month.split("/")
|
||||||
|
binding!!.etMonthIntervalStart.setText(monthArray.getOrNull(0) ?: "0")
|
||||||
|
binding!!.etMonthInterval.setText(monthArray.getOrNull(1) ?: "1")
|
||||||
|
binding!!.rbMonthTypeInterval.isChecked = true
|
||||||
|
}
|
||||||
|
|
||||||
|
month.contains(",") -> {
|
||||||
|
val monthList = restoreMergedItems(month, "%d")
|
||||||
|
Log.d(TAG, "monthList:$monthList")
|
||||||
|
binding!!.flowlayoutMultiSelectMonth.setSelectedItems(monthList)
|
||||||
|
binding!!.rbMonthTypeAssigned.isChecked = true
|
||||||
|
selectedMonthList = monthList.joinToString(",")
|
||||||
|
}
|
||||||
|
|
||||||
|
month.contains("-") -> {
|
||||||
|
val monthArray = month.split("-")
|
||||||
|
binding!!.etMonthCyclicFrom.setText(monthArray.getOrNull(0) ?: "1")
|
||||||
|
binding!!.etMonthCyclicTo.setText(monthArray.getOrNull(1) ?: "31")
|
||||||
|
binding!!.rbMonthTypeCyclic.isChecked = true
|
||||||
|
}
|
||||||
|
|
||||||
|
monthList.indexOf(month) != -1 -> {
|
||||||
|
binding!!.flowlayoutMultiSelectMonth.setSelectedItems(month)
|
||||||
|
binding!!.rbMonthTypeAssigned.isChecked = true
|
||||||
|
selectedMonthList = month
|
||||||
|
}
|
||||||
|
|
||||||
|
else -> {
|
||||||
|
month = "*"
|
||||||
|
binding!!.etMonth.setText(month)
|
||||||
|
binding!!.rbMonthTypeAll.isChecked = true
|
||||||
|
}
|
||||||
|
}
|
||||||
} catch (e: Exception) {
|
} catch (e: Exception) {
|
||||||
|
month = "*"
|
||||||
|
binding!!.etMonth.setText(month)
|
||||||
|
binding!!.rbMonthTypeAll.isChecked = true
|
||||||
XToastUtils.error("Cron表达式无效:" + e.message, 30000)
|
XToastUtils.error("Cron表达式无效:" + e.message, 30000)
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
when {
|
|
||||||
month == "*" -> {
|
|
||||||
binding!!.rbMonthTypeAll.isChecked = true
|
|
||||||
}
|
|
||||||
|
|
||||||
month.contains("/") -> {
|
|
||||||
val monthArray = month.split("/")
|
|
||||||
binding!!.etMonthIntervalStart.setText(monthArray.getOrNull(0) ?: "0")
|
|
||||||
binding!!.etMonthInterval.setText(monthArray.getOrNull(1) ?: "1")
|
|
||||||
binding!!.rbMonthTypeInterval.isChecked = true
|
|
||||||
}
|
|
||||||
|
|
||||||
month.contains(",") -> {
|
|
||||||
val monthList = restoreMergedItems(month, "%d")
|
|
||||||
Log.d(TAG, "monthList:$monthList")
|
|
||||||
binding!!.flowlayoutMultiSelectMonth.setSelectedItems(monthList)
|
|
||||||
binding!!.rbMonthTypeAssigned.isChecked = true
|
|
||||||
selectedMonthList = monthList.joinToString(",")
|
|
||||||
}
|
|
||||||
|
|
||||||
month.contains("-") -> {
|
|
||||||
val monthArray = month.split("-")
|
|
||||||
binding!!.etMonthCyclicFrom.setText(monthArray.getOrNull(0) ?: "1")
|
|
||||||
binding!!.etMonthCyclicTo.setText(monthArray.getOrNull(1) ?: "31")
|
|
||||||
binding!!.rbMonthTypeCyclic.isChecked = true
|
|
||||||
}
|
|
||||||
|
|
||||||
monthList.indexOf(month) != -1 -> {
|
|
||||||
binding!!.flowlayoutMultiSelectMonth.setSelectedItems(month)
|
|
||||||
binding!!.rbMonthTypeAssigned.isChecked = true
|
|
||||||
selectedMonthList = month
|
|
||||||
}
|
|
||||||
|
|
||||||
else -> {
|
|
||||||
binding!!.rbMonthTypeAll.isChecked = true
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1252,56 +1273,60 @@ class CronFragment : BaseFragment<FragmentTasksConditionCronBinding?>(), View.On
|
|||||||
expression = "$second $minute $hour $day $month $week $year"
|
expression = "$second $minute $hour $day $month $week $year"
|
||||||
Log.d(TAG, "afterWeekChanged expression:$expression")
|
Log.d(TAG, "afterWeekChanged expression:$expression")
|
||||||
CronExpression.validateExpression(expression)
|
CronExpression.validateExpression(expression)
|
||||||
|
|
||||||
|
when {
|
||||||
|
week == "*" -> {
|
||||||
|
binding!!.rbWeekTypeAll.isChecked = true
|
||||||
|
}
|
||||||
|
|
||||||
|
week == "?" -> {
|
||||||
|
binding!!.rbWeekTypeNotAssigned.isChecked = true
|
||||||
|
}
|
||||||
|
|
||||||
|
week.contains(",") -> {
|
||||||
|
val weekList = restoreMergedItems(week, "%d")
|
||||||
|
Log.d(TAG, "weekList:$weekList")
|
||||||
|
binding!!.flowlayoutMultiSelectWeek.setSelectedItems(weekList)
|
||||||
|
binding!!.rbWeekTypeAssigned.isChecked = true
|
||||||
|
selectedWeekList = weekList.joinToString(",")
|
||||||
|
}
|
||||||
|
|
||||||
|
week.contains("-") -> {
|
||||||
|
val weekArray = week.split("-")
|
||||||
|
binding!!.etWeekCyclicFrom.setText(weekArray.getOrNull(0) ?: "1")
|
||||||
|
binding!!.etWeekCyclicTo.setText(weekArray.getOrNull(1) ?: "31")
|
||||||
|
binding!!.rbWeekTypeCyclic.isChecked = true
|
||||||
|
}
|
||||||
|
|
||||||
|
week.contains("#") -> {
|
||||||
|
val weekArray = week.split("#")
|
||||||
|
binding!!.etWhichWeekOfMonth.setText(weekArray.getOrNull(0) ?: "1")
|
||||||
|
binding!!.etWhichDayOfWeek.setText(weekArray.getOrNull(1) ?: "1")
|
||||||
|
binding!!.rbWeekTypeWeeksOfWeek.isChecked = true
|
||||||
|
}
|
||||||
|
|
||||||
|
weekList.indexOf(week) != -1 -> {
|
||||||
|
binding!!.flowlayoutMultiSelectWeek.setSelectedItems(week)
|
||||||
|
binding!!.rbWeekTypeAssigned.isChecked = true
|
||||||
|
selectedWeekList = week
|
||||||
|
}
|
||||||
|
|
||||||
|
week.endsWith("L") -> {
|
||||||
|
binding!!.rbWeekTypeLastWeekOfMonth.isChecked = true
|
||||||
|
binding!!.etLastWeekOfMonth.setText(week.removeSuffix("L"))
|
||||||
|
}
|
||||||
|
|
||||||
|
else -> {
|
||||||
|
week = "*"
|
||||||
|
binding!!.etWeek.setText(week)
|
||||||
|
binding!!.rbWeekTypeAll.isChecked = true
|
||||||
|
}
|
||||||
|
}
|
||||||
} catch (e: Exception) {
|
} catch (e: Exception) {
|
||||||
|
week = "*"
|
||||||
|
binding!!.etWeek.setText(week)
|
||||||
|
binding!!.rbWeekTypeAll.isChecked = true
|
||||||
XToastUtils.error("Cron表达式无效:" + e.message, 30000)
|
XToastUtils.error("Cron表达式无效:" + e.message, 30000)
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
when {
|
|
||||||
week == "*" -> {
|
|
||||||
binding!!.rbWeekTypeAll.isChecked = true
|
|
||||||
}
|
|
||||||
|
|
||||||
week == "?" -> {
|
|
||||||
binding!!.rbWeekTypeNotAssigned.isChecked = true
|
|
||||||
}
|
|
||||||
|
|
||||||
week.contains(",") -> {
|
|
||||||
val weekList = restoreMergedItems(week, "%d")
|
|
||||||
Log.d(TAG, "weekList:$weekList")
|
|
||||||
binding!!.flowlayoutMultiSelectWeek.setSelectedItems(weekList)
|
|
||||||
binding!!.rbWeekTypeAssigned.isChecked = true
|
|
||||||
selectedWeekList = weekList.joinToString(",")
|
|
||||||
}
|
|
||||||
|
|
||||||
week.contains("-") -> {
|
|
||||||
val weekArray = week.split("-")
|
|
||||||
binding!!.etWeekCyclicFrom.setText(weekArray.getOrNull(0) ?: "1")
|
|
||||||
binding!!.etWeekCyclicTo.setText(weekArray.getOrNull(1) ?: "31")
|
|
||||||
binding!!.rbWeekTypeCyclic.isChecked = true
|
|
||||||
}
|
|
||||||
|
|
||||||
week.contains("#") -> {
|
|
||||||
val weekArray = week.split("#")
|
|
||||||
binding!!.etWhichWeekOfMonth.setText(weekArray.getOrNull(0) ?: "1")
|
|
||||||
binding!!.etWhichDayOfWeek.setText(weekArray.getOrNull(1) ?: "1")
|
|
||||||
binding!!.rbWeekTypeWeeksOfWeek.isChecked = true
|
|
||||||
}
|
|
||||||
|
|
||||||
weekList.indexOf(week) != -1 -> {
|
|
||||||
binding!!.flowlayoutMultiSelectWeek.setSelectedItems(week)
|
|
||||||
binding!!.rbWeekTypeAssigned.isChecked = true
|
|
||||||
selectedWeekList = week
|
|
||||||
}
|
|
||||||
|
|
||||||
week.endsWith("L") -> {
|
|
||||||
binding!!.rbWeekTypeLastWeekOfMonth.isChecked = true
|
|
||||||
binding!!.etLastWeekOfMonth.setText(week.removeSuffix("L"))
|
|
||||||
}
|
|
||||||
|
|
||||||
else -> {
|
|
||||||
binding!!.rbWeekTypeAll.isChecked = true
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1424,51 +1449,55 @@ class CronFragment : BaseFragment<FragmentTasksConditionCronBinding?>(), View.On
|
|||||||
expression = "$second $minute $hour $day $month $week $year"
|
expression = "$second $minute $hour $day $month $week $year"
|
||||||
Log.d(TAG, "afterYearChanged expression:$expression")
|
Log.d(TAG, "afterYearChanged expression:$expression")
|
||||||
CronExpression.validateExpression(expression)
|
CronExpression.validateExpression(expression)
|
||||||
|
|
||||||
|
when {
|
||||||
|
year == "*" -> {
|
||||||
|
binding!!.rbYearTypeAll.isChecked = true
|
||||||
|
}
|
||||||
|
|
||||||
|
year == "?" -> {
|
||||||
|
binding!!.rbYearTypeNotAssigned.isChecked = true
|
||||||
|
}
|
||||||
|
|
||||||
|
year.contains("/") -> {
|
||||||
|
val yearArray = year.split("/")
|
||||||
|
binding!!.etYearIntervalStart.setText(yearArray.getOrNull(0) ?: "2023")
|
||||||
|
binding!!.etYearInterval.setText(yearArray.getOrNull(1) ?: "2")
|
||||||
|
binding!!.rbYearTypeInterval.isChecked = true
|
||||||
|
}
|
||||||
|
|
||||||
|
year.contains(",") -> {
|
||||||
|
val yearList = restoreMergedItems(year, "%d")
|
||||||
|
Log.d(TAG, "yearList:$yearList")
|
||||||
|
binding!!.flowlayoutMultiSelectYear.setSelectedItems(yearList)
|
||||||
|
binding!!.rbYearTypeAssigned.isChecked = true
|
||||||
|
selectedYearList = yearList.joinToString(",")
|
||||||
|
}
|
||||||
|
|
||||||
|
year.contains("-") -> {
|
||||||
|
val yearArray = year.split("-")
|
||||||
|
binding!!.etYearCyclicFrom.setText(yearArray.getOrNull(0) ?: "1970")
|
||||||
|
binding!!.etYearCyclicTo.setText(yearArray.getOrNull(1) ?: "2099")
|
||||||
|
binding!!.rbYearTypeCyclic.isChecked = true
|
||||||
|
}
|
||||||
|
|
||||||
|
yearList.indexOf(year) != -1 -> {
|
||||||
|
binding!!.flowlayoutMultiSelectYear.setSelectedItems(year)
|
||||||
|
binding!!.rbYearTypeAssigned.isChecked = true
|
||||||
|
selectedYearList = year
|
||||||
|
}
|
||||||
|
|
||||||
|
else -> {
|
||||||
|
year = "*"
|
||||||
|
binding!!.etYear.setText(year)
|
||||||
|
binding!!.rbYearTypeAll.isChecked = true
|
||||||
|
}
|
||||||
|
}
|
||||||
} catch (e: Exception) {
|
} catch (e: Exception) {
|
||||||
|
year = "*"
|
||||||
|
binding!!.etYear.setText(year)
|
||||||
|
binding!!.rbYearTypeAll.isChecked = true
|
||||||
XToastUtils.error("Cron表达式无效:" + e.message, 30000)
|
XToastUtils.error("Cron表达式无效:" + e.message, 30000)
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
when {
|
|
||||||
year == "*" -> {
|
|
||||||
binding!!.rbYearTypeAll.isChecked = true
|
|
||||||
}
|
|
||||||
|
|
||||||
year == "?" -> {
|
|
||||||
binding!!.rbYearTypeNotAssigned.isChecked = true
|
|
||||||
}
|
|
||||||
|
|
||||||
year.contains("/") -> {
|
|
||||||
val yearArray = year.split("/")
|
|
||||||
binding!!.etYearIntervalStart.setText(yearArray.getOrNull(0) ?: "2023")
|
|
||||||
binding!!.etYearInterval.setText(yearArray.getOrNull(1) ?: "2")
|
|
||||||
binding!!.rbYearTypeInterval.isChecked = true
|
|
||||||
}
|
|
||||||
|
|
||||||
year.contains(",") -> {
|
|
||||||
val yearList = restoreMergedItems(year, "%d")
|
|
||||||
Log.d(TAG, "yearList:$yearList")
|
|
||||||
binding!!.flowlayoutMultiSelectYear.setSelectedItems(yearList)
|
|
||||||
binding!!.rbYearTypeAssigned.isChecked = true
|
|
||||||
selectedYearList = yearList.joinToString(",")
|
|
||||||
}
|
|
||||||
|
|
||||||
year.contains("-") -> {
|
|
||||||
val yearArray = year.split("-")
|
|
||||||
binding!!.etYearCyclicFrom.setText(yearArray.getOrNull(0) ?: "1970")
|
|
||||||
binding!!.etYearCyclicTo.setText(yearArray.getOrNull(1) ?: "2099")
|
|
||||||
binding!!.rbYearTypeCyclic.isChecked = true
|
|
||||||
}
|
|
||||||
|
|
||||||
yearList.indexOf(year) != -1 -> {
|
|
||||||
binding!!.flowlayoutMultiSelectYear.setSelectedItems(year)
|
|
||||||
binding!!.rbYearTypeAssigned.isChecked = true
|
|
||||||
selectedYearList = year
|
|
||||||
}
|
|
||||||
|
|
||||||
else -> {
|
|
||||||
binding!!.rbYearTypeAll.isChecked = true
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user