Fix: handle multiple interval in request time
This commit is contained in:
@@ -32,6 +32,7 @@ import java.nio.file.StandardCopyOption;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Calendar;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.Observable;
|
||||
import java.util.Observer;
|
||||
@@ -726,6 +727,9 @@ import okhttp3.HttpUrl;
|
||||
}
|
||||
else {
|
||||
Calendar next = null;
|
||||
|
||||
List<Calendar> dates = new ArrayList<>();
|
||||
|
||||
Calendar now = Calendar.getInstance();
|
||||
for (Pair<Calendar, Calendar> interval : this.configuration.getRequestTime()) {
|
||||
Calendar start = (Calendar) now.clone();
|
||||
@@ -741,8 +745,16 @@ import okhttp3.HttpUrl;
|
||||
if (start.before(now) && now.before(end)) {
|
||||
return null;
|
||||
}
|
||||
if (next == null || (start.before(next) && start.after(now))) {
|
||||
next = start;
|
||||
|
||||
Calendar startTomorow = (Calendar) start.clone();
|
||||
startTomorow.add(Calendar.DATE, 1);
|
||||
dates.add(start);
|
||||
dates.add(startTomorow);
|
||||
}
|
||||
|
||||
for (Calendar cal : dates) {
|
||||
if (cal.after(now) && (next == null || (cal.getTimeInMillis() - now.getTimeInMillis() < next.getTimeInMillis() - now.getTimeInMillis()))) {
|
||||
next = cal;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user